Vai al contenuto
PLC Forum


quando avviene l'aggiornamento dei merker?


Messaggi consigliati

don_chisciotte
Inserito:

salve,

questo è il mio primo post in questo interessante (ed attivo) forum.
Sto imparando le basi del plc.

domanda: all'interno della singola scansione del codice ladder i merker possono cambiare più volte il loro valore, e cioè
il loro aggiornamento si ripercuote già nella stessa scansione sul valore di quel merker nei rung successivi?

Sapere ciò mi serve per capire come implementare i diagrammi a stati ove uno stato presenta un
segnale d'ingresso del plc, sia entrante nello stato considerato, sia uscente dallo stato considerato (in entrambi i casi al
livello alto, oppure in entrambi i casi con il fronte di salita).

Per esempio: ipotizziamo di dovere creare lo schema ladder che implementi un automa a stati finiti, dotato di tre stati
interni S1, S2, S3, di un pulsante T di ingresso e di tre lampade L1, L2, L3 di uscita.
Ogni volta che si preme il pulsante T si passa allo stato consecutivo (cioè dallo stato S1 si passa allo stato S2,
dallo stato S2 si passa allo stato S3, ed approdati allo stato S3 si torna allo stato S1).
Si permane in ciascun stato finchè non venga premuto di nuovo il pulsante T.
Ogni stato pilota una lampada diversa, che rimane accesa se e solo se ci si trova nello stato corrispondente.
Cioè nello stato S1 è accesa solo la lampada L1, nello stato S2 è accesa solo la lampada L2, ecc.

Ecco lo schema ladder che ho ipotizzato.

Assegno il pulsante T alla linea d'ingresso I1.

Assegno lo stato S1 al merker M1.
Assegno lo stato S2 al merker M2.
Assegno lo stato S3 al merker M3.

Assegno la lampada L1 all'uscita Q1 del plc.
Assegno la lampada L2 all'uscita Q2 del plc.
Assegno la lampada L3 all'uscita Q3 del plc.


I rung 1,2,3,4,5,6 effetuano la transizione degli stati.

Scriverò lo schema ladder in maniera testuale, e non allegando l'immagine, perchè dispongo solo
del Logo Siemens in cui mancano vari componenti come --(R)--, --(S)--, --|P|--.
Queste mancanze mi impediscono fra l'altro di scoprire da solo la risposta al problema.
 
Nel rung1 si attiva il merker S2 (cioè si entra nello stato S2) se si stava nello stato S1 ed il pulsante T ha avuto
un fronte di salita.

                      T    S2  
rung1: --|S1|--|P|--(S)

Nel rung2 si resetta lo stato S1, perchè se si passa allo stato S2 allora non si sta più nello stato S1.

                       T    S1  
rung2: --|S1|--|P|--(R)

Nel rung3 si attiva il merker S3 (cioè si entra nello stato S3) se si stava nello stato S2 ed il pulsante T ha avuto
un fronte di salita.

                      T    S3
rung3: --|S2|--|P|--(S)

Nel rung4 si resetta lo stato S2, perchè se si passa allo stato S3 allora non si sta più nello stato S2.

                      T    S2
rung4: --|S2|--|P|--(R)

Nel rung5 si attiva il merker S1 (cioè si entra nello stato S1) se si stava nello stato S3 ed il pulsante T ha avuto
un fronte di salita.

                       T    S1
rung5: --|S3|--|P|--(R)

Nel rung6 si resetta lo stato S3, perchè se si passa allo stato S1 allora non si sta più nello stato S1.

                       T    S3  
rung6: --|S3|--|P|--(R)

Nel rung7 si attiva l'uscita Q1 se e solo se ci si trova nello stato S1


             S1   Q1
rung7: --||-----()

Nel rung8 si attiva l'uscita Q2 se e solo se ci si trova nello stato S3

              S2   Q2
rung8: --||------()

Nel rung9 si attiva l'uscita Q3 se e solo se ci si trova nello stato S3

              S3   Q3
rung9: --||------()

Ebbene il comportamento dello schema ladder riportato è notevolemnte diverso a seconda che
sussista la casistica A o B:

casistica A: i merker cambiano valore man mano che vengono aggiornati all'interno della stessa
scansione.

casistica B: i merker cambiano valore solo al termine di una scansione, e pertanto rimangano inalterati all'interno
di una scansione.

////////////////////////////

il confronto fra le due casistiche A e B

Ipotizziamo che, all'inizio della scansione, ci si trovi nello stato S1, e pertanto valga:

S1=1; S2=0 e S3=0; Q1=1; Q2=0; Q3=0.

Ipotizziamo altresì che il pulsante T abbia creato il fronte di salita proprio e solo in questa scansione del programma.

la casistica A:

Dopo avere eseguito i rung 1 e 2 ottengo fin da ora (per l'interpretazione di questa casistica A)
l'aggiornamento degli stati:

S1=0; S2=1 e S3=0;

Ora, dopo avere eseguito i rung 3 e 4 ottengo fin da ora (per l'interpretazione di questa casistica A)
l'aggiornamento degli stati:

S1=0; S2=0 e S3=1;

Ora, dopo avere eseguito i rung 5 e 6 ottengo fin da ora (per l'interpretazione di questa casistica A)
l'aggiornamento degli stati:

S1=1; S2=0 e S3=0;

Pertanto in questa casistica A si approda al rung7 trovandoci (erroneamente) nello stato S1
(mentre avremmo voluto trovarci nello stato S2). Ed in questo stato S1 si rimarrà anche nelle scansioni
successive, perchè tutte le pressioni del pulsante T saranno incapaci di determinare eventuali transizioni
di stato in futuro, perchè esse avvengono in maniera multipla in ogni scansione.

Ne consegue che, impiegando lo schema ladder descritto, rimarrà perennemente accesa la lampada L1, il che non è ciò
che vogliamo.

///////////////////////////////

la casistica B

Dopo avere eseguito i rung 1 e 2  (per l'interpretazione di questa casistica B)
rimango nello stesso stato di partenza S1, ma ho creato S1=0 e S2=1 per la prossima scansione del programma.

Pertanto le condizioni inserite nei rung 3 e 4 non sono verificate in questa scansione, ma lo saranno nella prossima
scansione (per l'interpretazione di questa casistica A). Pertanto continua a valere, in questa scansione, dopo il rung4:

S1=1; S2=0 e S3=0;

Analogamente, le condizioni inserite nei rung 5 e 6 non sono verificate in questa scansione. Pertanto continua a
valere, in questa scansione:

S1=1; S2=0 e S3=0;

Pertanto in questa casistica A si approda al rung7 trovandoci nello stato S1, ma nella prossima scansione ci arriveremo
stando nello stato S2, come desiderato.

Ne consegue che nella prossima scansione si accende la lampada L2 (come desiderato).

//////////////////////////

Ora io chiedo:

a) è corretta l'interpretazione A o l'interpretazione B dello schema ladder proposto?

b ) questa interpretazione è la stessa per ogni plc oppure dipende dalò plc considerato.
In particolare quale è l'interpretazione corretta nel Logo Siemens?

c)l'aggiornamento invece delle uscite avviene al termine della scansione, oppure avviene fin da subito, dopo ogni rung,
cosicchè una uscita possa cambiare valore varie volte all'interno della stessa scansione?

////////////////////////////////

grazie,

don chisciotte

 

 

 


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...