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

  1. Die Datenstruktur in der SPS passt zur OPC UA-Datenstruktur. Insbesondere:
    • Reihenfolge der Felder
    • Datentypen
  2. 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.

Structure 1:
Structure 2:

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.