Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Elementi fondamentali del linguaggio SFC
Xi tempoAz tempoL (time-limited, azione limitata nel tempo). L'azione (Az) inizia quando la fase cui è associata (X) si attiva e termina quando la fase medesima si disattiva oppure è trascorso un assegnato intervallo di tempo.
Xi tempoAz tempoτ 8Il linguaggio SFC- elementi fondamentali -P (pulse, azione impulsiva). L'azione comincia quando la fase si attiva (o si disattiva, secondo un'apposita opzione), ovvero sul fronte di salita (o di discesa) della variabile booleana associata allo stato della fase, e viene eseguita una volta sola, indipendentemente da quanto a lungo la fase resta attiva. Un'azione siffatta si deve poter descrivere come l'esecuzione di un programma, dimodoché abbia senso "farla una volta sola". Le azioni si usano quindi di solito per calcoli, avvio di temporizzatori, aggiornamento di contatori, e così via.
S (stored o set, azione memorizzata). L'azione comincia quando la fase si attiva e dura,
indipendentemente da quanto a lungo la fase resta attiva, finché non viene resettata con un'azione uguale ma con qualificatore R.R (reset, azione cancellata). Fa terminare un'azione memorizzata. Il linguaggio SFC - elementi fondamentali - SD (stored and time-delayed, azione memorizzata e ritardata) L'azione comincia dopo un intervallo di tempo assegnato dalla fase è diventata attiva, anche se la fase nel frattempo si è disattivata. L'azione dura finché non viene resettata con un'azione uguale ma di tipo R.DS (delayed and stored, azione ritardata e memorizzata) L'azione comincia dopo un intervallo di tempo assegnato dalla fase è diventata attiva, se la fase lo è ancora in quel momento. Se inizia, l'azione dura finché non viene resettata con un'azione uguale ma di tipo R.SL (stored and time-limited, azione memorizzata e limitata nel tempo) L'azione comincia quando la fase.diventa attiva e termina quando viene resettata con un'azione uguale ma di tipo o quando è trascorso un assegnato intervallo di tempo.
Il linguaggio SFC - elementi fondamentali - Condizioni logiche associate alle transizioni.
Le condizioni associate alle transizioni sono espressioni logiche di tipo generale e possono coinvolgere variabili d'ingresso, di stato, temporali e condivise.
Le variabili di ingresso possono essere booleane, intere o reali.
Le variabili booleane possono essere semplici (e in tal caso semplicemente riportano quanto arriva dal corrispondente sensore) oppure a riconoscimento di fronte. Questo tipo di variabile si indica premettendo al nome il simbolo e vale 1 per la durata di un ciclo di scansione del PLC (ecco l'eccezione) quando il segnale del sensore passa da 0 a 1. Ovviamente col simbolo si ha lo stesso effetto, ma quando il segnale va da 1 a 0.
Delle variabili di stato si è già detto.
Le variabili temporali sono
necessarie per l'implementazione dei sistemi logici. InSFC il tempo è reso presente tramite temporizzatori associati alle fasi, che contano il tempo trascorso dall'ultima attivazione della fase. Quando la fase si disattiva, ovviamente, il suo timer si azzera. Convenzionalmente indicheremo il timer della fase con col che l'espressione diviene vera (al primo ciclo del PLCi Xi.t, X5.t>2min che avviene più di) 2 minuti dopo l'ultima attivazione della fase 5, se questa nel frattempo non si è disattivata.
Le variabili condivise sono semplicemente variabili definite in una zona di memoria visibile da tutto lo schema SFC. E' possibile definire un'azione che agisce su una variabile condivisa, che a sua volta può essere usata nella condizione logica associata a qualunque transizione.
Il linguaggio SFC- strutture base - Scelta e convergenza (if-then-else). Si usano due nodi diramatori:
- un nodo di scelta, ovvero una fase seguita da
più transizioni con condizioni mutuamente esclusive;
- un nodo di convergenza, ovvero più transizioni che portano nella (cioè scattando attivano la) stessa fase.
Esempio. 1 Osservazione.
Se nell’esempio le condizioni eA B non fossero mutuamente esclusive, A B la fase 4 potrebbe “venir attivata due volte”, il che a rigore non ha senso2 3 (il marcatore di attività della fase è un ente booleano) e comunque èC D ambiguo.
Questa è una prima differenza tra SFC e reti di Petri (torneremo4 sull’argomento). 12
Il linguaggio SFC- strutture base - Parallelo (attivazione e disattivazione simultanea di più fasi).
Si usano due nodi diramatori, indicati però in questo caso con barre doppie:
- un nodo di parallelismo, ovvero una transizione seguita da più fasi (che quindi essa, scattando, attiva tutte);
- un nodo di concorrenza, ovvero una transizione preceduta da più fasi (e quindi superabile solo se).
esse sono tutte attive).Esempio. 1 A2 3B4 13Il linguaggio SFC- strutture base -Semaforo di mutua esclusione.E’ una struttura simile al modello di una risorsa condivisa nelle reti di Petri.Esempio.A B Osservazioni.Ovviamente le condizioni e devonoA Bessere mutuamente esclusive e la faseche costituisce il semaforo, ovvero quellache attivandosi rappresenta la disponibilitàdella risorsa, dev’essere una fase iniziale(nell’esempio è la fase al centro).Quindi, l’analogia con le reti di Petri c’ènel solo caso di una risorsa esistente inquantità unitaria e inizialmente disponibile. 14Il linguaggio SFC- strutture base -Sincronizzazione locale.E’ una struttura in cui due sequenze si devono aspettare ad una data fase.Esempio. La sequenza a destra deve attenderequella a sinistra. 15Il linguaggio SFC- situazioni e costrutti da evitare (errori tipici) -Disattivazione e attivazione contemporanea di una fase.Può accadere che una
fase debba essere contemporaneamente disattivatae attivata: convenzionalmente tale fase rimane attiva, ma è beneevitare questa situazione (e quella simmetrica nel caso di attivazione concontemporanea disattivazione).
Esempio. Inizialmente sono attive le fasi 1 e 2.
Se le condizioni logiche A e B sono entrambe vere, entrambe le transizioni sono superabili.
Per superare la transizione in alto bisogna disattivare la fase 1 e attivare la 2.
Per superare la transizione in basso bisogna disattivare la fase 2 e attivare la 3.
C'è una potenziale confusione: la fase 3 è attiva o inattiva?
La si assume attiva, ma è bene evitare la situazione (cioè o non usare il costrutto, oppure se è necessario farlo, come ad esempio succede spesso nel descrivere inastri trasportatori, garantire che A e B diventino vere nell'ordine giusto) perché ci possono essere altre confusioni.
Ad esempio, se nella situazione iniziale è
vera ma è falsa, si tenta di attivare due volte la fase 2... 16Il linguaggio SFC- situazioni e costrutti da evitare (errori tipici) -Nodo divergenza con condizioni non mutuamente esclusive.Se non si presta attenzione, possono essere attivati più di uno dei rami che seguono il nodo, con le potenziali inconsistenze di cui ai punti successivi.Esempio.1 1 Supponiamo che e non siano mutuamente esclusive.2 3 2 3 Allora, se è vera e falsa (o viceversa), si ha un'evoluzione corretta ("di tipo OR")mentre, se e sono ambedue vere, si ha un'evoluzione scorretta ("di tipo AND").2 3 2 3 17Il linguaggio SFC- situazioni e costrutti da evitare (errori tipici) -Per evitare il problema occorre rendere mutuamente esclusive le condizioni, ma così si introduce un'altra differenza con le reti di Petri.Infatti, la cosa si può fare in diversi modi.• sostituendo con così però sidà priorità alla transizione di sinistra, B B and not A: perché se e sono entrambe vere essa sola risulta superabile.
A B• sostituendo con così però si dà priorità alla transizione di destra, A A and not B: per lo stesso motivo.
• sostituendo con e con così però, se e sono B B and not A A A and not B: A Bentrambe vere, nessuna delle due transizioni è superabile (discuteremo tra poco se fare così ha senso).
• sostituendo con e con B B and (not A or ScegliB) A A and (not B or ScegliA), dove e sono due variabili che il programma può assegnare inScegliA ScegliBqualsiasi modo, pur di non porle entrambe a 1. Così si sceglie “dall’esterno”se far superare la transizione di sinistra o quella di destra. 18
Il linguaggio SFC- situazioni e costrutti da evitare (errori tipici) -Osservazione importante.
L’arbitrarietà di cui sopra equivale a scegliere come risolvere un
Conflitto tra le due transizioni (pensate ora come parte di una rete di Petri). Infatti, riconsiderando nell'ordine le quattro scelte proposte, si possono dar loro i seguenti significati.
- Se c'è conflitto effettivo vince la transizione di sinistra.
- Se c'è conflitto effettivo vince la transizione di destra.
- Se c'è conflitto effettivo si sta fermi finché una delle due non viene disabilitata, e a quel punto scatta l'altra. Discutiamo ora se ciò ha senso. Perché abbia senso bisogna che qualcuno possa disabilitare (o, più esattamente, rendere non superabile) almeno una delle due, se no si ha il blocco. Allora, posto che e possano essere ambedue vere (se no tutto questo discorso perde significato),
- o le condizioni e sono "sbagliate", nel senso che devono contenere anche altre quantità logiche in modo che la disabilitazione possa avvenire (e in tal caso la rete di Petri
“origine” dello schema SFC non è a scelta libera perché in essa almeno una delle due transizioni ha in preset altri posti che non sono stati “tradotti” nelle condizioni logiche medesime),
oppure e sono corrette, e allora è giusto che se nessuno risolve il conflitto A B (a questo punto però in modo arbitrario, corrispondentemente al fatto che in questo caso la rete di Petri “origine” è a scelta libera) tutto stia f