Herunterladen Diese Seite drucken

Werbung

Handbuch | DE
TS6100
TwinCAT 2 | OPC UA
17.04.2023 | Version: 1.8

Werbung

loading

Inhaltszusammenfassung für Beckhoff TS6100

  • Seite 1 Handbuch | DE TS6100 TwinCAT 2 | OPC UA 17.04.2023 | Version: 1.8...
  • Seite 3 Visual Studio ........................ 110 4.2.2 Standalone ........................ 139 Client I/O ............................ 155 4.3.1 Übersicht ........................ 155 4.3.2 Schnelleinstieg .......................  156 4.3.3 Unterstützte Datentypen .................... 159 4.3.4 Knoten vom Server hinzufügen.................. 160 4.3.5 Knotenattribute.......................  161 4.3.6 Methodenaufruf ...................... 162 TS6100 Version: 1.8...
  • Seite 4 Server.......................... 251 7.1.2 Client I/O ........................ 252 7.1.3 Client PLCopen ...................... 252 7.1.4 Gateway .........................  253 Statuscodes .......................... 253 7.2.1 ADS Return Codes...................... 253 7.2.2 Client I/O ........................ 256 7.2.3 Client PLCopen ...................... 258 Support und Service........................ 260 Version: 1.8 TS6100...
  • Seite 5 EP1590927, EP1789857, EP1456722, EP2137893, DE102015105702 mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern. ® EtherCAT ist eine eingetragene Marke und patentierte Technologie lizenziert durch die Beckhoff Automation GmbH, Deutschland Copyright © Beckhoff Automation GmbH & Co. KG, Deutschland.
  • Seite 6 Die gesamten Komponenten werden je nach Anwendungsbestimmungen in bestimmten Hard- und Software- Konfigurationen ausgeliefert. Änderungen der Hard- oder Software-Konfiguration, die über die dokumentierten Möglichkeiten hinausgehen, sind unzulässig und bewirken den Haftungsausschluss der Beckhoff Automation GmbH & Co. KG. Qualifikation des Personals Diese Beschreibung wendet sich ausschließlich an ausgebildetes Fachpersonal der Steuerungs-, Automatisierungs- und Antriebstechnik, das mit den geltenden Normen vertraut ist.
  • Seite 7 Vorwort Hinweise zur Informationssicherheit Die Produkte der Beckhoff Automation GmbH & Co. KG (Beckhoff) sind, sofern sie online zu erreichen sind, mit Security-Funktionen ausgestattet, die den sicheren Betrieb von Anlagen, Systemen, Maschinen und Netzwerken unterstützen. Trotz der Security-Funktionen sind die Erstellung, Implementierung und ständige Aktualisierung eines ganzheitlichen Security-Konzepts für den Betrieb notwendig, um die jeweilige Anlage,...
  • Seite 8 DA-Server-Schnittstelle als auch OPC-UA-Server- Aggregationsfähigkeiten zur Verfügung stellt. Szenarien Im Folgenden werden einige Szenarien erläutert, gemäß derer die Komponenten je nach Anwendungsfall und Infrastruktur implementiert und verwendet werden können: • OPC UA Server: Integriert in Industrie-PC oder Embedded-PC [} 9] Version: 1.8 TS6100...
  • Seite 9 • Die Speichernutzung ist dezentral. Jedes Gerät ist ausschließlich für den eigenen Speicherbedarf zuständig. • OPC UA verfügt über direkt ins Protokoll integrierte Sicherheitsmechanismen. Dies ist z. B. sehr praktisch, wenn einer der Industrie-PCs oder Embedded-PC übers Internet verbunden ist. TS6100 Version: 1.8...
  • Seite 10 Symbolwerte über OPC UA veröffentlichen. Bei diesem Szenario muss der OPC UA Server zusammen mit einer TwinCAT 3 ADS (oder TwinCAT 2 CP) auf einem anderen Rechner ausführt und das Szenario auf die gleiche Weise wie Szenario 2 konfiguriert werden. Version: 1.8 TS6100...
  • Seite 11 Szenario ebenfalls das Hin- und Zurücksenden von Daten umfasst (d. h. Senden von Parametern an die Cloud, Ausführung der Berechnungen in der Cloud und dann Rücksendung der berechneten Ergebnisse), erfordert dieses spezifische Szenario nicht die Rückgabe von Ergebnissen aus der Cloud. TS6100 Version: 1.8...
  • Seite 12 Der dezentralisierte OPC UA Client basiert auf einer TwinCAT-3-SPS-Laufzeit und kann daher auf jeder Hardwarekonfiguration gehostet werden, die den Betrieb einer TwinCAT-3-SPS unterstützt. Zudem muss die TwinCAT 3 Function TF6100 OPC UA auf dem Client-Gerät installiert werden, um den TwinCAT OPC UA Client nutzen zu können, um UA-Methoden auf dem Server in der Cloud auszuführen. Version: 1.8 TS6100...
  • Seite 13 Übersicht Technische Beschreibung Die Realisierung eines OPC UA Servers in der Cloud ist sehr anwendungsspezifisch. Beckhoff stellt eine allgemeine Architekturbeschreibung zur Verfügung, unabhängig von dem Anwendungsfall im Einzelnen. Als Anwendungsbeispiel beschreibt dieser Artikel häufig ein Datenaggregationsszenario, bei dem Prozessdaten von dezentralisierten Clients über OPC UA zu einem zentralen Server übertragen werden, auf welchem die Daten in einer zentralen Datenbank angesammelt werden.
  • Seite 14 Calc_Response) sowie den Aggregator, der den Job verarbeitet (der im Funktionsbaustein implementiert ist) • FB_SpecialHashTableCtrl: Repräsentiert die Queue in Form einer Hash-Tabelle, wie dies durch SPS- Beispiele vom Beckhoff Informationssystem wiedergegeben ist. Hier werden verschieden Methoden zum Umgang mit der Warteschlange gegeben (Hinzufügen, Zählen, GetFirst, GetNext, Lookup, Entfernen, Zurücksetzen).
  • Seite 15 Cloud hostet, nicht nur den Download und das Debugging des SPS-Programms erlauben muss, sondern auch die Aktivierung von Lizenzen für die TwinCAT‑3‑Laufzeit. Beachten Sie, dass Sie die Firewall-Ports öffnen müssen, um ADS-Verkehr zu ermöglichen. In der ADS‑Dokumentation erhalten Sie weitere TS6100 Version: 1.8...
  • Seite 16 Übersicht Informationen. Zur einfacheren Handhabung der TwinCAT‑3‑Laufzeitlizenzen wurde das Tool TC3 License Request Generator entwickelt. Dieses kann über den Beckhoff FTP-Server heruntergeladen werden und ermöglicht die Erstellung von License Request Files und den Import von License Response Files: https://download.beckhoff.com/download/Software/TwinCAT/Unsupported_Utilities/TC3-LicenseGen/ Runtime und Engineering Dies ist das empfohlene Setup-Szenario. Der Server in der Cloud hostet eine TwinCAT 3 Runtime und die entsprechenden Engineering‑Komponenten, um das Debuggen und eine einfachere Handhabung des...
  • Seite 17 TwinCAT-Version TwinCAT 2, TwinCAT 3 TwinCAT-Installationslevel TwinCAT 2 CP, PLC, NC-PTP TwinCAT 3 XAE, XAR, ADS Benötigte TwinCAT-Lizenz TS6100 TwinCAT OPC UA (für TwinCAT 2) TF6100 TC3 OPC UA (für TwinCAT 3) OPC UA Client Technische Daten Beschreibung Betriebssystem Windows 7, 10...
  • Seite 18 Minimale TwinCAT-Version TwinCAT 2, TwinCAT 3 Minimales TwinCAT-Installationslevel TwinCAT 2 PLC, NC-PTP TwinCAT 3 XAE, XAR Benötigte TwinCAT-Lizenz TS6100 TwinCAT OPC UA (für TwinCAT 2) TF6100 TC3 OPC UA (für TwinCAT 3) OPC UA I/O Client Technische Daten Beschreibung Betriebssystem...
  • Seite 19 Nachfolgend wird beschrieben, wie die TwinCAT 3 Function TF6100 OPC UA für Windows-basierte Betriebssysteme installiert wird. ü Die Setup-Datei der TwinCAT 3 Function wurde von der Beckhoff-Homepage heruntergeladen. 1. Führen Sie die Setup-Datei als Administrator aus. Wählen Sie dazu im Kontextmenü der Datei den Befehl Als Administrator ausführen.
  • Seite 20 Installation 2. Akzeptieren Sie die Endbenutzerbedingungen und klicken Sie auf Next. 3. Geben Sie Ihre Benutzerdaten ein. Version: 1.8 TS6100...
  • Seite 21 Installationstyp. Wenn Sie die Komponenten der TwinCAT 3 Function separat installieren möchten, wählen Sie Custom. 5. Wählen Sie Next und anschließend Install, um die Installation zu beginnen. ð Ein Dialog weist Sie darauf hin, dass das TwinCAT-System für die weitere Installation gestoppt werden muss. TS6100 Version: 1.8...
  • Seite 22 Genauso wie viele andere TwinCAT-Ergänzungsprodukte steht OPC UA als 30‑Tage‑Demoversion oder als Vollversion zum Download auf der Beckhoff Homepage www.beckhoff.com zur Verfügung. ü Die Setup-Datei des TwinCAT 2 Supplement wurde von der Beckhoff-Homepage heruntergeladen. 1. Führen Sie die heruntergeladene Setup-Datei TcOpcUaSvr.exe als Administrator aus. Wählen Sie dazu im Kontextmenü...
  • Seite 23 Installation 2. Wählen Sie eine Installationssprache. 3. Klicken Sie auf Weiter und stimmen Sie der Lizenzvereinbarung zu. TS6100 Version: 1.8...
  • Seite 24 Installation 4. Geben Sie Ihre Benutzerinformationen ein. Alle Felder müssen ausgefüllt werden. Wenn Sie eine 30- Tage-Demo installieren möchten, geben Sie bitte „DEMO“ als Lizenzschlüssel ein. Version: 1.8 TS6100...
  • Seite 25 • Vergewissern Sie sich zudem, dass Ihre Firewall den TCP Port 4840 öffnet, weil der OPC UC Server diesen Port benötigt. Installation Windows CE (TC3) Nachfolgend wird beschrieben, wie die TwinCAT 3 Function TF6100 OPC UA auf einem Beckhoff Embedded-PC mit Windows CE installiert wird. • Download der Setup-Datei und Installation [} 26] •...
  • Seite 26 Download der Setup-Datei und Installation Die für Windows CE ausführbare Datei ist Teil des TF6100-OPC-UA-Setups. Dieses wird Ihnen auf der Beckhoff Homepage www.beckhoff.com zur Verfügung gestellt und enthält automatisch alle Versionen für Windows XP, Windows 7 und Windows CE (x86 und ARM).
  • Seite 27 ð Nach dem Neustart ist die neue Version aktiv. Installation Windows CE (TC2) Nachfolgend wird beschrieben, wie das TwinCAT 2 Supplement auf einem Beckhoff Embedded-PC mit Windows CE, z. B. CX1000, CX1020, CX9000, CX9001, CX9010, CX8090, CP62xx, CP69xx, installiert wird.
  • Seite 28 Installation 3. Klicken Sie auf Weiter und stimmen Sie der Lizenzvereinbarung zu. Version: 1.8 TS6100...
  • Seite 29 Installation 4. Geben Sie ihre Benutzerinformationen ein. Alle Felder müssen ausgefüllt werden. Beachten Sie, dass OPC UA für CE derzeit nicht als Demo-Version verfügbar ist. Demzufolge benötigen Sie einen gültigen Lizenzschlüssel, um mit der Installierung fortzufahren. TS6100 Version: 1.8...
  • Seite 30 Setup-Datei stehen Ihnen verschiedene Möglichkeiten zur Verfügung: • über einen freigegebenen Ordner • über den integrierten FTP-Server • über ActiveSync • über eine CF-Karte Weitere Informationen finden Sie im Beckhoff Information System in der Dokumentation „Betriebssysteme“ (Embedded‑PC > Betriebssysteme > CE) Version: 1.8 TS6100...
  • Seite 31 Datei (ARM, I586) für Ihren IPC/Embedded-PC verwenden. 3. Wenn Sie sicher sind, dass die CAB-Datei zum Embedded-PC/IPC passt, bestätigen Sie diesen Meldungsdialog mit Ja. 4. Wählen Sie \Hard Disk\System\ als Zielverzeichnis 5. Klicken Sie auf OK, um die Installation zu starten. TS6100 Version: 1.8...
  • Seite 32 Abschnitte: • Lizenzierung einer 7-Tage Testversion [} 32] • Lizenzierung einer Vollversion [} 34] Weitere Informationen zur TwinCAT‑3‑Lizenzierung finden Sie im Beckhoff Information System in der Dokumentation „Lizenzierung“ (TwinCAT 3 > Lizenzierung). Lizenzierung der 7-Tage-Testversion einer TwinCAT 3 Function Eine 7-Tage-Testversion kann nicht für einen TwinCAT-3-Lizenz-Dongle freigeschaltet werden.
  • Seite 33 ð Es öffnet sich ein Dialog, der Sie auffordert, den im Dialog angezeigten Sicherheitscode einzugeben. 8. Geben Sie den Code genauso ein, wie er angezeigt wird, und bestätigen Sie ihn. 9. Bestätigen Sie den nachfolgenden Dialog, der Sie auf die erfolgreiche Aktivierung hinweist. TS6100 Version: 1.8...
  • Seite 34 10. Starten Sie das TwinCAT-System neu. ð Die 7-Tage-Testversion ist freigeschaltet. Lizenzierung der Vollversion einer TwinCAT 3 Function Die Beschreibung der Lizenzierung einer Vollversion finden Sie im Beckhoff Information System in der Dokumentation „TwinCAT 3 Lizenzierung“. Lizenzierung (TC2) Die Lizenzierung der TwinCAT OPC UA für TwinCAT 2 erfolgt im Rahmen der Installation [} 22] über die Eingabe eines Lizenzschlüssels.
  • Seite 35 Der TwinCAT OPC UA Server stellt standardmäßig eine Verbindung mit der ersten SPS-Laufzeit auf dem lokalen System her und verwendet die entsprechende Symboldatei für den Aufbau des Namensraums. Damit die Symboldatei bereitgestellt wird, müssen Sie den Download der Symboldatei in den Einstellungen des SPS-Projekts aktivieren. TS6100 Version: 1.8...
  • Seite 36 Zur Verbindung mit dem TwinCAT OPC UA Server können Sie den mitgelieferten OPC UA Sample Client verwenden, welcher über das Windows Startmenü aufrufbar ist. Für weiteregehende Tests empfehlen wir jedoch die Verwendung der kostenfrei erhältlichen Software UA Expert von Unified Automation. Version: 1.8 TS6100...
  • Seite 37 Benutzername für den anzulegenden Betriebssystem-Benutzer. Existiert der Benutzer bereits, so versucht der Server einen Test-Login mit dem angegebenen Passwort durchzuführen und übernimmt, falls erfolgreich, den bereits vorhandenen Benutzer in seine Security- Konfiguration. [in] Password Passwort für den Betriebssystem-Benutzer. TS6100 Version: 1.8...
  • Seite 38 Betriebssystems übernommen, wo das maximale Kennwortalter in den Kennwortrichtlinien festgelegt ist. Wenn das maximale Kennwortalter auf 0 steht, laufen Passwörter nicht ab, ansonsten nach der im Betriebssystem angegebenen Anzahl von Tagen. Das folgende Diagramm veranschaulicht diesen Prozess noch einmal in stark vereinfachter Form: Version: 1.8 TS6100...
  • Seite 39 Die folgenden Screenshots zeigen den gesamten Vorgang exemplarisch am Beispiel des OPC UA Clients „UA Expert“. In diesem Beispiel gehen wir davon aus, dass der Benutzer noch nicht im Betriebssystem existiert und somit durch den Server angelegt wird. TS6100 Version: 1.8...
  • Seite 40 Schritt 2: OPC UA Client startet TrustOnFirstUse Der Aufruf der TrustOnFirstUse Methode kann über einen beliebigen OPC UA Client erfolgen, z.B. den UA Expert. Aber auch die Beckhoff-eigenen Konfigurationstools erlauben die Verwendung dieser Initialisierungsschnittstelle. Der TwinCAT OPC UA Configurator (Standalone oder Visual Studio integriert) erkennt beim Herstellen einer Verbindung automatisch einen uninitialisierten Server und ermöglicht die...
  • Seite 41 Schritt 3: OPC UA Client meldet sich am initialisierten Server an Bitte beachten Sie, dass der UA Expert sich nach dem Methodenaufruf nicht automatisch neu mit dem Server verbinden kann, da der Anonymous-Zugriff deaktiviert wurde und von nun an die Anmeldung über den angegebenen Benutzernamen erfolgen muss. TS6100 Version: 1.8...
  • Seite 42 Unsichere Endpunkte deaktivieren Als unsicher eingestufte Endpunkte werden standardmäßig nicht vom TwinCAT OPC UA Server angeboten. Über einen Konfigurationsschalter in der TcUaServerConfig.xml (<AllowDepcrecatedSecurityPolicies>) lassen sich unsichere Endpunkte wieder im Server verfügbar machen, wir empfehlen dieses jedoch ausdrücklich nicht. Version: 1.8 TS6100...
  • Seite 43 Die folgende Grafik stellt den Zusammenhang zwischen diesen beiden Parametern noch einmal anschaulich dar. Es wird hierbei davon ausgegangen, dass der TwinCAT OPC UA Server auf der SPS Steuerung installiert wurde und der OPC UA Client von einem externen System aus auf den Server zugreift. TS6100 Version: 1.8...
  • Seite 44 Hand hat und beim Server anfragt. Und genau hier lassen sich, viele Optimierungen vornehmen, denn beide Parameter haben einen starken Einfluss darauf, wie viel CPU-Zeit der OPC UA Client und Server benötigen, da entsprechend viele Informationen verarbeitet bzw. angefragt werden müssen. Version: 1.8 TS6100...
  • Seite 45 6,9%, siehe folgenden Screenshot vom Windows Performance Monitor. Anschließend wurde das PublishingInterval auf 200ms und das SamplingInterval auf 100ms eingestellt. Die CPU-Auslastung des TwinCAT OPC UA Servers erhöhte sich hierdurch auf einen Durchschnittswert von ca. 19%. TS6100 Version: 1.8...
  • Seite 46 Datenstruktur mit einer Größe von ca. 1 Mbyte. Als PublishingInterval wurde 500ms und als SamplingInterval 250ms gewählt. Die CPU-Auslastung des TwinCAT OPC UA Servers lag nach dem Anlegen der Subscription bei einem Durchschnittswert von ca. 54,6%, siehe folgenden Screenshot vom Windows Performance Monitor. Version: 1.8 TS6100...
  • Seite 47 Variablen aus einer TwinCAT SPS Laufzeit enthält. Der TwinCAT OPC UA Server kann hierbei mehrere Namensräume, also mehrere SPS Laufzeiten darstellen. Damit eine SPS-Variable über den jeweiligen Namensraum erreichbar ist, muss sie im SPS-Programm explizit hierfür freigegeben werden. TS6100 Version: 1.8...
  • Seite 48 Knoten im UA-Namensraum abgebildet. standardmäßig) Stattdessen wird lediglich das Array als ein einzelnes 1 (aktiviert) Element abgebildet. Trotzdem können UA Clients über deren sogenannten „IndexRange“ auf Unterelemente zugreifen. (Einige ältere OPC UA Clients unterstützen diese Möglichkeit noch nicht.) Version: 1.8 TS6100...
  • Seite 49  (OPC_PROP[0005]:1:read-only flag) *) Wegen des zusätzlichen Kommentars OPC.UA.DA.Access wird die Zugriffsebene für die Variable iReadOnly auf „ReadOnly“ gesetzt. Die verschiedenen Möglichkeiten finden Sie in der vollständigen Liste der SPS-Kommentare (siehe Liste der Attribute und Kommentare). TS6100 Version: 1.8...
  • Seite 50 über OPC UA verfügbar sein. Wenn eine ganze Instanz freigegeben wird, sind über OPC UA auch alle ihre Symbole verfügbar. Das SPS-Programm sieht wie folgt aus: TwinCAT 3 (mit TMC-Import): PROGRAM MAIN     {attribute 'OPC.UA.DA' := '1'}     fbTest1 : FB_BLOCK1;     fbTest2 : FB_BLOCK1; END_VAR FUNCTION_BLOCK FB_BLOCK1 VAR_INPUT     {attribute 'OPC.UA.DA' := '1'}     ni1 : INT;     ni2 : INT; END_VAR VAR_OUTPUT     {attribute 'OPC.UA.DA' := '1'}     no1 : INT;      no2 : INT; END_VAR     {attribute 'OPC.UA.DA' := '1'}     nx1 : INT;     nx2 : INT; END_VAR TwinCAT 2 (mit TPY-Import): Version: 1.8 TS6100...
  • Seite 51 Symbolinformationen werden standardmäßig automatisch in eine Symboldatei generiert. Diese befindet sich im Projektordner des entsprechenden TwinCAT‑Projekts. Damit die Symboldatei in die Ziel- Laufzeit übertragen wird, aktivieren Sie den Download der Symboldatei in den Einstellungen des SPS‑Projekts. TwinCAT 3: TwinCAT 2: TS6100 Version: 1.8...
  • Seite 52 • Sie haben eine Datenstruktur bei der Definition aktiviert und möchten z. B. eine einzelne Instanz dieser Datenstruktur ausblenden (Beispiel 2). Beispiel 1: {attribute 'OPC.UA.DA' := '1'} TYPE ST_TEST : STRUCT     a : INT;     {attribute 'OPC.UA.DA' := '0'}     b : DINT; END_STRUCT END_TYPE PROGRAM MAIN Version: 1.8 TS6100...
  • Seite 53 Je nach Umfang des SPS-Projekts gewinnt der UA-Namensraum hierdurch deutlich an Komplexität, was sich wiederum in einer erhöhten Speicherauslastung des UA Servers widerspiegelt. Eine Änderung der oben genannten Einstellungen wird erst aktiv, wenn Sie den UA Server neu starten. TS6100 Version: 1.8...
  • Seite 54 Der Funktionsbaustein an dem das Property definiert ist, muss das normale SPS Attribut zur Freigabe von Symbolen [} 47] enthalten. In der Konfigurationsdatei TcUaDaConfig.xml kann global das Handling von SPS Properties festgelegt werden. Hierzu dient das Flag „ImportPlcProperties“. Version: 1.8 TS6100...
  • Seite 55 Werden in der Struktur Pointer- und Referenztypen verwendet, dann können diese nicht in einen StructuredType überführt werden. Der OPC UA Server stellt diese Strukturen dann als reguläre FolderTypes mit der entsprechenden Membervariablen dar. Die Instanz stCommunication wird dann im UA-Namensraum als StructuredType angezeigt, inklusive aller Membervariablen: TS6100 Version: 1.8...
  • Seite 56 Zusätzlich enthält jeder Funktionsbaustein der TwinCAT 3 SPS auch einen Kindknoten FunctionBlock, der den gesamten Funktionsbaustein als StructuredType beinhaltet. Beispiel: Funktionsbaustein: FUNCTION_BLOCK FB_FunctionBlock VAR_INPUT   Input1 : INT;   Input2 : LREAL; END_VAR VAR_OUTPUT   Output1 : LREAL; END_VAR Instanz des Funktionsbausteins: Version: 1.8 TS6100...
  • Seite 57 Datei TcUaDaConfig.xml ändern. Dazu muss der Schlüssel <MaxStructureSize> in der Datei hinzugefügt und ein neuer Wert für die maximale Größe einer Struktur in Bytes festgelegt werden. Wenn eine Struktur die Größe <MaxStructureSize> überschreitet, wird sie als FolderType importiert, wo jedes Strukturelement als einzelner Knoten verfügbar ist. TS6100 Version: 1.8...
  • Seite 58 Pointervariablen (z.B. POINTER TO) werden grundsätzlich nicht vom Server im Namensraum dargestellt. Falls sich eine Pointervariable in einer Struktur befindet und diese als Structured Data Type [} 55] konfiguriert wurde, so wird die Struktur nicht als Structured Data Type sondern als FolderType dargestellt. Version: 1.8 TS6100...
  • Seite 59 Das Typsystem ist ebenfalls virtuell verfügbar und kann im Bereich Types des OPC UA Servers eingesehen werden: Jeder Nicht-Standarddatentyp wird im Bereich BeckhoffCtrlTypes eingetragen. Grundlagen Angenommen, die TwinCAT 3 SPS besteht aus einem SPS-Programm mit verschiedenen STRUCTs. Jeder STRUCT wird als Knoten in einem UA-Namensraum repräsentiert, mit jedem Element der Struktur als untergeordneten Knoten. TS6100 Version: 1.8...
  • Seite 60 Werte durch Interpretation des ByteString gelesen/geschrieben werden. Damit die Interpretation jedes untergeordneten Elements vereinfacht wird, enthält das Typsystem mehr Informationen über die Struktur selbst, in erster Linie in der Referenz zur Instanz: Außerdem enthält das Typsystem mehr Informationen über ST_SampleStruct: Und in den Referenzen von ST_SampleStruct: Version: 1.8 TS6100...
  • Seite 61 Erweiterungen der IEC61131-3 verwendet werden. Das MAIN-Programm enthält nun die folgenden Deklarationen: PROGRAM MAIN   {attribute 'OPC.UA.DA':='1'}   Scanner1 : Scanner;   {attribute 'OPC.UA.DA':='1'}   Scanner2 : Scanner;   {attribute 'OPC.UA.DA':='1'}   DriveX : Drive; END_VAR Alle drei Objekte sind vom Typ Device, aber auch von ihrem speziellen Datentyp. Der OPC UA Server importiert die Objekte wie folgt: TS6100 Version: 1.8...
  • Seite 62 STRUCT enthält die Variable selbst und eine Variable vom Datentyp DINT, die den StatusCode darstellt und auf die im Attribut vor der STRUCT‑Definition verwiesen wird. {attribute 'OPC.UA.DA.STATUS' := 'quality'} TYPE ST_StatusCodeOverride : STRUCT   value  : REAL;   quality: DINT; END_STRUCT END_TYPE Version: 1.8 TS6100...
  • Seite 63 BadCommunicationError 0x80050000 -2147155968 BadTimeout 0x800A0000 -2146828288 BadServiceNotSupported 0x800B0000 -2146762752 UA StatusCodes Beachten Sie bei der Berechnung der dezimalen Darstellung anderer UA StatusCodes auf der Grundlage ihrer hexadezimalen Darstellung, dass Ihr Rechner auf DWORD eingestellt ist, z. B. der Windows-Rechner („Programmierer“-Ansicht). TS6100 Version: 1.8...
  • Seite 64 Data Access (DA) {attribute Name: OPC.UA.DA.Alias Bestimmt x als 'OPC.UA.DA.Alias' := '1'} Knotennamen im Wert: siehe rechte Spalte UA‑Namensraum, sogenanntes Alias Mapping. Data Access (DA) {attribute Name: Setzt einen Text für das 'OPC.UA.DA.Description' := OPC.UA.DA.Description OPC-UA-Attribut 'x'} „Description“. Version: 1.8 TS6100...
  • Seite 65 UA‑Namensraum nicht mehr sichtbar ist. Data Access (DA) (*~ (OPC:1:available) *) Aktiviert eine Variable für OPC UA, woraufhin diese im UA‑Namensraum sichtbar wird. Dieses Tag muss immer gesetzt sein, wenn eine Variable für UA verwendet werden soll. TS6100 Version: 1.8...
  • Seite 66 • Schritt 2: UA-Server konfigurieren [} 67] Schritt 1: Projektbezogene Einstellungen Um bestimmte, in einer Instanz eines C++‑Moduls enthaltene Symbole so zu konfigurieren, dass sie über OPC UA zugänglich werden, sind folgende Einstellungen in der entsprechenden C++-Modulinstanz in TwinCAT XAE erforderlich. Version: 1.8 TS6100...
  • Seite 67 „CPP TwinCAT 3 (TMI) gefiltert“ hinzu. Das Feld SymbolFile muss auf die TMI-Datei zeigen, die für die C+ +‑Modulinstanz erzeugt wurde. Diese TMI-Datei befindet sich im TwinCAT‑Bootverzeichnis, z. B. C: \TwinCAT\3.1\Boot\Tmi, und wurde nach der ObjectID der TwinCAT‑3‑C++‑Modulinstanz benannt. Die einstellbaren Parameter beschreiben die folgenden Funktionen: TS6100 Version: 1.8...
  • Seite 68 Positionen über den sogenannten „RangeOffset“ zugreifen. Damit jedoch auch ältere UA Clients unterstützt werden, welche dieses Feature nicht bieten, können Sie die Positionen eines Arrays auch als einzelne Knoten im UA-Namensraum verfügbar machen. Dies stellt sich wie folgt dar: Version: 1.8 TS6100...
  • Seite 69 Sie konfigurieren den Import von TMI-Dateien im OPC‑UA‑Konfigurator. TMI-Datei für TcCOM-Module generieren und importieren Damit eine TMI-Datei generiert wird und TwinCAT automatisch die TMI-Datei zum Zielsystem kopieren kann, aktivieren Sie in den Einstellungen des TcCOM-Moduls die Option Copy TMI to Target. TS6100 Version: 1.8...
  • Seite 70 Technische Einführung Nach Aktivierung des Projekts enthält das Bootverzeichnis des Zielsystems die TMI-Datei für das TcCOM- Modul. Diese können Sie dann mithilfe des OPC-UA-Konfigurators in den OPC-UA-Namensraum importieren. Der konfigurierte OPC‑UA‑Namensraum enthält dann eine Repräsentation des Matlab/ Simulink‑Blockdiagramms: Version: 1.8 TS6100...
  • Seite 71 Wenn eine generische TcCOM‑Modulinstanz (z. B. ein Matlab/Simulink-Modul) importiert werden soll, muss die ungefilterte Option verwendet werden und daher werden alle Symbole der Module im OPC‑UA‑Namensraum veröffentlicht. 4.1.6.4 I/O Task In diesem Abschnitt wird beschrieben, wie Sie IO‑Taskvariablen über die Datenzugriffsfunktionen des TwinCAT OPC UA Servers zugänglich machen. TS6100 Version: 1.8...
  • Seite 72 Geräte noch nicht ans Netzwerk angeschlossen sind. Die folgenden Schritte beschreiben, wie Sie Variablen von einem I/O‑Task in den UA-Namensraum importieren können. Hierbei wird vorausgesetzt, dass sich der OPC UA Server und die Laufzeit sich auf dem gleichen Computer befinden. Version: 1.8 TS6100...
  • Seite 73 Starten Sie, nachdem Sie die entsprechenden Eigenschaften eingestellt haben, den OPC UA Server neu, damit die Einstellungen aktiv werden. 4.1.7 Historical Access In diesem Abschnitt werden die notwendigen Schritte zur Konfiguration der Variablen im Namensraum des OPC UA Servers für Historical Access (HA) beschrieben. TS6100 Version: 1.8...
  • Seite 74 Das Attribut HistoryWriteable="true" bewirkt, dass der Datenspeicher für diese Node über einen Aufruf HistoryUpdate() mit Werten befüllt werden kann. Ein solcher Aufruf wird z. B. von dem TwinCAT OPC UA Client über den Funktionsbaustein UA_HistoryUpdate zur Verfügung gestellt. Wenn Sie einen Node mit Version: 1.8 TS6100...
  • Seite 75 4.1.7.1 Historische Daten anzeigen Historical-Access-Werte in einem OPC UA Client anzeigen Die folgende Schritt-für-Schritt-Anleitung beschreibt, wie Sie die UA-Expert-Software konfigurieren, um auf historische Daten zuzugreifen. 1. Starten Sie die UA-Expert-Software und stellen Sie eine Verbindung mit dem OPC UA Server her. TS6100 Version: 1.8...
  • Seite 76 Technische Einführung 2. Fügen Sie eine neue „History Trend Ansicht“ hinzu. 3. Durchsuchen Sie den PLC1-Namensraum und fügen Sie die SPS-Variablen _HistoryDB, _HistoryDBcompact, _HistoryFast und _HistorySlowPersist per Drag-and-drop hinzu. Version: 1.8 TS6100...
  • Seite 77 Die folgenden Voraussetzungen gelten für die Verwendung von OPC UA Alarms and Conditions: • Das zu überwachende Laufzeitsymbol muss im Namensraum verfügbar sein. • Der OPC UA Client muss Alarms and Conditions unterstützen. In diesem Abschnitt wird der UA Expert (von Unified Automation) als Referenz‑UA‑Client verwendet. TS6100 Version: 1.8...
  • Seite 78       <LimitAlarmType LowLowLimit="-10" LowLimit="0" HighLimit="10" HighHighLimit="20" MessageNormal="100" MessageLowLow="10" MessageLow="11" MessageHigh="12" MessageHighHigh="13"/>       <ItemToMonitor SamplingRate="100" NS="urn:[NodeName]:BeckhoffAutomation:Ua:PLC1" NodeId="s=MAIN.stStruct" />     </Condition>   </ConditionController>   <ConditionController Name="ConditionController2" >     <Condition Name="Counter2" Severity="200">       <LimitAlarmType LowLowLimit="-10" LowLimit="0" HighLimit="10" HighHighLimit="20" MessageNormal="100" MessageLowLow="10" MessageLow="11" MessageHigh="12" MessageHighHigh="13"/>       <ItemToMonitor SamplingRate="100" NS="urn:[NodeName]:BeckhoffAutomation:Ua:PLC1" NodeId="s=MAIN.nCounter2" /> Version: 1.8 TS6100...
  • Seite 79   {attribute 'OPC.UA.DA' := '1'}   {attribute 'OPC.UA.DA.StructuredType' := '1'}   stCustomStruct : ST_CustomStruct; END_VAR Bei der Anmeldung bei einem ConditionController müssen die OPC UA Clients besondere AlarmConditionTypes, sogenannte „BkUaLimitAlarmType“ und „BkUaOffNormalAlarmType“, abonnieren, damit sie die besonderen Benutzerdatenfelder beim Eingang eines Alarms empfangen können. TS6100 Version: 1.8...
  • Seite 80 Alarms. Im obigen Beispiel sind das der Wert der SPS-Variablen sowie die Benutzerdaten, die mit der SPS-Struktur ST_SomeStruct dargestellt werden. Schritt 4: Ereignis über die FireEvent-Methode auslösen Jeder ConditionController umfasst eine FireEvent-Methode, mit der die OPC UA Clients ein allgemeines Ereignis mit benutzerdefinierten EventFields auslösen können. Version: 1.8 TS6100...
  • Seite 81 Wenn die Methode ausgeführt wird, dann wird ein Ereignis auf dem OPC UA Server ausgegeben. Andere OPC UA Clients können diese Ereignisse empfangen, wenn sie den entsprechenden ConditionController abonnieren. Die benutzerdefinierten EventFields werden als „UserEventData“ an das Ereignis angehängt. Diese Daten können von OPC UA Clients empfangen werden, die beim SimpleEventType „UserEventType“ angemeldet sind. TS6100 Version: 1.8...
  • Seite 82 ConditionController konfiguriert sind. Der UA Expert stellt Funktionen zur Verfügung, um UA-Ereignisse zu abonnieren und zu empfangen. Nachdem Sie den UA Expert gestartet und eine Verbindung zum OPC UA Server hergestellt haben, fügen Sie Ihrem Arbeitsbereich eine neue Dokumentenansicht Event View hinzu. Version: 1.8 TS6100...
  • Seite 83 Auch wenn die SPS-Methode eine normale Methode im UA-Namensraum zu sein scheint, ist sie immer noch eine IEC61131-Methode, die innerhalb des Echtzeit-Kontexts ausgeführt wird und somit unter den Kontext einer Echtzeit-Task fällt. Der SPS-Entwickler muss daher Vorsichtsmaßnahmen treffen, sodass die Ausführungszeit der Methode in die Task-Zykluszeit passt. TS6100 Version: 1.8...
  • Seite 84 Pointer-Variablen, die als VAR_IN_OUT definiert wurden, werden weder von der SPS noch vom TwinCAT OPC UA Server behandelt. Ein entsprechendes Trace-Ereignis wird in den Server-Trace geschrieben. 08:47:37.677Z|1|11A0* Fehler beim Importieren der Methode 'METH_PArray': VAR_IN_OUT Zeigervariablen sind nicht erlaubt! Version: 1.8 TS6100...
  • Seite 85 TwinCAT‑Module können Schnittstellen implementieren, die über vordefinierte Methoden verfügen (siehe TcCOM‑Module). Die Methode selbst muss für RPC-Aufrufe während ihrer Definition aktiviert sein (siehe Dokumentation TwinCAT Module Class Wizard), sodass der OPC UA Server weiß, dass sie zur Ausführung bereitsteht. TS6100 Version: 1.8...
  • Seite 86 ByteStrings als einfache Variablen modelliert werden. FileType ist eine Datei mit Methoden zum Zugriff auf die Datei. In der OPC‑UA‑Spezifikation erhalten Sie weitere Informationen zu FileType sowie Aufbau und Handhabung der zugrunde liegenden Methoden und Eigenschaften zum Zugriff auf eine Datei im OPC‑UA‑Namensraum. Version: 1.8 TS6100...
  • Seite 87 Technische Einführung Beckhoff hat einen generischen Weg implementiert, um Dateien und Ordner von einer lokalen Festplatte in den OPC‑UA‑Namensraum zu laden. Jede Datei wird durch einen FileType repräsentiert und ermöglicht Lese- und Schreibvorgänge für diese Datei. Zusätzlich enthält jeder Ordner eine Methode CreateFile(), um neue Dateien auf der Festplatte zu erstellen und einen eigenen FolderPath, um den tatsächlichen Pfad zum...
  • Seite 88 Bei diesem Modell beinhaltet der Server ein standardisiertes Interface, welches ein GDS Client verwenden kann, um sich im Auftrag des Servers mit einem Global Discovery Service zu verbinden, dort die Serverapplikation zu registrieren und ein Server-Zertifikat inklusive der aktuellen CRL anzufordern. Das Zertifikat wird dann auf dem Server aktiviert. Version: 1.8 TS6100...
  • Seite 89 Bei diesem Modell stellt der Server eigenständig eine Verbindung zum Global Discovery Service her, registriert sich dort als Serverapplikation und bezieht ein passendes Serverzertifikat. Der TwinCAT OPC UA Server bietet über seinen Konfigurations-Namensraum die Möglichkeit, die GDS Pull Funktionen zu aktivieren und zu konfigurieren. TS6100 Version: 1.8...
  • Seite 90 Global Discovery Service registriert wurde und ein Zertifikat von diesem erhalten hat. Die Variable CrlState gibt den Status der Certificate Revocation List an und ob diese vom GDS bezogen werden konnte. Die Methode erwartet die folgenden Eingabeparameter: Version: 1.8 TS6100...
  • Seite 91 ForceRemove Falls die Verbindung zum Global Discovery Service nicht mehr zur Verfügung steht, kann durch das Setzen dieses Eingabeparameter die Verbindung zum GDS entfernt werden. Der TwinCAT OPC UA Server entfernt hierbei den GDS aus seiner Konfiguration. TS6100 Version: 1.8...
  • Seite 92 Zur Konfiguration des Servers für eine Verbindung mit dem Eventlogger, müssen Sie im Serververzeichnis eine neue Konfigurationsdatei mit dem Namen „TcUaEventlogConfig.xml“ anlegen. Diese Datei beinhaltet eine Liste mit TwinCAT Eventlogger-Geräten, welche anhand ihrer AMS NetID identifiziert werden. Die Konfiguration hat hierbei den folgenden Aufbau: Version: 1.8 TS6100...
  • Seite 93 Beim Subscriben auf das Objekt und den Empfang von Alarmen oder Events muss ein Client berücksichtigen, dass hierbei spezifische Objekttypen verwendet werden. Die jeweiligen Typen sind wie folgt definiert. TcEventLoggerEventType Der TcEventLoggerEventType ist abgeleitet vom BaseEventType und erweitert diesen mit TwinCAT Eventlogger-spezifischen Properties: TS6100 Version: 1.8...
  • Seite 94 Das folgende Beispiel basiert auf dem Standard Code-Sample vom TwinCAT Eventlogger, welches aus dem Beckhoff Information System bezogen werden kann. Dieses Sample beinhaltet Code Snippets für die SPS, mit welchen man sowohl ein Event als auch einen Alarm feuern kann.
  • Seite 95 Technische Einführung Damit die TwinCAT Eventlogger-spezifischen Properties empfangen werden können, muss der UA Expert den entsprechend Event- bzw. AlarmType filtern. Sie finden den TcEventLoggerEventType bzw. TcEventLoggerAlarmConditionType in der Typliste des Event View. Beispiel: TS6100 Version: 1.8...
  • Seite 96 Im TwinCAT Eventlogger Sample setzen wir nun die Variable bSend auf den Wert TRUE, um ein Event abzufeuern. Der UA Expert empfängt dieses Event automatisch und zeigt es im Event View mitsamt der TwinCAT Eventlogger spezifischen Properties an. Version: 1.8 TS6100...
  • Seite 97 Alarm abzufeuern. Der UA Expert empfängt diesen Alarm automatisch und zeigt ihn im Event View mitsamt der TwinCAT Eventlogger-spezifischen Properties an. Zusätzlich wird der Alarm als eigenes Objekt im Namespace unterhalb des Eventlogger Geräts angezeigt. Schritt 6: Quittieren eines Alarms TS6100 Version: 1.8...
  • Seite 98 Verwendung von Client/Server Zertifikaten und eine gegenseitige Vertrauensstellung zwischen Client- und Serverapplikation. Hierbei muss der Client dem Server-Zertifikat vertrauen und umgekehrt, damit eine Kommunikationsverbindung hergestellt werden kann. Hierfür ist ein gegenseitiger Zertifikatsaustausch [} 102] notwendig. Version: 1.8 TS6100...
  • Seite 99 Die verfügbaren Endpunkte orientieren sich an der Sicherheit der Security-Mechanismen. Werden Security- Profile durch den Lauf der Zeit als potenziell unsicher eingestuft, werden sie standardmäßig nicht mehr im TwinCAT OPC UA Server eingesetzt, sondern durch neuere und sichere Verschlüsselungsalgorithmen ersetzt. TS6100 Version: 1.8...
  • Seite 100 Alle in der Liste aufgeführten Endpunkte können über die Konfiguration des Servers aktiviert oder deaktiviert werden. In der folgenden Abbildung sind alle Endpunkte aktiviert. 4.1.13.3 Authentifizierung Eine OPC UA Client Applikation kann sich über verschiedene IdentityToken am Server authentifizieren: • Anonymous • Benutzername/Password • Benutzerzertifikat Version: 1.8 TS6100...
  • Seite 101 Domäne ist) Empfehlung bei Verwendung von User IdentityToken Sollen User IdentityToken zur Authentifzierung von Client-Applikationen verwendet werden, so empfehlen wir die Verwendung von Betriebssystem-Benutzern. Im Folgenden finden Sie einen Beispiel-Screenshot aus der OPC UA Client Applikation "UA Expert": TS6100 Version: 1.8...
  • Seite 102 Für eine Absicherung der Kommunikationsverbindung auf Transportebene über einen sicheren Endpunkt [} 99] ist die Herstellung einer gegenseitigen Vertrauensstellung zwischen Client und Server notwendig. Standardmäßig generieren sowohl der TwinCAT OPC UA Server als auch der TwinCAT OPC UA Client beim ersten Start ein maschinenspezifisches, selbstsigniertes Zertifikat zur Authentifizierung der jeweiligen Applikation. Version: 1.8 TS6100...
  • Seite 103 Benutzeridentitäten [} 100]. Diese Zugriffsrechte können sowohl für ganze Namespaces als auch auf individuelle Nodes konfiguriert werden. Hierdurch kann sowohl der Zugriff auf ADS-Geräte (z. B. auf verschiedene SPS‑Laufzeiten) als auch Variablen feingranular eingestellt werden. Diese Sicherheitseinstellungen sind für alle ADS-Geräte verfügbar, die im Server-Namespace dargestellt werden können. TS6100 Version: 1.8...
  • Seite 104 „Port Forwarding“). Standardmäßig wird der TwinCAT OPC UA Server für eine UA-Kommunikation über den TCP-Port 4840 konfiguriert, diese Konfiguration kann jedoch bei Bedarf über die Server-Konfigurationsdatei oder den OPC‑UA‑Konfigurator selbst angepasst werden. Die folgende Abbildung verdeutlicht den Zusammenhang von Port Forwarding und dem UA Server. Version: 1.8 TS6100...
  • Seite 105 NAT-Geräts für ein Port Forwarding entnehmen Sie bitte dessen Dokumentation. 4.1.14.2 Namespace zur Konfiguration des Servers Ab der Serverversion 2.1.x bietet der TwinCAT OPC UA Server einen sogenannten Konfigurationsnamensraum welcher die folgenden Funktionalitäten enthält: • Verwaltung der Serverkonfigurationsdateien • Verwaltung der Zertifikate TS6100 Version: 1.8...
  • Seite 106 Wenn sich das Gerät in einem ERROR Zustand befindet, dann liefert das ErrorCode Property folgende Werte: #define UA_DEVSTATE_INVALID_STATE 0x80EB0010 #define UA_DEVSTATE_CREATE_NS_FAILED 0x80EB0011 #define UA_DEVSTATE_LOAD_NS_FAILED 0x80EB0012 #define UA_DEVSTATE_INVALID_IO_SETTING 0x80EB0100 Eine entsprechend lesbare Fehlermeldung wird dann im ErrorMessage Property dargestellt. Version: 1.8 TS6100...
  • Seite 107 Serverzertifikat zum Herstellen der Vertrauensstellung konfigurieren. 4.1.14.5 DI Components Jeder SPS Namensraum auf dem Server beinhaltet eine Anzahl an Nodes, über welche sich statische Metainformationen zur SPS angeben lassen. Diese optionalen Informationen können in der TcUaDaConfig.xml für jeden Namenraum angegeben werden. TS6100 Version: 1.8...
  • Seite 108 Hardwarekomponente oder des gesamten Geräts. HardwareRevision Beinhaltet den Revisions-Level der Hardware. Manufacturer Beinhaltet den Namen des Geräteherstellers, üblicherweise als FQDN (Fully Qualified Domain Name), z.B. beckhoff.com. Model Beinhaltet den Namen des „Produkts“ (falls anwendbar). RevisionCounter Kann einen Zähler beinhalten, wie oft die Konfiguration des Geräts aktualisiert wurde.
  • Seite 109 Beide Varianten sind Bestandteil des TwinCAT OPC UA Configurator Setups und ermöglichen eine Online- Konfiguration des TwinCAT OPC UA Servers indem sie sich per OPC UA mit dem Server verbinden und dessen Konfigurationsdateien editieren. Dieser Zusammenhang ist in folgendem Schaubild noch einmal dargestellt. TS6100 Version: 1.8...
  • Seite 110 Das TF6100‑Setup (Version 4.x.x und höher) beinhaltet die aktuellste Version des OPC‑UA‑Server‑Konfigurators. Dieser wurde für ein durchgängiges und einheitliches Engineering-Konzept in Microsoft Visual Studio als eigener Projekttyp integriert. Sie können alle unterschiedlichen Facetten vom TwinCAT OPC UA Server konfigurieren und hierbei auch Source‑Control‑Mechanismen wie z. B. Team Foundation Server oder Subversion-Integrationen verwenden. Version: 1.8 TS6100...
  • Seite 111 IPC oder CX (x86, x64, ARM) 4.2.1.2 Neues Projekt anlegen Das Projektpaket vom OPC‑UA‑Konfigurator bindet sich in das sogenannte Connectivity-Paket ein. Sie können dieses beim Anlegen eines neuen Visual‑Studio‑Projekts auswählen. Projektvorlage „TwinCAT Connectivity Project“: Projektvorlage „TwinCAT OPC-UA Server Project”: TS6100 Version: 1.8...
  • Seite 112 Der OPC‑UA‑Konfigurator ermöglicht die vollständige Parametrierung des Servers über OPC UA. Ähnlich wie im TwinCAT‑XAE‑System können Sie über die Symbolleiste einen OPC-UA-Server auswählen, mit dem Sie sich verbinden wollen. Fügen Sie hierfür zunächst die entsprechende Toolbar zu Ihrer Visual Studio Oberfläche hinzu. Version: 1.8 TS6100...
  • Seite 113 Technische Einführung Anschließend können Sie über den Eintrag Edit Serverlist in der DropDownBox der Toolbar eine oder mehrere Serververbindungen hinzufügen. TS6100 Version: 1.8...
  • Seite 114 Hinweis zur Server-Initialisierung. Dieser Vorgang ist im Artikel zur Durchführung der Server-Initialisierung [} 115] näher beschrieben. Voraussetzungen Produkte Setup-Versionen Zielplattform TF6100 4.x.x IPC oder CX (x86, x64, ARM) Sehen Sie dazu auch 2 Namespace zur Konfiguration des Servers [} 105] Version: 1.8 TS6100...
  • Seite 115 Neue ADS-Geräte fügen Sie der Konfiguration über den Kontextmenübefehl Add new Device Type hinzu. Nach Ausführung des Befehls öffnet sich ein Dialogfenster, in dem Sie die Verbindungsparameter für dieses Gerät konfigurieren können, z. B. AMS Net ID, ADS-Port oder auch die Symboldatei. TS6100 Version: 1.8...
  • Seite 116 Symboldatei auswählen Auf dem ausgewählten Zielgerät vorhandene Symboldateien können direkt eingelesen werden. Die Symboldateien können dabei entweder im TwinCAT‑Bootverzeichnis oder im Symbolverzeichnis des OPC UA Servers hinterlegt sein. Über den entsprechenden Dialog bei der Symboldatei-Konfiguration können Sie die Dateien selektieren. Version: 1.8 TS6100...
  • Seite 117 Der TwinCAT OPC UA File Explorer kann entweder mit dem lokalen TwinCAT‑Verzeichnis oder dem Remote‑Bootverzeichnis verbunden werden. Letzteres wird über den Configuration-Namespace des Servers eingelesen (siehe Namespace zur Konfiguration des Servers [} 105]). Voraussetzungen Produkte Setup-Versionen Zielplattform TF6100 4.x.x IPC oder CX (x86, x64, ARM) TS6100 Version: 1.8...
  • Seite 118 Siehe auch: Verbinden mit einem Server [} 112] Teilkonfiguration öffnen Über den Befehl Read Configuration from Target im Kontextmenü einer bestimmten Facette der Konfiguration können Sie die Teilkonfiguration vom selektierten Zielgerät öffnen. Siehe auch: Verbinden mit einem Server [} 112] Version: 1.8 TS6100...
  • Seite 119 Die Befehle des Kontextmenüs ermöglichen den Import/Export von Konfigurationsdateien des OPC UA Servers. Teilkonfiguration importieren Über den Befehl Import UA Configuration im Kontextmenü einer bestimmten Facette der Konfiguration können Sie die Teilkonfiguration (z. B. Historical Access) aus einer XML-Konfigurationsdatei importieren. TS6100 Version: 1.8...
  • Seite 120 Technische Einführung Teilkonfiguration exportieren Über den Befehl Export UA Configuration im Kontextmenü einer bestimmten Facette der Konfiguration können Sie die Teilkonfiguration (z. B. Historical Access) in eine XML-Konfigurationsdatei exportieren. Version: 1.8 TS6100...
  • Seite 121 Die Variablen müssen zum Zeitpunkt des Engineerings bereits auf dem selektierten OPC UA Server vorliegen. Zur Selektion der Variablen können Sie den integrierten OPC UA Target Browser verwenden und die Variablen aus dem Target Browser per Drag-and-drop zum History Adapter hinzufügen. TS6100 Version: 1.8...
  • Seite 122 Condition angelegt, welche die Parameter für die Überwachung spezifiziert. Die Variablen müssen zum Zeitpunkt des Engineerings bereits auf dem selektierten OPC UA Server vorliegen. Zur Selektion der Variablen können Sie den integrierten OPC UA Target Browser verwenden und die Variablen aus dem Target Browser per Drag-and-drop zum Condition Controller hinzufügen. Version: 1.8 TS6100...
  • Seite 123 Anschließend müssen Sie die Alarmtexte definieren, die beim Triggern einer Condition an den OPC UA Client versendet werden sollen. Wie Sie Alarmtexte anlegen, wird im Abschnitt Alarmtexte konfigurieren [} 125] beschrieben. Die Alarmtexte können Sie per Drag-and-drop auf den jeweiligen Schwellenwert einer Condition ziehen. TS6100 Version: 1.8...
  • Seite 124 Bei einem Alarmtyp Limit definieren Sie unterschiedliche Schwellenwerte, bei deren Erreichen ein Alarm verschickt werden soll. Die folgende Tabelle beschreibt die verschiedenen Schwellenwerte anhand einer Beispielkonfiguration. Zustand Beispiel-Schwellwerte Zugehöriger Wertebereich (INT) HighHigh 5000 5000-32767 High 2000 2000-4999 Normal 1000-1999 1000 500-999 LowLow -32768-499 Version: 1.8 TS6100...
  • Seite 125 Alarms and Conditions [} 122] verwendet werden. Die Konfiguration der Alarmtexte erfolgt in der Facette Resources. Jeder Alarmtext wird durch eine eindeutige ID identifiziert. Dieser ID können dann mehrere Sprachtexte zugeordnet werden. Über den Befehl Add new Resource Item im Kontextmenü können Sie sogenannte „Resource Items“ anlegen. TS6100 Version: 1.8...
  • Seite 126 Technische Einführung Über den Befehl Add new Language Item im Kontextmenü eines „Resource Items“ fügen Sie diesem neue Sprachelemente („Language Items“) hinzu. Version: 1.8 TS6100...
  • Seite 127 Sprache. Wenn Sie die Sprache festlegen, wird automatisch die zugehörige LocaleID gesetzt. Die LocaleID wird vom OPC UA Client angefordert, um anzugeben, in welcher Sprache er Alarmtexte erwartet. Voraussetzungen Produkte Setup-Versionen Zielplattform TF6100 4.x.x IPC oder CX (x86, x64, ARM) TS6100 Version: 1.8...
  • Seite 128 4.2.1.12 Vertrauensstellung für Zertifikate Die auf dem Server vorhandenen Client-Zertifikate können über den Konfigurator komfortabel verwaltet werden. In den Projekteinstellungen können Sie die Zertifikate in der Registerkarte UA Endpoints im Bereich Client certificates als vertrauenswürdig einstufen oder verweigern. Version: 1.8 TS6100...
  • Seite 129 Der OPC UA Server ermöglicht die Konfiguration von Berechtigungen auf Namespace- und Node-Ebene. Hierdurch kann sowohl der Zugriff auf ADS-Geräte (z. B. auf verschiedene SPS‑Laufzeiten) als auch Variablen feingranular eingestellt werden. Diese Sicherheitseinstellungen sind für alle ADS-Geräte verfügbar, die im Server-Namespace dargestellt werden können. TS6100 Version: 1.8...
  • Seite 130 Um eine einfachere Konfiguration mit mehreren Benutzeraccounts zu ermöglichen, können Sie die Benutzer in Gruppen zusammenfassen. Gruppen können ebenfalls mit einem Tag <DefaultAccess> konfiguriert werden. Über das Attribut MemberOf können Sie Gruppen verschachteln. Bei Mitgliedschaft in mehreren Gruppen trennen Sie die Gruppen durch ein Semikolon. Version: 1.8 TS6100...
  • Seite 131 AccessInfos können per Drag-and-drop von Variablen aus dem Target Browser konfiguriert werden. Die konfigurierbaren Berechtigungen sind kumulativ. Beispielkonfiguration Gegeben sei folgendes einfaches Steuerungsprogramm. Die Variablen sind bereits im OPC-UA-Namespace des Servers veröffentlicht. Der OPC UA Server befindet sich zunächst im Auslieferungszustand. TS6100 Version: 1.8...
  • Seite 132 Benutzer soll hierbei nicht aus dem Betriebssystem kommen, sondern nur intern im Server verwendet werden. • Über eine Gruppe "Users" sollen allgemeine Zugriffsberechtigungen für alle Benutzer konfiguriert werden. Einstellungen Die Konfiguration des OPC UA Server wird wie folgt eingestellt: Version: 1.8 TS6100...
  • Seite 133 Technische Einführung Einstellungen für den Benutzer „Administrator“: Einstellungen für den Benutzer „User1“: Einstellungen für den Benutzer „User2“: TS6100 Version: 1.8...
  • Seite 134 Technische Einführung Einstellungen Access Infos „MAIN.Instance1“: Einstellungen Access Infos „MAIN.Instance2“: Version: 1.8 TS6100...
  • Seite 135 Die Benutzergruppe wird sowohl mit grundlegendem Zugriff auf benötigte Server- und Typsystem- Namensräume ausgestattet als auch mit Read- und Browse-Berechtigungen auf den PLC1-Namensraum. Ergebnis Nach Aktivierung der Konfiguration stellt sich der Namensraum des Servers für „User1“ nach einem Verbindungsaufbau wie folgt dar: TS6100 Version: 1.8...
  • Seite 136 Technische Einführung Auf die Node „Instance1“ hat der Benutzer nur Leserechte, was durch das Attribut UserAccessLevel deutlich wird: Der Benutzer „Administrator“ hingegen hat volle Zugriffsrechte auf alle Elemente des Namensraums: Version: 1.8 TS6100...
  • Seite 137 Schreiben der Log-Datei Durch das Aktivieren der Logging-Funktion auf dem Server wird eine Protokolldatei auf dem Dateisystem geschrieben. Stellen Sie sicher, dass ausreichend Speicherplatz zur Verfügung steht und setzen Sie die Logging-Parameter entsprechend (Anzahl Log-Dateien, Größe pro Log-Datei). TS6100 Version: 1.8...
  • Seite 138 Last wird jedoch auch auf der Serverapplikation verursacht, wodurch sich das Timingverhalten entsprechend ändert. Bitte aktivieren Sie daher das Logging nur im Diagnosefall und in Absprache mit dem Beckhoff Support. Activate App Trace In den meisten Fällen ist es ausreichend ein sogenanntes „AppTrace“ zu erstellen. Hierbei werden Informationen der Serverapplikation protokolliert.
  • Seite 139 Visual Studio. Sie können alle unterschiedlichen Features des Servers konfigurieren. 4.2.2.2 Verbinden mit einem Server Der OPC‑UA‑Konfigurator ermöglicht die vollständige Parametrierung des Servers über OPC UA. Ähnlich wie im TwinCAT‑XAE‑System können Sie über die Symbolleiste einen OPC-UA-Server auswählen, mit dem Sie sich verbinden wollen. TS6100 Version: 1.8...
  • Seite 140 Warnhinweis weist auf den uninitialisierten Server hin und ermöglicht eine entsprechende Initialisierung. 4.2.2.4 ADS-Geräte hinzufügen Über die Registerkarte Data Access lassen sich ADS-Geräte zur TwinCAT OPC UA Server-Konfiguration hinzufügen. Im zugehörigen DataGrid können Sie über das Kontextmenü ein neues Gerät anlegen. Version: 1.8 TS6100...
  • Seite 141 ADS-Route zu dem lokalen oder Server-System besitzt. Durch einen Klick auf den Button Local werden die lokalen ADS-Routen angezeigt. Durch einen Klick auf den Button Remote werden die ADS-Routen auf dem verbundenen TwinCAT OPC UA Server angezeigt. TS6100 Version: 1.8...
  • Seite 142 Über das Kontextmenü können Sie sowohl History Adapter als auch History Nodes anlegen. Wenn Sie mit einem TwinCAT OPC UA Server verbunden sind, dann können Sie auch komfortabel die zu konfigurierenden Nodes per Drag&Drop aus dem Target Browser zu den History Nodes hinzufügen. Version: 1.8 TS6100...
  • Seite 143 Technische Einführung Anschliessend kann eine History Node über die AdapterID mit dem jeweiligen History Adapter verknüpft werden. Durch einen Doppelklick auf die History Node gelangen Sie in den entsprechenden Konfigurationsdialog. TS6100 Version: 1.8...
  • Seite 144 Über das Kontextmenü können Sie sowohl Condition Controller als auch Conditions anlegen. Wenn Sie mit einem TwinCAT OPC UA Server verbunden sind, dann können Sie auch komfortabel die zu konfigurierenden Nodes per Drag&Drop aus dem Target Browser zu den Conditions hinzufügen. Version: 1.8 TS6100...
  • Seite 145 Technische Einführung Eine Condition wird immer zu dem aktuell selektierten Condition Controller hinzugefügt. Bei Verwendung von Drag&Drop öffnet sich der Konfigurationsdialog einer Condition automatisch. TS6100 Version: 1.8...
  • Seite 146 Innerhalb des Alarms & Conditions-Bereichs können Sie über die Registerkarte Resources Alarmtexte konfigurieren, welche Sie anschließend für eine Condition verwenden können. Über das Kontextmenü können Sie eine neue Alarmtextdatei hinzufügen. Diese Dateien sind nach der jeweiligen Sprache gruppiert, für welche die Alarmtexte definiert werden. Version: 1.8 TS6100...
  • Seite 147 Technische Einführung Über den Paste from clipboard-Button können ID und Text aus einer Excel-Tabelle übernommen werden, indem Sie von dort zuerst in die Zwischenablage kopiert (STRG+C) und dann über den Button importiert werden. TS6100 Version: 1.8...
  • Seite 148 Technische Einführung Nach der Konfiguration der Sprachdateien können Sie die Alarmtexte an einer Condition verwenden. Version: 1.8 TS6100...
  • Seite 149 Endpunkt zu deaktivieren, damit sich alle Clients nur mit gültigem und als vertrauenswürdig eingestuftem Zertifikat verbinden können. Über die Registerkarte Server Settings können Sie die Endpunkte, sowie einige Zusatzparameter, konfigurieren. Über das Kontextmenü lassen sich Endpunkte hinzufügen oder aus der Konfiguration entfernen. TS6100 Version: 1.8...
  • Seite 150 Clientzertifikats in dem jeweiligen TrustStore (Rejected/Accepted) lassen sich Zertifikatsdetails anzeigen und dieses zwischen den TrustStores verschieben. 4.2.2.11 Sicherheitseinstellungen konfigurieren Über die Registerkarte Security lassen sich Sicherheitseinstellungen am Server vornehmen. Diese Sicherheitseinstellungen können die folgenden Punkte beinhalten: • Benutzer und Gruppen Version: 1.8 TS6100...
  • Seite 151 Zugriffsrechte auf einen bestimmten Namespace. Zugriffsrechte auf Namespaces Zugriffsrechte auf bestimmte Namespaces lassen sich an einer Benutzergruppe definieren. In den Einstellungen der Gruppe gibt es hierbei einen entsprechenden Konfigurationsbereich, welcher sich über das Kontextmenü editieren lässt. TS6100 Version: 1.8...
  • Seite 152 Über die Registerkarte Node permissions lassen sich Zugriffsrechte auf einzelne Nodes und deren Kindelemente definieren. Sie können die Nodes hierbei manuell über das Kontextmenü konfigurieren oder sie bequem per Drag&Drop aus dem Target Browser zur Konfiguration hinzufügen, sofern Sie mit einem Server verbunden sind. Version: 1.8 TS6100...
  • Seite 153 Im Node-Konfigurationsdialog lassen sich dann die Benutzergruppen und Zugriffsrechte der jeweiligen Gruppe definieren. Über den Parameter Depth können Sie einstellen, ob die Berechtigungen auf Kindelemente vererbt werden sollen. Der Wert „-1“ gibt hierbei an, dass alle Kindelemente die Berechtigungen vererbt bekommen sollen. TS6100 Version: 1.8...
  • Seite 154 Generell gilt: Je höher der „Trace level“, desto detailliertere (und mehr) Daten werden geschrieben, desto mehr Last wird jedoch auch auf der Serverapplikation verursacht, wodurch sich das Timingverhalten entsprechend ändert. Bitte aktivieren Sie daher das Logging nur im Diagnosefall und in Absprache mit dem Beckhoff Support. Version: 1.8 TS6100...
  • Seite 155 O-Konfiguration verfügbar. Dies verringert nicht nur die Engineering-Zeit, die zur Herstellung der OPC-UA- Verbindung zu einem Remoteserver erforderlich ist, sondern ermöglicht die Realisierung vieler Anwendungsfälle, wie z. B. die Erstellung von einfach zu konfigurierenden Protokollbrücken. Fügen Sie zunächst einen virtuellen Geräte-Container und anschließend ein OPC-UA-Client-Objekt zur Konfiguration hinzu. TS6100 Version: 1.8...
  • Seite 156 Sie diese als Eingangsvariable (AT%I*). Dies soll die Variable sein, die vom OPC UA Client I/ O‑Gerät über das Mapping mit der Variablen vom Server verknüpft wird. 2. Kompilieren Sie das Projekt, sodass die Eingangsvariable im SPS‑Prozessabbild zur Verfügung steht. Version: 1.8 TS6100...
  • Seite 157 PLC1 > MAIN) und selektieren Sie diese. Die Variable wird nun zum Prozessabbild des „Virtual OPC UA Device“ hinzugefügt. 8. Erweitern Sie die neu hinzugefügte Variable im Prozessabbild und klicken Sie doppelt auf Input > Value. Verknüpfen Sie die Variable mit der Variablen „nQuickStartIn“ aus dem SPS-Prozessabbild. 9. Aktivieren Sie die Konfiguration. TS6100 Version: 1.8...
  • Seite 158 Technische Einführung ð Sie sollten nun die nachfolgend dargestellte Konfiguration vorfinden. Die beiden Prozessabbild- Variablen nQuickStartIn und nQuickStartOut sind miteinander verknüpft. Version: 1.8 TS6100...
  • Seite 159 Zum Lesen und Schreiben von Daten muss der Datentyp des OPC-UA-Knotens der TwinCAT-Umgebung zugeordnet werden (Mapping). Diese Zuordnung wird nachfolgend beschrieben. Basisdatentypen Die Zuordnung der Basisdatentypen wird in PLCopen OPC UA Information Model for IEC 61131-3 beschrieben. OPC‑UA‑Datentyp SPS‑Datentyp Boolean BOOL SByte SINT Byte USINT Int16 Int32 DINT TS6100 Version: 1.8...
  • Seite 160 Sie den Namensraum-Browser verwenden, der in dem I/O Client integriert ist. Öffnen Sie die Registerkarte Settings der Client-Konfiguration und klicken Sie auf die Schaltfläche Add Nodes, um den Namensraum-Browser zu öffnen. Der Namensraum-Browser-Dialog stellt automatisch eine Verbindung zum Target Server her, indem die spezifizierten Verbindungsparameter genutzt werden. Version: 1.8 TS6100...
  • Seite 161 Ausgangsvariable schreibt Daten zum Knoten, wenn ein Wert gesetzt wurde. 4.3.5 Knotenattribute Wenn Sie auf einen Knoten im Prozessabbild doppelklicken, sehen Sie die UA-Attribute mit ihren aktuellen Werten zu dem Zeitpunkt, zu dem das Fenster geöffnet wurde. TS6100 Version: 1.8...
  • Seite 162 Prozessabbild wie jede andere Variable hinzufügen. Die „Eingangsargumente“ der Methode sind dann als Ausgangsvariable im Prozessabbild verfügbar, wohingegen die „Ausgangsargumente“ als Eingangsvariablen hinzugefügt werden. Zusätzliche Eingangs- und Ausgangsvariablen, z. B. bExecute, bBusy, bError, werden zu dem Prozessabbild hinzugefügt, so dass die Methode aufgerufen werden kann. Beispiel: Methode auf Server Version: 1.8 TS6100...
  • Seite 163 Technische Einführung Beispiel: Methode nach dem Hinzufügen zum Prozessabbild Sie können dann ein Mapping zwischen den Eingangs-/Ausgangsvariablen und den SPS-Variablen erstellen. TS6100 Version: 1.8...
  • Seite 164 Technische Einführung Aufruf einer Methode Um eine Methode aufzurufen, setzen Sie die Ausgangsvariable bExecute auf TRUE. Über die Eingangsvariablen nErrorID, bDone, bBusy, bError können Sie prüfen, ob ein Methodenaufruf abgeschlossen wurde und erfolgreich war. Version: 1.8 TS6100...
  • Seite 165 TwinCAT hinzugefügt, um z. B. einfach von einer SPS-Anwendung verwendet zu werden. Beispiel: StructuredType auf dem Server In diesem Beispiel enthält der Server einen Knoten des strukturierten Datentyps „Person“, der verschiedene Membervariablen enthält (Name, Height, Weight, Gender). Beispiel: StructuredTypes im Prozessabbild TS6100 Version: 1.8...
  • Seite 166 Zur Unterscheidung des Datentyps von anderen Datentypen können Sie in den Einstellungen des OPC UA Clients ein Präfix hinzufügen. Mapping eines StructuredType Da jeder StructuredType dem Typsystem von TwinCAT hinzugefügt wird, ist das Mapping der Variablen einfach. Erstellen Sie eine Eingangs-/Ausgangsvariable dieses Datentyps und anschließend ein Mapping. Version: 1.8 TS6100...
  • Seite 167 Parameter, um die verschiedenen Modi der Datenerfassung von einem Server zu beeinflussen. Das OPC UA-Client-Gerät bietet drei verschiedene Modi zur Datenaufnahme an. Dazu gehören neben dem zyklischen Auslesen der Daten das Auslesen über eine Trigger-Variable und das Nutzen von Subscriptions. TS6100 Version: 1.8...
  • Seite 168 Die dritte und letzte Möglichkeit der Datenaufnahme ist das Nutzen von Subscriptions. Dabei meldet der I/O- Client beim verbundenen OPC UA-Server eine Subscription an. Spezifizieren lassen sich die unten beschriebenen Parameter für Publish Interval, Lifetime Count und Keepalive Count. Version: 1.8 TS6100...
  • Seite 169 Damit für eine Variable nicht nur ein Input (Read), sondern auch ein Output (Write)-Element im Prozessabbild hinzugefügt wird, muss dieses explizit aktiviert werden. Dies kann zum Beispiel über den Add Nodes-Dialog schon während des Hinzufügens der Variablen erfolgen: TS6100 Version: 1.8...
  • Seite 170 Alternativ kann diese Einstellung auch nachträglich noch über die Konfigurationsparameter der Variablen im Prozessabbild aktiviert/deaktiviert werden. Globales Aktivieren des Schreibzugriffs Vor dem Absenden von Schreibkommandos müssen diese global freigeschaltet werden. Dies erfolgt durch das Setzen der Ausgangsvariablen "Write Enable" am I/O Client: Version: 1.8 TS6100...
  • Seite 171 Kommunikationsverbindung hergestellt werden kann. Hierfür ist ein gegenseitiger Zertifikatsaustausch [} 172] notwendig. Applikationsebene Zusätzlich zur Transportebene lässt sich eine Kommunikationsverbindung auch auf Applikationsebene absichern. Hierfür stehen verschiedene Authentifizierungsmechanismen [} 100] zur Verfügung, die vom Serverendpunkt angeboten werden. TS6100 Version: 1.8...
  • Seite 172 OPC UA Client dem OPC UA Server vertraut. Typischerweise erfolgt bei Client‑Applikationen mit grafischer Benutzeroberfläche ein Warnhinweis bei der ersten Verbindung mit dem Server, wobei das Server-Zertifikat dann als vertrauenswürdig eingestuft werden kann. Die folgende Anweisung ist daher nur für den TwinCAT OPC UA Client gültig. Version: 1.8 TS6100...
  • Seite 173 Schnelleinstieg [} 156]. 4.4.2 Unterstützte Datentypen Der OPC UA Client ermöglicht einen Zugriff auf OPC UA Server direkt aus der Echtzeitlogik heraus. Um Daten zu lesen und zu schreiben, müssen die Datentypen beider Umgebungen zugeordnet werden (Mapping). Nachfolgend wird diese Zuordnung beschrieben. TS6100 Version: 1.8...
  • Seite 174 Im Allgemeinen wird ein grafischen OPC UA Client verwendet, um die Attribute eines Knotens oder Methoden zu bestimmen, die zusammen mit den SPS-Funktionsbausteinen verwendet werden müssen, z. B.: • Node Identifier [} 175] • Node Namespace Index und entsprechender Namespace URI [} 175] • Node Data Type [} 176] Version: 1.8 TS6100...
  • Seite 175 UA_GetNamespaceIndex [} 233]. Den hierfür notwendigen NamespaceURI können Sie mithilfe von UA Expert bestimmen, indem Sie eine Verbindung zum OPC UA Server aufbauen und zum Knoten NamespaceArray browsen. Dieser Knoten enthält Informationen über alle eingetragenen Namespaces auf dem OPC UA Server. Die entsprechenden NamespaceURIs sind im Attributes-Panel sichtbar. Beispiel: TS6100 Version: 1.8...
  • Seite 176 B. „INT“. Die PLCopen IEC61131‑zu‑OPC‑UA‑Spezifikation beschreibt das definierte Datentyp-Mapping. Die folgende Tabelle ist ein Auszug aus dieser Spezifikation: IEC61131 elementare Datentypen OPC UAeingebaute Datentypen BOOL Boolean SINT SByte USINT Byte Int16 UINT UInt16 DINT Int32 UDINT UInt32 LINT Int64 Version: 1.8 TS6100...
  • Seite 177 Mithilfe von UA Expert können Sie beide NodeIDs einfach bestimmen, indem Sie eine Verbindung zum OPC UA Server aufbauen und zu der gewünschten Methode bzw. dem gewünschten UA-Objekt, das die Methode enthält, browsen. Beispiel Methode M_Mul: Der Method Identifier ist dann im Attributes-Panel sichtbar. Beispiel Objekt fbMathematics: TS6100 Version: 1.8...
  • Seite 178 UA-Funktionalitäten besser verstehen zu können (z. B. wie NodeIdentifier bestimmt werden können). Schematischer Arbeitsablauf Der schematische Arbeitsablauf jedes TwinCAT OPC UA Client kann in drei verschiedene Phasen kategorisiert werden: Preparation, Work und Cleanup. Der in diesem Abschnitt beschriebene Verwendungsfall kann wie folgt visualisiert werden: Version: 1.8 TS6100...
  • Seite 179       iState := iState + 1;   1:     fbUA_Connect(       Execute := TRUE,       ServerURL := ‘opc.tcp://192.168.1.1:4840’,       SessionConnectInfo := SessionConnectInfo,       Timeout := T#5S,       ConnectionHdl => nConnectionHdl);     IF NOT fbUA_Connect.Busy THEN       fbUA_Connect(Execute := FALSE);       IF NOT fbUA_Connect.Error THEN         iState := iState + 1; TS6100 Version: 1.8...
  • Seite 180 Abschnitt Wie eine Verbindung hergestellt wird [} 178]. Schematischer Arbeitsablauf Der schematische Arbeitsablauf jedes TwinCAT OPC UA Client kann in drei verschiedene Phasen kategorisiert werden: Preparation, Work und Cleanup. Der in diesem Abschnitt beschriebene Verwendungsfall kann wie folgt visualisiert werden: Version: 1.8 TS6100...
  • Seite 181 (* Declarations for UA_Read *) fbUA_Read : UA_Read; stIndexRange : ARRAY [1..nMaxIndexRange] OF ST_UAIndexRange; nIndexRangeCount : UINT; stNodeAddInfo : ST_UANodeAdditionalInfo; sNodeIdentifier : STRING(MAX_STRING_LENGTH) := 'MAIN.nCounter'; nReadData : INT; cbDataRead : UDINT; (* Declarations for UA_NodeReleaseHandle *) fbUA_NodeReleaseHandle : UA_NodeReleaseHandle; Implementierung: TS6100 Version: 1.8...
  • Seite 182       Execute := TRUE,       ConnectionHdl := nConnectionHdl,       NodeHdl := nNodeHdl);     IF NOT fbUA_NodeReleaseHandle.Busy THEN       fbUA_NodeReleaseHandle(Execute := FALSE);       IF NOT fbUA_NodeReleaseHandle.Error THEN         iState := iState + 1;       ELSE         bError := TRUE;         nErrorID := fbUA_NodeReleaseHandle.ErrorID;         iState := 6;       END_IF     END_IF   6: Version: 1.8 TS6100...
  • Seite 183 Allgemeine Hinweise • Der Funktionsbaustein UA_Connect erfordert die folgenden Informationen, um eine Verbindung zu einem lokalen oder remote OPC UA Server herstellen zu können (siehe auch Wie eine Verbindung hergestellt wird [} 178]): ◦ Server URL ◦ Session Connect Information TS6100 Version: 1.8...
  • Seite 184         iState := 6;       END_IF     END_IF   3: (* UA_NodeGetHandle *)     NodeID.eIdentifierType := eUAIdentifierType_String;     NodeID.nNamespaceIndex := nNamespaceIndex;     NodeID.sIdentifier := sNodeIdentifier;     fbUA_NodeGetHandle(       Execute := TRUE,       ConnectionHdl := nConnectionHdl,       NodeID := NodeID,       NodeHdl => nNodeHdl);     IF NOT fbUA_NodeGetHandle.Busy THEN       fbUA_NodeGetHandle(Execute := FALSE); Version: 1.8 TS6100...
  • Seite 185 • Allgemeine Hinweise [} 186] • Code-Ausschnitt [} 186] Übersicht Die folgenden Funktionsbausteine sind erforderlich, um eine Verbindung zu einem OPC UA Server herzustellen, UA-Methoden aufzurufen und später die Sitzung zu unterbrechen: UA_Connect [} 229], UA_GetNamespaceIndex [} 233], UA_MethodGetHandle [} 239], UA_MethodCall [} 237], UA_MethodReleaseHandle [} 240], UA_Disconnect [} 232]. TS6100 Version: 1.8...
  • Seite 186 Methode berechnet und erstellt. • Der Funktionsbaustein UA_NodeReleaseHandle erfordert einen Connection Handle (von UA_Connect) und einen Methodenhandle (von UA_MethodGetHandle). Code-Ausschnitt Initialisierungsmethode M_Init des Funktionsbausteins, der den UA-Methodenaufruf enthält MEMSET(ADR(nInputData),0,SIZEOF(nInputData)); nArg := 1; (********** Input parameter 1 **********) Version: 1.8 TS6100...
  • Seite 187       Execute := TRUE,       ConnectionHdl := nConnectionHdl,       NamespaceUri := sNamespaceUri,       NamespaceIndex => nNamespaceIndex);     IF NOT fbUA_GetNamespaceIndex.Busy THEN       fbUA_GetNamespaceIndex(Execute := FALSE);       IF NOT fbUA_GetNamespaceIndex.Error THEN         iState := iState + 1;       ELSE         bError := TRUE;         nErrorID := fbUA_GetNamespaceIndex.ErrorID;         iState := 7;       END_IF TS6100 Version: 1.8...
  • Seite 188   6: (* Release Method Handle *)     fbUA_MethodReleaseHandle(       Execute := TRUE,       ConnectionHdl := nConnectionHdl,       MethodHdl := nMethodHdl);     IF NOT fbUA_MethodReleaseHandle.Busy THEN       fbUA_MethodReleaseHandle(Execute := FALSE);       bBusy := FALSE;       IF NOT fbUA_MethodReleaseHandle.Error THEN         iState := 7;       ELSE         bError := TRUE; Version: 1.8 TS6100...
  • Seite 189 Für eine Absicherung der Kommunikationsverbindung auf Transportebene über einen sicheren Endpunkt [} 99] ist die Herstellung einer gegenseitigen Vertrauensstellung zwischen Client und Server notwendig. Standardmäßig generieren sowohl der TwinCAT OPC UA Server als auch der TwinCAT OPC UA Client beim ersten Start ein maschinenspezifisches, selbstsigniertes Zertifikat zur Authentifizierung der jeweiligen Applikation. TS6100 Version: 1.8...
  • Seite 190 Server, wobei das Server-Zertifikat dann als vertrauenswürdig eingestuft werden kann. Die folgende Anweisung ist daher nur für den TwinCAT OPC UA Client gültig. Der öffentliche Schlüssel des OPC UA Servers befindet sich als DER-Datei in dem folgenden Verzeichnis: %InstallDir%\Server\PKI\CA\own\certs Kopieren Sie die Datei beim TwinCAT OPC UA Client in das entsprechende „Trusted“-Verzeichnis: %InstallDir%\Client\PKI\CA\trusted\certs Version: 1.8 TS6100...
  • Seite 191 Gateway 4.5.1 Übersicht Das TwinCAT OPC UA Gateway ist die neueste Erweiterung des TS6100/TF6100-Softwareprodukts. Es beinhaltet nicht nur eine herkömmliche OPC‑DA‑Schnittstelle, um ältere OPC‑COM‑DA‑Anwendungen mit dem TwinCAT OPC UA Server zu verbinden und kann demzufolge als der Nachfolger des alten TwinCAT OPC DA Servers (TS6120/TF6120) betrachtet werden, sondern es bietet auch eine OPC‑UA‑Schnittstelle, um mehrere grundlegende TwinCAT OPC UA Server in einen zentralen...
  • Seite 192 Um einen OPC COM DA Client mit dem Gateway zu verbinden, starten Sie den Client und stellen Sie eine Verbindung zu der folgenden ProgId her: UnifiedAutomation.UaGateway.1 Beim Durchsuchen des Gateway werden ein oder mehrere OPC UA Server im Namensraum des Gateway sichtbar. Version: 1.8 TS6100...
  • Seite 193 4.5.4 Szenarien Aufgrund der offenen und flexiblen PC-basierten Automatisierungstechnik von Beckhoff kann das OPC UA Gateway auf verschiedene Arten betrieben und installiert werden. Im folgenden Abschnitt werden die verschiedenen Setup-Szenarien beschrieben und die Vor- und Nachteile einer jeden Einrichtung erläutert.
  • Seite 194 TwinCAT OPC UA Server ebenfalls an das Gateway anzuschließen. So kann z. B. das Gateway konfiguriert werden, um auf folgende Server zuzugreifen: • den lokalen TwinCAT OPC UA Server (z. B. opc.tcp://localhost:4840) • einen remote TwinCAT OPC UA Server (z. B. opc.tcp://192.168.1.1:4840) • einen anderen remote TwinCAT OPC UA Server (z. B. opc.tcp://192.168.1.21:4841) • ... Version: 1.8 TS6100...
  • Seite 195 Starten des Verwaltungswerkzeugs über den Befehl Administrate UaGateway wird die grafische Benutzerschnittstelle eingeblendet. Die Schnittstelle bietet mehrere Konfigurationsoptionen: • Allgemeine Einstellungen [} 195] • Zusätzliche UA Server [} 197] • Zusätzliche Endpunkte [} 198] • OPC‑COM‑DA‑Einstellungen [} 199] 4.5.5.2 Allgemeine Einstellungen Die Registerkarte General zeigt allgemeine Einstellungen des UA Gateway. TS6100 Version: 1.8...
  • Seite 196 Das UA Gateway wird als Windows NT Service ausgeführt. Diesem Service wird ein spezifischer Userkontext zugewiesen, damit COM/DCOM ordnungsgemäß konfiguriert werden kann. Der User, den Sie auswählen, wird dem UA Gateway Service zugeordnet. Darüber hinaus wird dem User ein LogOnAsService- Version: 1.8 TS6100...
  • Seite 197 Discovery Server), falls einer installiert ist, angemeldet werden soll. 4.5.5.3 Zusätzliche UA Server Die Registerkarte Configured UA Servers bietet Optionen für die Konfiguration der zugrunde liegenden OPC UA Server. Standardmäßig stellt das Gateway bereits eine Verbindung mit dem lokalen OPC UA Server (der auf demselben Computer läuft) her. TS6100 Version: 1.8...
  • Seite 198 Plus- und Minus-Tasten unten rechts und anschließend auf Übernehmen (Apply), um die Änderungen zu speichern. 4.5.5.4 Zusätzliche Endpunkte Die Registerkarte UA Endpoints zeigt die Einstellungen zur UA-Endpunktkonfiguration. Der UA Endpunkt (Endpoint) ist die Verbindungsinformation, die ein UA Client benötigt, um eine Verbindung mit dem Gateway herzustellen. Version: 1.8 TS6100...
  • Seite 199 Im folgenden Abschnitt wird die Konfiguration des COM DA Servers des UA Gateway unter Verwendung des Administrationstools beschrieben. Allgemeines ItemIDs des COM DA Server werden aus dem URI‑Namensraum und dem Bezeichner des Variablenknotens im OPC‑UA‑Adressenraum gebildet. Der Namensraumteil kann im Fall eines einzigen Namensraums weggelassen werden. TS6100 Version: 1.8...
  • Seite 200 Grundlage dieser Standardkonfiguration müssen die OPC‑DA‑Clients Folgendes berücksichtigen: • Die standardmäßige ProgID des UA Gateway lautet „UnifiedAutomation.Gateway.1“. Der TwinCAT OPC DA Server verwendet eine andere ProgID („Beckhoff.TwinCATOpcServerDA“). • Das UA Gateway verwendet stets eine ProgID anstelle von mehreren Klonen. • Der ItemIdentifier eines OPC‑Symbols wird im UA Gateway anders erzeugt. Dieses Verhalten kann geändert werden.
  • Seite 201 1. Wenn das XML-Tag ComDaNamespaceUseAlias auf „true“ gesetzt wird, können benutzerdefinierte Präfixes bestimmt werden. Suchen Sie hierfür nach dem folgenden XML-Tag in derselben XML-Datei: <OpcServerConfig>   <UaServerConfig>     <ConfiguredNamespaces>       ...     </ConfiguredNamespaces   </UaServerConfig> </OpcServerConfig> 1. Identifizieren Sie in dieser XML‑Struktur den TwinCAT‑OPC‑UA‑Server‑Namensraum. Standardmäßig sollte dieser folgendermaßen lauten: TS6100 Version: 1.8...
  • Seite 202 Verwendung von Client/Server Zertifikaten und eine gegenseitige Vertrauensstellung zwischen Client- und Serverapplikation. Hierbei muss der Client dem Server-Zertifikat vertrauen und umgekehrt, damit eine Kommunikationsverbindung hergestellt werden kann. Hierfür ist ein gegenseitiger Zertifikatsaustausch [} 203] notwendig. Version: 1.8 TS6100...
  • Seite 203 Verschieben des öffentlichen Schlüssels in das Verzeichnis für vertrauenswürdige Zertifikate, wird dem Client beim nächsten Verbindungsversuch vertraut. AutomaticallyTrustAllClientCertificates Ist diese Option in der TcUaServerConfig.xml aktiviert, so vertraut der Server automatisch allen Clientzertifikaten. Diese werden in diesem Fall nicht in einem der oben genannten Verzeichnisse aufgelistet. TS6100 Version: 1.8...
  • Seite 204 Wenn die Namenslösung nicht im Netzwerk des Benutzers funktioniert, kann der Client die Verbindung nicht herstellen. Wenn der Endpunkt, mit dem sich der Client verbinden soll, den Hostnahmen des Servers enthält, stellen Sie sicher, dass die Namenslösung in Ihrem Netzwerk funktioniert und dass der Hostname auf dem Server erreichbar ist. Version: 1.8 TS6100...
  • Seite 205 Technische Einführung 4.6.2 Sichere Verbindung mit OPC UA Server herstellen 1. Geben Sie im oberen Textfeld des UA Sample Client die URL eines OPC UA Servers ein. 2. Klicken Sie auf die Schaltfläche Get Endpoints. TS6100 Version: 1.8...
  • Seite 206 ð Die vom UA Server bereitgestellten Endpunkte werden daraufhin in der Drop‑Down-Liste Endpoints angezeigt. 3. Wählen Sie in diesem Beispiel den Eintrag „<SomeName>/Beckhoff/TcOpcUaServer/1 [Basic128Rsa15, SignAndEncrypt] [opc.tcp://<SomeName>:4840]“ und klicken Sie auf Connect. Sie müssen den Public Key vom Zertifikat des UA Sample Clients auf den UA Server kopieren, damit dieser dem Sample Client „vertraut“.
  • Seite 207 Technische Einführung vom UA Server abgewiesen („BadSecureChannelClosed“). Weitere Informationen über das Zertifikatsmanagement beim OPC UA Server finden Sie im Abschnitt Zertifikatsaustausch [} 203]. TS6100 Version: 1.8...
  • Seite 208 Über den Browser in der linken Hälfte des UA Sample Client können Sie nach erfolgreichem Aufbau einer Verbindung durch den UA‑Namensraum navigieren. Unterhalb des Knotens PLC1 finden Sie das momentan laufende SPS-Programm und können sich die dort deklarierten und für UA freigegebenen Variablen anzeigen lassen. Version: 1.8 TS6100...
  • Seite 209 Werte zyklisch von dem UA Sample Client lesen zu lassen. Öffnen Sie dazu das Kontextmenü einer Variablen und wählen Sie Add to Watchlist. Die Variable wird daraufhin in die Watchlist übernommen und deren Werte werden automatisch zyklisch aus der SPS ausgelesen. TS6100 Version: 1.8...
  • Seite 210 Technische Einführung Version: 1.8 TS6100...
  • Seite 211 UDINT nSecurityRejectedSessionCount UDINT nSessionTimeoutCount UDINT nCurrentSubscriptionCount UDINT nRejectedRequestCount UDINT nSecurityRejectedRequestCount UDINT 5.1.1.2 E_OpcUAServerOption E_OpcUAServerOption legt fest welches Kommando an den TwinCAT OPC UA Server geschickt werden soll. Syntax TYPE E_OpcUAServerOption     eOPCUAServerOption_None,     eOPCUAServerOption_Restart,     eOPCUAServerOption_Shutdown,     eOPCUAServerOption_RefreshCfg,     eOPCUAServerOption_ServerInfo END_TYPE TS6100 Version: 1.8...
  • Seite 212     eOPCUAServerStatus_Alive,     eOPCUAServerStatus_NotResponding END_TYPE Parameter Name Beschreibung eOPCUAServerStatus_None eOPCUAServerStatus_Alive eOPCUAServerStatus_NotResponding 5.1.2 Funktionsbausteine 5.1.2.1 FB_OpcUAServer Der Funktionsbaustein ermöglicht das Auslesen von Statusinformationen und neu starten eines TwinCAT OPC UA Servers. Syntax Definition: FUNCTION_BLOCK FB_OpcUAServer VAR_INPUT     sNetId             : T_AmsNetId;     bExecute           : BOOL;     eOpcUAServerOption : E_OpcUAServerOption;     tTimeout           : TIME; END_VAR Version: 1.8 TS6100...
  • Seite 213 Enthält bei Auftreten eines Fehlers (bError) den Fehlercode. 5.1.2.2 FB_OpcUAServerGetStatus Der Funktionsbaustein ermöglicht das Auslesen des aktuellen Status (Running, NotResponding) eines TwinCAT OPC UA Servers. Syntax Definition: FUNCTION_BLOCK FB_OpcUAServerGetStatus VAR_INPUT     sNetId             : T_AmsNetId;     bGetStatus         : BOOL;     tTimeout           : TIME; END_VAR VAR_OUTPUT     eOPCUAServerStatus : E_OPCUAServerStatus;     bDone              : BOOL;     bBusy              : BOOL;     bError             : BOOL;     nErrorId           : UDINT; END_VAR TS6100 Version: 1.8...
  • Seite 214 Fehlercode. Tc3_PLCopen_OpcUa 5.2.1 Datentypen 5.2.1.1 E_UAAttributeID Syntax TYPE E_UAAttributeID:     eUAAI_NodeID          := 1,     eUAAI_NodeClass       := 2,     eUAAI_BrowseName      := 3,     eUAAI_DisplayName     := 4,     eUAAI_Description     := 5,     eUAAI_WriteMask       := 6,     eUAAI_UserWriteMask   := 7,     eUAAI_IsAbstract      := 8,     eUAAI_Symmetric       := 9,     eUAAI_InverseName     := 10,     eUAAI_ContainsNoLoops := 11,     eUAAI_EventNotifier   := 12,     eUAAI_Value           := 13,     eUAAI_DataType        := 14,     eUAAI_ValueRank       := 15,     eUAAI_ArrayDimensions := 16  )DINT; END_TYPE Werte Name Beschreibung NodeID OPC UA NodeID NodeClass OPC UA NodeClass Version: 1.8 TS6100...
  • Seite 215 Beschreibung eUABD_Forward Vorwärts-Referenzen eUABD_Inverse Rückwärts-Referenzen eUABD_Both Vorwärts- und Rückwärtsreferenzen Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS-Bibliotheken TwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUa TwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa 5.2.1.3 E_UABrowseResultMask Syntax TYPE E_UABrowseResultMask:     eUABRM_ReferenceTypeId   := 1,     eUABRM_IsForward         := 2,     eUABRM_ReferenceTypeInfo := 3, TS6100 Version: 1.8...
  • Seite 216 Beschreibung Connected Verbindung wurde hergestellt. ConnectionError Ein Fehler beim Herstellen der Verbindung ist aufgetreten. Shutdown Die Verbindung wurde getrennt. Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS-Bibliotheken TwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUa SPS-Bibliothek Benötigte Version Tc3_PLCopen_OpcUa >= 3.2.11.0 Version: 1.8 TS6100...
  • Seite 217 Byte eUAType_Int16 Int16 eUAType_UInt16 UInt16 eUAType_Int32 Int32 eUAType_UInt32 UInt32 eUAType_Int64 Int64 eUAType_UInt64 UInt64 eUAType_Float Float eUAType_Double Double eUAType_String String eUAType_DateTime DateTime eUAType_Guid Guid eUAType_ByteString ByteString eUAType_XmlElement XmlElement eUAType_NodeId NodeId eUAType_ExpandedNodeId ExpandedNodeId eUAType_StatusCode StatusCode eUAType_QualifiedName QualifiedName eUAType_LocalizedText LocalizedText TS6100 Version: 1.8...
  • Seite 218 Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS-Bibliotheken TwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUa TwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa 5.2.1.7 E_UANodeClassMask Syntax TYPE E_UANodeClassMask:     eUANCM_Unspecified   := 0,     eUANCM_Object        := 1,     eUANCM_Variable      := 2,     eUANCM_Method        := 4,     eUANCM_ObjectType    := 8,     eUANCM_VariableType  := 16,     eUANCM_ReferenceType := 32,     eUANCM_DataType      := 64,     eUANCM_View          := 128,     eUANCM_All           := 255 )DINT; END_TYPE Version: 1.8 TS6100...
  • Seite 219 Keine Security eUASecurityMsgMode_Sign Signierung eUASecurityMsgMode_Sign_Encrypt Signierung und Verschlüsselung Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS-Bibliotheken TwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUa TwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa 5.2.1.9 E_UASecurityPolicy Syntax TYPE E_UASecurityPolicy:     eUASecurityPolicy_BestAvailable := 0     eUASecurityPolicy_None          := 1,     eUASecurityPolicy_Basic128      := 2,     eUASecurityPolicy_Basic128Rsa15 := 3, TS6100 Version: 1.8...
  • Seite 220 Werte Name Beschreibung Running Running Failed Failed NoConfiguration NoConfiguration Suspended Suspended Shutdown Shutdown Test Test CommunicationFault CommunicationFault Unknown Unknown Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS-Bibliotheken TwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUa SPS-Bibliothek Benötigte Version Tc3_PLCopen_OpcUa >= 3.2.11.0 Version: 1.8 TS6100...
  • Seite 221 Default IncludeSubtypes: TRUE eNodeClass Default NodeClassMask: All eResultMask Default BrowseResultMask: All Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS-Bibliotheken TwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUa TwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa Sehen Sie dazu auch TS6100 Version: 1.8...
  • Seite 222 Werte Name Beschreibung sApplicationUri Anwendungs-Uri maximale Zeichenkettenlänge 255. Ab TcUAClient 2.0.0.14 wird diese automatisch vom Zertifikat vorgegeben, wie in der PLCOpen Spezifikation definiert. sApplicationName Anwendungsname mit maximaler Zeichenkettenlänge von 255. eSecurityMode Sicherheitsmeldungsmodus. Verfügbare Modi siehe E_UASecurityMsgMode [} 219]. Version: 1.8 TS6100...
  • Seite 223 EndIndex angegeben wird. Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS-Bibliotheken TwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUa TwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa 5.2.1.16 ST_UALocalizedText Syntax TYPE ST_UALocalizedText: STRUCT     sLocale : STRING(6);     sText   : STRING(MAX_STRING_LENGTH); END_STRUCT END_TYPE TS6100 Version: 1.8...
  • Seite 224 Spezifiziert die Länge des Arguments. Bei Ausgabeinformationen wird von STRUCT nur dieses Element gefordert. Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS-Bibliotheken TwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUa TwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa 5.2.1.18 ST_UANodeID Syntax TYPE ST_UANodeID: STRUCT     nNamespaceIndex  : UINT;     nReserved        : ARRAY [1..2] OF BYTE; //fill bytes     sIdentifier      : STRING(MAX_STRING_LENGTH);     eIdentifierType  : E_UAIdentifierType; END_STRUCT END_TYPE Version: 1.8 TS6100...
  • Seite 225 ST_UAIndexRange [} 223]). Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS-Bibliotheken TwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUa TwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa 5.2.1.20 ST_UAReferenceDescription Syntax TYPE ST_UAReferenceDescription: STRUCT     stReferenceTypeId : ST_UANodeId;     bIsForward        : BOOL;     stNodeId          : ST_UAExpandedNodeId;     stBrowseName      : STRING(MAX_STRING_LENGTH);     stDisplayName     : ST_UALocalizedText;     eNodeClass        : E_UANodeClassMask; TS6100 Version: 1.8...
  • Seite 226 Wert beinhaltet. Typischerweise wird diese mithilfe des Operators ADR() zugewiesen. Hiermit wird zugleich intern der Wert selbst zugewiesen und in das Datenobjekt kopiert. StatusCode Get, Set UAHAUpdateStat Gibt den Statuscode des UAHAUpdateSt usCode.Historian Wertes an. atusCode [} 227] Version: 1.8 TS6100...
  • Seite 227 Win32, Win64, WinCE-x86 Tc3_PLCopen_OpcUa >= v3.1.9.0 5.2.1.22 UAHAUpdateStatusCode Jedem mit der OPC-UA-Historical-Access-Funktionalität übertragenen Datenwert wird ein Statuscode zugeordnet. Dies ist eine Eigenschaft des Objektes UAHADataValue [} 226]. Syntax {attribute 'qualified_only'} TYPE UAHAUpdateStatusCode :     HistorianRaw          := 0,          // A raw data value.     HistorianCalculated   := 1,   // A data value which was calculated.     HistorianInterpolated := 2, // A data value which was interpolated.     Reserved              := 3,              // Undefined.     HistorianPartial      := 4,      // A data value which was calculated with an incomplete interva     HistorianExtraData    := 8,    // A raw data value that hides other data at the same timestamp.     HistorianMultiValue   := 16   // Multiple values match the Aggregate criteria (i.e. multiple min imum values at different timestamps within the same interval). ) UDINT; END_TYPE TS6100 Version: 1.8...
  • Seite 228 Knoten angegeben. ContinuationPointIn DWORD Falls ein vorheriger Aufruf des Funktionsbausteins einen Wert als ContinuationPointOut zurückgeliefert hat, kann dieser Wert hier angelegt werden um weitere Daten vom Server abzufragen. Timeout TIME Zeit bis zum Abbruch der Funktion. Version: 1.8 TS6100...
  • Seite 229 Daten abzurufen. cbBrowseResultC UDINT Anzahl der ReferenceDescriptions. Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS-Bibliotheken TwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUa TwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa Sehen Sie dazu auch 2 ST_UASessionConnectInfo [} 222] 5.2.2.2 UA_Connect TS6100 Version: 1.8...
  • Seite 230 Der befehlsspezifische Fehlercode ist in ErrorID enthalten. ErrorID DWORD Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS-Bibliotheken TwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUa TwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa Version: 1.8 TS6100...
  • Seite 231 Solange Busy = TRUE ist, akzeptieren die Eingänge keinen neuen Befehl. Es wird nicht die Zeit der Verbindung sondern die Empfangszeit überwacht. Error BOOL Schaltet auf TRUE, wenn bei der Ausführung eines Befehls ein Fehler auftritt. Der befehlsspezifische Fehlercode ist in ErrorID enthalten. TS6100 Version: 1.8...
  • Seite 232 DWORD Verbindungshandle, das vorher vom Funktionsbaustein UA_Connect ausgegeben wurde. Timeout TIME Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetzt auf 5 Sekunden. Ausgänge VAR_OUTPUT     Done        : BOOL;     Busy        : BOOL;     Error       : BOOL;     ErrorID     : DWORD; END_VAR Version: 1.8 TS6100...
  • Seite 233 Namensraum-URI, der aufgelöst werden soll. Beim TwinCAT OPC UA Server ist das für die erste SPS-Laufzeit „urn:BeckhoffAutomation:Ua:PLC1“. Timeout TIME Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetzt auf 5 Sekunden. Ausgänge VAR_OUTPUT     NamespaceIndex : UINT;     Done           : BOOL;     Busy           : BOOL; TS6100 Version: 1.8...
  • Seite 234 HistoryUpdate-Funktionalität unterstützt, z. B. dem TwinCAT OPC UA Server. Mit einem Aufruf können Sie für ein Knotenhandle eine Vielzahl von Werten inklusive Zeitstempel an den Server übertragen. Dieser sorgt dafür, dass die übermittelten Werte in einem Datenspeicher gespeichert und über Historical Access verfügbar gemacht werden. Version: 1.8 TS6100...
  • Seite 235 SQL Adapter ausgewählt werden. Andere Adapter unterstützen die Option nicht. DataValueCount UINT Legt die Anzahl der übergebenen Werte fest. Eine Maximalanzahl von 1000 Werten wird unterstützt. Timeout TIME Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetzt auf 5 Sekunden. TS6100 Version: 1.8...
  • Seite 236 Je größer die Anzahl ist, umso größer ist auch der benötigte Rechenaufwand und damit die SPS- Ausführungsdauer bei Befehlsausführung. Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS Bibliotheken TwinCAT 3.1 >= 4024.1 Win32, Win64, WinCE-x86 Tc3_PLCopen_OpcUa >= v3.1.9.0 Sehen Sie dazu auch 2 UA_Connect [} 229] 2 UA_NodeGetHandle [} 241] 2 UAHADataValue [} 226] Version: 1.8 TS6100...
  • Seite 237 Methodenhandle, zuvor vom Funktionsbaustein UA_MethodGetHandle ausgegeben. nNumberOfInputAr UDINT Anzahl Eingabeparameter. guments pInputArgInfo POINTER TO ST_UAMethodArgInfo Zeigt auf die Pufferadresse, wo Eingabeparameterinformationen in Form eines Arrays ST_UAMethodArgInfo hinterlegt sind. cbInputArgInfo UDINT Größe des Puffers, wo die Eingabeparameterinformation hinterlegt ist. TS6100 Version: 1.8...
  • Seite 238 Konstante, gesetzt auf 5 Sekunden. Ausgänge VAR_OUTPUT     cbRead_R     : UDINT;     Done         : BOOL;     Busy         : BOOL;     Error        : BOOL;     ErrorID      : UDINT; END_VAR Name Beschreibung cbRead_R UDINT Zählt alle empfangenen Bytes. Done BOOL Schaltet auf TRUE, wenn der Funktionsbaustein erfolgreich ausgeführt wurde. Version: 1.8 TS6100...
  • Seite 239 MethodNodeID ST_UANodeID Methoden-Knoten-ID der aufzurufenden Methode. Entspricht dem ID-Atttribut im UA‑Namensraum. (Typ: UA_Connect [} 229]). Timeout TIME Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetzt auf 5 Sekunden. Ausgänge VAR_OUTPUT     MethodHdl   : DWORD;     Done        : BOOL; TS6100 Version: 1.8...
  • Seite 240 DWORD Methodenhandle, das zuvor vom Funktionsbaustein UA_MethodGetHandle ausgegeben wurde. Timeout TIME Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetzt auf 5 Sekunden. Ausgänge VAR_OUTPUT     Done     : BOOL;     Busy     : BOOL;     Error    : BOOL;     ErrorID  : UDINT; END_VAR Version: 1.8 TS6100...
  • Seite 241 IdentifierType und NamespaceIndex, welcher aus einem NamespaceName aufgelöst wird, z.B. mittels der Methode UA_GetNamespaceIndex [} 233]. Timeout TIME Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetzt auf 5 Sekunden. Ausgänge VAR_OUTPUT     NodeHdl     : DWORD;     Done        : BOOL;     Busy        : BOOL; TS6100 Version: 1.8...
  • Seite 242 Anzahl Knoten, für die ein Knotenhandle erforderlich ist. NodeIDs ARRAY Array von NodeIDs, die mit der struct ST_UANodeID [} 224] erstellt wurden. Timeout TIME Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetzt auf 5 Sekunden. Version: 1.8 TS6100...
  • Seite 243     ConnectionHdl : DWORD;     NodeHdl       : DWORD;     Timeout       : TIME := DEFAULT_ADS_TIMEOUT; END_VAR Name Beschreibung Execute BOOL Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst. ConnectionHdl DWORD Verbindungshandle, das vorher vom Funktionsbaustein UA_Connect ausgegeben wurde. NodeHdl DWORD Freizugebendes Knotenhandle. TS6100 Version: 1.8...
  • Seite 244 Name Beschreibung Execute BOOL Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst. ConnectionHdl DWORD Verbindungshandle, das vorher vom Funktionsbaustein UA_Connect ausgegeben wurde. NodeHdlCount UINT Anzahl Knotenhandles. NodeHdls ARRAY Array von Knotenhandles, die freizugeben sind. Version: 1.8 TS6100...
  • Seite 245 TwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa Sehen Sie dazu auch 2 UA_Connect [} 229] 5.2.2.14 UA_Read Dieser Funktionsbaustein liest Werte aus einem gegebenen Knoten- und Verbindungshandle. Eingänge VAR_INPUT     Execute           : BOOL;     ConnectionHdl     : DWORD;     NodeHdl           : DWORD;     stNodeAddInfo     : ST_UANodeAdditionalInfo;     pVariable         : PVOID; TS6100 Version: 1.8...
  • Seite 246 UDINT Anzahl zu lesender Bytes. Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS-Bibliotheken TwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUa TwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa Sehen Sie dazu auch 2 UA_Connect [} 229] 2 UA_NodeGetHandle [} 241] Version: 1.8 TS6100...
  • Seite 247 TRUE, bis der Baustein einen Befehl ausführt hat, maximal für die Dauer des „Timeout“ am Eingang. Solange Busy = TRUE ist, akzeptieren die Eingänge keinen neuen Befehl. Es wird nicht die Zeit der Verbindung sondern die Empfangszeit überwacht. TS6100 Version: 1.8...
  • Seite 248 ST_UANodeAdditionalInfo [} 225] spezifiziert. pVariable PVOID Zeiger auf zu schreibende Daten. cbData UDINT Legt die Größe der zu schreibenden Werte fest. Timeout TIME Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetzt auf 5 Sekunden. Version: 1.8 TS6100...
  • Seite 249 Fehlercode ist in ErrorID enthalten. ErrorID DWORD Enthält den befehlsspezifischen ADS‑Fehlercode des zuletzt ausgeführten Befehls. Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS-Bibliotheken TwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUa TwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa TS6100 Version: 1.8...
  • Seite 250 Beispiele Beispiele Beispielcode und -konfigurationen für dieses Produkt können über das entsprechende Repository auf GitHub bezogen werden: https://github.com/Beckhoff/TF6100_Samples . Sie haben dort die Möglichkeit das Repository zu clonen oder ein ZIP File mit dem Sample herunterzuladen. Version: 1.8 TS6100...
  • Seite 251 Server in seinen Endpunkten dennoch immer den eigenen Hostnamen. Wenn sich nun der Client direkt mit einem der Endpunkte verbindet, so verwendet er wieder den Hostnamen des Servers. Im Falle einer nicht funktionierenden Namensauflösung schlägt dann die Verbindung fehl. TS6100 Version: 1.8...
  • Seite 252 7.1.3 Client PLCopen Verhalten Hinweise Der Versuch einen Structured Data Type von einem Structured Data Types werden vom PLCopen- Server auszulesen oder zu schreiben schlägt fehl. basierten Client nicht unterstützt. Bitte verwenden Sie hierfür den I/O Client. Version: 1.8 TS6100...
  • Seite 253 ERR_PORTALREADYCONNECTED Port bereits verbunden. 0x14 0x98110014 ERR_AMSSYNC_W32ERROR AMS Sync Win32 Fehler. 0x15 0x98110015 ERR_AMSSYNC_TIMEOUT AMS Sync Timeout. 0x16 0x98110016 ERR_AMSSYNC_AMSERROR AMS Sync Fehler. 0x17 0x98110017 ERR_AMSSYNC_NOINDEXINMAP Keine Index-Map für AMS Sync vorhanden. 0x18 0x98110018 ERR_INVALIDAMSPORT Ungültiger AMS-Port. TS6100 Version: 1.8...
  • Seite 254 Online-Change auftreten. Erzeuge einen neuen Handle. 0x712 1810 0x98110712 ADSERR_DEVICE_INVALIDSTATE Gerät (Server) ist im ungültigen Zustand. 0x713 1811 0x98110713 ADSERR_DEVICE_TRANSMODENOTSUPP AdsTransMode nicht unterstützt. 0x714 1812 0x98110714 ADSERR_DEVICE_NOTIFYHNDINVALID Notification Handle ist ungültig. 0x715 1813 0x98110715 ADSERR_DEVICE_CLIENTUNKNOWN Notification-Client nicht registriert. Version: 1.8 TS6100...
  • Seite 255 Schlüssel in der Tabelle nicht gefunden. 0x753 1875 0x98110753 ADSERR_CLIENT_NOMORESYM Keine Symbole im Cache. 0x754 1876 0x98110754 ADSERR_CLIENT_SYNCRESINVALID Ungültige Antwort erhalten. 0x755 1877 0x98110755 ADSERR_CLIENT_SYNCPORTLOCKED Sync Port ist verriegelt. 0x756 1878 0x98110756 ADSERR_CLIENT_REQUESTCANCELLED Die Anfrage wurde abgebrochen. RTime Fehlercodes TS6100 Version: 1.8...
  • Seite 256 Statusvariablen sowie Kontrollvariablen an. Nachfolgend findet sich die Erläuterung dieser Variablen. Lesen der Statuscodes Bitte beachten Sie, dass der Statuscode der State Machine hier in hexadezimaler Schreibweise aufgeführt ist. Sollte der Code in TwinCAT als Dezimalzahl angezeigt werden, muss er für die Interpretation konvertiert werden. Version: 1.8 TS6100...
  • Seite 257 3 = Node Handles 3 = true(&on) abfragen (get node handles) 4 = Zyklisches Lesen/ Schreiben (continuous read/write) 5 = Lesen/Schreiben über Trigger-Variablen (triggered read/write) 6 = Warten auf Benachrichtigungen bezgl. Datenänderungen (awaiting data change noti fications (subscriptions)) 7 = Verbindung trennen (disconnect) 8 = Zurücksetzen (reset) 0x0123 0 = Standard (default) Control 1 = State Machine zurücksetzen (reset state machine) 2 = Ausführen (beim Lesen/Schreiben mit TS6100 Version: 1.8...
  • Seite 258 Aufruf von UA Service fehlgeschlagen 0x E4DD 0100 UAC_E_CONNECTED Server bereits verbunden 0x E4DD 0101 UAC_E_CONNECT Allgemeiner Fehler beim Aufbau einer Verbindung 0x E4DD 0102 UAC_E_UASECURITY UA Security konnte nicht eingerichtet werden 0x E4DD 0103 UAC_E_ITEMEXISTS Element ID bereits vorhanden Version: 1.8 TS6100...
  • Seite 259 Zugriff auf ungültiges Attribut von Knoten 0x E4DD 0128 UAC_E_NOTSUPPORTED Das Kommando wird vom verbundenen UaServer nicht unterstützt, z. B. beim Aufruf von UA_HistoryUpdate. 0x E4DE 0100 UAC_E_INVALID_ARRAY_LENGTH Es wurde eine ungültige, nicht zu DataValueCount passende, Array-Länge am UA_HistoryUpdate zugewiesen. TS6100 Version: 1.8...
  • Seite 260 Die Downloads sind in verschiedenen Formaten erhältlich. Beckhoff Niederlassungen und Vertretungen Wenden Sie sich bitte an Ihre Beckhoff Niederlassung oder Ihre Vertretung für den lokalen Support und Service zu Beckhoff Produkten! Die Adressen der weltweiten Beckhoff Niederlassungen und Vertretungen entnehmen Sie bitte unserer Internetseite: www.beckhoff.com...
  • Seite 261 Anhang Beckhoff Unternehmenszentrale Beckhoff Automation GmbH & Co. KG Hülshorstweg 20 33415 Verl Deutschland Telefon: +49 5246 963-0 E-Mail: info@beckhoff.com Internet: www.beckhoff.com TS6100 Version: 1.8...
  • Seite 263 Mehr Informationen: www.beckhoff.de/ts6100 Beckhoff Automation GmbH & Co. KG Hülshorstweg 20 33415 Verl Deutschland Telefon: +49 5246 9630 info@beckhoff.com www.beckhoff.com...