X4 Help Center
7.5 7.4 German English
Auto Light Dark
Auto Light Dark
7.5 7.4 German English

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:

  • GetServerConfiguration: Ruft die Server-Konfiguration auf

  • ListNodes: Listet die verfügbaren Knoten auf

  • ListNodesAttributtesId: Listet die Attributes für jeden Knoten auf

  • Read: Liest Werte und den Status aus

  • ReadHistory: Liest historische Werte und den Status aus

  • Write: Schreibt die Attribute eines Knotens

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. opc.tcp://SP-WS-204.softproject.local:53530/OPCUA/SimulationServer

user

Benutzername, um eine Verbindung zum Server aufzubauen

Mögliche Werte: Beliebige Zeichenkette mit dem Benutzernamen, z. B. myUser

password

Passwort, um eine Verbindung zum Server aufzubauen

Mögliche Werte: Beliebige Zeichenkette mit dem Passwort, z. B. myPassword

securityMode

Sicherheits-Modus und Server-Richtlinien

Mögliche Werte:

  • NONE

  • BASIC256_SIGN

  • BASIC256_SIGN_ENCRYPT

  • BASIC128RSA15_SIGN

  • BASIC128RSA15_SIGN_ENCRYPT

  • BASIC256SHA256_SIGN

  • BASIC256SHA256_SIGN_ENCRYPT

autoReconnect

Angabe, ob sich der Client automatisch wieder mit dem Server verbinden soll oder nicht.

nodeIndex

Knoten-Index

Mögliche Werte: Beliebige ganze Zahl mit dem Knoten-Index, z. B. 1234

nodeIdentifier

Knoten-Bezeichner

Mögliche Werte: Beliebige Zeichenkette mit dem Knoten-Bezeichner, z. B. myNode

nodeIdentifierType

Typ des Knoten-Bezeichners

Mögliche Werte:

  • String

  • Numeric

historyOption

Optionen zum Abrufen der Historie eines bestimmten Knotens

Mögliche Werte:

  • AT_TIMES

  • AVERAGE

  • COUNT

  • DELTA

  • END

  • MAXIMUM

  • MAXIMUM_ACTUAL_TIME

  • MINIMUM

  • MINIMUM_ACTUAL_TIME

  • RANGE

  • RAW_DATA

  • START

  • WORST_QUALITY

from

Beginn-Datum mit dem Format yyyy-MM-dd hh:mm:ss

Mögliche Werte: Beliebiges Datum mit dem entsprechenden Format, z. B. 2018-01-01 00:00:00

to

End-Datum mit dem Format yyyy-MM-dd hh:mm:ss

Mögliche Werte: Beliebiges Datum mit dem entsprechenden Format, z. B. 2018-12-31 00:00:00

interval

Intervall-Wert in Sekunden

Mögliche Werte: Beliebige ganze Zeit mit dem Intervall in Sekunden, z. B. 3000

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].


XML
<?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>


XML
<?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>


XML
<?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:

XML
<?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>


XML
<?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>