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.

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:

  1. Importare le librerie necessarie:
from opcua import Client
import time
  1. 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}")
  1. 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}")
  1. 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:

  1. Importare le librerie necessarie:
from opcua import Server
from random import randint
import time
  1. 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")
  1. 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()
  1. Avviare il server:
server.start()
print("Server OPC UA avviato")
  1. 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
  1. 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 >>>

Condividi ora questa guida con i tuoi contatti: