Vai al contenuto
PLC Forum


Comunicazione S7-300 Con Rete Profibus


enzo8308

Messaggi consigliati

emanuele.croci

Da quello che ho capito il tuo ascensore ha solo un sensore tipo PRESENZA ASCENSORE AL PIANO X che si accende ad ogni piano.

Se vuoi sapere a che piano sei devi quindi CONTARE I FRONTI di salita e di discesa del sensore, cioè se voglio andare ad es. al 4o piano devo

- Sapere in partenza che sono al piano X, ad es. al 1o piano; se perdo questa informazione presumibilmente il mio ascensore andrà a sbattere da qualche parte

- Salire fino a "perdere il sensore" 3 volte

- Il prossimo sensore che incontro in salita è quello del 4o piano. Mi fermo di botto, con grande gioia degli occupanti.

(l'istruzione Siemens per il fronte di discesa è FN)

N.B. Nessuno salirebbe mai su un ascensore così, comunque capisco che è un esempio didattico...

Ciao, Emanuele

Modificato: da emanuele.croci
Link al commento
Condividi su altri siti


  • Risposte 51
  • Created
  • Ultima risposta

Top Posters In This Topic

  • enzo8308

    31

  • emanuele.croci

    11

  • beppeconti

    4

  • Gianluca Caredda

    2

Ciao Emanuele,

ho dato uno sguardo sul manuale all'istruzione FN ma non ci capito molto è strana il manuale mi riporta un esempio:

U E1.0

FN M1.0

= A4.0

e poi mi riporta i diagrammi di stato del segnale. Ma non mi è molto chiara la cosa.

Mi potresti spiegare meglio come usarla?

Grazie

Ciao Enzo

Link al commento
Condividi su altri siti

emanuele.croci

Ciao,

Io non ho problema a spiegarti come funziona la FN, ma secondo me dovresti farti un po' di domande sugli obiettivi che ti poni durante la tesi.

Vuoi imparare lo Step7? Puoi cercare qualcuno che ti dia lezioni o frequentare un corso Siemens, magari il tuo prof te lo può finanziare o contribuire in parte.

Guarda che qui c'è da imparare:

- un linguaggio di programmazione

- un ambiente di sviluppo

ma non solo, anche e soprattutto le tecniche che si usano in automazione, ....parliamo di elettrotecnica, metodologie di programmazione, rispetto di norme, conoscenza di componenti....

te lo dico nel tuo interesse, se non vuoi perdere un bel po' del TUO tempo, e magari scoprire poi che in 6 mesi hai imparato quanto altri imparano in 1 settimana...

comunque, la FN (fronte di discesa) misura quando un segnale passa da 1 a 0.

Se scrivo

U E1.0

FN M1.0

=M1.1

Avro M1.1 che "si accende" per una scansione di programma quando E1.0 passa da 1 a 0, cioè si spegne.

Potrei anche scrivere:

UN E1.0

U M1.0 //memoria del ciclo precedente

=M1.1 //fronte di discesa

U E1.0

=M1.0

....è la stessa cosa della FN, riscritta con istruzioni standard

Poi chiederai:

-che cos'è una scansione di programma?

- come faccio ad usare M1.1 per "contare" i miei piani?

ecc... ecc...

Vedi un po' tu...

Ciao, Emanuele

Link al commento
Condividi su altri siti

Ciao Emanuele,

scusami se continuo a chiederti delle cose, hai ragione per quello che dici. Ma io da stamattina fino alla fine della settimana prossima sono in lab da solo in quanto il prof sta facendo dottorato e deve scrivere la tesi e quindi non viene all'univ. Io non vorrei approfittare della tua disponibilità ma solo con i manuali non riesco a fare niente.

Per cui volevo chiederti perchè scrivendo il seguente codice, non succede niente:

L PEW 274

T "merker_ingressi"

U "sensore_salita"

= M 150.0

SPB incr

L "cont"

L 2

==I

U "sensore_salita"

= "motore_ascensore_su"

incr: ZV "cont"

Grazie

Ciao Enzo

meglio scritto così:

L PEW 274

T MW 50

U M 50.2

= M 150.0

SPB incr

L Z 3

L 2

==I

U M 50.2

= M 100.0

incr: ZV Z 3

Link al commento
Condividi su altri siti

emanuele.croci

Ciao,

ti consiglio di sperimentare il "controlla e comanda variabili" e l'icona "occhialini" così potrai vedere come "girano" le tue variabili nel programma e debuggarlo meglio.

Inoltre ti sconsiglio di usare i contatori (che sono inutili e complicati) e di fare direttamente le operazioni usando le istruzioni +I , -I, ecc... secondo me più semplici da usare, soprattutto per uno che si intende già un po' di programmazione.

Ciao, Emanuele

Link al commento
Condividi su altri siti

Ciao Emanuele,

ho seguito il tuo consiglio. Dovrebbe essere semplice in teoria, avrò scritto si e no 100000 codici da stamattina, nessuno che mi convincesse e infatti non andavano. Ma ora ho scritto questo:

L PEW 274

T MW 50

L MW 5

L 1

+I

T MW 5

L MW 5

L 2

==I

UN M 50.2

= M 100.0

secondo me dovrebbe essere buono, e invece niente non va, e non parte neanche il motore. Ho provato con le vat e con gli occhialini.

Per favore mi dici dove sta il problema, sto impazzendo!

Grazie mille

Ciao Enzo

Link al commento
Condividi su altri siti

emanuele.croci

Te lo commento (visto che tu non lo fai)... ma mi sa che stai sparando un po' a casaccio....

L PEW 274

T MW 50 ....qui vuoi copiare lo stato del tuo sensore sul merker M50.2, per contare i piani

L MW 5

L 1

+I ....questo è il pezzo più assurdo... ad ogni ciclo di scansione sommi +1

T MW 5 ... in un baleno MW5 andrà alle stelle

L MW 5

L 2

==I ...quando MW5 sarà uguale a 2 (cosa che durerà all'incirca il 1° nanosecondo di elaborazione

....visto che lo aumenti sempre)...

UN M 50.2

= M 100.0 :accendo il motore??? quando ho MW5=2 ?? (che non ce l'ho mai) e in più non devo avere il

snesore? ma come faccio a partire dal piano se lì per definizione HO GIA' il sensore lì ???

Ti dò un consiglio: scriviti la logica con un automa a stati finiti o un flowchart, rifletti su ogni punto e, prima di scrivere un programma, fatti un bel po' di prove con le istruzioni Step7 per vedere come funzionano, in modo da padroneggiarle con sicurezza.

Fatti un programmino che ogni volta che premi un pulsante aumenta una variabile, ad esempio, e prova che funzioni.

Se hai già programmato in vita tua saprai che ogni programma nasce da una IDEA che inserisci nell'elaboratore, poi fai il DEBUG e capisci cosa c'è che non va.

E' assurdo dire FUNZIONA / NON FUNZIONA.

Comunque io sarò all'estero la prossima settimana.

Buona fortuna!

Ciao, Emanuele

Link al commento
Condividi su altri siti

Ciao Emanuele,

innanzitutto grazie ancora per i tuoi suggerimenti.

Vorrei farti capire che non sono uno sfaticato, non è che mi butto e non voglio ragionare o fare qualcosa. Come penso tu immagini sono un laureando del nuovo ordinamento, e come tale devo fare le cose in tempi brevissimi. Io non so quanto tempo ci vuole ad imparare a programmare in step 7 ma sai quanto dura questa specie di tirocinio che sto facendo? 75 ore nelle quali lavoro davanti al pc (da solo) sperando di ottenere risultati. Non so se questo mi sarà mai possibile anche perchè il mio compito non è solo quello di muovere quest'ascensore. Ci tenevo a dirti questo altrimenti puoi pensare che io non voglio fare niente. Sai quante pagine ci sono dei manuali di step 7 e awl? Si e no 2000 pagine!!!! In 75 ore???? Io non dico che dal tirocinio vogliono che diventi un esperto ma capire come muovere quella robba in così poco tempo.... Spero solo di farcela.

comunque non vorrei annoiarti con chiacchiere inutili, ma potresti scrivermi un codice riguardo l'ascensore di cui ti ho parlato? Te lo chiedo perchè la settimana prossima tu sarai all'estero e come ti ho detto il mio prof non viene in laboratorio e non vorrei rimanere senza aver fatto niente. Almeno con un codice aventi potroò ragionare e capire con l'aiuto del manuale.

Grazie ancora per l'aiuto

Ciao Enzo

Link al commento
Condividi su altri siti

Ciao a tutti,

vorrei chiedere una cosa, ho realizzato un semplice programmino che mi dovrebbe contare quando passo la mano davanti al sensore (una fotocellula), qualcuno mi sa dire perchè non funziona?

Ecco il codice:

L PEW 274

T "merker_ingressi"

U "nastro_1_fsx"

FP M 1.0

= A 4.0

SET

U A 4.0

SPBN no

L "contatore"

+ 1

no: L "contatore"

+ 0

o meglio, è lo stesso codice, ma senza rappresentazione simbolica:

L PEW 274

T MW 50

U M 51.3

FP M 1.0

= A 4.0

SET

U A 4.0

SPBN no

L MW 5

+ 1

no: L MW 5

+ 0

Io passo la mano davanti alla fotocellula (mio ingresso) ma il contatore resta 0. Perchè?

Grazie

Ciao Enzo

Link al commento
Condividi su altri siti

L'istruzione:

L MW 5

+ 1

va sempre completata con:

T MW5

L'AWl di Siemens è molto simile al vecchio Assembler. Non puoi lavorare direttamente con il dato ma devi prima caricarlo nell'accumulatore con una istruzione "Load", poi elabori il contenuto dell'accumulatore in base alle tue esigenze e alla fine risalvi il contenuto dell'accumulatore nel dato con l'istruzione "Transfer".

CIAo

Modificato: da beppeconti
Link al commento
Condividi su altri siti

Dimenticavo .....

l'istruzione:

no: L MW 5

+ 0

puoi toglierla, non seve a niente. Basta che lasci l'etichetta "no:" con il resto del programma.

Ricordati che se selezioni una istruzione e poi premi "F1" compare un . in linea molto utile. In questo caso la soluzione al tuo problema la potevi trovare con un po' di pazienza anche utilizzando l'. in linea. :)

CIAo

Modificato: da beppeconti
Link al commento
Condividi su altri siti

Ciao a tutti,

ho un problema, spero sappiate aiutarmi. oggi ero in laboratorio per questo progetto di cui tanto ho parlato ed improvvisamente quando ho acceso il pc non parte più il computer. Ho dovuto reistallare step 7 su un altro pc ma ho avuto il seguente problema:

una volta istallato il tutto, ho provato a scaricare il mio progetto sul plc e ho avuto i seguenti errori:

Non si può stabilire un collegamento tra il PC/PG e il controllore programmabile.

e poi successivamente dopo aver cliccato su ok:

Non è stato possibile stabilire un collegamento con l'unità CPU 318-2(R0/S2) nella stazione Laboratorio.

Come posso risolvere questo problema?

Penso che avrei douto fare qualcosa nelle ultime schermate dell'istallazione di step 7 ma non avendo mai istallato tale software ho semplicemente mandato avanti l'istallazione senza fare nulla.

Grazie

Ciao Enzo

Link al commento
Condividi su altri siti

Lancia il "Simatic Manager" e seleziona poi il menu a tendina "Strumenti --> Imposta interfaccia PG/PC..."

Ti compare una finestra dove vai a configurare l'interfaccia di comunicazione che stai usando, la velocità e la porta di comunicazione.

Se stai usando un cavo seriale + interfaccia seriale/MPI (PC Adapter) seleziona "PC Adapter(MPI)", poi clicci su proprietà e infine verifica che la porta di comunicazione e la velocità siano quelle che stai usando.

CIAo

Beppe

Link al commento
Condividi su altri siti

Ciao Beppe, ho provato come hai detto ma mi dice:

Online: interfaccia impostata (COM o USB) attualmente non disponibile.

Che devo fare?

Grazie

Ciao Enzo

Link al commento
Condividi su altri siti

Inoltre se metto COM2 invece di COM1 mi dice comunicazione con adattatore disturbata. Quindi ho messo la velocità minima, ma niente. Continua a non andare. Che posso fare?

Qualcuno mi sa aiutare?

Grazie

Ciao Enzo

Link al commento
Condividi su altri siti

Ci sono riuscito.

Scusatemi ma volevo chiedervi una cosa:

nel mio programma devo inserire un contetore, e fin qui tutto ok.

Ma vorrei settarlo a zero all'inizio cosa che non posso fare nel programma altrimenti ad ogni ciclo di scansione avrei il contatore a zero. Ma invece ho sentito dire di una routine di inizializzazione, ma sui manuali ancora la devo trovare? Qualcuno mi sa dire come fare o dove vedere?

Ciao Enzo

Link al commento
Condividi su altri siti

Grazie, ho provatop e funziona.

Vorrei chiederti una cosa dato che qualche programma stupido adesso sto cominciando a farlo.

Qui in laboratorio dove sto sviluppando il mio progetto, dovrei fare in modo che il pezzo che si trova su un nastro deve arrivare a fine nastro e essere sicuro che l'ascensore si trovi a quel piano per poter essere caricato lì sopra. Io ho realizzato un codice affinchè l'ascensore si porti a quel piano ed un codice affinchè il pacco arrivi a fine nastrto. Il mio problema è come farli funzionare insieme, ciòè io fermo il pacco a fine nastro ma poi dovrà salire sull'ascensore quando questa arriva al piano desiderato, come lo posso fare?

Grazie

Ciao Enzo

Link al commento
Condividi su altri siti

questo in pratica è la mia ascensore:

L PEW 274

T "merker_ingressi"

SET

U "sensore_salita"

ZV "cont"

L "cont"

L 2

==I

NOT

= "motore_ascensore_su"

L "merker_uscite"

T PAW 275

qualcosa, un bit, dovrebbe alzarsi per segnalare all'altro codice di poter spostare il pacco sull'ascensore. Non so se sto pensando bene, ma il primo problema che trovo è che ho scritto = motore_ascensore_su,

e quindi se già ho assegnato lì come faccio ad alzare un bit a fine processo?

Ciao Enzo

Link al commento
Condividi su altri siti

Pare che ci stia riuscendo.... Vi farò sapere!!!!!!!!!!!

Mi servirebbe un aiuto, vorrei azzerare il contatore in OB100 all'inizio, quindi in OB100 ho scritto:

SET

R Z3

perchè poi il contatore resta 0 sempre durante l'esecuzione del mio programma? Ho sbagliato qualcosa?

Grazie

Ciao Enzo

Link al commento
Condividi su altri siti

Ciao a tutti,

vorrei chiedervi una cosa: sapreste dirmi perchè (mi succede da ieri nel tardo pomeriggio) ogni volta che scarico il programma sul plc il mio computer va in crash, ovvero esce quella famosa schermata blu di windows e si riavvia il computer?

Grazie

Ciao Enzo

Link al commento
Condividi su altri siti

Raga', qualcuno mi sa dire cosa devo fare che sto coso fa in crash una continuazione ogni volta che vado a scaricare il mio programma sul plc?

Grazie

Ciao Enzo

Link al commento
Condividi su altri siti

Raga' sapete come ho risolto? Ho spento e riacceso il plc!!!!!!!! Ma chissà!!!!!!!!!

comunque vole vo chiedervi una cosa: nel mio OB100 ho scrito:

SET

R "cont"

no: L PEW 274

SET

UN "fine_corsa_inferiore"

= "motore_ascensore_giù"

L "merker_uscite"

T PAW 275

SET

UN "fine_corsa_inferiore"

SPB no

cosa ho sbagliato? Il mio intento era quello di portare l'ascensore al fine corsa all'avvio per conoscee la posizione iniziale, che altrimenti non conosco e non posso gestire l'ascensore.

Grazie

Ciao Enzo

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora

×
×
  • Crea nuovo/a...