Gli ingressi fisici del PLC sono collegati a dei contatti con un morsetto positivo comune a 24V DC. La presenza di tensione su un ingresso dovuta alla chiusura del contatto viene interpretata come un valore logico 1
; l'assenza di tensione (0 Volt) come un valore logico 0
.
Il valore logico degli ingressi fisici viene memorizzato nell'immagine di processo degli ingressi e non cambia fino alla scansione successiva. Gli ingressi si indirizzano specificando:
I
maiuscola.
In entrambi i casi la numerazione parte da 0; ad esempio I0.3
indica il quarto ingresso del primo byte (del gruppo dei primi 8 ingressi).
Le uscite si indirizzano nello stesso modo ma con la lettera Q
invece della I
.
I contatti collegati agli ingressi del PLC si trovano sul campo (o periferia del PLC), ad esempio a bordo macchina. Possono esser pulsanti, interruttori, fine corsa, ecc. Di solito si usano:
La scelta è dettata anche dalle normative; ad esempio per gli arresti si prevedono contatti normalmente chiusi, in modo che un'assenza di alimentazione o un'anomalia nel funzionamento producano un arresto della macchina. Sempre le norme prevedono che la sicurezza non sia affidata al solo PLC ma che, per motivi di ridondanza, un arresto di emergenza sia affidato anche ad un dispositivo elettromeccanico che interviene direttamente sul contattore.
Nel caso dei contatti fisici normalmente chiusi occorre fare attenzione a come interpretare il valore logico associato all'ingresso corrispondente sul PLC. Infatti nella condizione di riposo (contatto fisico chiuso) si avrà tensione all'ingresso del PLC e un valore logico 1. Per preservare la logica del controllo nel programma in ladder
bisogna allora associare il contatto fisico normalmente chiuso ad un contatto virtuale normalmente aperto (NA); in questo modo:
I programmi in ladder sono fatti di segmenti orizzontali (detti anche rung) che collegano i due binari/montanti di alimentazione (positivo a sinistra e massa a destra). I segmenti contengono dei simboli che rappresentano contatti (normalmente aperti o normalmente chiusi) e bobine. Contatti e bobine sono elementi virtuali che permettono di descrivere la logica del programma con un linguaggio grafico che richiama gli schemi funzionali. Non si tratta quindi di veri componenti presenti all'interno del PLC ma di un modo di rappresentare delle variabili digitali a collegarle a determinate azioni (istruzioni) del programma.
I contatti possono essere NO e NC e la loro attivazione dipende dall'operando ad essi associato (ad esempio il valore logico di un ingresso). Quando il valore logico dell'operando associato a un contatto vale 1
si ha la commutazione da aperto a chiuso per i NO (simbolo -| |-
) e da chiuso ad aperto per i NC (simbolo -|/|-
). Lo stato del contatto determina il passaggio o meno del valore logico dal lato sinistro a quello destro del contatto così come si avrebbe il passaggio di corrente in dei contatti fisici veri e propri (il flusso di energia o passaggio di corrente produce la propagazione a destra del valore logico). Se il contatto risulta aperto il valore logico alla sua destra sarà 0
.
Nel caso delle bobine (simbolo -( )-
) se a sinistra del simbolo è presente il valore logico 1
la bobina verrà attivata e il valore logico della variabile ad essa associata sarà 1
. Nelle bobine negate (simbolo -(/)-
) un valore logico 1
a sinistra produce un valore logico 0
della la variabile associata.
Le bobine possono essere associate a uscite fisiche o a variabili interne (i merker); i contatti possono essere associati allo stato di ingressi e uscite fisiche o a quello dei merker.
Il linguaggio KOP è una rappresentazione del programma simile ad uno schema elettrico ma non deve necessariamente corrispondere al controllo in logica cablata. Più in generale non conviene nemmeno immaginare il controllo in logica cablata per poi tradurlo in ladder ma è meglio implementare il controllo direttamente nel linguaggio del PLC, anche perché questo linguaggio segue regole diverse e offre maggiori funzionalità.
Le regole principali del linguaggio ladder sono queste:
0
o 1
Un programma per PLC è organizzato in blocchi di codice. Esistono tre tipi di blocchi:
In ogni programma è sempre presente il blocco OB1 detto Main che viene eseguito automaticamente all'avvio e in corrispondenza dell'evento di ciclo che si presenta ad ogni nuova scansione. Altri blocchi OB possono essere definiti per particolari eventi o per essere eseguiti di seguito a OB1.
I blocchi FC sono richiamati dai blocchi OB e si usano come le funzioni dei normali linguaggi di programmazione per svolgere compiti specifici (calcolare un valore, eseguire una sequenza di operazioni) ma non possono memorizzare dati.
I blocchi FB sono sempre blocchi funzionali ma si differenziano dagli FC perché sono associati ad un blocco dati (DB) che contiene i parametri da richiamare e utilizzare quando viene eseguita la funzione1) e permettono di memorizzare dati.
FB e FC sono utili per dare una struttura modulare al programma - definendo sottoprogrammi con compiti specifici - e semplificano la programmazione, specie se alcune operazioni sono ripetute più volte.
Il programma KOP opera direttamente su indirizzi di ingressi, uscite e merker (indirizzi assoluti). Agli indirizzi è possibile associare un nome di una variabile (indirizzo simbolico) che permetta di ricordare più facilmente cosa è associato all'indirizzo e di descriverne la funzione svolta. Questa associazione indirizzo/variabile può essere fatta in più modi:
Ad ogni variabile, col suo nome descrittivo, è possibile associare un commento esplicativo che chiarisca ulteriormente la funzione ad essa associata.
E' possibile mettere in evidenza le variabili utilizzate nei vari segmenti del programma con il bottone Visualizza le informazioni sulle variabili nell'editor del programma.
E' buona pratica definire le variabili e il loro indirizzamento nella fase iniziale del progetto, prima ancora di utilizzarle nel programma.
Se alla creazione del progetto si è indicata una CPU generica è possibile rilevare la CPU collegata. Per farlo selezionare la CPU (dalla finestra di navigazione progetto scegliere Dispositivi e Reti e fare doppio click sulla CPU generica) e cliccare su Rileva, poi:
La CPU rilevata passa da trasparente a grigia e corrisponde in tutte le caratteristiche a quella fisicamente collegata al PC.
La modalità online permette di sfruttare tutta una serie di funzionalità di debugging per il PLC e si attiva selezionando una CPU (dalla finestra Dispositivi e Reti) e cliccando sul bottone Collega online. In questa modalità il PC può scambiare informazioni con il PLC mentre questo è in esecuzione. Il software TIA Portal segnala il collegamento online con il colore arancione nei vari elementi dell'interfaccia grafica.
Quando il PLC è in modalità online è possibile:
ma non è possibile caricare le impostazioni hardware.
Dalla Navigazione del progetto si possono richiamare tabelle con le variabili del PLC. Nelle tabelle è possibile definire e modificare le variabili indicando il nome simbolico, l'indirizzamento, il tipo di dati e un eventuale commento esplicativo. Sono disponibili due tabelle:
E' possibile creare delle tabelle specifiche per ingressi, uscite o altro. Per semplicità useremo quasi sempre la tabella delle variabili standard.
Questa parte dell'interfaccia mostra il contenuti di ciò che è selezionato nella parte immediatamente superiore chiamata Navigazione del progetto. E' utile ad esempio per aver un accesso rapido alle variabili della tabella standard o dei blocchi dati associati a timer e contatori.
In modalità online è possibile il controllo, il comando e il forzamento delle variabili. La differenza tra questi tre termini è che:
:P
)Quando è attivo l'editor del programma nella finestra di lavoro cliccando sulla scritta Interfaccia del blocco è possibile visualizzare o definire l'interfaccia di un blocco. Questa area, solitamente nascosta, è utile per definire i parametri con cui si vuole richiamare il blocco nel caso in cui lo si voglia riutilizzare in altre parti del programma o in altri programmi3).
In ogni momento è possibile cambiare il linguaggio di programmazione da KOP a FUP e viceversa4) (con il menu contestuale del blocco nella Navigazione del progetto o nelle proprietà del progetto). Il programma non cambia ma viene “ridisegnato” nell'altro linguaggio grafico di programmazione.
Quando il puntatore del mouse è sopra un elemento dell'interfaccia grafica può comparire un suggerimento che spiega la funzione svolta dall'elemento. Attendendo il suggerimento si espande e diventa cliccabile per visualizzare la pagina relativa nella guida in linea. Un altro modo per richiamare la voce corrispondente della guida in linea è selezionare un elemento e premere il tasto F1 sulla tastiera.
Gli ingressi fisici del PLC sono simulati con una contattiera/console/pannello di comando collegata alla scatola in cui è inserito il PLC. La console va collegata allo spinotto giusto nella scatola (ce ne sono due per PLC) e può essere condivisa tra due PLC (i primi 8 interruttori per il PLC1 e gli altri 8 per il PLC2) o utilizzata con un solo PLC sfruttando tutti gli ingressi. La console contiene interruttori unipolari (bistabili) utilizzabili come:
E' bene sottolineare che se si vuole utilizzare i pulsanti come NC bisogna posizionarli inizialmente nello stato chiuso.
I merker sono variabili e si usano:
-(S)-
e -(R)-
)Nella configurazione hardware del PLC è possibile attivare alcuni merker speciali:
Le varie funzioni logiche possono essere realizzate con i contatti. Ad esempio:
-|NOT|-
-(S)-
e -(R)-
-|P|-
e -|N|-
chiudono se l'indirizzo associato presenta fronti di salita (positivi) o discesa (negativi)-(P)-
e -(N)-
attivano l'indirizzo associato se il valore logico in ingresso presenta frontiSono associati ad un DB che memorizza lo stato (conteggio, tempo trascorso) e parametri (preset value, preset time).
Contatori:
Temporizzatori:
Torna all'indice.