Strumenti Utente

Strumenti Sito


note_plc

Questa è una vecchia versione del documento!


Note applicative sull'uso del PLC

Come funzionano gli ingressi

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:

  • la lettera I maiuscola
  • un numero che rappresenta un byte, cioè un gruppo di 8 ingressi
  • un punto .
  • un numero che rappresenta il singolo ingresso tra quelli del byte selezionato

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.

Contatti collegati agli ingressi

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:

  • contatti normalmente aperti per i consensi (avvio sequenza, marcia motore, ecc.)
  • contatti normalmente chiusi per i blocchi (arresto, stop, emergenza, ecc.)

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:

  • se non si agisce sul contatto fisico l'ingresso corrispondente assume il valore logico 1 e il contatto virtuale NA nel ladder si attiva permettendo il passaggio di corrente
  • se si agisce sul contatto fisico l'ingresso corrispondente assume il valore logico 0 e il contatto virtuale NA nel ladder interrompe il circuito impedendo il passaggio di corrente

Contatti e Bobine nel linguaggio KOP (ladder)

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.

Regole generali del linguaggio KOP

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:

  • la corrente può scorrere solo da sinistra a destra
  • i cortocircuiti non sono ammessi
  • ciò che si propaga con la corrente è un valore logico: un bit che può valere 0 o 1
  • i contatti permettono o meno il passaggio del valore logico (realizzando una funzione AND tra lo stato logico alla loro sinistra e quello della variabile associata al contatto)
  • le bobine assegnano lo stato logico alla loro sinistra alla variabile loro associata (se negate invertono il valore)
  • non si possono inserire contatti a destra delle bobine
  • le diramazioni permettono di “sdoppiare” il valore logico (ad esempio per realizzare la funzione logica OR)
  • i segmenti sono eseguiti in sequenza dall'alto al basso
  • l'ordine dei segmenti è importante (una bobina può essere impostata più volte ma al termine della scansione solo l'ultimo valore sarà considerato)

Struttura di un programma per PLC

Un programma per PLC è organizzato in blocchi di codice. Esistono tre tipi di blocchi:

  • OB blocchi organizzativi, attivati da eventi
  • FB blocchi funzionali
  • FC funzioni

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.

Indirizzi e variabili

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:

  • assegnando l'indirizzo a un simbolo (ad esempio un contatto) e assegnandogli poi un nome
  • assegnando un nome di variabile a un simbolo e assegnando poi un indirizzo
  • utilizzando la tabella delle variabili richiamabile dalla finestra di navigazione del progetto o dalla scheda del dispositivo
  • con il drag & drop dalla vista dispositivo trascinando ingressi e uscite

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.

Rilevamento CPU e sue proprietà

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:

  • indicare tipo di interfaccia (PN/IE per ethernet) e interfaccia (nome della scheda di rete)
  • attendere il rilevamento
  • selezionare la CPU e cliccare su Riconosci

La CPU rilevata passa da trasparente a grigia e corrisponde in tutte le caratteristiche a quella fisicamente collegata al PC.

Debug (modalità online)

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:

  • cambiare lo stato della CPU (RUN, STOP) agendo sul Pannello operatore disponibile nella scheda Tool Online dalla task card (finestra a destra)
  • monitorare lo stato delle variabili durante l'esecuzione del programma (dalla Tabella delle variabili standard con l'icona Controllo on/off)
  • monitorare lo stato dei valori logici nel programma (dall'editor del programma con l'icona Controllo on/off)
  • evidenziare differenze tra il programma in esecuzione e quello nell'editor del programma (dall'editor del programma con l'icona confronto dettagli)
  • caricare il programma del PLC nel PC (pulsante Caricamento del dispositivo (software))

Osservazioni varie

Tabelle variabili

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:

  • la tabella variabili PLC mostra tutte le variabili
  • la tabella delle variabili standard è quella predefinita (se ne possono creare altre) e permette il controllo delle variabili in modalità online2)

Controllo, comando e forzamento

In modalità online è possibile il controllo, il comando e il forzamento delle variabili. La differenza tra questi tre termini è che:

  • il controllo serve solo a monitorare il valore delle variabili
  • il comando permette di cambiare il valore di merker, contatori, e altre variabili da PC
  • il forzamento permette di modificare lo stato degli ingressi fisici (si interviene direttamente sulla periferia, a monte dell'immagine di processo degli ingressi, e gli indirizzi sono contrassegnati dal suffisso :P)

Interfaccia del blocco

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

Cambiare il linguaggio di programmazione

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.

Help in linea

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.

Console/pannello di comando

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:

  • interruttori
  • pulsanti (vanno azionati e riportati indietro)

E' bene sottolineare che se si vuole utilizzare i pulsanti come NC bisogna posizionarli inizialmente nello stato chiuso.

Merker

I merker si usano:

  • per memorizzare lo stato del sistema o informazioni di controllo (ad esempio impostando e resettando il merker con le bobine -(S)- e -(R)-)
  • per memorizzare risultati intermedi che non prevedono l'attivazione delle uscite
  • come uscite virtuali, per separare la fase di attivazione delle uscite (negli ultimi segmenti del programma o in una funzione apposita) dalla logica dal programma

Nella configurazione hardware del PLC è possibile attivare alcuni merker speciali:

  • i merker di sistema, per funzioni speciali (primo ciclo o Firstscan, diagnostica, sempre 1 e sempre 0)
  • i merker di clock, per generare onde quadre di varia frequenza (utili ad esempio per i lampeggiatori)

Istruzioni principali

Funzioni logiche combinatorie

Le varie funzioni logiche possono essere realizzate con i contatti. Ad esempio:

  • serie → AND
  • parallelo → OR
  • contatto -|NOT|-
  • funzione XOR come somma di mintermini (`barA B + A barB`) o con blocco XOR

Funzioni logiche sequenziali

  • bobine -(S)- e -(R)-
  • contatti -|P|- e -|N|- chiudono se l'indirizzo associato presenta fronti di salita (positivi) o discesa (negativi)
  • bobine -(P)- e -(N)- attivano l'indirizzo associato se il valore logico in ingresso presenta fronti

Contatori e timer

Sono associati ad un DB che memorizza lo stato (conteggio, tempo trascorso) e parametri (preset value, preset time).

Contatori:

  • CTU conta avanti fino a PT (preset value)
  • CTD conta indietro da a PT (preset value)
  • CTUD conta avanti e indietro a caricando il valore PT (preset value) con l'ingresso LD (load)

Temporizzatori:

  • TON con ritardo all'inserzione
  • TOF con ritardo alla disinserzione
  • TP impulso di durata prefissata

Torna all'indice.

1)
uno stesso FB può essere richiamato con DB diversi, in questi casi si parla di istanze diverse dello stesso FB
2)
il numero indicato tra parentesi quadre è il totale tra variabili e costanti utente e di sistema
3)
vedere il documento SCE 010-010 per un esempio con FUP
4)
non è possibile con il linguaggio testuale SCL
Questo sito Web utilizza i cookie. Utilizzando il sito Web, l'utente accetta la memorizzazione dei cookie sul proprio computer. Inoltre riconosci di aver letto e compreso la nostra Informativa sulla privacy. Se non sei d'accordo, lascia il sito.Maggiori informazioni sui cookie
note_plc.1523004528.txt.gz · Ultima modifica: 2020/07/03 15:59 (modifica esterna)