LA PROGRAMMAZIONE DEL PLC /1 Per programmare correttamente un PLC è necessario ... • determinare ciò che il sistema deve eseguire ed in quale ordine; • determinare il numero e il tipo di I/O (ingressi/uscite) che necessitano per il collegamento dei sensori e degli attuatori; • determinare quindi la configurazione hardware che dovrà avere il PLC e le caratteristiche della CPU che supporterà i vari moduli; • effettuare l' indirizzamento degli I/O; 1 LA PROGRAMMAZIONE DEL PLC /2 • approntare uno schema (elettrico, diagramma di flusso, elenco di azioni) che chiarisca inequivocabilmente la successione delle operazioni da svolgere, comprese eventuali situazioni di allarme; • codificare lo schema redatto in un programma editabile e trasferibile nella CPU tramite console di programmazione o personal computer; • inserire nel PLC il programma con i relativi parametri di lavoro; 2 LA PROGRAMMAZIONE DEL PLC /3 • ricercare eventuali errori di programmazione per quanto concerne la sintassi del programma o gli errori di esecuzione; • testare a tavolino il programma editato con l' ausilio di una stazione di simulazione (PLC, simulatore degli ingressi, personal computer per il monitoraggio); • collegare il PLC al sistema da controllare e verificarne il corretto funzionamento, con il relativo salvataggio in forma definitiva del programma. 3 LINGUAGGI DI PROGRAMMAZIONE /1 Normativa IEC1131-3: linguaggi di programmazione • Diagramma a contatti (Ladder Diagram) LD • Lista istruzioni (Instruction List) IL • Schema a blocchi funzionale (Functional Block Diagram) FBD • Letterale strutturato (Structured Text) ST • Sequential Function Chart SFC o diagramma funzionale in sequenza GRAFCET 4 LINGUAGGI DI PROGRAMMAZIONE /2 grafici ladder schema a blocchi funzionali sequential function chart Linguaggi di programmazione dei PLC lista istruzioni letterali letterale strutturato 5 LADDER DIAGRAM /1 Permette una rappresentazione della logica di comando simile allo schema eletromeccanico, poiché utilizza la stessa simbologia. 6 LADDER DIAGRAM /2 • I segni grafici sono strutturati in reti delimitate da barre a sinistra e a destra, dette barre di alimentazione. • Le linee di collegamento dei segni grafici possono essere orizzontali o verticali e il loro stato di collegamento può essere "ON" o "OFF", che corrisponde ai valori booleani "1" e "0". • Lo stato di collegamento deve essere considerato come sinonimo di flusso di energia; se è ON il flusso transita se è OFF il flusso non transita. 7 LADDER DIAGRAM /3 • La barra di sinistra è sempre considerata ON, mentre quella di destra non ha uno stato predefinito. • Una linea orizzontale trasmette lo stato dell' elemento alla sua sinistra a quello situato alla sua destra. • Una linea verticale deve essere sempre collegata a una linea orizzontale e può incrociare uno o più elementi di collegamento orizzontale. Essa rappresenta lo stato logico OR ed è ON se almeno un elemento orizzontale che incrocia è ON, oppure OFF se tutti gli elementi orizzontali sono OFF. 8 LADDER DIAGRAM /4 • Lo stato di un collegamento verticale è assunto da tutti gli elementi di collegamento che stanno alla sua destra. • Un contatto è quell' elemento che trasmette alla linea di collegamento orizzontale alla sua destra lo stato logico risultante da un' operazione di AND tra lo stato logico della linea di collegamento orizzontale alla sua sinistra e la funzione di un ingresso, di una uscita o di una variabile di memoria che gli è stata associata. 9 LADDER DIAGRAM /5 • Una bobina assume lo stato dell' elemento di collegamento situato alla sua sinistra, assegnandolo alla variabile booleana che gli è stata destinata. • Ogni riga circuitale è divisa in due parti: – zona dei test (con le variabili di ingresso o interne), contenente le condizioni necessarie per l' esecuzione di un' azione, – zona delle azioni (comprende le bobine di uscita e interne oltre a determinati blocchi funzione), contenente l' uscita o l' operazione risultante dai test ad essa collegati. 10 LADDER DIAGRAM /6 • Nella zona riservata ai test non si possono editare delle bobine, come pure nella zona riservata alle azioni non si possono programmare dei contatti. • Un contatto di I/O, un' uscita interna, un timer, un counter, possono essere ripetuti all' infinito. • Non vi è limitazione al numero di contatti da collegare in serie ed in parallelo tra loro. • Una bobina o un counter o un timer non possono essere programmati più di una volta con lo stesso indirizzo 11 ELEMENTI FONDAMENTALI LADDER /1 Contatto normalmente aperto. Lo stato della linea alla sinistra viene preso dalla linea alla destra solamente se lo stato della variabile booleana del contatto è ON. %I0001 Contatto normalmente chiuso. Lo stato della linea alla sinistra viene preso dalla linea alla destra solamente se lo stato della variabile booleana del contatto è OFF. %I0002 12 ELEMENTI FONDAMENTALI LADDER /2 Lo stato del collegamento a sinistra è copiato nella variabile booleana associata. %Q0001 13 ELEMENTI FONDAMENTALI LADDER /3 ZONA TESTS ZONA AZIONI 14 INSTRUCTION LIST /1 • È composto da una sequenza di istruzioni scritte in linguaggio mnemonico. • Ciascuna istruzione comprende un indirizzo, un codice, seguito da un eventuale modificatore, e uno o più operandi, separati da virgole. • Corrispondenza diretta con diagramma ladder. 15 INSTRUCTION LIST /2 Esempio di programma scritto il lista istruzioni e sua corrispondenza con diagramma ladder 16 FUNCTIONAL BLOCK DIAGRAM /1 • Ad ogni funzione logica viene associato un blocco funzionale che realizza l’ operazione corrispondente • Richiede un approccio più matematico che logico • Il flusso del segnale segue le direzioni: – uscita a destra di una funzione o di un blocco funzionale – entrata a sinistra di una funzione o di un blocco funzionale • Non è permesso il collegamento tra loro delle uscite di un parallelo; di conseguenza è necessario utilizzare una funzione definita blocco OR 17 FUNCTIONAL BLOCK DIAGRAM /2 Esempio di programma scritto il lista istruzioni e sua corrispondenza il diagramma funzionale 18 FASI DI PROGRAMMAZIONE DEL PLC /1 Tabella assegnazione elementi 19 FASI DI PROGRAMMAZIONE DEL PLC /2 Tabella per schemi ladder e lista istruzioni 20