OPC UA (Unified Architecture) è uno standard di comunicazione industriale aperto e sicuro utilizzato per l’automazione di processi e il controllo di sistemi. In questa guida, impareremo a sviluppare programmi Python che si interfacciano con OPC UA, con un linguaggio semplice e chiaro per aiutare i programmatori alle prime armi a entrare nel mondo dell’automazione industriale. Scopriamo insieme come combinare le potenzialità di Python con la versatilità di OPC UA per creare applicazioni efficienti e sicure.
In particolar modo vedremo:
Configurare l’ambiente di sviluppo Python e installare le librerie OPC UA
Prima di iniziare a scrivere codice, è importante impostare correttamente l’ambiente di sviluppo Python. Ecco i passaggi per farlo:
- Installare Python: Se non l’hai già fatto, scarica e installa l’ultima versione di Python dal sito ufficiale (https://www.python.org/downloads/).
- Creare un ambiente virtuale: Gli ambienti virtuali consentono di isolare le dipendenze di un progetto da quelle di altri progetti. Per crearne uno, apri il terminale e digita:
python -m venv my_opcua_project
- Attivare l’ambiente virtuale: Per attivare l’ambiente virtuale appena creato, usa i seguenti comandi:
Su Windows:
my_opcua_project\Scripts\activate
Su macOS e Linux:
source my_opcua_project/bin/activate
- Installare le librerie OPC UA: Per interfacciarsi con OPC UA, abbiamo bisogno della libreria FreeOpcUa. Per installarla, esegui il seguente comando:
pip install opcua
Creare un client OPC UA in Python
Una volta configurato l’ambiente di sviluppo, possiamo iniziare a scrivere il nostro client OPC UA. Un client OPC UA è un’applicazione che si connette a un server OPC UA per leggere e scrivere dati. Ecco come farlo:
- Importare le librerie necessarie:
from opcua import Client
import time
- Connettersi al server OPC UA:
url = "opc.tcp://localhost:4840" # Sostituisci con l'indirizzo del tuo server OPC UA
client = Client(url)
client.connect()
print(f"Connesso al server OPC UA: {url}")
- Leggere e scrivere dati:
# Leggere dati
node = client.get_node("ns=2;s=ExampleTagName")
value = node.get_value()
print(f"Valore letto: {value}")
# Scrivere dati
new_value = 42
node.set_value(new_value)
print(f"Valore scritto: {new_value}")
- Chiudere la connessione:
client.disconnect()
print("Disconnesso dal server OPC UA")
Creare un server OPC UA in Python
Oltre a creare un client OPC UA, potresti voler sviluppare un server OPC UA personalizzato per gestire i dati e le comunicazioni all’interno del tuo sistema di automazione. Vediamo come farlo con Python e la libreria FreeOpcUa:
- Importare le librerie necessarie:
from opcua import Server
from random import randint
import time
- Inizializzare il server OPC UA:
server = Server()
server.set_endpoint("opc.tcp://localhost:4840") # Sostituisci con l'indirizzo desiderato
# Aggiungere un namespace personalizzato
uri = "http://examples.freeopcua.github.io"
idx = server.register_namespace(uri)
# Creare un nodo oggetto personalizzato
my_object = server.nodes.objects.add_object(idx, "MyObject")
- Creare variabili nel server:
# Creare una variabile semplice
my_var = my_object.add_variable(idx, "MyVariable", 0)
my_var.set_writable()
# Creare una variabile più complessa (es. un array)
my_array_var = my_object.add_variable(idx, "MyArrayVariable", [0, 0, 0])
my_array_var.set_writable()
- Avviare il server:
server.start()
print("Server OPC UA avviato")
- Aggiornare i valori delle variabili nel server:
try:
while True:
# Aggiornare il valore della variabile semplice
my_var.set_value(randint(0, 100))
# Aggiornare il valore della variabile complessa
my_array_var.set_value([randint(0, 100), randint(0, 100), randint(0, 100)])
time.sleep(1) # Aggiorna ogni secondo
except KeyboardInterrupt:
pass
- Arrestare il server:
server.stop()
print("Server OPC UA arrestato")
Conclusione
In questo blog post, abbiamo imparato a configurare l’ambiente di sviluppo Python per lavorare con OPC UA, creare un client in Python per leggere e scrivere dati, e sviluppare un server personalizzato. Questa guida ha fornito un’introduzione pratica e accessibile alle potenzialità di Python e OPC UA per i programmatori alle prime armi. Continua a esplorare queste tecnologie e a sperimentare per sviluppare soluzioni di automazione industriale sempre più efficaci e sicure.
Ah stavo per dimenticarmi…
Se desideri seguire un Percorso di Formazione Online o In Aula, allora iscriviti subito al Gruppo…
Clicca Qui ed entra a far parte del Gruppo di Programmatori >>>
Sei pronto a diventare un Tecnico Completo e Autonomo, in grado di padroneggiare qualsiasi PLC e risolvere i problemi grazie alla tua abilità nella Ricerca dei Guasti?
Allora immergiti nella nostra Nuova Piattaforma di Studio dedicata ai Tecnici Industriali. È un ambiente appositamente creato per te, dove potrai trovare tutte le nozioni necessarie. E non preoccuparti se ti senti poco preparato, parti da zero o hai poca esperienza. La nostra piattaforma è progettata per accogliere e supportare tutti i livelli di competenza.
Ti aspetto dentro, Accedi Ora alla Piattaforma Riservata >>>
—
Strongoli Alessandro
CEO IO PROGRAMMO srl