Devo sviluppare una dashboard per interconnettere due macchinari tramite il protocollo OPC UA.
Di seguito propongo una possibile soluzione sul linguaggio da utilizzare e sui principali step da seguire per realizzare una dashboard che permetta all’utente di:
- leggere il valore delle variabili
- scrivere sulle variabili
- conservare uno storico delle attività di lettura e scrittura delle variabili.
Vediamo un elenco passo passo delle attività.
OPC UA (Open Platform Communications – Unified Architecture) è un protocollo standard per la comunicazione di dati tra macchine in ambito industriale.
Per sviluppare un software client che si interfacci con i macchinari attraverso OPC UA, considereremo i seguenti passi.
Analisi delle possibilità:
- Piattaforma: Su quale piattaforma (Windows, Linux, etc.) dovrà girare il nostro client?
OPC UA supporta diverse piattaforme, quindi questo definirà la nostra scelta di linguaggio e libreria. - Linguaggio di programmazione: Esistono librerie e toolkit OPC UA per molti linguaggi, inclusi C++, Java, Python, .NET, etc.
- Libreria OPC UA: A seconda del linguaggio scelto, dovremo selezionare una libreria OPC UA adatta.
Scelta del linguaggio e della libreria:
Dato che vuoi una soluzione flessibile e possibilmente con una curva di apprendimento non troppo ripida, potremmo scegliere Python come linguaggio. Esistono diverse librerie Python per OPC UA, come ‘opcua-asyncio’ che è moderna e basata su ‘asyncio’, offrendo così un modello asincrono.
Step per lo sviluppo:
- Configurazione del client: Installa la libreria scelta e crea un client OPC UA.
- Connessione al server: Questo step prevede la connessione del client al server OPC UA dei macchinari. Di solito, avrai bisogno dell’endpoint del server.
- Lettura delle variabili: Utilizza la libreria per navigare la struttura del server e leggere le variabili desiderate.
- Scrittura delle variabili: Analogamente alla lettura, la libreria ti permetterà di scrivere valori sulle variabili.
- Conservazione storica: Per mantenere uno storico delle attività di lettura e scrittura, puoi utilizzare un database come SQLite (per soluzioni leggere) o PostgreSQL (per soluzioni più robuste). Ogni volta che leggi o scrivi una variabile, registra l’evento nel database.
- Sviluppo della dashboard: Utilizza un framework web come Flask o Django per sviluppare una dashboard.
Questa dashboard avrà una UI che mostra le variabili e permette agli utenti di leggerle o modificarle. Inoltre, presenterà lo storico delle operazioni prelevato dal database.
Test
- Testa la connessione tra il client e i server dei macchinari.
- Verifica la lettura e scrittura delle variabili.
- Controlla che lo storico delle attività venga correttamente registrato nel database.
- Assicurati che la dashboard funzioni correttamente, mostrando le informazioni in tempo reale e permettendo le operazioni di lettura/scrittura.
Documentazione e deploy
- Crea una documentazione per l’utente finale e per gli sviluppatori.
- Infine, distribuisci la soluzione nella piattaforma target, assicurandoti che tutto funzioni correttamente.
In sintesi, Python, con la libreria ‘opcua-asyncio’ e un framework web come Flask, sembra una buona soluzione per il tuo progetto.
Questa scelta offre flessibilità, una curva di apprendimento relativamente soft e buone prestazioni.
Procediamo quindi con lo sviluppo della dashboard e ci aggiorniamo in un prossimo articolo.