SOFT PLC CON PYTHON

Soft PLC con Python

Benvenuto in questo tutorial dedicato all’automazione industriale con Python, oggi vedremo come con questo linguaggio possiamo facilmente creare un Soft Plc, ovvero un plc software, che gira sul computer, e svolge le funzioni che solitamente vengono svolte da apparecchiature hardware dedicate.

Allegato a questa pagina trovi (in fondo) il video con la dimostrazione di tutto ciò che viene descritto nei prossimi paragrafi.

Novità automazione e plc

Nel mondo dell’automazione industriale, la maggior parte delle funzioni di controllo di processo vengono svolte dai hardware dedicato (PLC o DCS). Nell’ultimo periodo tuttavia, stiamo assistendo alla nascita e alla diffusione di plc software, soprattutto per quanto riguarda la piattaforma Codesys.

Oggi qualsiasi computer con il sistema operativo Windows, oppure Linux, può eseguire un runtime che interpreta il programma scritto in uno dei linguaggi per PLC, facendo in modo che il computer esegui ciò che normalmente fa un plc vero.

Questo è vero per i soft plc Codesys che girano per esempio su Raspberry, ma è altrettanto vero per altri software, o come vedremo a breve, semplicemente per alcuni linguaggi di programmazione.

Con il linguaggio Python abbiamo a disposizione diverse librerie, tra le quali la PyModbusTCP; questa libreria contiene un modulo client e uno server, i quali ci permettono rispettivamente di leggere e scrivere dati da e verso apparecchiature modbus, oppure di mettere a disposizione i dati verso dei clients, ad esempio pannelli operatore HMI o sistemi di supervisione SCADA.

Oggi mostriamo come utilizzando il modulo client della libreria modbus, siamo in grado di controllare apparecchi I/O modbus, eseguendo la logica PLC all’interno del computer su cui Python è installato.

Nella prossima figura troviamo lo schema logico di funzionamento di un soft PLC.

Diagramma funzionamento soft plc

Come vediamo nella figura sopra, il programma deve leggere gli ingressi dal campo (in questo caso da moduli I/O modbus), elaborare la logica di programma, e infine scrivere le uscite sui moduli in campo.

Oltre alle operazioni descritte sopra ci sono naturalmente anche altre operazioni necessarie a far funzionare il programma, come per la gestione dei timers e dei contatori; per il momento ci focalizziamo sulle macro funzioni.

Ecco nella prossima figura l’importazione della libreria modbus per Python, e la creazione della connessione modbus client con l’apparecchiatura in campo.

Importazione delle librerie modbus per python

Nel programma d’esempio abbiamo creato una semplice logica booleana che attiva un’uscita a fronte di un AND di due ingressi, e il controllo di un ingresso analogico, con attivazione di altre due uscite: la prima immediatamente quando questo supera il valore di 800, e la seconda quando supera 400 e contemporaneamente è presente un ingresso digitale.

Nella figura che segue vediamo la parte di programma, in linguaggio Python, che gestisce un’uscita digitale, quella con l’AND dei due ingressi.

Programma in Python che gestisce la logica del plc
Come vediamo nell’immagine sopra, il server stampa sul video dei messaggi al verificarsi degli eventi; questo serve solamente per la fase di test del programma, e una volta che tutto funziona questi messaggi possono essere disattivati.
Subito sotto la gestione dell’uscita digitale troviamo il controllo dell’ingresso analogico, con attivazione di un’altra uscita quando questo supera la soglia di 800.
Nella prossima immagine abbiamo la schermata di visualizzazione dello stato I/O del modulo modbus, programmata sul pannello HMI Weintek.
Notiamo che il soft plc ha attivato l’uscita 2 quando l’ingresso analogico ha superato la soglia; troviamo gli stessi stati sul sinottico, il quale va a leggere direttamente dal campo tutti i dati.
Schermata del runtime del programma python che gestisce un soft plc

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