SCUOLA DI PROGRAMMAZIONE PLC
METTERE IN COMUNICAZIONE DUE CPU CON INGRESSI E USCITE DIGITALI
(Codesys PLC)

Scuola di programmazione PLC: mettere in comunicazione due CPU con ingressi e uscite digitali
Eccoci in una nuova lezione del corso di programmazione PLC, il corso per chiunque vuole avvicinarsi al mondo di questi controllori logici programmabili e in generale all’automazione industriale. Oggi impariamo come mettere in comunicazione due unità utilizzando solamente ingressi e uscite digitali, inoltre questo costruiremo un multiplexer per trasmettere dieci diverse variabili sfruttando solamente sedici bit di uscita e ingresso.
Oggi creiamo il programma per plc in ambiente Codesys.
Novità automazione e plc

Quando parliamo di mettere in comunicazione due PLC subito ci vengono in mente quelle belle istruzioni che, sfruttando i canali del bus con tecnologia ethernet o altro, ci permettono facilmente di spostare blocchi di dati dalla memoria di un controllore all’altro.

Purtroppo nella realtà questo non è sempre possibile, ci sono infatti situazioni in cui i controllori non sono sulla stessa rete, o sono di costruttori differenti, o peggio ancora sono vecchi PLC che non hanno nessun tipo di interfaccia di rete se non magari una vecchia seriale; in queste situazioni l’unica cosa a cui possiamo affidarci sono le schede di ingresso e uscita digitali.

Definizione del compito da svolgere.

Il software che costruiamo oggi serve proprio a trasmettere delle variabili (10 per la precisione) da un plc all’altro. Queste variabili non necessitano di uno scambio dati velocissimo, diciamo che anche se ci mettiamo due secondi a trasmetterle, il nostro processo nel PLC2 funzionerà tranquillamente; si dice che il sistema non necessita di una reattività veloce.

Hardware a disposizione sui due plc.

Sappiamo che i due sistemi di controllo sono separati, inoltre abbiamo a disposizione i seguenti moduli per i plc:

PLC1

1 modulo di uscite digitali a 16 uscite.

4 uscite digitali sparse.

4 ingressi digitali sparsi.

PLC2

1 modulo di ingressi digitali a 16 ingressi.

4 uscite digitali sparse.

4 ingressi digitali sparsi.

Con questi elementi dobbiamo costruire la nostra comunicazione I/O, per questo ipotizziamo un funzionamento di tipo multiplexer per trasmettere le dieci variabili dal PLC1 al PLC2, utilizzando solamente la scheda di uscite digitale.

Il multiplexer permette di condividere uno stesso canale di uscita che assume di volta in volta un significato diverso; questa funzione ci permette di trasmettere tante variabili pur avendo solo in pratica lo spazio per trasmettere solamente una.

Nella prossima immagine vediamo il funzionamento di questo processi, naturalmente collegato all’uscita Out ci sarà un “demultiplexer” nel destinatario che smista i segnali di ingresso sui corrispondenti.

Il funzionamento del multiplexer
Nel secondo plc le uscite della scheda di OUT del PLC1 saranno portate sugli ingressi del modulo di ingressi digitali, mentre le uscite e gli ingressi sparsi serviranno a trasmettere l’indice della variabile in lavorazione e gestire la conferma di ricezione dato da parte del PLC di destinazione.
Nella prossima immagine vediamo riassunto quanto sopra.
Mappatura ingressi e uscite per la comunicazione tra i plc

Naturalmente per collegare le uscite e gli ingressi si utilizzeranno appositi relé in modo da isolare i due plc, ognuno di essi riceverò contatti puliti per gli ingressi con la propria fase (o positivo). In questo modo i due controllori potranno colloquiare anche se lavorano con tensioni diverse, e comunque in maniera sicura.

Costruzione del software di comunicazione.

Una volta definita l’architettura hardware e creata un’idea di come affrontare il compito, vediamo come programmare questa routine di comunicazione in linguaggio ladder.

Implementare la soluzione richiede la programmazione sui due plc, per la lezione di oggi simuleremo il funzionamento dei due programmi all’interno dello stesso progetto, così che possiamo vedere tutto il funzionamento anche con una pagina di monitoraggio. Successivamente i programmi andranno spostati ognuno nel proprio PLC.

Programma di comunicazione nel PLC1.

Dopo aver dichiarato le necessarie variabili booleane che rappresentano i nostri bit di ingresso e uscita e quelle intere per gli indici e i dati da trasmettere e ricevere, dobbiamo utilizzare nel PLC1 un indice che sarà incrementato ogni volta che PLC2 confermerà di aver ricevuto un nuovo dato.

Questa conferma in PLC2 avviene copiando il valore nell’indice ricevuto sui 4 bit di uscita digitale di PLC2; questi ultimi entrano nei 4 ingressi di PLC1.

A ogni incremento dell’indice del multiplexer, si convertirà l’indice numerico in binario sfruttando le 4 uscite di PLC1, oltre a copiare la variabile da trasmettere nella variabile che sarà poi portata sul modulo con le 16 uscite digitali (quello del dato).

Per ricevere la conferma di ricezione dei dati, si convertono i 4 bit di ingresso in un intero che viene confrontato con quello appena generato; se i due indici coincidono si incrementa l’indice sorgente in PLC1. Per comodità di test abbiamo anche inserito un timer da 100 millisecondi per ritardare l’incremento di questo indice.

Se l’indice sorgente era arrivato a 10, allora prima di incrementare lo stesso lo si azzera per ricominciare da 1.

Programma per la comunicazione tra due plc - parte 1
Programma per la comunicazione tra due plc - parte 2

Programma di comunicazione nel PLC2.

Nel secondo plc cominciamo convertendo i quattro bit di ingresso indice in un numero che rappresenterà l’indice della variabile da scrivere. Con questo indice si copia il dato ricevuto dalla scheda a 16 ingressi digitali sulla variabile di destinazione.

Successivamente i 4 bit di ingresso che rappresentano l’indice ricevuto vengono copiati sui 4 bit di uscita per confermare la ricezione del nuovo dato.

Programma per la comunicazione tra due plc - parte 3
Programma per la comunicazione tra due plc - parte 4
Programma per la comunicazione tra due plc - parte 5

Programma per simulare i collegamenti fisici tra i PLC.

Come detto in precedenza, per testare il software abbiamo costruito le due routine nello stesso progetto; per simulare i collegamenti fisici si è creata una terza routine dove in pratica copiamo le variabili di uscita da un plc a quelle di ingresso dell’altro. Questa routine nella realtà non sarà presente.

All’interno di questo programma abbiamo anche aggiunto una funzione per cambiare velocemente i dati sorgenti in modo da testare perbene gli algoritmi; questa funzione è attivata da un pulsante posto sulla pagina di supervisione costruita in Codesys.

Test del programma di comunicazione.

Nella prossima immagine vediamo la pagina di monitoraggio con i valori delle variabili trasmesse e ricevute dai plc, i valori degli indici e il dato in transito.

Pagina HMI di test del programma plc

Ok, siamo così arrivati al termine di questa sessione pratica di programmazione PLC. Oggi abbiamo imparato cos’è un multiplexer e come sfruttarlo per mettere in comunicazione controllori diversi utilizzando solo ingressi e uscite digitali.

Io ti do appuntamento alla prossima lezione e ti auguro buon lavoro, ci vediamo presto!

Copyright(C) automazione-plc.it
P. IVA: 11676200964
Sito di informazione e didattica sull'automazione industriale, il mondo dei PLC e dei sistemi di supervisione.
Programmazione PLC.
Programmazione SCADA e HMI.
Apparecchiature e hardware industriale.
Strumentazione da campo.
Policy sulla Privacy e utilizzo dei Cookies