LADDER DIAGRAM
Il Ladder Diagram è il linguaggio di programmazione più vecchio e diffuso, facilmente comprensibile dai tecnici dell'epoca. Ha dei simboli di provenienza elettrica, quindi ad esempio delle bobine, condensatori, ecc.
Le istruzioni del programma saranno banali, saranno degli assegnamenti di tipo logico e normalmente hanno a che fare con uno schema elettrico. La forma è di tipo relais, quindi del tipo circuito aperto e chiuso, che codifica una serie di flussi in quello che sto facendo. Per cui le variabili TRUE chiuderanno il circuito, mentre le variabili FALSE non chiuderanno il circuito; quindi, non scorrerà la corrente e non verrà trasmessa una serie di informazioni.
Il disegno ha due linee verticali che sono l'alimentazione, è la corrente che scorre da sinistra verso destra. Ci sono dei rami, linee orizzontali, che alimentano la bobina se i contatti sono chiusi. Aperto o chiuso dipenderà dal valore delle variabili stesse.
A ciascuno dei contatti è associato un valore di una variabile, ciascuno dei dispositivi che andremo a parcheggiare nel nostro schemino avrà il nome di una variabile che può essere sia un ingresso digitale o una condizione interna del dispositivo. Avremo anche un'informazione legata all'uscita, quindi ciascuna bobina avrà in fondo una variabile che sarà l'uscita che può essere un'uscita digitale o un'altra condizione interna.SLIDE17
Le regole principali di un Diagramma Ladder:
- Le due barre sono le linee verticali per l'alimentazione, lunghe in funzione di quante sono le istruzioni da eseguire e le linee orizzontali alimentano la bobina se i contatti sono veri; quindi la corrente passa se abbiamo delle condizioni di verità in mezzo.
- Il flusso di energia va da sinistra a destra e le istruzioni sono eseguite dall'alto verso il basso. Ad ogni ciclo di scansione vengono eseguite tutte le istruzioni; questo esempio
può essere un controllore booleano/logico. Serve una logica che occorre tradurre in questo schema che rappresenta alcune configurazioni:
,¿ ,elementari, abbiamo tre variabili d'ingresso che assumo avere letto 1 2 3 da certi sensori; una variabile di output e poi altre due variabili e, O A A1 1 2 che vengono utilizzate all'interno del programma (magari per strutturare in maniera più ordinata ecc.).
Esempio (controllo logico statico):
,¿ , O Se è vero e è vero, allora l'output è vero. 1 2 1 ,¿ O Se uno dei due è falso, quindi se ad esempio è aperto, allora è 2 1 aperto. È il concetto del circuito elettrico; tecnicamente è la condizione di "AND", cioè: ( )=¿ ( ) ∧ ¿ (k ) O k k . 1 1 2 Se entrambi gli input sono veri allora l'output è vero, se uno dei due è falso o lo sono entrambi allora l'output è falso. La struttura
presente nella seconda riga dell'esempio precedente è una struttura di tipo "OR". .( )=¿ ( )∨¿ (k )O k k1 1 2 ¿ ¿Quindi la corrente passa se o è vero;1 2Oquindi, è vero o una o l'altra si verifica1vero.quindi la corrente scorre se una o l'altra è vera(vero-vero, vero-falso, falso-vero), se invecesono entrambi falsi allora anche l'output èfalso. A ALa presenza di e vuol dire che sto1 2utilizzando delle variabili interne percomplicare la gestione dell'output.Quindi lo schema logico che sto implementando è del seguente tipo:( )=¿ ( )∧¿ (k )A k k1 1 2per esempio, posso avere due sensori che quando sono entrambi veri, alloraestraggo un'informazione che mi dice che sono entrambi veri. Quando questainformazione è vera in realtà la uso per fare qualcos'altro; quindi, quello chefaccio è per esempio definire una seconda variabile
)∧[¿ ( )∨A ( )(k )=¿ ]A k k k2 1 3 1 A ciascuna delle linee orizzontali è associata( )= ( )∧ (k )O k A k Aun’istruzione. Infine, ho 1 1 2A AAbbiamo e che sono due variabili1 2Ointerne, è la variabile d’uscita, che sono1posizionate come ultimo elemento dei rami.Quindi ognuno dei rami ha una variabile diuscita, che può essere o una variabile diuscita a tutti gli effetti o una variabileinterna. Le variabili interne normalmentevengono utilizzate negli altri rami.Affianco alle informazioni di and e di orcodificate come un parallelo o una serie tradue elementi, mancano informazioni di negazione logica. La negazione logica siottiene barrando un simbolo.( )=not ( )¿O k k1 1 ( )=¿ ( )∧¿ (no t O k k k)2 2 3( )=not ( )∧¿ ( )[¿ ]O k k k2 2 3( )=¿ ( ) ∧¿ (k )O k k3 2 3 Quando si parla di controllo logico stiamoparlando di una cosa di questo tipo (es. lamacchinetta del caffè).
Per controllo logico statico, si intende che la mappa d'uscita non dipende da "roba" di k, quindi non abbiamo nessuna dipendenza di k o ecc. da k. Invece, il controllo logico sequenziale ha all'interno la possibilità di registrare un'informazione vecchia. Quando ho un termine sequenziale devo introdurre una variabile per ogni ritardo. Esempio (controllo logico sequenziale): ¿k-1? Invece di mettere k, metto una variabile interna A. Dato che il Ladder Diagram va letto dall'alto verso il basso e da sinistra verso destra, il valore di A è pari a quello della precedente iterazione. Quindi è pari a k-1, perché è un ingresso, poi un con la variabile A che, siccome non ho ancora definito, sto assumendo implicitamente che derivi dal tempo di scansione precedente: A = k-1. Dovrò poi definire quanto vale A. Questo è il
Il modo in cui si può codificare in Ladder Diagram un'informazione di tipo ritardo di tipo sequenziale è il seguente: ```htmlPer codificare un ritardo di tipo sequenziale in Ladder Diagram, è necessario utilizzare una variabile ausiliaria che contenga un'informazione legata alla storia del segnale in questione. Questa variabile, che chiameremo A, conserverà il valore di k-1.
Quindi, ogni volta che abbiamo una variabile di questo tipo, la definiamo come:
A(k) = A(k-1)
Se immaginiamo un Ladder Diagram che si ripete all'infinito, la prima riga viene ripetuta sotto e la seconda ancora sotto, ma sarà A(k+1).
L'informazione deriva dalla linea orizzontale precedente:
A(k) = A(k-1) & O(k)
Siccome c'è bisogno di una variabile ausiliaria, chiamata B:
B(k) = A(k) & (k-1)
Quindi, per considerare due ritardi, serve una variabile ausiliaria che consideri B(k-1) e B(k-2):
B(k) = B(k-1) & B(k-2)
In questo modo, si possono modellare e codificare i ritardi di tipo sequenziale.
```una che arrivi a conservarmi .1 1( )=¿ ( )∧ (k −1)O k k A (k −2)A= 21 1 2(k −2)O= =1( )= (k−1)A k A (k −1)O= 12 1( )=O (k )A k1 1
SLIDE20
Il Ladder Diagram ha molta facilitàdi implementazione. Sono state introdotte delle sofisticazioni allinguaggio per renderlo più moderno e flessibile. Una su tutte è lapossibilità di introdurre dei salti nel codice, così da andare da una parteall'altra della scala non in maniera lineare. Inoltre, utilizzare i fronti disalita/discesa dei segnali per attivare alcune bobine, quindi in qualchemodo utilizzare, anziché il valore positivo o negativo eventualmente latransizione da positiva a negativo o da negativo a positivo nelle variabili dellebobine. È molto simile al concetto della codifica; quindi utilizza le informazioniincrementali anziché l'informazione statica delle variabili, cioè non vedete ilsuo valore ma la sua derivata, cioè il
In questo esempio è rappresentato il Function Block Diagram, in cui ho 5 variabili di ingresso. È un diagramma più simile a un flusso da sinistra verso destra, che associa un certo output1, ovvero la variabile che viene elaborata dallo schema. Guardando più nel dettaglio, esistono quattro blocchi che elaborano in maniera opportuna gli ingressi: l'ingresso1 viene negato e dato un OR ingresso una porta con input2, la cui uscita AND porta all'ingresso di una porta che ha come altra porta d'ingresso l'output di un blocco. È una funzione che ha una sua logica, si mangia due ingressi input3 e input4 che vengono dati come valore di in1 e in2 del blocco funzione, che generano un certo output. Non ho idea di quale sia la logica codificata all'interno della funzione1, che di fatto è la potenza di questo tipo di impostazione, perché questo oggetto lo posso considerare implementato a parte. Quindi,
data la codifica della funzione1 lo prendo tale per cui a certi ingressi corrisponde una certa uscita. L'uscita la uso per una porta AND e per un altro blocco funzione che stavolta ha tre ingressi e un'uscita. Dopo questa combinazione in qualche modo ottengo l'output desiderato. È una struttura diversa da quella di prima, ha più flessibilità nel senso che AND OR anziché avere solo porte logiche e fatte in maniera opportuna, ha una rappresentazione più flessibile. Nello specifico la presenza degli oggetti funzione amplia di molto la possibilità di quello che posso fare con le variabili. Questa apre la strada ad una cosa importante di questi linguaggi di programmazione. SLIDE22 Si possono mescolare i linguaggi di programmazione. Sono linguaggi grafici, quindi posso immaginare di combinare vari linguaggi per costruire un grande programma. In questo caso specifico abbiamo un Ladder Diagram che alimenta un blocco, un segnale che vuol dire“procedi” che poi genera un output che quando diventa p
-
Lezioni, Automazione dei processi industriali M
-
Automazione industriale
-
Automazione industriale
-
Automazione dei processi industriali - Sequential Function Chart