Structure
Dieser Ordner repräsentiert die Node „Structure“ [i=22] und enthält SPS-Typen, die dessen Subtypen abbilden. „Structure“ selbst hat keinen äquivalenten SPS-Typen. Konkrete, von „Structure“ abgeleitete OPC UA-Strukturtypen lassen sich als SPS-Datentyp abbilden:
Abbildung eines OPC UA-Strukturtyps als SPS-Datentyp:
Voraussetzungen
- Die Datenstruktur in der SPS passt zur OPC UA-Datenstruktur. Insbesondere:
- Reihenfolge der Felder
- Datentypen
- Die PLC-Typdefinition enthält die OPC UA-Typinformationen als Attribute.
Diese Attribute benötigt der TwinCAT OPC UA Server, um den SPS-Datentyp dem richtigen OPC UA-Datentyp zuzuordnen. Einfache SPS-Datentypen benötigen diese Attribute nicht.
Die benötigten Attribute können von Hand an die Instanz- oder Typdeklaration geschrieben werden oder über den TwinCAT OPC UA Nodeset Editor zum Kopieren abgerufen werden.
Schritt-für-Schritt mit dem Nodeset Editor:
1 - Finden und Öffnen des Strukturtypen.
5 - Anlegen des DUT in TwinCAT.
2 - Auswählen und Kopieren aller Namen und DataType BrowseNames der Felder
5 - Einfügen in TwinCAT zwischen STRUCT und END_STRUCT
3 - Öffnen der Pragmas für den Typen
4 - Kopieren der Pragmas
5 - Einfügen in TwinCAT oberhalb von TYPE
6 - Ersetzen der DataType BrowseNames durch die passenden SPS-Typen
(Bsp. Boolean => „Tc3_OpcUa.UA_Boolean“ oder „BOOL“).
Fehlende (Struktur-) Typen müssen eventuell ebenfalls angelegt werden.


Bedeutung der Attribute:
- OPC.UA.DA
Aktiviert die Bereitstellung des Datentyps und eventueller Subelemente über OPC UA. - OPC.UA.DA.StructuredType
Kennzeichnet den Typ als strukturierten OPC UA-Datentyp. - OPC.UA.AdditionalStructuredType.NamespaceName
Gibt die NamespaceUri des Datentyps aus dem Nodeset an. - OPC.UA.AdditionalStructuredType.Id
Enthält die NodeId des OPC UA-Datentyps, hier also i=3007. - pack_mode := '1'
Stellt sicher, dass die Speicheranordnung der Struktur definiert und kompatibel ist.