Bentornato (o benvenuto se per te è la prima volta), sul mio sito dedicato all’automazione industriale. Ci troviamo nella sezione dedicata ai Soft PLC, e oggi ti mostro come si può utilizzare il linguaggio Python, per costruire un server modbus, che permette ai vari clients di leggere e scrivere dati al suo interno.
In molti conoscono le potenzialità e la versatilità del linguaggio di programmazione per computer Python, in pochi sanno però che esso possiede delle librerie molto utili per chi opera nel settore dell’automazione industriale.
Nel video di oggi, vediamo come possiamo sfruttare il modulo server della libreria PyModbusTCP, per far diventare Python un server modbus.
Nell’esempio utilizziamo anche un pannello HMI Weintek per accedere al server modbus Python, e poter visualizzare e scrivere i dati.
A cosa serve avere un server modbus? Come abbiamo visto in un altro tutorial, possiamo con Python programmare un Soft PLC, in grado di gestire logiche di processo per automazione; bene, il server modbus permetterà al sistema di monitoraggio e controllo di scambiare i dati con questo plc software.
Nell’immagine quì sotto vediamo la creazione dell’istanza del server modbus, dove specifichiamo come indirizzo del server l’IP del computer locale (quello su cui il programma Python viene eseguito).
Come porta abbiamo scelto la 12345, questo valore può essere scelto a piacimento, e andrà poi specificato quando sui client si crea la connessione al server.
Nella prossima immagine vediamo la parte di caricamento degli ingressi digitali, la quale sfrutta la classe del modulo client della libreria PyModbusTCP; in particolare la classe read_discrete_inputs, dove specifichiamo l’indirizzo di partenza di lettura, e il numero di ingressi digitali da leggere.
Notiamo che i dati letti vengono caricati in una lista chiama id (ingressi digitali); la stessa lista viene poi utilizzata nella parte di gestione logica del PLC.
Nella prossima figura troviamo la gestione logica di un’uscita digitale, questa viene attivata quando due ingressi del PLC sono attivi.
Per mettere a disposizione i dati sul server modbus è necessario caricarli nel data bank con le apposite istruzioni; nell’esempio sotto vediamo la data_bank.set_coils, che permette di caricare la lista delle uscite digitali.
I clients modbus vanno a leggere i dati nel data bank del server Python, facendo riferimento all’indirizzo corrispondente (nell’esempio 10).
Come vediamo in basso nell’immagine, le stesse bobine vengono lette dalla banca dati per essere visualizzate; in questo modo ci assicuriamo della riuscita del caricamento dei dati nella banca dati stessa.