Eccoci nuovamente tra le pagine del sito dedicate al mondo dell’automazione industriale con Python, oggi vediamo come con questo linguaggio, si può costruire un data logger, per registrare i dati prelevati da apparecchiature modbus.
Nell’esempio odierno utilizziamo la libreria PyModbusTCP per comunicare con il Logo! Siemens, e nel video allegato a questa pagina trovi la dimostrazione integrale.
In un altro tutorial di questa serie, abbiamo visto che Python è in grado di scambiare dati con la rete modbus attraverso il modulo client della libreria dedicata a questo protocollo di rete.
Una volta acquisiti i dati, possiamo elaborarli, oppure per esempio registrarli, creando dei log di dati come nella dimostrazione di oggi.
Il programma presentato legge gli 8 valori analogici del modulo modbus, e li registra in un file di tipo CSV, il quale potrà successivamente essere letto da qualsiasi lettore di file di testo, o meglio ancora da un foglio di calcolo in grado di incolonnare i dati.
Come vedremo, abbiamo solo un valore che varia, che è l’unico ingresso analogico al quale abbiamo collegato una sorgente 0-10V per simulare i dati, questo è comunque sufficiente a mostrare le possibilità che Python ci offre insieme al modbus.
Nella figura che segue troviamo la routine che legge i registri contenenti i valori analogici da memorizzare; la funzione è svolta dal modulo modbus client della libreria, con la classe read_input_registers.
Nella figura quì sotto possiamo vedere la schermata della console di Python in esecuzione; troviamo la lettura dei dati dal modulo modbus, la quale viene nell’esempio effettuata ogni secondo.
I dati vengono scritti un un file CSV, il cui nome viene costruito utilizzando la data del giorno corrente; per esempio 18022024.CSV per le registrazioni del giorno 18 febbraio 2024.
Ecco nella prossima immagine la schermata del foglio dei dati, possiamo trovare l’intestazione di questi, e sulla sinistra la colonna con l’orario delle registrazioni.
Nel file abbiamo una riga di dati per ogni secondo, e vediamo che facilmente si possono costruire grafici utilizzando i dati stessi.