OPC-UA


 

Der OPC-UA Treiber vereint Server- und Client-Funktionalitäten in einem Treiber.

Der Name dieses Treibers lautet: opcua
Die Routing-Adresse des ersten OPC-UA Treibers lautet: 1620
Die Datenpunktdatei für den ersten OPC-UA Treiber heißt: opcua1.txt
Die Konfigurationsdatei für globale Einstellungen des ersten OPC-UA Treibers heißt: opcua1.cfg
Der Zertifikats-Pfad des ersten OPC-UA Treibers lautet: ./opcua1/

Bei dem OPC-UA-Treiber sowie allen weiteren Gateway-Treibern gilt für die Definition von Datenpunkten in der Datenpunktdatei:

TypBeschreibung
MGanzzahliger Wert (Binäre Datenpunkte, Zählwerte) der vom Gateway nur gelesen werden kann/soll.
SGanzzahliger Wert, der vom Gateway gelesen sowie geschrieben werden kann/soll.
XAnalogwert (mit Nachkommastellen) der vom Gateway nur gelesen werden kann/soll.
YAnalogwert (mit Nachkommastellen) der vom Gateway gelesen sowie geschrieben werden kann/soll.
AString findet z.B. Verwendung bei BACnet Trends und ESPA 4.4.4 Datenpunkten

Die OPC-UA Adressen sind wie folgt aufgebaut:

[<modifier> <system> <NodeId>; <specialType>]
[<modifier> <system> <<ns>;<Id>; <specialType>]

BeschreibungWert
modifierM, S, X, Y (Setzt das OPC-UA AccessLevel für den Datenpunkt/Knote)
systemTeilt dem Treiber mit, ob es ein Server (Srv) oder ein Client (Cli) Datenpunkt ist
NodeIdTypische OPC-UA NodeId (Knoten-Id),terminiert mit einem Semikolon (';')
Der Namespace (ns) ist Teil der NodeId. Wird dieser weggelassen, so zeigt ns auf
den Namepsace 0 (definiert durch http://opcfoundation.org/UA/).
Dieser Namespace beinhaltet vordefinierte Adressen der OPCFoundation. Um Konflikte zu vermeiden, wird empfohlen den ns=1 or ns=2 zu benutzen!
ns=1 : Namespace-Index 1, bereits durch den Konfigurationsparameter ApplicationUri definiert.
ns=2 : Namespace-Index 2, optional und muss über den Konfigurationsparameter Namespace definiert werden.

i=nummerisch (z.B.: ns=1;i=4711;)
s=string (z.B.: ns=1;s=current-time;)
g=guid (z.B.: ns=1;g=C496578A-0DFE-4b8f-870A-745238C6AEAE;)

Bytestring (b) wird derzeit nicht unterstützt.
specialTypeOptional: Reserviert für spezielle Typen, wie dem Failure-Datenpunkt (failure) oder dem BadTime-Indication-Datenpunkt (badtime).

Alle Spezialtypen sind und sollten read-only sein!

Format

Das Format teilt dem Treiber den zu verwendenden Datentypen des Datenpunkts mit.
Mögliche Werte sind:

WertBeschreibung
BITBoolean true or false
SINT88 bit signed integer
UINT88 bit unsigned integer
SINT1616 bit signed integer
UINT1616 bit unsigned integer
SINT3232 bit signed integer
UINT3232 bit unsigned integer
SINT6464 bit signed integer
UINT6464 bit unsigned integer
FLOAT3232 bit float
FLOAT6464 bit float = double

Displayname

Setzt den OPC-UA Displaynamen des Datenpunkts

Description

Setzt die OPC-UA Beschreibung (Description) des Datenpunkts

Beispiele

[A Srv ns=1;i=9]
name = Timestamp
format = STRING

[M Cli i=4712;]
name = Client1 Datapoint (readonly) on namespace 0 index 4712
format = SINT16

[S Cli i=815;]
name = Client9 Datapoint (read-/writeable) on namespace 0 index 815
format = UINT16

[M Cli ns=1;i=4710; failure]
name = Cl1 Failure-Datapoint on namespace 1 index 4710
format = SINT32

[M Cli ns=1;s=FailureTime; badtime]
name = Client 1 Time-Failure-Datapoint on namespace 1 by name "FailureTime"
format = SINT32

[X Cli ns=2;s={Device,201};{BinaryInput,4016};PresentValue;]
name = Client-2 BI-4016
format = FLOAT64

[Y Srv ns=1;s=some_value;]
name = Server Datapoint (read-/writeable) on namespace 1 by name "some_value"
format = FLOAT32
ua_displayname = Server Datapoint 'some_value'
ua_description = another dp

[Y Srv ns=1;g=C496578A-0DFE-4b8f-870A-745238C6AEAE;]
name = Server Datapoint (read-/writeable) on namespace 1 by guid "C496578A-0DFE-4b8f-870A-745238C6AEAE"
format = FLOAT32

Treiber-Konfiguration

Allgemeine Einstellungen (Section: OPC_UA)

ParameterStandardwertTypWertebereichBeschreibung
PollInterval3int0-255Poll-Intervall
CommandsPerStep3int0-255Definiert die Menge an Befehlen, die in einem Poll-Intervall verarbeitet werden sollen
MaxRetries3int0-255Anzahl der Wiederholungen, bis ein Fehler signalisiert wird.
IsClient0int0-1Setzt den Treiber in den Server- or Client-Modus.

Server Einstellungen (Section: Server)

ParameterStandardwertTypWertebereichBeschreibung
VerbindungInterfaceLAN1stringLegt fest, auf welchem Interface der Server-Socket arbeitet.

Mögliche Werte sind:
- LAN1 für eth0
- LAN2 für eth1
- all für keine exklusive Bindung
PortNumber4840int1-65534Legt die Port-Number des Servers fest
UserTokenTypeanonymousstring- anonymous
- username („gw“ & „service“)
- certificate
SecurityMode0int0-2- 0 „Keine“
- 1 „Signieren“
- 2 „Signieren and Verschlüsseln“
EncryptionnonestringUm die Verschlüsselung zu nutzen, darf der SecurityMode nicht 0 (Keine) sein
- „none“
- „RSA“
- „B256“
- „SHA“

(Bei aktivierter Verschlüsselung, muss die ApplicationUri der URI des verwendeten Zertifikats entsprechen)
Certificate„“stringZertifikats-Datei (e.g.: „/ugw/config/opcua1/server_cert.der“)
PrivateKey„“stringPrivaterSchlüssel-Datei (e.g.: „/ugw/config/opcua1/server_key.der“
NamespacesApplicationUrihttp://www.mbs-solutions.de/OPCUA/uriNamespace 1
(Bei aktivierter Verschlüsselung, muss die ApplicationUri der URI des verwendeten Zertifikats entsprechen)
Namespace„“uriNamespace 2 (optional)
Discovery-ClientRegisterServerAturiMeldet den OPC-UA Server bei einem Discovery-Server an (z.B. opc.tcp://192.168.7.111:4840)
- Derzeit werden nur Open62541-Server unterstützt!
- Einem Server ist es nicht möglich sich bei sich selbst zu registrieren (führt zum Timeout)
RegisterPeriod600intWieder-Registrier-Frequenz in Sekunden
RegisterDelay500intVerzögert die erste Anmeldung um x Millisekunden
RegisterTimeout2intRegister-Timeout in Sekunden

Im Moment unterstützt der Treiber nur 2 Benutzer!

BenutzernamePasswort
serviceSERVICE
gwGATEWAY

Client Einstellungen (Section: Client)

ParameterStandarwertTypWertebereichBeschreibung
VerbindungTimeout5int0-4294967295Antwort Timeout in Sekunden (5 Sekunden)
SecureChannelLifeTime36000int0-4294967295Secure Channel Lifetime in Sekunden (60 60 10 = 10 Stunden)
PollMode0int0-1Legt fest, wie der Client Wertänderungen erfragt:
- 0 für Subscriptions
- 1 für Polling
EndPointUrlopc.tcp://opcua-srv:4840stringServerEndPoint für den Client
UserTokenTypeanonymousstring- anonymous
- username
- certificate
SecurityMode0int0-2- 0 „Keine“
- 1 „Signieren“
- 2 „Signieren and Verschlüsseln“
EncryptionnonestringUm die Verschlüsselung zu nutzen, darf der SecurityMode nicht 0 (Keine) sein
- „none“
- „RSA“
- „B256“
- „SHA“
Certificate„“stringZertifikats-Datei (e.g.: „/ugw/config/opcua1/client_cert.der“
Privatekey„“stringPrivaterSchlüssel-Datei (e.g.: „/ugw/config/opcua1/client_key.der“
Username„“stringBenutzername für den Login (oder leer),erforderlich bei UserTokenType = username
Password„“stringPasswort für den Login (oder leer),erforderlich bei UserTokenType = username