OPC UA

OPC UA (Open Platform Communications United Architecture) ist ein Datenaustauschstandard f�r die industrielle Kommunikation. Es ist ein offener Schnittstellenstandard der unabh�ngig vom Hersteller oder Systemlieferanten der Anwendung ist.

Als vor�bergehende L�sung setzen wir die Kommunikation mittels eines Python OPC UA Clients um. Das Pythonskript dient quasi als middleman und kommuniziert hierbei per OPC UA mit der Gegenstelle sowie mit horstFX. 

Wie der OPC UA Client eingerichtet wird und wie die Kommunikation mit horstFX funktioniert wird im Folgenden beschrieben. Das folgende Vorgehen kann individuell abweichen und dient deshalb als exemplarische Herangehensweise.

1. Installation des Python OPC UA clients

Als OPC UA Client nutzen wir den FreeOpcUA Python client. https://github.com/FreeOpcUa/python-opcua

Dieser wird auf dem Schaltkasten installiert und eingerichtet. Das hat den Vorteil, dass das Python Skript auch direkt von horstFX aus gestartet werden kann.

1.1. Installation / �berpr�fung der installierten Python Version

Bestimmte Versionen von Debian Linux werden bereits mit vorinstalliertem Python 3 ausgeliefert. So auch die Version, die auf unserem Schaltschrank installiert ist.

�ber die Konsole k�nnen folgende Befehle ausgef�hrt werden:

1. Anmelden als Root User: 
su -l root

Das Passwort bitte direkt bei fruitcore anfragen.

 

2. Aktualisieren des Systems:

apt update

apt upgrade darf nicht ausgef�hrt werden.

 

3. �berpr�fen der installierten Python Version
python3 -V

1.2. Installation von pip

�ber die Konsole kann mittels folgenden Kommandos pip installiert werden:

apt install -y python3-pip
pip3 install --upgrade pip

1.3. Installation des OPC-UA Clients und der ben�tigten Pakete

�ber die Konsole k�nnen mit folgenden Kommandos die erforderlichen Bibliotheken installiert werden.

1. Installation von numpy: 
pip3 install numpy
2. Installation von cryptography:
pip3 install cryptography
3. Installation von dateutil:
pip3 install python-dateutil
4. Installation von lxml:
pip3 install lxml
5. Installation von pytz:
pip3 install pytz

6. Installation des OPC-UA Clients

pip3 install opcua

2. Funktionsweise des Python OPC UA Clients

Die Funktionsweise des Clients ist sehr gut unter https://github.com/FreeOpcUa/python-opcua beschrieben. Dort finden sich auch gen�gend Beispiele.

3. Kommunikation zwischen horstFX und Python OPC UA Client

Per TCP/IP Sockets kann zwischen dem Python Skript und horstFX kommuniziert werden.

3.1. Einrichten der Kommunikation in horstFX

Wie horstFX seitig die Kommunikation realisiert werden kann ist unter Sockets beschrieben.

3.2.  Einrichten der Kommunikation Python seitig

Einbindung des Sockets Moduls in python mittels folgendem Befehl:

import socket

3.2.1. Aufbau der Socketverbindung

# Socket Connection
HOST = "0.0.0.0"                                # IP HORST
PORT = 3000                                     # Port HORST
 
# connect to horstFX via Socket
s = socket.socket()                             # Erstelle Socket Objekt
s.bind((HOST, PORT))                            # Binde Port
print("socket listen for client")
s.listen(5)                                     # Warte auf client connection
c, addr = s.accept()                            # Stelle Verbidnung mit client her
print("socket accepted by client")

3.2.2. Einlesen der Nachricht von horstFX

msg = c.recv(1024)                                  # Lese HORST Nachricht �ber Socket

3.2.3. Senden einer Nachricht an horstFX

c.sendall("Hallo HORST".encode('utf-8'))             # Sende Nachricht an HORST �ber Socket

4. Ausf�hren des Python-Skripts direkt �ber horstFX

Wie das Python-Skript zur Kommunikation �ber OPC UA direkt von horstFX aus ausgef�hrt werden kann, ist in Ausf�hren externer Python Skripte beschrieben.