Questa volta parliamo di un piccolo progetto che nasce direttamente dal mondo dell’automazione industriale.
Negli ultimi anni mi è capitato spesso di sviluppare applicazioni che dialogano con PLC e dispositivi industriali. Per quanto riguarda i PLC Omron, uno dei protocolli più diffusi è senza dubbio FINS (Factory Interface Network Service), che permette di leggere e scrivere dati all’interno del controllore tramite rete Ethernet.
Per semplificare questo tipo di integrazione ho deciso di realizzare e pubblicare su pub.dev il package fins_ltt, una libreria Dart che implementa il protocollo FINS UDP e consente di comunicare con i PLC Omron direttamente da applicazioni Flutter e Dart.
Cos’è FINS LTT
FINS LTT è una libreria Dart che permette di:
- Connettersi a PLC Omron tramite protocollo FINS UDP.
- Leggere parole (word) dalle aree di memoria del PLC.
- Scrivere parole nelle aree di memoria.
- Leggere e scrivere bit singoli.
- Gestire valori Int16, Int32 e Float32.
- Effettuare polling automatico delle variabili.
- Integrare facilmente la comunicazione PLC all’interno di applicazioni Flutter Desktop, Web e Mobile.
L’obiettivo principale è offrire un’interfaccia semplice e moderna per sviluppatori Dart e Flutter che desiderano interagire con sistemi industriali senza dover utilizzare librerie esterne o software proprietari.
Perché Dart e Flutter in automazione industriale
Quando si parla di automazione industriale si tende spesso a pensare a linguaggi tradizionali come C++, C# o Java.
Negli ultimi anni Flutter si è dimostrato una soluzione estremamente interessante per la realizzazione di:
- Interfacce operatore (HMI).
- Applicazioni di supervisione.
- Dashboard industriali.
- Sistemi di monitoraggio remoto.
- Applicazioni desktop multipiattaforma.
Avere una libreria FINS scritta direttamente in Dart nativo permette di mantenere l’intera applicazione nello stesso linguaggio, semplificando notevolmente sviluppo e manutenzione.
Codice Sorgente ed Utilizzo

Il progetto è completamente open source ed è disponibile su GitHub:
https://github.com/GiGi-Italy/fins_ltt
Il package è inoltre disponibile su pub.dev:
https://pub.dev/packages/fins_ltt
Contesto
L’idea di questo progetto nasce da diverse attività svolte negli anni nell’ambito dell’automazione industriale.
In molti impianti produttivi è necessario leggere dati dai PLC per visualizzarli su pannelli operatore, software di supervisione o sistemi di raccolta dati.
Spesso questo comporta l’utilizzo di software proprietari o librerie specifiche per ogni piattaforma.
Con FINS LTT ho voluto dimostrare che è possibile utilizzare Flutter anche in questo settore, mantenendo un approccio moderno allo sviluppo software e sfruttando tutte le potenzialità offerte dall’ecosistema Dart.
Compatibilità

Attualmente il package utilizza il protocollo FINS UDP standard e può essere utilizzato con PLC Omron compatibili con questo protocollo.
Essendo sviluppato interamente in Dart, non richiede DLL native né componenti aggiuntivi e può essere integrato facilmente in applicazioni Flutter Desktop, Mobile e Web.
Naturalmente la disponibilità effettiva della comunicazione dipenderà dalle capacità di rete della piattaforma utilizzata e dalla configurazione del PLC.
Ho personalmente testato la libreria su PLC Omron delle serie CJ2M, CJ2H e CJ1W, utilizzandola in scenari reali di comunicazione Ethernet per la lettura e scrittura di dati. Questo mi ha permesso di verificare sul campo il corretto funzionamento dell’implementazione FINS UDP.
Ringraziamenti
Un ringraziamento particolare va alla comunità di sviluppatori che negli anni ha condiviso documentazione, esempi e informazioni sul protocollo FINS.
La documentazione ufficiale Omron rappresenta una fonte fondamentale per comprendere il funzionamento del protocollo e realizzare implementazioni affidabili.
Conclusione
FINS LTT nasce con l’obiettivo di rendere più semplice l’integrazione tra Flutter e il mondo dell’automazione industriale.
Se stai sviluppando applicazioni Dart o Flutter che devono comunicare con PLC Omron tramite Ethernet, questo package può rappresentare una base solida e al contempo leggera e completamente open source da cui partire.
Come sempre, suggerimenti, segnalazioni e contributi sono benvenuti.

Lascia un commento