Der OPC-UA Treiber vereint Server- und Client-Funktionalitäten in einem Treiber.
HINWEIS: Der Treiber im Server-Betrieb kann nur erreicht werden, wenn mindestens ein Datenpunkt definiert ist. In der Muster-Konfiguration ist kein Datenpunkt aktiv, somit findet also auch keine Kommunikation mit einem OPC-UA-Client statt.
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:
Typ | Beschreibung |
---|---|
M | Ganzzahliger Wert (Binäre Datenpunkte, Zählwerte) der vom Gateway nur gelesen werden kann/soll. |
S | Ganzzahliger Wert, der vom Gateway gelesen sowie geschrieben werden kann/soll. |
X | Analogwert (mit Nachkommastellen) der vom Gateway nur gelesen werden kann/soll. |
Y | Analogwert (mit Nachkommastellen) der vom Gateway gelesen sowie geschrieben werden kann/soll. |
A | String 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>]
Beschreibung | Wert |
---|---|
modifier | M, S, X, Y (Setzt das OPC-UA AccessLevel für den Datenpunkt/Knote) |
system | Teilt dem Treiber mit, ob es ein Server (Srv) oder ein Client (Cli) Datenpunkt ist |
NodeId | Typische 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. |
specialType | Optional: 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:
Wert | Beschreibung |
---|---|
BIT | Boolean true or false |
SINT8 | 8 bit signed integer |
UINT8 | 8 bit unsigned integer |
SINT16 | 16 bit signed integer |
UINT16 | 16 bit unsigned integer |
SINT32 | 32 bit signed integer |
UINT32 | 32 bit unsigned integer |
SINT64 | 64 bit signed integer |
UINT64 | 64 bit unsigned integer |
FLOAT32 | 32 bit float |
FLOAT64 | 64 bit float = double |
STRING | String |
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
[S Srv ns=1;s=Test;]
name = Test
format = BIT
[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)
Parameter | Standardwert | Typ | Wertebereich | Beschreibung |
---|---|---|---|---|
PollInterval | 3 | int | 0-255 | Poll-Intervall |
CommandsPerStep | 3 | int | 0-255 | Definiert die Menge an Befehlen, die in einem Poll-Intervall verarbeitet werden sollen |
MaxRetries | 3 | int | 0-255 | Anzahl der Wiederholungen, bis ein Fehler signalisiert wird. |
IsClient | 0 | int | 0-1 | Setzt den Treiber in den Server- or Client-Modus. |
Server Einstellungen (Section: Server)
Parameter | Standardwert | Typ | Wertebereich | Beschreibung | |
---|---|---|---|---|---|
Verbindung | Interface | LAN1 | string | Legt 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 | |
PortNumber | 4840 | int | 1-65534 | Legt die Port-Number des Servers fest | |
UserTokenType | anonymous | string | - anonymous - username („gw“ & „service“) - certificate | ||
SecurityMode | 0 | int | 0-2 | - 0 „Keine“ - 1 „Signieren“ - 2 „Signieren and Verschlüsseln“ | |
Encryption | none | string | Um 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 | „“ | string | Zertifikats-Datei (e.g.: „/ugw/config/opcua1/server_cert.der“) | ||
PrivateKey | „“ | string | PrivaterSchlüssel-Datei (e.g.: „/ugw/config/opcua1/server_key.der“ | ||
Namespaces | ApplicationUri | http://www.mbs-solutions.de/OPCUA/ | uri | Namespace 1 (Bei aktivierter Verschlüsselung, muss die ApplicationUri der URI des verwendeten Zertifikats entsprechen) | |
Namespace | „“ | uri | Namespace 2 (optional) | ||
Discovery-Client | RegisterServerAt | uri | Meldet 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) | ||
RegisterPeriod | 600 | int | Wieder-Registrier-Frequenz in Sekunden | ||
RegisterDelay | 500 | int | Verzögert die erste Anmeldung um x Millisekunden | ||
RegisterTimeout | 2 | int | Register-Timeout in Sekunden |
Im Moment unterstützt der Treiber nur 2 Benutzer!
Benutzername | Passwort |
---|---|
service | *) |
gw | GATEWAY |
*) Das Passwort wird bei Bedarf auf Support-Anfrage mitgeteilt.
Client Einstellungen (Section: Client)
Parameter | Standarwert | Typ | Wertebereich | Beschreibung | |
---|---|---|---|---|---|
Verbindung | Timeout | 5 | int | 0-4294967295 | Antwort Timeout in Sekunden (5 Sekunden) |
SecureChannelLifeTime | 36000 | int | 0-4294967295 | Secure Channel Lifetime in Sekunden (60 60 10 = 10 Stunden) | |
PollMode | 0 | int | 0-1 | Legt fest, wie der Client Wertänderungen erfragt: - 0 für Subscriptions - 1 für Polling | |
EndPointUrl | opc.tcp://opcua-srv:4840 | string | ServerEndPoint für den Client | ||
UserTokenType | anonymous | string | - anonymous - username - certificate | ||
SecurityMode | 0 | int | 0-2 | - 0 „Keine“ - 1 „Signieren“ - 2 „Signieren and Verschlüsseln“ | |
Encryption | none | string | Um die Verschlüsselung zu nutzen, darf der SecurityMode nicht 0 (Keine) sein - „none“ - „RSA“ - „B256“ - „SHA“ | ||
Certificate | „“ | string | Zertifikats-Datei (e.g.: „/ugw/config/opcua1/client_cert.der“ | ||
Privatekey | „“ | string | PrivaterSchlüssel-Datei (e.g.: „/ugw/config/opcua1/client_key.der“ | ||
Username | „“ | string | Benutzername für den Login (oder leer),erforderlich bei UserTokenType = username | ||
Password | „“ | string | Passwort für den Login (oder leer),erforderlich bei UserTokenType = username |