OPC UA Publisher Adapter
Dieser Adapter verbindet sich mit einem OPC UA Server zum Lesen und Schreiben von Daten von/zu einer Maschine in einem Technical Process.
Eigenschaften (Properties)
Operation | Vom Adapter ausgeführte Operation Mögliche Werte:
|
Parameter
Adapter | Adapter-Hauptklasse (nicht verändern!) Mögliche Werte: de.softproject.integration.adapter.opcua.OpcUaPublisherAdapter: Hauptklasse (Standard) |
url | Server-URL Mögliche Werte: Beliebige gültige URL, z. B. |
user | Benutzername, um eine Verbindung zum Server aufzubauen Mögliche Werte: Beliebige Zeichenkette mit dem Benutzernamen, z. B. |
password | Passwort, um eine Verbindung zum Server aufzubauen Mögliche Werte: Beliebige Zeichenkette mit dem Passwort, z. B. |
securityMode | Sicherheits-Modus und Server-Richtlinien Mögliche Werte:
|
autoReconnect | Angabe, ob sich der Client automatisch wieder mit dem Server verbinden soll oder nicht. |
| Knoten-Index Mögliche Werte: Beliebige ganze Zahl mit dem Knoten-Index, z. B. |
| Knoten-Bezeichner Mögliche Werte: Beliebige Zeichenkette mit dem Knoten-Bezeichner, z. B. |
| Typ des Knoten-Bezeichners Mögliche Werte:
|
| Optionen zum Abrufen der Historie eines bestimmten Knotens Mögliche Werte:
|
from | Beginn-Datum mit dem Format Mögliche Werte: Beliebiges Datum mit dem entsprechenden Format, z. B. |
to | End-Datum mit dem Format Mögliche Werte: Beliebiges Datum mit dem entsprechenden Format, z. B. |
interval | Intervall-Wert in Sekunden Mögliche Werte: Beliebige ganze Zeit mit dem Intervall in Sekunden, z. B. |
arrayDelimiter | Zeichen zum Trennen der Werte innerhalb eines Arrays Mögliche Werte: Beliebiges Zeichen (Standard |
Statuswerte
1 | Die Adapter-Operation wurde erfolgreich ausgeführt |
-1 | Bei der Ausführung des Adapters kam es zu einem Fehler |
Input
Für die Operationen Read
und Write
erwartet der Adapter ein spezifisches XML-Dokument mit folgenden Elementen:
nodeIndex
(Integer)nodeIdentifier
(String)nodeIdentifierType
(String , Numeric)attributeId
(Integer)
- Verwenden Sie die Operation
ListNodesAttributtesId
, um die Knoten-Attribut-ID aufzurufen. - Arrays geben Sie an, indem Sie die Werte in eckigen Klammern angeben, z. B. [997, 998, 999].
Beispiel-Input für die Operation READ
<?xml version="1.0" encoding="UTF-8"
<RootElement>
<NodeID nodeIndex="5" nodeIdentifier="Counter1" nodeIdentifierType="String" attributeId="13"></NodeID>
<NodeID nodeIndex="5" nodeIdentifier="Square1" nodeIdentifierType="String" attributeId="13"></NodeID>
<NodeID nodeIndex="5" nodeIdentifier="Triangle1" nodeIdentifierType="String" attributeId="13"></NodeID>
<NodeID nodeIndex="0" nodeIdentifier="2256" nodeIdentifierType="Numeric" attributeId="5"></NodeID>
</RootElement>
Beispiel-Input für die Operation WRITE ohne Arrays
<?xml version="1.0" encoding="UTF-8"
<RootElement>
<NodeID nodeIndex="5" nodeIdentifier="Counter1" nodeIdentifierType="String" attributeId="13">999</NodeID>
<NodeID nodeIndex="5" nodeIdentifier="Square1" nodeIdentifierType="String" attributeId="13">9636</NodeID>
<NodeID nodeIndex="5" nodeIdentifier="Triangle1" nodeIdentifierType="String" attributeId="13">TestData</NodeID>
<NodeID nodeIndex="0" nodeIdentifier="2256" nodeIdentifierType="Numeric" attributeId="5">Testing</NodeID>
</RootElement>
Beispiel-Input für die Operation WRITE mit Arrays
<?xml version="1.0" encoding="UTF-8"?>
<RootElement>
<NodeID nodeIndex="6" nodeIdentifier="BooleanArray" nodeIdentifierType="String" attributeId="13">[true, true, true, true, true]</NodeID>
<NodeID nodeIndex="6" nodeIdentifier="ByteArray" nodeIdentifierType="String" attributeId="13">[1, 2, 3, 4, 5]</NodeID>
<NodeID nodeIndex="6" nodeIdentifier="ByteStringArray" nodeIdentifierType="String" attributeId="13">[[3] 0x010203, [3] 0x040506, [3] 0x070809, [3] 0x010101]</NodeID>
<NodeID nodeIndex="6" nodeIdentifier="DateTimeArray" nodeIdentifierType="String" attributeId="13">[2021-01-23 09:33:08.0031200 GMT, 2021-02-23 09:33:08.0031200 GMT]</NodeID>
<NodeID nodeIndex="6" nodeIdentifier="DoubleArray" nodeIdentifierType="String" attributeId="13">[1.0, 2.0, 3.0, 4.0, 5.0]</NodeID>
<NodeID nodeIndex="6" nodeIdentifier="FloatArray" nodeIdentifierType="String" attributeId="13">[1.0, 2.0, 3.0, 4.0, 5.0]</NodeID>
<NodeID nodeIndex="6" nodeIdentifier="GUIDArrayArray" nodeIdentifierType="String" attributeId="13">[66c6a6fa-79a8-4a47-b0d4-6416f3836bf5, abdb9e68-dd91-4a85-84a1-54a1620209fd]</NodeID>
<NodeID nodeIndex="6" nodeIdentifier="Int16Array" nodeIdentifierType="String" attributeId="13">[1, 2, 3, 4, 5]</NodeID>
<NodeID nodeIndex="6" nodeIdentifier="Int32Array" nodeIdentifierType="String" attributeId="13">[1, 2, 3, 4, 5]</NodeID>
<NodeID nodeIndex="6" nodeIdentifier="Int64Array" nodeIdentifierType="String" attributeId="13">[1, 2, 3, 4, 5]</NodeID>
<NodeID nodeIndex="6" nodeIdentifier="LocalizedTextArray" nodeIdentifierType="String" attributeId="13">[(de) Text1, (de) Text2, (de) Text3, (de) Text4, (de) Text5, (de) Text0]</NodeID>
<NodeID nodeIndex="6" nodeIdentifier="QualifiedNameArray" nodeIdentifierType="String" attributeId="13">[Default Binary, Default XML, Default Binary, Default XML, Default Binary]</NodeID>
<NodeID nodeIndex="6" nodeIdentifier="SByteArray" nodeIdentifierType="String" attributeId="13">[1, 2, 3, 4, 5]</NodeID>
<NodeID nodeIndex="6" nodeIdentifier="StringArray" nodeIdentifierType="String" attributeId="13">[testString1, testString2, testString3, testString4, testString5]</NodeID>
<NodeID nodeIndex="6" nodeIdentifier="UInt16Array" nodeIdentifierType="String" attributeId="13">[1, 2, 3, 4, 5]</NodeID>
<NodeID nodeIndex="6" nodeIdentifier="UInt32Array" nodeIdentifierType="String" attributeId="13">[1, 2, 3, 4, 5]</NodeID>
<NodeID nodeIndex="6" nodeIdentifier="UInt64Array" nodeIdentifierType="String" attributeId="13">[1, 2, 3, 4, 5]</NodeID>
<NodeID nodeIndex="6" nodeIdentifier="VariantArray" nodeIdentifierType="String" attributeId="13">[true, true, true, true, true, true]</NodeID>
<NodeID nodeIndex="6" nodeIdentifier="XmlElementArray" nodeIdentifierType="String" attributeId="13"><![CDATA[[<?xml version="1.0" encoding="utf-8" standalone="no"?>
<testElement1/>
, <?xml version="1.0" encoding="utf-8" standalone="no"?>
<testElement2/>
, <?xml version="1.0" encoding="utf-8" standalone="no"?>
<testElement3/>
, <?xml version="1.0" encoding="utf-8" standalone="no"?>
<testElement4/>
, <?xml version="1.0" encoding="utf-8" standalone="no"?>
<testElement5/>
]]]></NodeID>
</RootElement>
Output
Der Adapter gibt ein spezifisches XML-Dokument mit dem Ergebnis aus:
Beispiel-Output für die Operation READ
<?xml version="1.0" encoding="UTF-8"
<Result>
<NodeID statusCode="GOOD" nodeIndex="5" nodeIdentifier="Counter1" nodeIdentifierType="String">999</NodeID>
<NodeID statusCode="GOOD" nodeIndex="5" nodeIdentifier="Square1" nodeIdentifierType="String">9636.0</NodeID>
<NodeID statusCode="GOOD" nodeIndex="5" nodeIdentifier="Triangle1" nodeIdentifierType="String">1.5999999955515</NodeID>
<NodeID statusCode="GOOD" nodeIndex="0" nodeIdentifier="2256" nodeIdentifierType="Numeric">The current status of the server</NodeID>
</Result>
Beispiel-Output für die Operation WRITE
<?xml version="1.0" encoding="UTF-8"
<RootElement>
<NodeID nodeIndex="5" nodeIdentifier="Counter1" nodeIdentifierType="String">SUCCESS</NodeID>
<NodeID nodeIndex="5" nodeIdentifier="Square1" nodeIdentifierType="String">SUCCESS</NodeID>
<NodeID nodeIndex="5" nodeIdentifier="Triangle1">XML malformed - Invalid value format to write into the Node attribute</NodeID>
<NodeID nodeIndex="0" nodeIdentifier="2256">Bad_NotWritable (0x803B0000) "The access level does not allow writing to the Node</NodeID>
</RootElement>