ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · translate this...

226
Handbuch TC3 OPC UA TwinCAT 2.5 02.05.2018 TF6100 Version: Datum: Bestell-Nr.:

Upload: vantruc

Post on 05-May-2018

236 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Handbuch

TC3 OPC UA

TwinCAT

2.502.05.2018TF6100

Version:Datum:Bestell-Nr.:

Page 2: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com
Page 3: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Inhaltsverzeichnis

TC3 OPC UA 3Version: 2.5

Inhaltsverzeichnis1 Vorwort ....................................................................................................................................................... 5

1.1 Hinweise zur Dokumentation ..........................................................................................................  51.2 Sicherheitshinweise ........................................................................................................................  6

2 Übersicht .................................................................................................................................................... 72.1 Szenarien........................................................................................................................................  72.2 Wichtige Information für OPC UA Clients .....................................................................................  102.3 Versionsübersicht .........................................................................................................................  102.4 Anwendungsbeispiele...................................................................................................................  12

2.4.1 Nachbearbeitung in der Cloud ......................................................................................... 12

3 Installation................................................................................................................................................ 193.1 Systemvoraussetzungen ..............................................................................................................  193.2 Installation.....................................................................................................................................  203.3 Installation Windows CE ...............................................................................................................  233.4 Installation TC2.............................................................................................................................  253.5 Installation Windows CE TC2 .......................................................................................................  283.6 Lizenzierung .................................................................................................................................  333.7 Lizenzierung TC2..........................................................................................................................  37

4 Technische Einführung........................................................................................................................... 384.1 TwinCAT OPC UA Server.............................................................................................................  38

4.1.1 Übersicht .......................................................................................................................... 384.1.2 Quick Start ....................................................................................................................... 394.1.3 SPS.................................................................................................................................. 414.1.4 C++ .................................................................................................................................. 754.1.5 I/O .................................................................................................................................... 944.1.6 Matlab/Simulink.............................................................................................................. 1064.1.7 Dateiübertragung ........................................................................................................... 1184.1.8 Sicherheit ....................................................................................................................... 1204.1.9 Verschiedenes ............................................................................................................... 125

4.2 TwinCAT OPC UA Client ............................................................................................................  1344.2.1 Übersicht ........................................................................................................................ 1344.2.2 I/O .................................................................................................................................. 1354.2.3 Unterstützte Datentypen ................................................................................................ 1394.2.4 Best Practice.................................................................................................................. 1404.2.5 Sicherheit ....................................................................................................................... 154

4.3 TwinCAT OPC UA Gateway .......................................................................................................  1574.3.1 Übersicht ........................................................................................................................ 1574.3.2 Quick Start ..................................................................................................................... 1574.3.3 Lizenzierung................................................................................................................... 1594.3.4 Setup‑Szenarien ............................................................................................................ 1594.3.5 Konfigurator.................................................................................................................... 1614.3.6 Migration von Tx6120 .................................................................................................... 166

4.4 TwinCAT OPC UA Sample Client...............................................................................................  1684.4.1 Übersicht ........................................................................................................................ 1684.4.2 Sichere Verbindung mit OPC UA Server herstellen....................................................... 1694.4.3 Im UA-Namensraum browsen........................................................................................ 1724.4.4 Watchliste verwenden.................................................................................................... 173

5 Konfiguration ......................................................................................................................................... 1755.1 Setup Version 3.x.x.....................................................................................................................  175

Page 4: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Inhaltsverzeichnis

TC3 OPC UA4 Version: 2.5

5.1.1 Übersicht ........................................................................................................................ 1755.1.2 Data Access................................................................................................................... 1765.1.3 Historical Access............................................................................................................ 1775.1.4 Sicherheit ....................................................................................................................... 1775.1.5 Alarms & Conditions (A&C)............................................................................................ 1785.1.6 Online Panel .................................................................................................................. 180

5.2 Setup Version 4.x.x.....................................................................................................................  1815.2.1 Übersicht ........................................................................................................................ 1815.2.2 Anlegen eines neuen Projekts ....................................................................................... 1825.2.3 Auswahl eines Zielgeräts ............................................................................................... 1835.2.4 Hinzufügen von ADS-Geräten ....................................................................................... 1845.2.5 Download/Upload der Konfiguration .............................................................................. 1875.2.6 Import/Export von Konfigurationsdateien....................................................................... 1895.2.7 Konfiguration von Historical Access............................................................................... 1905.2.8 Konfiguration von Alarms & Conditions ......................................................................... 1925.2.9 Konfiguration von Alarmtexten....................................................................................... 1955.2.10 Konfiguration der Endpunkte ......................................................................................... 1975.2.11 Konfiguration von Zertifikats-Vertrauenseinstellungen .................................................. 1975.2.12 Neustart des Servers ..................................................................................................... 1985.2.13 Troubleshooting & Logging ............................................................................................ 198

6 SPS API .................................................................................................................................................. 2006.1 Funktionsbausteine.....................................................................................................................  200

6.1.1 UA_Connect................................................................................................................... 2006.1.2 UA_Disconnect .............................................................................................................. 2016.1.3 UA_GetNamespaceIndex .............................................................................................. 2026.1.4 UA_MethodCall .............................................................................................................. 2036.1.5 UA_MethodGetHandle................................................................................................... 2046.1.6 UA_MethodReleaseHandle ........................................................................................... 2056.1.7 UA_NodeGetHandle ...................................................................................................... 2066.1.8 UA_NodeGetHandleList................................................................................................. 2076.1.9 UA_NodeReleaseHandle............................................................................................... 2086.1.10 UA_NodeReleaseHandleList ......................................................................................... 2096.1.11 UA_Read........................................................................................................................ 2106.1.12 UA_ReadList .................................................................................................................. 2116.1.13 UA_Write........................................................................................................................ 212

6.2 Datentypen .................................................................................................................................  2136.2.1 E_UAAttributeID............................................................................................................. 2136.2.2 E_UADataType .............................................................................................................. 2146.2.3 E_UAIdentifierType........................................................................................................ 2146.2.4 E_UASecurityMsgMode................................................................................................. 2156.2.5 E_UASecurityPolicy ....................................................................................................... 2156.2.6 E_UATransportProfile .................................................................................................... 2166.2.7 ST_UASessionConnectInfo ........................................................................................... 2166.2.8 ST_UAIndexRange ........................................................................................................ 2166.2.9 ST_UAMethodArgInfo.................................................................................................... 2176.2.10 ST_UANodeID ............................................................................................................... 2176.2.11 ST_UANodeAdditionalInfo ............................................................................................. 218

7 Beispiele................................................................................................................................................. 219

8 Anhang ................................................................................................................................................... 2208.1 Fehlerdiagnose ...........................................................................................................................  2208.2 OPC-UA-Client-Fehlercodes ......................................................................................................  2218.3 ADS Return Codes .....................................................................................................................  2228.4 Support und Service ...................................................................................................................  225

Page 5: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Vorwort

TC3 OPC UA 5Version: 2.5

1 Vorwort

1.1 Hinweise zur DokumentationDiese Beschreibung wendet sich ausschließlich an ausgebildetes Fachpersonal der Steuerungs- undAutomatisierungstechnik, das mit den geltenden nationalen Normen vertraut ist.Zur Installation und Inbetriebnahme der Komponenten ist die Beachtung der Dokumentation und dernachfolgenden Hinweise und Erklärungen unbedingt notwendig. Das Fachpersonal ist verpflichtet, für jede Installation und Inbetriebnahme die zu dem betreffenden Zeitpunktveröffentliche Dokumentation zu verwenden.

Das Fachpersonal hat sicherzustellen, dass die Anwendung bzw. der Einsatz der beschriebenen Produktealle Sicherheitsanforderungen, einschließlich sämtlicher anwendbaren Gesetze, Vorschriften, Bestimmungenund Normen erfüllt.

Disclaimer

Diese Dokumentation wurde sorgfältig erstellt. Die beschriebenen Produkte werden jedoch ständig weiterentwickelt.Wir behalten uns das Recht vor, die Dokumentation jederzeit und ohne Ankündigung zu überarbeiten und zuändern.Aus den Angaben, Abbildungen und Beschreibungen in dieser Dokumentation können keine Ansprüche aufÄnderung bereits gelieferter Produkte geltend gemacht werden.

Marken

Beckhoff®, TwinCAT®, EtherCAT®, Safety over EtherCAT®, TwinSAFE®, XFC®und XTS® sind eingetrageneund lizenzierte Marken der Beckhoff Automation GmbH.Die Verwendung anderer in dieser Dokumentation enthaltenen Marken oder Kennzeichen durch Dritte kannzu einer Verletzung von Rechten der Inhaber der entsprechenden Bezeichnungen führen.

Patente

Die EtherCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen undPatente:EP1590927, EP1789857, DE102004044764, DE102007017835mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.

Die TwinCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen undPatente:EP0851348, US6167425 mit den entsprechenden Anmeldungen und Eintragungen in verschiedenenanderen Ländern.

EtherCAT® ist eine eingetragene Marke und patentierte Technologie lizensiert durch die BeckhoffAutomation GmbH, Deutschland

Copyright

© Beckhoff Automation GmbH & Co. KG, Deutschland.Weitergabe sowie Vervielfältigung dieses Dokuments, Verwertung und Mitteilung seines Inhalts sindverboten, soweit nicht ausdrücklich gestattet.Zuwiderhandlungen verpflichten zu Schadenersatz. Alle Rechte für den Fall der Patent-, Gebrauchsmuster-oder Geschmacksmustereintragung vorbehalten.

Page 6: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Vorwort

TC3 OPC UA6 Version: 2.5

1.2 Sicherheitshinweise

Sicherheitsbestimmungen

Beachten Sie die folgenden Sicherheitshinweise und Erklärungen!Produktspezifische Sicherheitshinweise finden Sie auf den folgenden Seiten oder in den Bereichen Montage,Verdrahtung, Inbetriebnahme usw.

Haftungsausschluss

Die gesamten Komponenten werden je nach Anwendungsbestimmungen in bestimmten Hard- und Software-Konfigurationen ausgeliefert. Änderungen der Hard- oder Software-Konfiguration, die über diedokumentierten Möglichkeiten hinausgehen, sind unzulässig und bewirken den Haftungsausschluss derBeckhoff 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.

Erklärung der Symbole

In der vorliegenden Dokumentation werden die folgenden Symbole mit einem nebenstehendenSicherheitshinweis oder Hinweistext verwendet. Die Sicherheitshinweise sind aufmerksam zu lesen undunbedingt zu befolgen!

GEFAHR

Akute Verletzungsgefahr!Wenn der Sicherheitshinweis neben diesem Symbol nicht beachtet wird, besteht unmittel-bare Gefahr für Leben und Gesundheit von Personen!

WARNUNG

Verletzungsgefahr!Wenn der Sicherheitshinweis neben diesem Symbol nicht beachtet wird, besteht Gefahr fürLeben und Gesundheit von Personen!

VORSICHT

Schädigung von Personen!Wenn der Sicherheitshinweis neben diesem Symbol nicht beachtet wird, können Personengeschädigt werden!

Achtung

Schädigung von Umwelt oder GerätenWenn der Hinweis neben diesem Symbol nicht beachtet wird, können Umwelt oder Gerätegeschädigt werden.

Hinweis

Tipp oder FingerzeigDieses Symbol kennzeichnet Informationen, die zum besseren Verständnis beitragen.

Page 7: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Übersicht

TC3 OPC UA 7Version: 2.5

2 ÜbersichtOPC Unified Architecture (OPC UA) ist die nächste Generation des klassischen OPC-Standards. Es handeltsich hierbei um ein weltweit standardisiertes Kommunikationsprotokoll, mit dessen Hilfe sichMaschinendaten sowohl Hersteller-, als auch Plattformunabhängig austauschen lassen. Hierbei integriertOPC UA bereits direkt im Protokoll gängige Sicherheitsstandards. Ein weiterer großer Vorteil von UAgegenüber dem klassischen OPC-Standard ist die Unabhängigkeit vom COM/DCOM-System. Für detaillierteInformationen zu OPC UA sei auf die Webseiten der OPC Foundation verwiesen.

Komponenten

Folgende Softwarekomponenten wurden für Win32/64- und Windows CE-basierte Systeme eingebunden:

Software-Komponente BeschreibungOPC UA Server [} 38] Stellt eine OPC-UA-Server-Schnittstelle zur

Verfügung, damit UA-Clients auf die TwinCAT-Laufzeit zugreifen können.

OPC UA Client [} 134] Stellt eine OPC-UA-Client-Funktionalität zurVerfügung, damit die Kommunikation mit anderenOPC UA Servern auf der Grundlage von PLCopen-genormten Funktionsbausteinen sowie einem einfachzu konfigurierenden I/O-Gerät möglich ist.

Folgenden Softwarekomponenten wurden für Win32/64-basierte Systeme eingebunden:

Software-Komponente (nur Windows) BeschreibungOPC UA Konfigurator [} 175] Grafische Benutzerschnittstelle für die Konfiguration

des TwinCAT OPC UA ServerOPC UA Sample Client [} 168] Grafische Beispielimplementierung eines OPC UA

Clients um einen ersten Verbindungstest mit demTwinCAT OPC UA Server durchführen zu können.

OPC UA Gateway [} 157] Wrapper-Technologie, die sowohl eine OPC‑COM-DA-Server-Schnittstelle als auch OPC-UA-Server-Aggregationsfähigkeiten zur Verfügung stellt.

2.1 SzenarienIm Folgenden werden einige Szenarien erläutert, gemäß derer die Komponenten je nach Anwendungsfallund Infrastruktur des Kunden implementiert und verwendet werden können:

• OPC UA Server: Integriert in Industrie-PC oder Embedded-PC [} 8]

Page 8: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Übersicht

TC3 OPC UA8 Version: 2.5

• OPC UA Server: Läuft auf einem Zentralrechner mit Verbindung zu ferner(n) TwinCAT‑Laufzeit(en).[} 9]

• OPC UA Server: Zugriff auf BC Controller [} 9]

OPC UA Server: Integriert in Industrie-PC oder Embedded-PC

Hinweis

Empfohlenes SzenarioDieses Szenario beschreibt, wie der TwinCAT OPC UA Server unter normalen Umständeneingesetzt werden sollte.

Einer der größten Vorteile des TwinCAT OPC UA Servers besteht darin, dass er selbst in die kleinsteEmbedded-Plattform, z. B. die CX8000-Baureihe, integriert werden kann. Dank dieser Integration ist dasallgemeine Handling sehr einfach und komfortabel. OPC UA Clients, z. B. HMI-oder MES/ERP-Systeme,können eine Verbindung mit dem OPC UA Server herstellen und aus der TwinCAT-Laufzeit stammendeSymbolinformationen lesen oder schreiben.

Auf dem zentralen Server laufen folgende Softwarekomponenten und Konfigurationen:

• Dritter OPC UA Client, der z. B. ein HMI-, MES-, oder ERP-System sein kann.

Auf dem Industrie-PC oder Embedded-PC laufen folgende Softwarekomponenten und Konfigurationen:

• Der TwinCAT OPC UA Server stellt automatisch eine Verbindung mit der ersten lokalenTwinCAT‑SPS‑Laufzeit her.

• TwinCAT-Laufzeit

Dieses Szenario hat folgende Vorteile:

• Die Netzwerknutzung ist optimiert, weil sie auf OPC-UA-Kommunikationstechniken aufbaut, z. B. OPC-UA-Registrierungen.

• Die Speichernutzung ist dezentral. Jedes Gerät ist ausschließlich für den eigenen Speicherbedarfzuständig.

• Sicherheit – OPC UA verfügt über direkt ins Protokoll integrierte Sicherheitsmechanismen. Dies istz. B. sehr praktisch, wenn einer der Industrie-PCs oder Embedded-PC übers Internet verbunden ist.

Page 9: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Übersicht

TC3 OPC UA 9Version: 2.5

OPC UA Server: Läuft auf einem Zentralrechner mit Verbindung zu ferner(n) TwinCAT-Laufzeit(en)

Dieses Szenario beschreibt die klassische Implementierung von OPC-Server. Server, die die alteOPC‑DA‑Technologie verwenden, waren häufig auf einem zentralen Server implementiert, statt auf demIndustrie-PC, auf dem die TwinCAT-Laufzeit ausgeführt wird, um die DCOM-Konfigurationen zu vermeiden.(Zur Erinnerung: Im Gegensatz zu OPC UA basiert OPC DA auf COM/DCOM‑Technologien)

Auf dem zentralen Server laufen folgende Softwarekomponenten und Konfigurationen:

• TwinCAT 3 ADS (oder TwinCAT 2 CP) für die erforderliche ADS-Konnektivität• TwinCAT OPC UA Server mit Datenzugriffsgeräten für ferne TwinCAT-Laufzeiten konfiguriert• ADS-Routen zu fernen TwinCAT-Laufzeiten• Symboldateien von jeder fernen TwinCAT-Laufzeit• OPC UA Client, der z. B. ein HMI-, MES- oder ERP-System sein kann.

Auf dem Industrie-PC oder Embedded-PC laufen folgende Softwarekomponenten und Konfigurationen:

• TwinCAT-Laufzeit• ADS-Route zum zentralen Server

Je mehr ferne TwinCAT-Laufzeiten mit dem zentralen TwinCAT OPC-US Server verbunden werden, destohöher ist die Netzwerknutzung

Der OPC UA Server verwendet fortschrittliche ADS-Aufzeichnungstechniken, um die Symbolwerte von derTwinCAT-Laufzeit abzufragen. Je mehr Symbole vorhanden sind, desto mehr zyklische Abfragen sindunterwegs. Demzufolge findet die optimierte OPC-UA-Kommunikation nur lokal auf dem zentralen Serverstatt (zwischen OPC UA Client und OPC UA Server).

Dieses Szenario weist im Vergleich zu Szenario 1 folgende Nachteile auf:

• Die Netzwerknutzung kann abhängig von der Anzahl vorhandener Geräte und Symbole sehr hochsein.

• Der Speicherbedarf auf dem zentralen Server ist sehr hoch, weil der OPC UA ServerSymbolinformationen von jeder TwinCAT-Laufzeit importieren muss.

• Keine Sicherheit zwischen zentralem Server und der TwinCAT-Laufzeit dank Datenverschlüsselung –ADS wurde auf hohe Leistung ausgelegt.

• Die Notwendigkeit, bei jeder SPS-Programmänderung Symboldateien zwischen TwinCAT‑Laufzeit undzentralem Server auszutauschen.

OPC UA Server: Zugriff auf BC Controller

Auch wenn kleine BC Controller nicht in der Lage sind, einen eigenen OPC UA Server auszuführen, könnenSie trotzdem Zugriff auf die auf einem fernen BC Controller, z. B. ein BC9191, ausgeführte SPS‑Laufzeithaben und deren Symbolwerte über OPC UA veröffentlichen. Bei diesem Szenario muss derOPC UA Server zusammen mit einer TwinCAT 3 ADS (oder TwinCAT 2 CP) auf einem anderen Rechnerausführt und das Szenario auf die gleiche Weise wie Szenario 2 konfiguriert werden.

Page 10: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Übersicht

TC3 OPC UA10 Version: 2.5

2.2 Wichtige Information für OPC UA ClientsIn der nachfolgenden Änderungsübersicht werden wichtige Unterschiede zwischen den Produktversionendargestellt. Diese Informationen sind wichtig, wenn das Softwareprodukt eine bedeutendeSoftwareaktualisierung erfährt.

Änderungsübersicht TwinCAT OPC UA Server

Wichtige Änderungenin der Version

Komponente Anmerkungen

Alle Versionen Arrays in einem SPS-Programm Standardmäßig werden Array-Elemente einesSPS-Arrays nicht als getrennte Knoten im UA-Namensraum angezeigt. Stattdessen wird nurein Knoten für das gesamte Array verwendetund UA-Clients können auf jedes Element überdessen IndexRange zugreifen. Siehe auch:Verwendung von Arrays [} 70]

2.1 Aufzählungen (Enums) in einemSPS-Programm

Standardmäßig werden Aufzählungen in einemSPS-Programm nicht als EnumTypen im UA-Namensraum angezeigt. In der vorherigenVersion waren diese einfach ein Int16.

2.1 NamespaceName Seit der Version 2.1 wird der NamespaceNamegemäß dem URI-Konzept generiert undbeinhaltet stets den Hostnamen des Rechners,auf dem der UA-Server läuft. In älterenVersionen ist der NamespaceName gleich demNamen, der im Configurator Tool festgelegtwurde, z. B. „PLC1“. Diese Information istbesonders dann wichtig, wenn ein UA-Client vordem Zugriff auf einen Knoten denNamespaceName in einen NamespaceIndexauswertet. Für Kompatibilitätszwecke und zurVereinfachung der Aktualisierung ohne Eingriffauf den UA-Client, bietet die Version 2.2 desTwinCAT OPC UA Servers einenMechanismus, um das alte NamespaceName-Konzept zu aktivieren. Siehe auch: TwinCATOPC UA Server [} 38]

2.2 Strukturen in SPS Seit Version 2.2.x kann auf Strukturen in einemSPS-Programm über ein StructuredType im UA-Namensraum zugegriffen werden. Dadurchkönnen UA‑Clients Typen von Elementen imSTRUCT interpretieren. Siehe auch:Strukturierte Typen [} 67]

2.2 Namensraum-Auslegung einer C++-Modulinstanz

Im Vergleich zu älteren Versionen (bis 2.1.x)wurde der UA-Namensraum eines C++‑Modulsin Version 2.2.x neu entworfen, umfortschrittliche Funktionalitäten, wieMethodenaufruf für eine C++‑Modulinstanzzuzulassen.

2.3 VersionsübersichtDas Supplement/Function-Produkt TwinCAT OPC UA wird in verschiedenen Setupversionen ausgeliefert,welche unterschiedliche Entwicklungsstände widerspiegeln. Für neue Projekte wird der Wechsel auf dieaktuellste Setupversion empfohlen, um alle neuen Produktfunktionalitäten verwenden zu können. FürBestandsprojekte stehen weiterhin ältere Setupversionen zum Download bereit.

Aktuell gibt es zwei Versionsstände:

Page 11: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Übersicht

TC3 OPC UA 11Version: 2.5

• Setupversion 3.x.x: Langjährige Bestandsversion, welche bereits eine Vielzahl an Funktionen bietet.Die Version wird weiterhin im Hinblick auf Optimierungen gepflegt.

• Setupversion 4.x.x: Neue Version. Zukünftige Weiterentwicklungen und neue Produktfunktionalitätenfinden nur noch in dieser Version statt.

Die folgende Tabelle gibt einen Überblick über die verschiedenen Versionsstände im Hinblick auf derenProduktfunktionalitäten.

Funktionalität 3.x.x 4.x.x BemerkungenData Access SPS ja ja Ermöglicht Lese/Schreib-Zugriff auf die

TwinCAT-2/3-SPSData Access TcCOM ja ja Ermöglicht Lese/Schreib-Zugriff auf

TwinCAT-3-TcCOM-ModuleData Access I/O Task ja ja Ermöglicht Lese/Schreib-Zugriff auf die

TwinCAT-2/3-I/O-TaskData Access BCSteuerungen

ja ja Ermöglicht Lese/Schreib-Zugriff aufBeckhoff-BC-Steuerungen

Historical Access SPS ja ja Ermöglicht die Aktivierung von Variablenaus der TwinCAT-2/3-SPS für HistoricalAccess

Historical Access TcCOM ja (nur TC3 C++) ja Ermöglicht die Aktivierung von Variablenaus einem TwinCAT-3-TcCOM-Modul fürHistorical Access

Historical Access I/O Task nein ja Ermöglicht die Aktivierung von Variablenaus einer TwinCAT-2/3-I/O-Task fürHistorical Access

Historical Access BCSteuerungen

nein ja Ermöglicht die Aktivierung von Variablenaus einer Beckhoff-BC-Steuerung fürHistorical Access

Historical Access fürexistierende Projekte

nein ja Ermöglicht die Aktivierung von Variablenfür Historical Access ohne dabei dasLaufzeitprojekt anpassen zu müssen

Alarms & Conditions SPS ja ja Ermöglicht die Aktivierung von Variablenaus der TwinCAT 2/3 SPS für Alarms &Conditions

Alarms & ConditionsTcCOM

nein ja Ermöglicht die Aktivierung von Variablenaus einem TwinCAT-3-TcCOM-Modul fürAlarms & Conditions

Alarms & Conditions I/OTask

nein ja Ermöglicht die Aktivierung von Variablenaus einer TwinCAT-2/3-I/O-Task fürAlarms & Conditions

Alarms & Conditions BCSteuerungen

nein ja Ermöglicht die Aktivierung von Variablenaus einer Beckhoff-BC-Steuerung fürAlarms & Conditions

Alarms & Conditions fürexistierende Projekte

nein ja Ermöglicht die Aktivierung von Variablenfür Alarms & Conditions ohne dabei dasLaufzeitprojekt anpassen zu müssen

Methodenaufrufe SPS ja ja OPC UA Server ermöglicht die Aktivierungund Darstellung vonTwinCAT‑3‑SPS‑Methoden alsOPC‑UA‑Methode

Methodenaufrufe TcCOM ja (nur TC3 C++) ja OPC UA Server ermöglicht die Aktivierungund Darstellung von TwinCAT‑3‑C++‑Methoden als OPC‑UA‑Methode

Security X509 Zertifikateself-signed

ja ja, konfiguierbar Generierung von selbst-signiertenZertifikaten

Security X509 Zertifikatecustom

ja ja Ermöglicht die Verwendung von eigenenZertifikatsautoritäten

Page 12: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Übersicht

TC3 OPC UA12 Version: 2.5

Funktionalität 3.x.x 4.x.x BemerkungenSecurityBenutzerauthentifizierung

ja ja OPC UA Server ermöglichtAuthentifizierung von lokalen oderDomänenbenutzern

Security ZugriffslevelNamespace-Ebene

nein ja OPC UA Server ermöglicht Definition vonverschiedenen Zugriffsleveln aufNamensraum-Ebene

Security ZugriffslevelNode-Ebene

nein ja OPC UA Server ermöglicht Definition vonverschiedenen Zugriffsleveln auf Node-Ebene

Konfigurator im VisualStudio

nein ja -

KonfiguratorRemotezugriff

nein ja Konfigurator ermöglicht die Remote-Konfiguration vonTwinCAT OPC UA Servern unabhängigvom verwendeten Betriebssystem auf demZielgerät.

2.4 Anwendungsbeispiele

2.4.1 Nachbearbeitung in der CloudDas Gesamtkonzept zur Bereitstellung einer generischen, standardisierten und aufrufbaren Schnittstelle inder Cloud, die eingehende Daten zur weiteren Analyse akzeptiert, basiert – neben den dezentralisiertenClients, die diesen Service aufrufen – auf einem Endpunkt in der Cloud, der entweder eine Windows-basierte virtuelle Maschine oder ein echte Hardware ist, auf der ein Windows Betriebssystem läuft. In dieserDokumentation wird dieses Gerät im Allgemeinen als „OPC UA Server” (in der Cloud) bezeichnet.

Page 13: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Übersicht

TC3 OPC UA 13Version: 2.5

Anwendungsbeispiel: Daten-Logger

Das Gesamtdokument zeigt, wie auf Rechenressourcen in der Cloud zugegriffen werden kann unddezentrale TwinCAT-SPS-Geräte angeschlossen werden können, um diese Ressourcen zu nutzen. Alserstes Anwendungsbeispiel kann dieser Anwendungsfall auf ein typisches Datenspeicherungsszenarioangewandt werden, in dem dezentrale TwinCAT-SPS-Geräte Daten an die Cloud senden, in der dieeingehenden Daten in einer SQL-Datenbank über den TwinCAT Database Server gespeichert werden.Obwohl das allgemeine Szenario ebenfalls das Hin- und Zurücksenden von Daten umfasst (d. h. Sendenvon Parametern an die Cloud, Ausführung der Berechnungen in der Cloud und dann Rücksendung derberechneten Ergebnisse), erfordert dieses spezifische Szenario nicht die Rückgabe von Ergebnissen ausder Cloud.

Page 14: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Übersicht

TC3 OPC UA14 Version: 2.5

Systemanforderungen: OPC UA Server („Die Cloud“)

Die Cloud muss in der Lage sein, eine der folgenden Betriebssystemvarianten zu hosten. Beachten Siedabei, dass die Verwendung von Virtualisierungstechnologie eine kostenintensivere Lösung für64‑Bit‑Betriebssysteme erfordert.

Gerät ist eine virtuelle Maschine• 32-Bit-Windows-Betriebssystem• 64-Bit-Windows-Betriebssystem mit CPU Core Isolation (mindestens 2 Kerne erforderlich)

Gerät ist eine dedizierte Hardware• 32-Bit-Windows-Betriebssystem• 64-Bit-Windows-Betriebssystem

Zusätzlich müssen die folgenden Softwarekomponenten auf dem Gerät installiert werden:

• TwinCAT 3 XAR (nur Runtime) oder XAE (Runtime und Engineering)• TwinCAT 3 Function TF6100 OPC UA

Beachten Sie, dass bei Installation eines kompletten TwinCAT 3 XAE weitere Konfigurationseinstellungensinnvoll sein können, wie z. B. das Handling von Lizenzen oder die Möglichkeit zum Debuggen des Gerätsdirekt in der Cloud. Zum Speichern von Daten in einer zentralen Datenbank die von einem Client eingehen,müssen die folgenden Softwarekomponenten installiert sein:

• TwinCAT 3 Function TF6420 Database

Systemanforderungen: Dezentralisierter OPC UA Client

Der dezentralisierte OPC UA Client basiert auf einer TwinCAT-3-SPS-Laufzeit und kann daher auf jederHardwarekonfiguration gehostet werden, die den Betrieb einer TwinCAT-3-SPS unterstützt. Zudem muss dieTwinCAT 3 Function TF6100 OPC UA auf dem Client-Gerät installiert werden, um denTwinCAT OPC UA Client nutzen zu können, um UA-Methoden auf dem Server in der Cloud auszuführen.

Technische Beschreibung

Die Realisierung eines OPC UA Servers in der Cloud ist sehr anwendungsspezifisch. Beckhoff stellt eineallgemeine Architekturbeschreibung zur Verfügung, unabhängig von dem Anwendungsfall im Einzelnen. AlsAnwendungsbeispiel beschreibt dieser Artikel häufig ein Datenaggregationsszenario, bei dem Prozessdaten

Page 15: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Übersicht

TC3 OPC UA 15Version: 2.5

von dezentralisierten Clients über OPC UA zu einem zentralen Server übertragen werden, auf welchem dieDaten in einer zentralen Datenbank angesammelt werden. Der Vorteil von OPC UA besteht in diesem Fallnicht nur in der standardisierten Schnittstelle (und daher zur Nutzung dieses Konzepts für jede Art vonOPC UA Client), sondern auch in der Möglichkeit, den Kommunikationskanal zu sichern, indem derintegrierte Sicherheitsmechanismus von OPC UA eingesetzt wird.

Der TwinCAT OPC UA Server wird verwendet, um die in der IEC61131-3 SPS-definierten Methoden demOPC‑UA‑Namensraum offenzulegen. Diese Methoden können von jedem TwinCAT OPC UA Client (auf derGrundlage der PLCopen‑Funktionsbausteine) oder von 3rd-Party OPC UA Clients aufgerufen werden.

Dezentralisierter OPC UA Client

Der Hauptzweck des OPC UA Clients besteht darin, Methoden auf dem Remote-Server aufzurufen. DerClient ist mit großer Wahrscheinlichkeit ein TwinCAT-3-Embedded-Gerät, das den dezentralen Teil derAnwendung erfüllt. Dies würde für das Datenaggregations-Beispiel bedeuten, Prozessdaten abzufragen undsie durch Aufruf einer Methode an den Server zu senden.

Schnittstellenbeschreibung (zur Cloud)

Als Schnittstelle zu einem zentralisierten Cloud-System gibt es nur zwei vom Server bereitgestellteMethoden:

• int Send(data): Diese Methode überträgt die Daten über einen OPC-UA-Methodenaufruf vor und gibteine JobID zurück

• int QueryState(jobID): Unter Verwendung der zuvor abgerufenen JobID kann der Client zyklisch denaktuellen Status des Jobs abfragen. Dies könnte ausgelassen werden, wenn der Server in der Cloudalle Situationen bearbeiten kann oder der Client bei Problemen ohnehin nicht aushelfen kann.

Die Kommunikation zwischen Clients und der Cloud kann durch die eingebauten Sicherheitskonzepte vonOPC UA gesichert werden, z. B. durch die Verwendung von Client- und Server-Zertifikaten zurVerschlüsselung der Datenkommunikation.

Die Cloud

Der OPC UA Server in der Cloud basiert auf TwinCAT-3-SPS-Methoden, die dem OPC‑UA‑Namensraumoffengelegt werden. Das SPS-Projekt enthält die folgenden drei Komponenten:

• MethodCall Provider: Diese Komponente bietet die zuvor erwähnte Send-Methode, bei der Datengesammelt, eine JobID erstellt und die Daten als verschiedene Jobs in die Queue eingestellt werden.Darüber hinaus könnte es eine QueryState-Methode geben, um es OPC UA Clients zu ermöglichen,den aktuellen Jobstatus abzufragen.

• Queue: Die Warteschlange speichert eine Liste der Jobs, die ausgeführt werden sollen. Jeder Job inder Warteschlange enthält die folgenden Informationen: {ID, Status, Data}. Neue Elemente (Jobs)werden durch den MethodCall Provider hinzugefügt und können durch diesen auch gelöscht werden.Die gesamte Warteschlange kann innerhalb des SPS-Programms auf einer Hash-Tabelle basieren.

• Aggregator: Die Anwendung, die die Jobs verarbeitet. Sie schaut zyklisch in der Queue, ob es zubearbeitende Jobs gibt. Wenn dies der Fall ist, übernimmt sie den Job (stellt den Status auf„verarbeitet“) und beginnt mit der Verarbeitung des Jobs, z. B. der Verbindung zu einer Datenbanküber die Funktionsbausteine des TwinCAT Database Server. Beachten Sie, dass es mehr als einenAggregator geben kann, um eine parallele Verarbeitung der Queue zu ermöglichen.

Page 16: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Übersicht

TC3 OPC UA16 Version: 2.5

Beispiel

Das folgende Beispiel illustriert das Szenario durch die Ausführung einfacher Jobs: Jobs können dem Servervon einem OPC UA Client vorgelegt werden. In diesem Beispiel bestehen die Jobdaten aus einemdefinierbaren Zeitintervall, das vom Aggregator aufgenommen wird, um den Job fertigzustellen. Das Beispielbesteht aus den folgenden SPS-Komponenten auf dem OPC UA Server:

• ST_JobEntry: Repräsentiert einen Job in der Queue. Der Job besteht bei den Daten lediglich auseinem Namen und einer Zeitdauer. Eine Dauer definiert die Zeitspanne, die ein Job benötigt.

• E_JobState: Repräsentiert den Status eines Jobs. Die Beispielimplementierung definiert die folgendenWerte: QUEUED, PROCESSING, READY, FAILED und INVALID.

• LongTerm: Repräsentiert den MethodCall Server (besteht aus den Methoden Calc_Request undCalc_Response) sowie den Aggregator, der den Job verarbeitet (der im Funktionsbausteinimplementiert 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 Methodenzum Umgang mit der Warteschlange gegeben (Hinzufügen, Zählen, GetFirst, GetNext, Lookup,Entfernen, Zurücksetzen).

Verwendung des Beispiels

Der UA-Expert könnte als Beispiel-Client verwendet werden, um die Methoden aufzurufen, die vomOPC UA Server in der Cloud bereitgestellt werden. Durch Aufruf der Methode Calc_Request erhält derClient eine JobID (oder 0 zur Anzeige eines Fehlers):

Page 17: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Übersicht

TC3 OPC UA 17Version: 2.5

Indem die zurückgegebene JobId zur Methode Calc_Response gebracht wird, kann der Client den JobStateabfragen.

Zudem werden die vorher eingestellte Dauer und der Jobname als spätere Referenz zurückgegeben.

Installation

Das folgende Kapitel beschreibt die Installation und Konfiguration jeder Softwarekomponente, die auf demServer in der Cloud erforderlich ist.

Nur Runtime

Wenn der Server nicht die Engineering‑Umgebung von TwinCAT 3 hostet, muss dieTwinCAT‑3‑XAR‑Installation verwendet werden. Beachten Sie, dass in diesem Fall das gesamte Handlingzur ordnungsgemäßen Funktion mehrere Schritte involviert und die zukünftige Wartung ggf. schwieriger ist,da der XAR-Installation die Programmierungs- und Debugging-Umgebung fehlt. In diesem Szenario mussder Benutzer sicherstellen, dass die Pflege der ADS-Routen zwischen dem tatsächlichen Engineering-Computer (auf dem das SPS-Programm für den Server entwickelt wird) und dem Gerät, das den Server inder Cloud hostet, nicht nur den Download und das Debugging des SPS-Programms erlauben muss, sondern

Page 18: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Übersicht

TC3 OPC UA18 Version: 2.5

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 weitereInformationen. Zur einfacheren Handhabung der TwinCAT‑3‑Laufzeitlizenzen wurde das ToolTC3 License Request Generator entwickelt. Dieses kann über den Beckhoff FTP-Server heruntergeladenwerden und ermöglicht die Erstellung von License Request Files und den Import von License ResponseFiles:

ftp.beckhoff.com/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 dieentsprechenden Engineering‑Komponenten, um das Debuggen und eine einfachere Handhabung desLaufzeitsystems zu ermöglichen. In diesem Fall ist es erforderlich, TwinCAT 3 XAE auf dem System zuinstallieren.

Zusätzliche Software

Nach erfolgreicher Installation von TwinCAT XAE oder XAR müssen die folgenden Softwarekomponentenauf dem Gerät installiert und konfiguriert werden:

TF6100 OPC UA

Die Function TF6100 installiert einen OPC UA Server (und Client) auf dem Gerät. Der Server ist erforderlich,um den OPC UA Clients die SPS-Methoden zur Verfügung zu stellen. Wenn das SPS-Programm in dieLaufzeit heruntergeladen wird, importiert der OPC UA Server automatisch die erste SPS-Laufzeit in seinenNamensraum. Sämtliche Variablen und Methoden der SPS, die als verfügbar über OPC UA gekennzeichnetsind, werden in den OPC-UA-Namensraum importiert und werden für Clients verfügbar. In der TF6100-Dokumentation erhalten Sie weitere Informationen.

TF6420 Database

Wenn der Server die von den Clients erhaltenen Daten in einer Datenbank speichern soll, muss die TF6420-Function verwendet werden. Sie bietet generische Funktionsblöcke für die TwinCAT-3-SPS für den Zugriffauf die Datenbank, z. B. um Werte in eine Datenbanktabelle einzufügen. Installieren Sie das TF6420-Setupund konsultieren Sie die TF6420-Dokumentation für weitere Informationen zur Nutzung der entsprechendenFunktionsbausteine.

Lizenzierung

Alle TwinCAT‑3‑Softwareprodukte erfordern eine Lizenz, um auf dem Server verfügbar zu sein. Die Lizenzkann entweder aus einer 7-Tage-Testlizenz oder aus einer uneingeschränkten Lizenz bestehen. Lizenzenkönnen unter Verwendung des TwinCAT 3 XAE Lizenzmanagers aktiviert werden. Wenn eine TwinCAT-3-XAR-Installation auf dem Server verwendet wird, verwenden Sie den TC3 License Generator.

Page 19: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Installation

TC3 OPC UA 19Version: 2.5

3 Installation

3.1 SystemvoraussetzungenOPC UA Server BeschreibungBetriebssystem Windows 7, 10

Windows CE 6/7Windows Embedded Standard 2009Windows Embedded 7Windows Server 2008 R2Windows Server 2012

Zielplattformen PC Architektur (x86, x64).NET Framework 4.5.2 (nur benötigt für Konfigurator)TwinCAT-Version TwinCAT 2, TwinCAT 3TwinCAT-Installationslevel TwinCAT 2 CP, PLC, NC-PTP

TwinCAT 3 XAE, XAR, ADSBenötigte TwinCAT-Lizenz TS6100 TwinCAT OPC UA (für TwinCAT 2)

TF6100 TC3 OPC UA (für TwinCAT 3)

OPC UA Client BeschreibungBetriebssystem Windows 7, 10

Windows CE 6/7Windows Embedded Standard 2009Windows Embedded 7Windows Server 2008 R2Windows Server 2012

Zielplattformen PC Architektur (x86, x64).NET Framework ---Minimale TwinCAT-Version TwinCAT 2, TwinCAT 3Minimales TwinCAT-Installationslevel TwinCAT 2 PLC, NC-PTP

TwinCAT 3 XAE, XARBenötigte TwinCAT-Lizenz TS6100 TwinCAT OPC UA (für TwinCAT 2)

TF6100 TC3 OPC UA (für TwinCAT 3)

OPC UA Gateway BeschreibungBetriebssystem Windows 7, 10

Windows Embedded Standard 2009Windows Embedded 7Windows Server 2008 R2Windows Server 2012

Zielplattformen PC Architektur (x86, x64).NET Framework ---Minimale TwinCAT-Version ---Minimales TwinCAT-Installationslevel ---Benötigte TwinCAT-Lizenz ---

Page 20: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Installation

TC3 OPC UA20 Version: 2.5

OPC UA Konfigurator BeschreibungBetriebssystem Windows 7, 10

Windows Embedded Standard 2009Windows Embedded 7Windows Server 2008 R2Windows Server 2012

Zielplattformen PC Architektur (x86, x64).NET Framework 4.5.2Minimale TwinCAT-Version TwinCAT 2 (Standalone-Tool, bis Setupversion 3)

TwinCAT 3 (Visual Studio integriert, ab Setupversion 4)Minimales TwinCAT-Installationslevel TwinCAT 2 CP, PLC, NC-PTP (Standalone-Tool, bis Setupversion

3)TwinCAT 3 XAE, XAR, ADS (Standalone-Tool, bis Setupversion 3)TwinCAT 3 XAE (Visual Studio integriert, ab Setupversion 4)

Benötigte TwinCAT-Lizenz ---

OPC UA Sample Client BeschreibungBetriebssystem Windows 7, 10

Windows Embedded Standard 2009Windows Embedded 7Windows Server 2008 R2Windows Server 2012

Zielplattformen PC Architektur (x86, x64).NET Framework 4.0Minimale TwinCAT-Version ---Minimales TwinCAT-Installationslevel ---Benötigte TwinCAT-Lizenz ---

3.2 InstallationDie Installation der TwinCAT 3 Function für Windows basierte Betriebssysteme erfolgt Schritt-für-Schritt.

1. Führen Sie einen Doppelklick auf die herunter geladene Datei TFxxxx aus.Hinweis: Bitte starten Sie die Installation unter Windows per Als Administrator ausführen, indem Siedie Setup-Dateien mit der rechten Maus anklicken und die entsprechende Option im Kontextmenüauswählen.

Page 21: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Installation

TC3 OPC UA 21Version: 2.5

2. Klicken Sie auf Next und akzeptieren Sie die Endbenutzervereinbarung.

3. Geben Sie Ihre Benutzerdaten ein.

Page 22: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Installation

TC3 OPC UA22 Version: 2.5

4. Für eine vollständige Installation wählen Sie Complete als Installationstyp. Alternativ können Sie jedeKomponente separat installieren, indem Sie Custom wählen.

5. Wählen Sie Next und Install um die Installation zu beginnen.

Das TwinCAT System muss gestoppt werden um mit der Installation fortzufahren.

Page 23: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Installation

TC3 OPC UA 23Version: 2.5

6. Bestätigen Sie den Dialog mit Yes.

7. Wählen Sie Finish um das Setup zu beenden.

ð Damit ist die Installation abgeschlossen.

Der nächste Schritt nach einer erfolgreichen Installation ist die Lizenzierung der TC3 Function [} 33].

3.3 Installation Windows CENachfolgend wird beschrieben, wie die TwinCAT 3 Function TF6100 OPC UA auf einem BeckhoffEmbedded Controller mit Windows CE installiert wird.

Die Installation besteht aus vier Schritten:

• Download der Setup-Datei [} 24]

• Installation auf einem Host-Computer [} 24]

• Übertragung der ausführbaren Datei auf das Windows-CE-Gerät [} 24]

• Installation der Software [} 24]

Wenn schon eine ältere TF6100-Version auf dem Windows-CE-Gerät installiert ist, kann diese aktualisiertwerden:

• Upgrade der Software [} 25]

Page 24: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Installation

TC3 OPC UA24 Version: 2.5

Download der Setup-Datei

Die für Windows CE ausführbare Datei ist Teil des TF6100-OPC-UA-Setups. Dieses wird Ihnen auf derBeckhoff Homepage www.beckhoff.com zur Verfügung gestellt und enthält automatisch alle Versionen fürWindows XP, Windows 7 und Windows CE (x86 und ARM).

Die Installation für das TF6100-OPC-UA-Setup ist im Abschnitt Installation [} 20] beschrieben.

Installation auf einem Host-Computer

Nach der Installation enthält der Installationsordner drei Verzeichnisse - jeweils ein Verzeichnis proHardwareplattform:

• CE-ARM: ARM-basierte Embedded Controller, welche unter Windows CE laufen, z. B. CX8090,CX9020

• CE-X86: X86-basierte Embedded Controller, welche unter Windows CE laufen, z. B. CX50xx, CX20x0• Win32: Embedded Controller, welche unter Windows XP, Windows 7 oder Windows Embedded

Standard laufen

Die Verzeichnisse CE-ARM und CE-X86 enthalten die CAB-Dateien der TF6100 Function für Windows CE inBezug auf die jeweilige Hardwareplattform des Windows-CE-Geräts. Übertragen Sie diese ausführbarenDateien auf das Windows-CE-Gerät.

Übertragen der ausführbaren Datei auf das Windows-CE-Gerät

Für die Übertragung der ausführbaren Dateien, stehen Ihnen verschiedene Möglichkeiten zur Verfügung:

• über Netzwerkfreigaben• über den integrierten FTP-Server• über ActiveSync• über CF/SD Karten

Weitere Informationen finden Sie im Beckhoff Informationssystem im Windows‑CE‑Bereich.

Installation der Software

Nachdem Sie die Datei auf das Windows-CE-Gerät übertragen haben, führen Sie die Datei dort mit einemDoppelklick aus. Den Installationsdialog können Sie mit OK bestätigen. Starten Sie das CE-Gerätanschließend neu.

Nach dem Neustart des Geräts werden die ausführbaren Dateien (Client und Server) automatisch imHintergrund geladen und sind verfügbar.

Die Software wird in dem folgenden Verzeichnis auf dem CE-Gerät installiert:\Hard Disk\TwinCAT\Functions\TF6310-TCP-IP

Page 25: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Installation

TC3 OPC UA 25Version: 2.5

Upgrade der Software

Wenn Sie schon eine ältere TF6100-Version auf dem Windows-CE-Gerät installiert haben, führen Sie diefolgenden Schritte auf dem Windows-CE-Gerät durch, um auf eine neuere Version zu upgraden:

1. Um den CE-Explorer zu öffnen, klicken Sie auf Start > Run, geben Sie „explorer“ und bestätigen Sie dieEingabe.

2. Navigieren Sie nach \Hard Disk\TwinCAT\Functions\Tf6100-OPC-UA\Server bzw. (in einem zweitenSchritt) \Hard Disk\TwinCAT\Functions\Tf6100-OPC-UA\Client.

3. Benennen Sie die Datei TcOpcUaServer.exe bzw. TcOpcUaClient.exe um.4. Starten Sie das Windows-CE-Gerät neu.5. Übertragen Sie die neue CAB-Datei auf das Windows-CE-Gerät.6. Installieren Sie die neue CAB-Datei.7. Löschen Sie die alten (umbenannten) Dateien.8. Starten Sie das Windows-CE-Gerät neu.ð Nach dem Neustart ist die neue Version aktiv.

3.4 Installation TC2Nachfolgend wird beschrieben, wie TwinCAT OPC UA unter Windows XP installiert wird.

Die Installation besteht aus drei Schritten:

• Download der Setup-Datei [} 25]

• Starten der Installation [} 25]

• Nach der Installation [} 28]

Download der Setup-Datei

Genauso wie viele andere TwinCAT-Ergänzungsprodukte steht OPC UA als 30‑Tage‑Demoversion oderVollversion zum Download auf der Beckhoff Homepage www.beckhoff.com zur Verfügung.

Starten der Installation1. Doppelklicken Sie auf die heruntergeladene Setupdatei TcOpcUaSvr.exe. HINWEIS! Unter

Windows 7 32bit/64bit starten Sie die Installation über den Befehl „Als Administrator ausführen“.Klicken Sie mit der rechten Maustaste auf die Setup-Datei und wählen Sie den entsprechendenBefehl im Kontextmenü.

2. Wählen Sie eine Installationssprache.

Page 26: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Installation

TC3 OPC UA26 Version: 2.5

3. Klicken Sie auf Weiter und stimmen Sie der Lizenzvereinbarung zu.

Page 27: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Installation

TC3 OPC UA 27Version: 2.5

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.

Page 28: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Installation

TC3 OPC UA28 Version: 2.5

5. Klicken Sie auf Installieren, um die Installation zu starten.

6. Starten Sie den Computer neu, um die Installation abzuschließen.

Nach der Installation

Die TwinCAT-Ergänzung OPC UA wird automatisch während der Installation konfiguriert und es sind keineweiteren Einstellungen für die Nutzung dieses Produkts erforderlich. Zu den weiteren Schritten gehörengegebenenfalls:

• Stellen Sie eine erste Verbindung mit dem installierten UA-Server her und testen Sie dessenKonfiguration mit dem OPC UA Sample Client. (Siehe TwinCAT OPC UA Sample Client [} 168])

• Personalisieren Sie das UA-Server-Setup mithilfe des OPC‑UA‑Konfigurators. (Siehe Konfiguration[} 175])

• Vergewissern Sie sich zudem, dass Ihre Firewall den TCP Port 4870 öffnet, weil der OPC UC Serverdiesen Port benötigt.

3.5 Installation Windows CE TC2Nachfolgend wird beschrieben, wie TwinCAT OPC UA auf einer Windows-CE-basierten Beckhoff-Embedded-PC-Steuerung, z. B. CX1000, CX1020, CX9000, CX9001, CX9010, CX8090, CP62xx, C69xx, …installiert wird.

Die Installation besteht aus vier Schritten:

• Download der Setup-Datei [} 29]

• Installation auf einen Host-Computer [} 29]

• Übertragen der Setup-Datei auf ein Windows-CE-Gerät [} 31]

• Ausführen des Setup auf dem Windows-CE-Gerät [} 31]

Page 29: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Installation

TC3 OPC UA 29Version: 2.5

Hinweis

Installation auf kleinen Embedded-Plattformen (CX9001, CX9010)Sehr kleine Embedded-Geräte erfordern möglicherweise einige zusätzliche manuelleSchritte, damit die CAB-Datei installiert werden kann. Zu diesen Schritten gehört möglicher-weise die Löschung von unnötigen Dateien im Speicher der Geräte, damit ausreichendPlatz bereitsteht, um alle Dateien der Anwendung zu installieren.

Download der Setup-Datei

Genauso wie viele andere TwinCAT-Ergänzungsprodukte steht OPC UA für CE als Download auf demBeckhoff FTP-Server zur Verfügung.

Installation auf einen Host-Computer

Damit Sie die Installierungsdateien für Windows CE erhalten können, müssen Sie zunächst dieheruntergeladene Setup-Datei auf einem Host-Computer installieren. Dieser kann ein beliebiges Windows-CE-basiertes System sein kann.

1. Doppelklicken Sie auf die heruntergeladene Datei TcOpcUaSvrCE.exe2. Wählen Sie eine Installationssprache.3. Klicken Sie auf Weiter und stimmen Sie der Lizenzvereinbarung zu.

Page 30: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Installation

TC3 OPC UA30 Version: 2.5

4. Geben Sie ihre Benutzerinformationen ein. Alle Felder müssen ausgefüllt werden. Beachten Sie, dassOPC UA für CE derzeit nicht als Demo-Version verfügbar ist. Demzufolge benötigen Sie einen gültigenLizenzschlüssel, um mit der Installierung fortzufahren.

Page 31: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Installation

TC3 OPC UA 31Version: 2.5

5. Wählen Sie als Installationsart Vollständig und klicken Sie auf Weiter

6. Klicken Sie auf Installieren, um die Installation zu starten.ð Nach der Installierung finden Sie die Setup-Dateien für Windows CE im Verzeichnis .\TwinCAT\CE.

Dieses Verzeichnis beinhaltet Setup-Dateien für die folgenden CE-Plattformen:• TwinCAT OPC UA Client CE\I586: OPC UA Client (SPS-Bibliothek) für x86 basierte CPUs (wie

CX10xx, CP62xx, C69xx, ...)• TwinCAT OPC UA Client CE\ARMV4I: OPC UA Client (SPS-Bibliothek) für ARM basierte CPUs (wie

CX9001, CX9010, CP6608, ...)• TwinCAT OPC UA Server CE\I586: OPC UA Server für x86 basierte CPUs (wie CX10xx, CP62xx,

C69xx, ...)• TwinCAT OPC UA Server CE\ARMV4I: OPC UA Server für ARM basierte CPUs (wie CX9001,

CX9010, CP6608, ...)

Übertragen der Setup-Datei auf ein Windows-CE-Gerät

Übertragen Sie die entsprechende Setup-Datei auf Ihr CE-Gerät. Für die Übertragung der Setup-Dateistehen 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 Informationssystem im Windows‑CE‑Bereich.

Ausführen des Setup auf dem Windows-CE-Gerät

Führen Sie die übertragene Setup-Datei TcOpcUaSvrCe.xxxx.CAB auf dem CE Gerät aus:

Page 32: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Installation

TC3 OPC UA32 Version: 2.5

1. Navigieren Sie zu dem Verzeichnis, in das Sie die Setup-Datei übertragen haben.

2. Doppelklicken Sie auf die CAB-Datei. Wird ein Meldungsdialog eingeblendet, dass dieses Programmnicht mit dem aktuellen Betriebssystem kompatibel ist, vergewissern Sie sich, dass Sie die richtigeCAB-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 diesenMeldungsdialog mit Ja.

4. Wählen Sie \Hard Disk\System\ als Zielverzeichnis

5. Klicken Sie auf OK, um die Installation zu starten.

ð Nach der Installierung wird die Setup-Datei automatisch gelöscht.

Page 33: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Installation

TC3 OPC UA 33Version: 2.5

HINWEIS! Wenn Sie den OPC UA Server installiert haben, wird diese Komponente nach einemNeustart Ihres CE-Geräts verfügbar.

3.6 LizenzierungDie TwinCAT 3 Function ist zusätzlich zur Vollversion auch in einer 7-Tage Testversion freischaltbar. BeideLizenztypen sind über TwinCAT XAE aktivierbar. Weitere Information zum TwinCAT 3Lizenzierungsverfahren finden Sie im TwinCAT 3 Hilfesystem. Das folgende Dokument beschreibt denLizenzierungsvorgang einer TwinCAT 3 Function und gliedert sich dabei in die folgenden beidenUnterkapitel:

• Lizenzierung einer 7-Tage Testversion [} 33]

• Lizenzierung einer Vollversion [} 34]

Lizenzierung einer 7-Tage Testversion1. Starten Sie TwinCAT XAE2. Öffnen Sie ein bestehendes TwinCAT 3 Projekt, oder legen Sie ein neues Projekt an3. Navigieren Sie im Solution Explorer zum Eintrag System\License

4. Öffnen Sie die Registerkarte Manage Licenses und fügen Sie eine Runtime License für Ihr Produkthinzu (in diesem Screenshot TE1300: TC3 Scope View Professional)

5. Optional : Möchten Sie die Lizenz für ein Remote Gerät hinzufügen, müssen Sie sich zunächst mitdiesem Gerät über die TwinCAT XAE Toolbar verbinden

Page 34: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Installation

TC3 OPC UA34 Version: 2.5

6. Aktivieren Sie in der Registerkarte Order Information über den Button Activate 7 Days TrialLicense... eine Testversion

7. Starten Sie im Anschluss daran das TwinCAT 3 System einmal neu

Lizenzierung einer Vollversion8. Starten Sie TwinCAT XAE9. Öffnen Sie ein bestehendes TwinCAT 3 Projekt oder legen Sie ein neues Projekt an

10. Navigieren Sie im Solution Explorer zum Eintrag SYSTEM/License

11. Öffnen Sie die Registerkarte Manage Licenses und fügen Sie eine Runtime License für Ihr Produkthinzu (in diesem Screenshot TE1300: TC3 Scope View Professional).

Page 35: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Installation

TC3 OPC UA 35Version: 2.5

12. Optional: Möchten Sie die Lizenz für ein Remote Gerät hinzufügen, müssen Sie sich zunächst mitdiesem Gerät über die TwinCAT XAE Toolbar verbinden

13. Öffnen Sie die Registerkarte Order InformationDie Felder System-ID und HW Platform können nicht geändert werden, sie beschreiben die zulizensierende Plattform. Generell wird eine TwinCAT 3 Lizenz an zwei Kennzahlen gebunden:Die System-ID identifiziert Ihr Gerät eindeutig.Die HW Platform ist eine Kennzahl für die Performanz des Gerätes.

14. Tragen Sie optional eine eigene Bestellnummer und einen Kommentar für Ihre Zwecke ein

15. Generieren Sie in der Registerkarte Order Information über den Button Generate License RequestFile... eine Lizenzanforderungs-Datei, die durch einen Beckhoff-Lizenzserver validiert wird (wenn IhnenIhre Beckhoff License ID nicht bekannt ist, wenden Sie sich an Ihren Ansprechpartner aus demBeckhoff Vertrieb).

16. Nachdem Sie das License Request File gespeichert haben, fragt das System, ob die Datei per Mail anden Beckhoff Lizenz Server geschickt werden soll:

17. Wenn Sie den Dialog mit Yes bestätigen, öffnet sich Ihr Standard E-Mail Client und erzeugt eine neueE-Mail für [email protected], die das License Request File enthält

18. Senden Sie diesen Activation Request an BeckhoffHINWEIS! das License Response File wird an die dieselbe E-Mail Adresse versendet, die das

License Request File verschickt hat19. Kurz darauf erhalten Sie vom Beckhoff-Lizenzserver eine Lizenzdatei,

importieren Sie diese über den Button Activate License Response File..., um das Produkt zuaktivieren

Page 36: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Installation

TC3 OPC UA36 Version: 2.5

20. Wählen Sie in Ihrem Ordnersystem das erhaltene License Response File aus

21. Das License Response File wird importiert und alle enthaltenen Lizenzen werden aktiviert, sämtlichebetroffenen Demo-Lizenzen werden entfernt

Page 37: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Installation

TC3 OPC UA 37Version: 2.5

22. Starten Sie TwinCAT neu, um die Lizenz zu aktivieren

HINWEIS! Das Lizenzfile wird automatisch auf Ihre lokale Festplatte unter ...\TwinCAT\3.1\Target\License kopiert.

3.7 Lizenzierung TC2Die Lizenzierung der TwinCAT OPC UA für TC2 erfolgt im Rahmen der Installation [} 25] per Eingabe einesLizenzschlüssels.

Page 38: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA38 Version: 2.5

4 Technische Einführung

4.1 TwinCAT OPC UA Server

4.1.1 ÜbersichtDer TwinCAT OPC UA Server bietet eine standardisierte Kommunikationsschnittstelle für den Zugriff aufSymbolwerte aus der TwinCAT-SPS- und C++‑Laufzeit bzw. I/O‑Task.

Dieser Teil der Dokumentation beschreibt die Basiskonfiguration des TwinCAT OPC UA Servers.

Sie beinhaltet folgende Themenbereiche:

• OPC UA Configurator: Grafische Oberfläche zur Konfiguration des OPC UA Servers.• OPC UA DA (Data Access): Zugriff auf TwinCAT-PLC- und IO-Task-Werte via OPC UA• OPC UA HA (Historical Access): Bietet Möglichkeiten zur Speicherung von historischen Daten, z. B. im

lokalen RAM, in einer Datei oder einer Datenbank• OPC UA AC (Alarm & Conditioning): Bietet Condition-Monitoring-Funktionalitäten für SPS‑Variablen• OPC UA Security: Beschreibt die in OPC UA integrierten Sicherheitsmechanismen

HINWEIS! Beachten Sie die Quick-Start-Anleitung zum Einstieg in die Thematik.

Erweiterte Konfiguration

Je nach Art der Betriebsumgebung sind gegebenenfalls zusätzliche Konfigurationsparameter erforderlich,um die folgenden Dinge einzustellen:

• Konfigurationsdatei [} 127]: Beschreibung der Konfigurationsdatei ServerConfig.xml desOPC UA Servers. Diese Datei sollte üblicherweise über den OPC-UA-Konfigurator editiert werden(siehe Themenbereiche oben)

Page 39: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 39Version: 2.5

• Konfiguration von SPS-Variablen [} 70]: Bietet eine Übersicht über alle konfigurierbaren Optionen(über SPS-Kommentare) an einer SPS-Variablen

• Weitere ADS-Geräte [} 127]: Beschreibt, wie weitere TwinCAT-Geräte in den Namensraum desOPC UA Servers integriert werden

• Mehrere UA-Server [} 129]: Beschreibt, wie Sie mehrere OPC-UA-Server-Instanzen auf einem Gerätstarten können

• UA über NAT [} 131]: Beschreibt, wie Sie eine OPC-UA-Kommunikation über ein NAT-Gerät herstellen,z. B. eine Firewall oder einen Router

• Ändern der Handhabung von Arrays im OPC‑UA‑Namensraum [} 70]: Beschreibt zweiDarstellungsoptionen von SPS-Arrays im OPC-UA-Namensraum

4.1.2 Quick StartDiese Quick‑Start‑Anleitung setzt voraus, dass der OPC UA Server auf demselben System wie die SPS-Laufzeit installiert ist.

Nach der erfolgreichen Installation und Lizenzierung können die folgenden Schritte durchgeführt werden, umeine erste Verbindung zu einer SPS-Laufzeit über den OPC UA Server aufzubauen:

• Schritt 1: Konfiguration von SPS‑Variablen für den OPC-UA-Zugriff [} 39]

• Schritt 2: Konfiguration des OPC‑UA‑Namensraums [} 39]

• Schritt 3: Herstellen einer Verbindung zum OPC UA Server [} 40]

Schritt 1: Konfiguration von SPS-Variablen für den OPC-UA‑Zugriff

Öffnen Sie ein bestehendes SPS-Projekt und fügen Sie den folgenden Kommentar vor den ausgewähltenVariablen ein:

TwinCAT 3 (mit TMC-Import):{attribute 'OPC.UA.DA' := '1'}bVariable : BOOL;

TwinCAT 2 (mit TPY-Import):bVariable : BOOL; (*~ (OPC:1:some description) *)

Schritt 2: Konfiguration des OPC-UA-Namensraums

Der OPC UA Server stellt standardmäßig eine Verbindung mit der ersten SPS-Laufzeit auf dem lokalenSystem her (lokal = das gleiche System, auf dem auch der OPC UA Server installiert ist) und verwendetderen entsprechende Symboldatei (TMC-Datei) für die Konfiguration des OPC‑UA‑Namensraums.Damit die Symboldatei automatisch an die SPS-Laufzeit übergeben wird, aktivieren Sie den Download derSymboldatei in den Einstellungen des SPS-Projekts.

Page 40: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA40 Version: 2.5

Bei jeder Aktivierung des SPS-Projekts wird die Symboldatei automatisch in das Verzeichnis C:\TwinCAT\3.x\Boot\Plc\ kopiert und dort nach dem entsprechenden ADS-Port des SPS-Projekts benannt, z. B.„Port_851.tmc“ für die erste SPS-Laufzeit.

Die Standardkonfiguration des OPC UA Servers liest diese Symboldatei automatisch beim Start.

Hinweis

LizenzPrüfen Sie, ob eine Lizenz vorhanden ist. In TwinCAT 3 können Sie eine TF6100-Lizenz[} 33] in der TwinCAT-Lizenzverwaltung eintragen.

Aktivieren Sie die Konfiguration und starten Sie TwinCAT neu. Loggen Sie sich anschließend in die SPS-Laufzeit ein und starten Sie das SPS-Programm.

Schritt 3: Herstellen einer Verbindung zum OPC UA Server

Um eine Verbindung von einem OPC UA Client herzustellen, muss der Client eine Verbindung mit der URLdes OPC UA Servers herstellen. Diese URL wird folgendermaßen beschrieben:

opc.xxx://<ip or name>:port• opc = vordefiniert• xxx = Transport an OPC UA Server, z. B. „tcp“• port = Portnummer von OPC UA Server, z. B. 4840 (standardmäßig)

Hinweis

Standard-Port 4840Beachten, dass der Standard-Port 4840 eventuell von anderen OPC UA Servern verwen-det wird, z. B. dem Local Discovery Server (LDS) von der OPC Foundation, die von man-chen Anbietern mit OPC‑UA‑Softwarepaketen eingesetzt wird.

Beispiele:• opc.tcp://CX_0215AF:4840• opc.tcp://172.16.2.80:4840

Page 41: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 41Version: 2.5

Starten Sie den mitgelieferten UA Sample Client (bei Windows-Systemen mit aktiviertem UAC, z. B.Windows 7, mit dem Befehl Run As Administrator) und stellen Sie eine Verbindung mit der URL desOPC UA Servers her, z. B. opc.tcp://localhost:4840, indem Sie auf Endpunkte erhalten undanschließendem auf Verbinden klicken.

HINWEIS! Sie finden den UA Sample Client unter dem Windows Startmenü oder imInstallationsverzeichnis des Produkts, z. B. C:\TwinCAT\Functions\TF6100-OPC-UA\Win32\SampleClient\.

Nach erfolgreicher Herstellung der Verbindung finden Sie die SPS-Laufzeit „PLC1“ mit den veröffentlichtenVariablen (siehe Schritt 1) im UA-Namensraum unterhalb des Knotens „Objects“.

4.1.3 SPS

4.1.3.1 Zugriff auf SPS-Laufzeit

In diesem Teil der Dokumentation wird beschrieben, wie der Namensraum des TwinCAT OPC UA Serverskonfiguriert werden kann. Der UA-Namensraum beschreibt die Struktur, in welche die SPS-Variablenabgebildet werden. Damit eine SPS-Variable über den UA‑Namensraum erreichbar ist, muss sie dafürfreigegeben werden. Der folgende Leitfaden beschreibt mehrere Möglichkeiten, um Variablen in einem SPS-Programm freizugeben.

Beachten Sie, dass sich der OPC UA Server sich standardmäßig immer mit dem ersten lokalen SPS-Laufzeitsystem verbindet, eine Konfiguration ist also in den meisten Fällen nicht erforderlich (siehe auchQuick Start [} 39]). Nur in Ausnahmefällen muss eine separate Konfiguration erfolgen, z. B. wenn im UA-Namensraum weitere Laufzeiten angezeigt werden sollen oder wenn auf die SPS eines BC-Gerätszugegriffen werden muss.

Dieser Abschnitt beinhaltet folgende Themen:

• Allgemeine Informationen [} 41]

• Schritt 1: SPS-Variablen auswählen, die über OPC UA öffentlich zugänglich werden sollen. [} 43]

• Schritt 2: Symbolbeschreibung herunterladen und im SPS-Projekt aktivieren [} 45]

• [Optional] Schritt 3: Datenzugriffgerät in OPC UA Server konfigurieren [} 46]

• Explizites Ausblenden von Variablen [} 47]

Allgemeine Informationen

Für die Konfiguration des OPC-UA-Namensraums und den Zugriff auf SPS-Variablen stehen mehrereParameter zur Verfügung, die je nachdem, wie die SPS-Laufzeit angezeigt wird und wie die Kommunikationstattfindet, unterschiedliche Auswirkungen haben.

Sie können diese Parameter bequem mithilfe des OPC-UA-Konfigurators festlegen. Alternativ dazu könnenSie diese auch direkt in der Konfigurationsdatei ServerConfig.xml festlegen.

Die folgende Tabelle gibt einen Überblick über alle Parameter, die beim Zugriff auf eine SPS-Laufzeit vonBedeutung sind:

Parameter Beschreibung Mögliche WerteADS Port Definiert den ADS-Port, unter dem die

SPS-Laufzeit zugänglich ist. Der ADS-Port kann in den Eigenschaften des SPS-Projekts gelesen werden.

800 (BC Controller)801 (TwinCAT 2)811 (TwinCAT 2)…851 (TwinCAT 3 -standardmäßig)852 (TwinCAT 3)…

Page 42: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA42 Version: 2.5

Parameter Beschreibung Mögliche WerteAutoCfg Definiert zunächst den Typ der für die

Kommunikation verwendeten Ziel-Laufzeit, z. B. SPS, C++, I/O.Anschließend kann eine weitergehendeUnterscheidung innerhalb dieserKategorien stattfinden.Jede AutoCfg-Option steht sowohl alsungefilterte, als auch gefilterte Option zurVerfügung. Gefiltert bedeutet, dass derNutzer bestimmen kann, welche SPS-Symbole über OPC UA via SPS-Kommentaren veröffentlicht werdensollten (siehe unten). Bei Verwendungeiner ungefilterten Option wird jedes SPS-Symbol an OPC UA veröffentlicht.

7 TwinCAT 2 (TPY)8 TwinCAT 2 (TPY) gefiltert4040 TwinCAT 3 (TMC)4041 TwinCAT 3 (TMC)gefiltert

AutoCfgSymFile Symboldatei der jeweiligen SPS-Laufzeit.Standardmäßig wird die automatischerzeugte Symboldatei der ersten SPS-Laufzeit des lokalen Systems importiert.

Pfad zur Symboldatei. Zeigtstandardmäßig auf dieSymboldatei (TMC) der erstenlokalen SPS-Laufzeit.

IoMode Definiert die Methode für den Zugriff aufSymbole. Dies ist besonders wichtig fürden Zugriff auf BC-Geräte.

1 (Zugriff über Handle -standardmäßig)3 (Zugriff auf BC Controller)

ArraySubItemLegacySupport Unterelemente eines Array werdenstandardmäßig nicht als separate Knotenim UA-Namensraum abgebildet.Stattdessen wird lediglich das Array alsein einzelnes Element abgebildet.Nichtsdestotrotz können UA-Clients überderen sogenannten „IndexRange“ aufUnterelemente zugreifen.Unglücklicherweise unterstützen einigeältere OPC UA Clients diese Möglichkeitnoch nicht. Dieses Flag wurde eingeführt,sodass der Zugriff nichtsdestotrotz fürdiese Clients möglich wird. Das Flag sorgtdafür, dass jede Array-Position alsseparater Knoten im UA-Namensraumangezeigt wird. HINWEIS! Dies führtzu einem höheren Speicherbedarf desOPC UA Servers.

0 (deaktiviert - standardmäßig)1 (aktiviert)

Disabled Deaktiviert die SPS-Laufzeit imUA‑Namensraum, woraufhin derentsprechende Knoten nicht angezeigtwird.Es wird empfohlen, diesen Parameter zuaktivieren, wenn bestimmte SPS-Laufzeiten zum Zeitpunkt derProjektplanung noch nicht verfügbar sind,weil z. B. die entsprechenden Gerätenoch nicht ans Netzwerk angeschlossensind.

0 (deaktiviert - standardmäßig)1 (aktiviert)

Im nachfolgenden Abschnitt wird anhand eines Beispiels gezeigt, wie die Variablen aus einemSPS‑Programm in den UA‑Namensraum importiert werden können. Es wird hierbei vorausgesetzt, dass derOPC UA Server, in seiner Standardkonfiguration (Lieferzustand nach Installierung), und die SPS‑Laufzeitsich auf dem gleichen Computer befinden.

Page 43: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 43Version: 2.5

Hinweis

AutoCfg-OptionenDie in diesem Artikel enthaltenen Informationen, einschließlich die folgenden SPS-Kom-mentare/Pragmas, basieren auf TwinCAT 3 und müssen demzufolge mit den AutoCfg-Op-tionen „4041 TwinCAT 3 (TMC) gefiltert“ (Standardkonfiguration) verwendet werden.Beachten Sie, dass die AutoCfg-Optionen für TwinCAT 2 ein anderes SPS‑Kommentarfor-mat verwenden (*~ (OPC:1:description) *), das nicht mehr in TwinCAT 3 verwendet wird,aber weiterhin aus Gründen der Kompatibilität unter Verwendung der AutoCfg‑Option „8“verfügbar ist.

Schritt 1: SPS-Variablen auswählen, die über OPC UA öffentlich zugänglich werden sollen.

Der OPC UA Server stellt automatisch eine Verbindung zur ersten SPS-Laufzeit auf dem lokalen Systemher. Die im SPS-Programm (TwinCAT-SPS-Steuerung) für OPC UA gekennzeichneten SPS-Symbolewerden bereitgestellt. Die Kennzeichnung erfolgt über einen Kommentar an der geeigneten Stelle (Instanz,Struktur, Variable) im SPS-Programmcode (siehe nachfolgende Beispiele).

Beispiel 1:

In diesem Beispiel sind die SPS-Variablen bMemFlag1, bMemFlag2, bMemAlarm2 und iReadOnly überOPC UA freigegeben. Die SPS-Variable bMemAlarm1 sollte nicht über den OPC UA Server zugänglich sein.Das SPS-Programm in PLC-Control würde dann – abhängig von der von Ihnen verwendetenTwinCAT‑Version - so aussehen:

TwinCAT 3 (mit TMC-Import):{attribute 'OPC.UA.DA' := '1'}bMemFlag1 : BOOL;

{attribute 'OPC.UA.DA' := '1'}bMemFlag2 : BOOL;

bMemAlarm1 : BOOL; 

{attribute 'OPC.UA.DA' := '1'}bMemAlarm2 : BOOL; 

{attribute 'OPC.UA.DA' := '1'}{attribute 'OPC.UA.DA.Access' := '1'}iReadOnly : INT;

TwinCAT 2 (mit TPY-Import):bMemFlag1 : BOOL; (*~ (OPC:1:some description) *)

bMemFlag2 : BOOL; (*~ (OPC:1:some description) *)

bMemAlarm1 : BOOL; 

bMemAlarm2 : BOOL; (*~ (OPC:1:some description) *)

iReadOnly    : INT; (*~ (OPC:1:some description)  (OPC_PROP[0005]:1:read-only flag) *)

Die TPY Formatierung kann auch in TwinCAT‑3‑SPS‑Projekten für Migrationszwecke verwendet werden,wenn z. B. ein TwinCAT-2-Projekt bequem in ein TwinCAT‑3‑Projekt konvertiert werden soll.

Wegen des zusätzlichen Kommentars „OPC.UA.DA.Access“ wird die Zugriffsebene für die VariableiReadOnly auf „ReadOnly“ gesetzt. Die verschiedenen Möglichkeiten finden Sie in der vollständigen Listeder SPS-Kommentare (siehe Liste der Attribute und Kommentare [} 70]).

Um einer Variablen im UA-Namensraum eine Beschreibung zu geben, fügen Sie hinter der entsprechendenVariablen einen einfachen SPS-Kommentar ein, z. B.:

TwinCAT 3 (mit TMC-Import):{attribute 'OPC.UA.DA' := '1'}bMemFlag1 : BOOL; (* Description for variable bMemFlag1 *)

TwinCAT 2 (mit TPY-Import): Funktion nicht verfügbar

Dieser Kommentar wird automatisch zum Beschreibungsattribut des Knotens im UA-Namensraum.

Page 44: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA44 Version: 2.5

Beispiel 2:

In diesem Beispiel sollen die beiden Instanzen fbTest1 und fbTest2 des Funktionsbausteins FB_BLOCK1über OPC UA verfügbar sein. Wenn eine ganze Instanz freigegeben wird, sind über OPC UA auch alle ihreSymbole verfügbar. Das SPS-Programm könnte folgendermaßen aussehen, z. B.:

TwinCAT 3 (mit TMC-Import):PROGRAM MAINVAR    {attribute 'OPC.UA.DA' := '1'}    fbTest1 : FB_BLOCK1;    fbTest2 : FB_BLOCK1;END_VAR

FUNCTION_BLOCK FB_BLOCK1VAR_INPUT    {attribute 'OPC.UA.DA' := '1'}    ni1 : INT;    ni2 : INT;END_VARVAR_OUTPUT    {attribute 'OPC.UA.DA' := '1'}    no1 : INT;     no2 : INT;END_VARVAR    {attribute 'OPC.UA.DA' := '1'}    nx1 : INT;    nx2 : INT;END_VAR

TwinCAT 2 (mit TPY-Import):PROGRAM MAINVAR    fbTest1 : FB_BLOCK1; (*~ (OPC:1:some description) *)    fbTest2 : FB_BLOCK1;END_VAR

FUNCTION_BLOCK FB_BLOCK1VAR_INPUT    ni1 : INT; (*~ (OPC:1:some description) *)    ni2 : INT;END_VARVAR_OUTPUT    no1 : INT; (*~ (OPC:1:some description) *)    no2 : INT;END_VARVAR    nx1 : INT; (*~ (OPC:1:some description) *)    nx2 : INT;END_VAR

Page 45: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 45Version: 2.5

Die Instanz fbTest1 wird für OPC UA freigegeben, wodurch alle enthaltenen Symbole automatisch auch fürOPC UA freigegeben werden, sprich fbTest.ni1, fbTest.ni2, usw. Die Instanz fbTest2 ist nicht für OPC UAgekennzeichnet, allerdings wurden die drei enthaltenen Variablen - ni1, no1 und nx1 – im Funktionsbausteingekennzeichnet. Diese sind demzufolge in allen Instanzen über OPC UA verfügbar.

Schritt 2: Symbolbeschreibung herunterladen und im SPS-Projekt aktivieren

Die sogenannte Symboldatei enthält Informationen über alle in einem SPS-Projekt verfügbarenSPS‑Variablen. Der OPC UA Server benötigt diese Informationen für den Aufbau seines Namensraums. Dieaktuellen Symbolinformationen werden standardmäßig automatisch in eine Symboldatei heruntergeladen.Diese befindet sich im Projektordner des entsprechenden TwinCAT‑Projekts. Damit die Symboldatei in dieZiel-Laufzeit übertragen wird, aktivieren Sie den Download der Symboldatei in den Einstellungen desSPS‑Projekts.

TwinCAT 3:

TwinCAT 2:

Page 46: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA46 Version: 2.5

Bei der Erstellung eines Bootprojekts wird die Symboldatei automatisch in das Bootverzeichnis der SPS-Laufzeit kopiert. Der gibt Dateiname Auskunft über den entsprechenden ADS-Port der SPS-Laufzeit.

Wenn sich OPC UA Server und SPS-Laufzeit auf dem gleichen System befinden, müssen Sie nichtsanderes tun, als den OPC UA Server neu zu starten. Der OPC UA Server wird automatisch so konfiguriert,dass er die Symboldatei aus dem TwinCAT Bootverzeichnis lädt und seinen Namensraum auf derGrundlage der in dieser Datei enthaltenen Symbolinformationen generiert. Wenn eine andere Symboldateiverwendet werden soll, konfigurieren Sie diese entweder im OPC‑UA‑Konfigurator oder direkt in der DateiServerConfig.xml konfigurieren.

[Optional] Schritt 3: Datenzugriffgerät in OPC UA Server konfigurieren

Standardmäßig verbindet sich OPC UA Server mit der ersten SPS-Laufzeit auf dem lokalen System. WennSie mehr als eine SPS-Laufzeit im UA-Namensraum veröffentlichen möchten, müssen Sie zusätzlicheDatenzugriffsgeräte im OPC‑UA‑Konfigurator konfigurieren. Das kann bei folgenden Szenarien erforderlichsein:

• Sie haben eine andere (zweite oder dritte) SPS-Laufzeit, von der Sie Symbolinformationen an OPC UAveröffentlichen möchten.

• Sie haben einen anderen Industrie-PC oder Embedded-PC, dessen SPS-Laufzeit und entsprechendenSymbolinformationen Sie OPC UA öffentlich zugänglich machen möchten.

Um zusätzliche Geräte für den Datenzugriff zu konfigurieren, öffnen Sie den OPC‑UA‑Konfigurator undfügen Sie neue Datenzugriffsgeräte hinzu.

Page 47: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 47Version: 2.5

Konfigurieren Sie alle weiteren notwendigen Parameter wie oben unter Allgemeines beschrieben. Wenn Sieeinen entfernten Industrie-PC oder Embedded-PC konfigurieren, müssen Sie die richtigen Parameter fürAdsNetId, AdsPort eingeben und die entsprechende Symboldatei des SPS-Programms auf diesem PCbereitstellen.

Explizites Ausblenden von Symbolen

Neben den regulären SPS-Attributen zum Aktivieren eines SPS-Symbols, z. B. Variablen, können Sie auchSPS-Symbole explizit von einer Veröffentlichung im OPC UA Namensraums ausschließen. Dafür kann esmehrere Gründe geben:

• Sie möchten eine Datenstruktur veröffentlichen, aber nicht alle ihre Unterelemente (Beispiel 1).• Sie haben eine Datenstruktur bei der Definition aktiviert und möchten z. B. eine einzelne Instanz dieser

Datenstruktur ausblenden (Beispiel 2).• Sie wollen das Hochfahren des OPC UA Servers beschleunigen (Beispiel 3).

Beispiel 1:{attribute 'OPC.UA.DA' := '1'}TYPE ST_TEST :STRUCT    a : INT;    {attribute 'OPC.UA.DA' := '0'}    b : DINT;END_STRUCTEND_TYPE

PROGRAM MAINVAR    instance1 : ST_TEST;    instance2 : ST_TEST;END_VAR

In diesem Fall wurde das SPS-Attribut zur Strukturdefinition hinzugefügt, wodurch jede Instanz dieserStruktur auf dem OPC UA Server verfügbar sein soll. Das Unterelement „b“ (und all seine Unterelemente,falls „b“ eine weitere Datenstruktur ist) wird (werden) von der Veröffentlichung auf dem OPC UA Serverausgeschlossen.

Beispiel 2:{attribute 'OPC.UA.DA' := '1'}TYPE ST_TEST :STRUCT  a : INT;  b : DINT;END_STRUCTEND_TYPE

PROGRAM MAINVAR  instance1 : ST_TEST;  {attribute 'OPC.UA.DA' := '0'}  instance2 : ST_TEST;END_VAR

Obwohl das SPS-Attribut zur Strukturdefinition hinzugefügt wird, wodurch jede Instanz dieser Struktur aufdem OPC UA Server verfügbar ist, erhält instance2 das SPS-Attribut zum Deaktivieren dieser Vererbung.Dadurch ist nur instance1 im UA-Namensraum verfügbar, instance2 nicht.

Beispiel 3:

Beim Hochfahren analysiert der TwinCAT OPC UA Server die SPS-Symboldateien zum Aufbau seinesNamensraums. Dafür werden alle gefundenen Datenstrukturen vollständig analysiert, um alleTypendefinitionen zu finden machen und einzubinden. Wird ein OPC.UA.DA:=0 SPS-Attribut entdeckt,stoppt die Analyse aller nachfolgenden Unterelemente, wodurch das Hochfahren je nach Größe derDatenstrukturen erheblich beschleunigt werden kann.

Page 48: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA48 Version: 2.5

4.1.3.2 Historical Access

In diesem Abschnitt werden die notwendigen Schritte zur Konfiguration der Variablen im Namensraum desTwinCAT OPC UA Servers für Historical Access (HA) beschrieben.

Historical Access ist der Name einer Function von OPC UA, bei der die Variablenwerte entweder dauerhaftauf einem Datenträger (Datei oder Datenbank) oder in der Geräte-RAM gespeichert werden, damit siespäter vom Client abgerufen werden können. Die Art und Weise wie der OPC UA Server die Variablenwerteliest und speichert kann konfiguriert werden.

4.1.3.2.1 Setupversion 3.x.x

Allgemeines

Die folgenden Schritte müssen einmal ausgeführt werden, um einen Werteverlauf von SPS‑Variablen überOPC UA Historical Access zu aktivieren:

• Aktivierung von Historical Access auf dem UA-Server [} 48]

• Aktivierung von Historical Access im TwinCAT‑SPS‑Programm [} 49]

• Aktivierung von Historical Access im TwinCAT‑C++‑Modul [} 51]

• Anzeige von Historical-Access-Werten in einem OPC UA Client (siehe Anzeige von historischen Daten[} 54])

Diese Schritte werden nachfolgend ausführlicher erläutert. Am Ende des Abschnitts wird beschrieben, wieSie über Historical Access gespeicherte Variablenwerte mithilfe der UA‑Expert‑Software abrufen können.

Voraussetzungen

Es gelten die folgenden Voraussetzungen zur Nutzung von Historical Access:

• Das Laufzeitsystem, dessen Symbole für Historical Access gespeichert werden sollen, muss als DataAccess konfiguriert sein.

•• Um eine SQL-Compact-Datenbank als Speichermedium nutzen zu können, muss auf dem Rechner,

auf dem der OPC-UA-Server läuft, SQL Compact Runtime 3.5 SP2 installiert sein.• Zur Verwendung einer SQL-Server-Datenbank muss mindestens OPC-UA-Version 2.0 installiert sein.• SQL-Compact-Datenbanken werden auch unter Windows CE unterstützt.• SQL-Server-Datenbanken werden unter Windows CE nicht unterstützt.

Aktivierung von Historical Access auf dem UA-Server

Es können verschiedene Speichermedien für die Speicherung von Werteverläufen verwendet werden. DieseMedien müssen einmal im OPC UA Server aktiviert werden. Diese Einstellungen können entweder in derServerConfig.xml-Datei oder bequem mithilfe des OPC‑UA‑Konfigurators vorgenommen werden. Das SPS-Programm bestimmt anschließend, welches Speichermedium zu verwenden ist. Nachdem ein oder mehrereSpeichermedien auf dem OPC UA Server aktiviert wurden, wählt das SPS-Programm das Speichermediumaus, dass für jedes Symbol zu verwenden ist (siehe Schritt 2). Derzeit werden die folgenden vierSpeichermedien unterstützt:

• Hauptspeicher: Speichert die Symbolwerte in der RAM des Geräts, auf dem der OPC UA Server läuft.• Datei: Speichert die Werte in einer Datei mit angegebenem Pfad.• SQL Compact Database: Speichert die Werte in einer SQL Compact Database mit angegebenem

Pfad. In diesem Fall muss die SQL Compact Runtime 3.5 SP2 als entsprechende Datenbankversionauf dem OPC UA Server installiert sein.

• SQL Server Database: Speichert die Werte in einer SQL Server Database, die mit den ParameternServername, Databasename, Username und Password spezifiziert wird.

Die folgende Abbildung zeigt die Konfiguration dieser Modi mithilfe des OPC‑UA‑Konfigurators und direktüber die ServerConfig.xml-Datei.

Page 49: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 49Version: 2.5

Die unten gezeigten XML Tags müssen zwischen <OpcServerConfig><UaServerConfig> und </UaServerConfig></OpcServerConfig> in der ServerConfig.xml-Datei eingefügt werden.<HaModes><HaMode Type="RAM"/><HaMode Type="File" DataStore="C:\Temp\"/><HaMode Type="SQLServerCompact" DbName="C:\Temp\TcOpcUaServer.sdf"/><HaMode Type=”SQLServer” Servername=”SERVERNAME\SQLEXPRESS” DbName=”TcOpcUaServer” User=”sa”Pass=”123”/></HaModes>

Die für den jeweiligen Modus notwendigen Parameter sind:

Modus Erforderliche ParameterSpeicher Speichert die Werte in der RAM des Geräts, auf dem der OPC UA Server läuft.

Es sind keine weiteren Parameter erforderlich. HINWEIS! Nach einemNeustart des Geräts sind die gespeicherten Werte nicht mehr verfügbar.Das Speichermedium ist demzufolge kein dauerhaftes.

Datei Speichert die Werte in mehreren Dateien, deren Speicherort mit demParameter DataStore festgelegt wird. Jedem für dieses Speichermediumkonfigurierten Symbol (siehe Schritt 2) wird dessen eigene Datei in diesemVerzeichnis zugeordnet. Darüber hinaus besteht eine Sicherungskopie derDatei für jedes Symbol, die dann erzeugt wird, sobald die Pufferlänge (sieheSchritt 2) erreicht ist. Der Inhalt der Datendatei wird dann als Sicherungskopiegespeichert und es wird eine neue Datei erzeugt.

SQL Server Compact Speichert die Werte in eine SQL Compact Database, dessen Speicherort mitdem Parameter DbName festgelegt wird. Es gelten die oben aufgeführtenAnforderungen.

SQL Server Speichert die Werte in einer SQL Server Database, die mit den ParameternServername, DbName, User und Pass spezifiziert wird.

Aktivierung von Historical Access im TwinCAT‑SPS‑Programm

Wenn eine SPS-Laufzeit als ein Datenzugriffsgerät konfiguriert ist, dann werden die SPS-Variablen, diehierfür im SPS-Programm mithilfe von Kommentaren aktiviert wurden, automatisch durch denOPC UA Server via OPC UA verfügbar gemacht. Auf die gleiche Weise, wie Variablen für den Zugriff viaOPC UA freigegeben werden können, können einzelne Variablen für Historical Access freigegeben odergesperrt werden. Dies geschieht auf ähnliche Weise im SPS-Programm mittels Eingabe von Kommentarenauf der rechten Seite eines Symbols. Die folgenden Parameter können hier spezifiziert werden:

TwinCAT 3 (mit TMC-Import):

Page 50: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA50 Version: 2.5

Parameter Kommentar BeschreibungAktivieren {attribute 'OPC.UA.DA' := '1'} Aktiviert das Symbol für Datenzugriff.

Dies ist erforderlich, um das Symbolauch für Historical Access zurVerfügung zu stellen.

Für HA aktivieren {attribute 'OPC.UA.HA' := '1'} Aktiviert das Symbol für HistoricalAccess.

Speichermedium {attribute 'OPC.UA.HA.Storage' := '1'} Legt das für die Speicherung derSymbolwerte zu verwendendeSpeichermedium fest (1 = RAM, 2 =Datei, 3 = SQL Compact Database, 4= SQL Server Database).

Aufzeichnungsrate {attribute 'OPC.UA.HA.Sampling' := '50'} Definiert die Rate, mit der dieVariablenwerte aus der Steuerung zulesen und auf dem entsprechendenSpeichermedium zu speichern sind.Der OPC UA Server verwendetvordefinierte festeAufzeichnungsraten, die hierverwendet werden können. DieAufzeichnungsraten könnengegebenenfalls in ServerConfigerweitert werden. Allerdings ist diesnormalerweise nicht erforderlich, undes wird auch davon abgeraten, dieseEinstellungen vorzunehmen.

Pufferlänge {attribute 'OPC.UA.HA.Buffer' := '10000'} Legt die Anzahl Elemente fest, die derPuffer aufnehmen soll.

TwinCAT 2 (mit TPY-Import):

Parameter Kommentar BeschreibungAktivieren (*~ (OPC:1:some description) *) Aktiviert das Symbol für Datenzugriff.

Dies ist erforderlich, um das Symbolauch für Historical Access zurVerfügung zu stellen.

Speichermedium (*~ (OPC_UA_PROP[5000]:1:RAM) *) Legt das für die Speicherung derSymbolwerte zu verwendendeSpeichermedium fest (1 = RAM, 2 =Datei, 3 = SQL Compact Database, 4= SQL Server Database).

Aufzeichnungsrate (*~ (OPC_UA_PROP[5000][1]:50:SamplingRate) *)

Definiert die Rate, mit der dieVariablenwerte aus der Steuerung zulesen und auf dem entsprechendenSpeichermedium zu speichern sind.Der OPC UA Server verwendetvordefinierte festeAufzeichnungsraten, die hierverwendet werden können. DieAufzeichnungsraten könnengegebenenfalls in ServerConfigerweitert werden. Allerdings ist diesnormalerweise nicht erforderlich, undes wird auch davon abgeraten, dieseEinstellungen vorzunehmen.

Pufferlänge (*~ (OPC_UA_PROP[5000][2]:5000:Buffer)*)

Legt die Anzahl Elemente fest, die derPuffer aufnehmen soll.

Der folgende Auszug eines SPS-Programms beschreibt die Verwendung der oben aufgeführten Parameterunter Verwendung von vier SPS-Variablen:

Page 51: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 51Version: 2.5

TwinCAT 3 (mit TMC-Import):{attribute 'OPC.UA.DA' := '1'}{attribute 'OPC.UA.HA' := '1'}{attribute 'OPC.UA.HA.Storage' := '1'}{attribute 'OPC.UA.HA.Sampling' := '5'}{attribute 'OPC.UA.HA.Buffer' := '1000'}_HistoryMem : UINT;

{attribute 'OPC.UA.DA' := '1'}{attribute 'OPC.UA.HA' := '1'}{attribute 'OPC.UA.HA.Storage' := '2'}{attribute 'OPC.UA.HA.Sampling' := '20'}{attribute 'OPC.UA.HA.Buffer' := '200'}_HistoryFile : UINT;

{attribute 'OPC.UA.DA' := '1'}{attribute 'OPC.UA.HA' := '1'}{attribute 'OPC.UA.HA.Storage' := '3'}{attribute 'OPC.UA.HA.Sampling' := '50'}{attribute 'OPC.UA.HA.Buffer' := '10000'}_HistoryDBcompact : UINT;

{attribute 'OPC.UA.DA' := '1'}{attribute 'OPC.UA.HA' := '1'}{attribute 'OPC.UA.HA.Storage' := '4'}{attribute 'OPC.UA.HA.Sampling' := '5'}{attribute 'OPC.UA.HA.Buffer' := '1000000'}_HistoryDB : UINT;

TwinCAT 2 (mit TPY-Import):_HistoryMem : UINT; (*~ (OPC:1:available for OPC UA Clients) (OPC_UA_PROP[5000]:1:Memory) (OPC_UA_PROP[5000][1]:5:SamplingRate) (OPC_UA_PROP[5000][2]:1000:Buffer) *)

_HistoryFile : UINT; (*~ (OPC:1:available for OPC UA Clients) (OPC_UA_PROP[5000]:2:File) (OPC_UA_PROP[5000][1]:20:SamplingRate) (OPC_UA_PROP[5000][2]:200:Buffer) *)

_HistoryDBcompact : UINT; (*~ (OPC:1:available for OPC UA Clients) (OPC_UA_PROP[5000]:3:SQLCompact) (OPC_UA_PROP[5000][1]:50:SamplingRate) (OPC_UA_PROP[5000][2]:10000:Buffer) *)

_HistoryDB : UINT; (*~ (OPC:1:available for OPC UA Clients) (OPC_UA_PROP[5000]:4:SQL) (OPC_UA_PROP[5000][1]:5:SamplingRate) (OPC_UA_PROP[5000][2]:1000000:Buffer) *)

Aktivierung von Historical Access im TwinCAT-C++-Modul

Jedes TwinCAT‑3‑C++‑Symbol, dessen Verlauf aufgezeichnet werden soll, muss entsprechend konfiguriertwerden. Vergleichbar mit der Konfiguration von SPS-Symbolen für Historical Access (siehe oben), müssendie gleichen Parameter für ein C++‑Symbol konfiguriert werden, wie die folgende Tabelle zeigt:

Parameter Kommentar BeschreibungAktivieren OPC.UA.DA := 1 Aktiviert das Symbol für Datenzugriff.

Dies ist erforderlich, um das Symbolauch für Historical Access zurVerfügung zu stellen.

HA aktivieren OPC.UA.HA := 1 Aktiviert das Symbol für HistoricalAccess.

Speichermedium OPC.UA.HA.Storage := 1 Legt das für die Speicherung derSymbolwerte zu verwendendeSpeichermedium fest (1 = RAM, 2 =Datei, 3 = SQL Compact Database, 4= SQL Server Database).

Page 52: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA52 Version: 2.5

Parameter Kommentar BeschreibungAufzeichnungsrate OPC.UA.HA.Sampling := 50 Definiert die Rate, mit der die

Variablenwerte aus der Steuerung zulesen und auf dem entsprechendenSpeichermedium zu speichern sind.Der OPC UA Server verwendetvordefinierte festeAufzeichnungsraten, die hierverwendet werden können. DieAufzeichnungsraten könnengegebenenfalls in ServerConfigerweitert werden. Allerdings ist diesnormalerweise nicht erforderlich, undes wird auch davon abgeraten, dieseEinstellungen vorzunehmen.

Pufferlänge OPC.UA.HA.Buffer := 10000 Legt die Anzahl Elemente fest, die derPuffer aufnehmen soll.

Allerdings müssen in TwinCAT 3 C++ diese Parameter im TMC-Code-Editor des entsprechenden C++-Moduls konfiguriert werden. Navigieren Sie mithilfe des TMC-Code-Editors zu dem Symbol, das für HistoricalAccess freigegeben werden soll, und fügen diese Parameter in den Bereich Optionale Eigenschaften derSymboleigenschaften hinzu. Vergewissern Sie sich, dass Sie das Kontrollkästchen Symbol erzeugenaktiviert haben.

Page 53: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 53Version: 2.5

Produkte Setupversionen ZielplattformTS6100, TF6100 3.x.x IPC oder CX (x86, x64, ARM)

4.1.3.2.2 Setupversion 4.x.x

Ab Setupversion 4.x.x wird Historical Access nicht mehr länger über Attribute bzw. Kommentare konfiguriert.Dies hat den Vorteil, dass die Historical-Access-Funktionalität nun auch für Laufzeiten zur Verfügung steht,dies dies bisher nicht unterstützt haben, z. B. Variablen von einem BC9191 Controller. Des Weiteren kanneine Historical‑Access‑Konfiguration nun auch nachträglich, d. h. ohne Anpassung des SPS-Projektsdurchgeführt werden.

Die Historical‑Access‑Konfiguration ist nun XML-basiert (TcUaHaConfig.xml) und kann über den OPC UAServer Konfigurator [} 181] vorgenommen werden (siehe Konfiguration von Historical Access [} 190]). DieseXML-Datei befindet sich in demselben Verzeichnis wie die TcOpcUaServer.exe. Der Vollständigkeit halberwird der Aufbau der XML-Datei an dieser Stelle jedoch kurz erklärt.<HistoryConfig>  <HistoryController>    <HistoryAdapter Type="Volatile" Id="0" File="" Server="" Database="" User="" Password=""/>    <HistoryAdapter Type="File" Id="1" File="historydb.dat" Server="" Database="" User="" Pass-word=""/>    <HistoryAdapter Type="SQL" Id="2" File="" Server="" Database="database123" User="user" Pass-word="pwd"/>    <HistoryAdapter Type="SQLCompact" Id="3" File="historydb.xyz" Server="" Database="" User=""Password=""/>    <HistoryAdapter Type="SQLCompact" Id="4" File="historydb2.xyz" Server="" Database="" User=""Password=""/>  </HistoryController>  <HistoryNodes>    <HistoryNode HistoryWriteable="true" SamplingRate="0" MaxSamples="100000" AdapterId="0"NS="urn:BeckhoffAutomation:Ua:PLC1" NodeId="s=PRG_HA_SingleNode.nMyValue"/>    <HistoryNode HistoryWriteable="true" SamplingRate="0" MaxSamples="100000" AdapterId="0"NS="urn:BeckhoffAutomation:Ua:PLC1" NodeId="s=PRG_HA_MultipleNodes.nMyValue1"/>    <HistoryNode HistoryWriteable="true" SamplingRate="0" MaxSamples="100000" AdapterId="0"NS="urn:BeckhoffAutomation:Ua:PLC1" NodeId="s=PRG_HA_MultipleNodes.nMyValue2"/>    <HistoryNode HistoryWriteable="true" SamplingRate="0" MaxSamples="100000" AdapterId="0"NS="urn:BeckhoffAutomation:Ua:PLC1" NodeId="s=PRG_HA_MultipleNodes.fMyValue3"/>  </HistoryNodes></HistoryConfig>

In dem Bereich <HistoryController> können alle unterstützten Datenspeicher konfiguriert werden. Aktuellwerden die folgenden Speicherorte unterstützt:

• Arbeitsspeicher („Volatile“)• Datei („File“)• SQL Compact• SQL Server (wird nicht unter Windows CE unterstützt)

Jeder <HistoryAdapter> (außer „Volatile“) kann hierbei mehrfach verwendet werden, z. B. wenn diehistorischen Werte für einzelne Variablen in unterschiedlichen Datenspeichern abgelegt werden sollen.

Im Bereich <HistoryNodes> werden die einzelnen Nodes konfiguriert, einem Datenspeicher zugewiesen undmit einer SamplingRate sowie einer maximalen Größe für den zu verwendenden Ringbuffer imDatenspeicher versehen.

Das Attribut HistoryWriteable="true" bewirkt, dass der Datenspeicher für diese Node über einenHistoryUpdate() Aufruf mit Werten befüllt werden kann. Ein solcher Aufruf wird z.B. von unserem TwinCATOPC UA Client über den UA_HistoryUpdate() Funktionsbaustein zur Verfügung gestellt. Wird eine Node mitdiesem Attribut konfiguriert, dann sampled üblicherweise der Server selbst nicht die Werte, sondernbekommt diese von anderen Clients reingereicht. Die SamplingRate ist daher bei einer solchenKonfiguration üblicherweise gleich 0.

Produkte Setupversionen ZielplattformTF6100 4.x.x IPC oder CX (x86, x64, ARM)

Page 54: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA54 Version: 2.5

4.1.3.2.3 Anzeige von historischen Daten

Anzeige von Historical‑Access‑Werten in einem OPC UA Client

Die folgende Schritt-für-Schritt-Anleitung beschreibt, wie die Software UA-Expert konfiguriert werden kann,um auf historische Daten zuzugreifen.

1. Starten Sie die UA-Expert-Software und stellen Sie eine Verbindung mit dem OPC UA Server her.

Page 55: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 55Version: 2.5

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.

Page 56: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA56 Version: 2.5

ð Sie können nun den gewünschten Zeitraum, für den die Symbolwerte angezeigt werden sollen, mithilfeder Steuerelemente StartTime und EndTime festlegen, oder falls erforderlich ein CyclicUpdate für dieseVariablen starten.

4.1.3.3 Alarms & Conditions

In diesem Abschnitt werden die notwendigen Schritte zur Konfiguration von OPC UA Alarms & Conditions(A&C) auf dem TwinCAT OPC UA Server beschrieben. Das Grundkonzept ist unabhängig von derTwinCAT‑Laufzeit. Demzufolge sind die Konfigurationsschritte für SPS, C++, TcCOM-Laufzeit oder nur I/O-Task gleich.

OPC UA Alarms & Conditions (Teil 9 der OPC-UA-Spezifikation) beschreibt ein Modell für die Überwachungvon Prozesswerten und das Ausgeben von Alarmen und Ereignissen bei Zustandsänderungen einesLaufzeit-Symbols.

Voraussetzungen

Die folgenden Voraussetzungen gelten für die Verwendung von OPC UA Alarms & Conditions:

• Das zu überwachende Laufzeitsymbol muss im Namensraum verfügbar sein.• Der OPC UA Client muss A&C unterstützen. In diesem Abschnitt wird der UA-Expert (von Unified

Automation) als Referenz‑UA‑Client verwendet.

Page 57: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 57Version: 2.5

Allgemeines

Die folgenden Schritte müssen einmalig ausgeführt werden, um ein Symbol für A&C freizugeben:

• Schritt 1: Laufzeitsymbol für Datenzugriff aktivieren [} 57] (damit das Symbol generell via OPC UAzugänglich wird.)

• Schritt 2: A&C für ein Symbol aktivieren [} 57]

• Schritt 3: Eigene Benutzerdaten mit einem Ereignis übermitteln [} 58]

• Schritt 4: Ereignis über die FireEvent-Methode auslösen [} 59]

• Schritt 5: Mehrsprachige Alarmtexte konfigurieren [} 61]

• Schritt 6: A&C bei einem Referenz-OPC-UA-Client anmelden [} 61]

Diese Schritte werden nachfolgend ausführlicher erläutert. Am Ende des Abschnitts finden Sie Informationenzum Empfang von konfigurierten Alarmen über A&C mit dem UA‑Expert‑Referenz‑Client.

Unterstützte Alarmtypen

Die Implementierung von TwinCAT OPC UA A&C unterstützt derzeit die folgenden Alarmtypen:

• LimitAlarmType: Verschiedene Grenzen für ein Symbol definieren. Wird eine Grenze erreicht, gibt derUA-Server einen Alarm aus.

• OffNormalAlarmType: Einen Wert definieren, der „normal“ ist. Wenn der aktuelle Wert vom „normalen“Wert abweicht, gibt der UA-Server einen Alarm aus.

Schritt 1: Laufzeitsymbol für Datenzugriff aktivieren

Als Voraussetzung dafür, dass Variablen für Alarms & Conditions konfiguriert werden können, muss dieentsprechende Variable zunächst im OPC UA Server zur Verfügung stehen. Im Falle einer SPS‑Variablenmuss diese zunächst entsprechend mit einem Attribut konfiguriert werden, wie im Abschnitt Zugriff auf SPS-Laufzeit [} 41] beschrieben.

Schritt 2: A&C für ein Symbol aktivieren

Mit dem TwinCAT-OPC-UA-Server-Konfigurator kann ein Laufzeitsymbol einfach für A&C konfiguriertwerden. Dieser Konfigurator hat eine einfache grafische Bedienoberfläche, um die dahinter stehende XML-Datei zu bearbeiten. Der Konfigurator steht, je nach Setupversion, in zwei Varianten zur Verfügung:Standalone [} 178] und integriert in das Visual Studio [} 192].

Der folgende Programmausschnitt zeigt ein Beispiel dieser XML-Datei, um das allgemeine Verhalten undden Aufbau der A&C-Implementierung besser zu verstehen.<TcUaAcConfig>  <ConditionController Name="ConditionController1" >    <Condition Name="Counter" Severity="200">    <LimitAlarmType LowLowLimit="-10" LowLimit="0" HighLimit="10" HighHighLimit="20" MessageNor-mal="100" MessageLowLow="10" MessageLow="11" MessageHigh="12" MessageHighHigh="13"/>      <ItemToMonitor SamplingRate="100" NS="urn:[NodeName]:BeckhoffAutomation:Ua:PLC1" Node-Id="s=MAIN.nCounter1" />    </Condition>    <Condition Name="Switch" Severity="500">      <OffNormalAlarmType Normal="0" MessageNormal="100" MessageOffNormal="20" />      <ItemToMonitor SamplingRate="100" NS="urn:[NodeName]:BeckhoffAutomation:Ua:PLC1" Node-Id="s=MAIN.bSwitch" />    </Condition>    <Condition Name="Struct" Severity="300">      <LimitAlarmType LowLowLimit="-10" LowLimit="0" HighLimit="10" HighHighLimit="20" MessageNor-mal="100" MessageLowLow="10" MessageLow="11" MessageHigh="12" MessageHighHigh="13"/>      <ItemToMonitor SamplingRate="100" NS="urn:[NodeName]:BeckhoffAutomation:Ua:PLC1" Node-Id="s=MAIN.stStruct" />    </Condition>   </ConditionController>  <ConditionController Name="ConditionController2" >    <Condition Name="Counter2" Severity="200">      <LimitAlarmType LowLowLimit="-10" LowLimit="0" HighLimit="10" HighHighLimit="20" MessageNor-mal="100" MessageLowLow="10" MessageLow="11" MessageHigh="12" MessageHighHigh="13"/>      <ItemToMonitor SamplingRate="100" NS="urn:[NodeName]:BeckhoffAutomation:Ua:PLC1" Node-Id="s=MAIN.nCounter2" />

Page 58: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA58 Version: 2.5

    </Condition>  </ConditionController></TcUaAcConfig>

Eine „Bedingung“ definiert das zu überwachende Laufzeitsymbol und die Alarmgrenzen und -texte. Jede„Bedingung“ ist in einem so genannten „ConditionController“ organisiert, dem Objekt, das dieOPC UA Clients später abonnieren.

Bei der Erstellung einer Bedingung (Condition) müssen NamespaceName (NS) und NodeID spezifiziertwerden, um auf den zu überwachenden UA-Knoten zu verweisen. Der Konfigurator bietet einen einfachenBrowsing-Mechanismus, um einen Knoten auszuwählen. In der XML kann durch den Platzhalter„[NodeName]“ in NamespaceName die XML-Datei einfach zwischen zwei verschiedenen Hardwaresystemenhin und her wechseln. HINWEIS! NamespaceName beinhaltet immer den Hostnamen des IPC oderEmbedded-PC, auf dem der OPC UA Server läuft. Wird „[NodeName]“ gewählt, wird dieser Tag durch denHostnamen des aktuellen IPCs oder Embedded-PCs ersetzt, auf dem der UA-Server läuft.

SamplingRate bestimmt, wie oft der UA-Server einen Wert vom Knoten abfragen soll, um festzustellen, obeine der Alarmgrenzen erreicht wurde.

Die Alarmtexte werden über eine ID identifiziert. Die ID identifiziert eindeutig einen Alarmtext aus derRessourcendatei (siehe Schritt 5: Mehrsprachige Alarmtexte konfigurieren [} 61]).

Schritt 3: Eigene Benutzerdaten mit einem Alarm übermitteln

Alarme können Felder mit eigenen Benutzerdaten enthalten, die die mit dem Alarm ausgegebenen Datenergänzen. Diese Benutzerdatenfelder können in der Laufzeitanwendung erzeugt und ausgefüllt werden,indem ein STRUCT erstellt wird, dessen erstes Element „value“ genannt wird. Bei einem Alarm werden dannalle folgenden Elemente in einem zusätzlichen Benutzerdatenfeld gesendet.

Beispiel SPS-Anwendung:TYPE ST_CustomStruct :STRUCT  value : INT;  data  : ST_SomeStruct;END_STRUCTEND_TYPE

TYPE ST_SomeStruct :STRUCT  Data1 : INT;  Data2 : REAL;  Data3 : LREAL;END_STRUCTEND_TYPE

Die Instanz von ST_CustomStruct wird dann über den regulären Mechanismus, z. B. in TwinCAT 3, für denDatenzugriff aktiviert: Das STRUCT muss als StructuredDataType [} 67] aktiviert sein.PROGRAM MAINVAR  {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 besondereAlarmConditionTypes, sogenannte „BkUaLimitAlarmType“ und „BkUaOffNormalAlarmType“, abonnieren,damit sie die besonderen Benutzerdatenfelder beim Eingang eines Alarms empfangen können.

Page 59: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 59Version: 2.5

Der OPC UA Client empfängt dann die Benutzerdaten in den Feldern „BkUaEventData“ und„BkUaEventValue“ des eingehenden Alarms. Im obigen Beispiel sind das der Wert der SPS-Variablen sowiedie Benutzerdaten, die mit der SPS-Struktur „ST_SomeStruct“ dargestellt sind.

Schritt 4: Ereignis über die FireEvent-Methode auslösen

Jeder ConditionController umfasst eine FireEvent-Methode, mit der die OPC UA Clients ein allgemeinesEreignis mit benutzerdefinierten EventFields auslösen können.

Page 60: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA60 Version: 2.5

Wird diese Methode ausgeführt, dann wird ein Ereignis auf dem TwinCAT OPC UA Server ausgegeben.Andere OPC UA Clients können diese Ereignisse empfangen, wenn sie den entsprechendenConditionController abonnieren.

Die benutzerdefinierten EventFields werden als „UserEventData“ an das Ereignis angehängt. Diesen Datenkönnen von OPC UA Clients empfangen werden, die beim SimpleEventType „UserEventType“ angemeldetsind.

Page 61: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 61Version: 2.5

Schritt 5: Mehrsprachigen Alarmtexten konfigurieren

Die A&C-Implementierung im TwinCAT OPC UA Server unterstützt die Verwendung von mehrsprachigenAlarmtexten. Abhängig von der Sprache, mit der sich der UA-Client mit dem Server verbindet, wird einentsprechender Alarmtext verwendet. Alarmtexte werden in XML-Dateien konfiguriert, für jede Sprache gibtes eine eigene Datei. Diese Dateien befinden sich im Ordner „res“ (Ressource) desTwinCAT OPC UA Servers. Mit dem Konfigurator können Alarmtexte bequem hinzugefügt oder entferntwerden, ohne dass die XML-Dateien direkt bearbeitet werden müssen. Jeder Alarmtext hat eine eigene ID,die in der Datei nur einmal vorkommt.

Beispiel:<TcOpcUaSvrRes Lang="en">  <Text ID="0">Text not available</Text>  <Text ID="1">Some alarm text</Text>   <Text ID="2">Value is High range</Text>  <Text ID="3">Value is HighHigh range</Text>  <Text ID="4">Value is OffNormal</Text>  ...</TcOpcUaSvrRes>

Schritt 6: A&C bei einem Referenz-OPC-UA-Client anmelden

Ein OPC UA Client muss sich bei einem ConditionController anmelden, damit er Ereignisse für Bedingungenempfangen kann, die für diesen besonderen ConditionController konfiguriert sind. Der UA‑Expert stelltFunktionen zur Verfügung, um UA-Ereignisse zu abonnieren und zu empfangen. Nachdem UA-Expertgestartet und eine Verbindung zum TwinCAT OPC UA Server hergestellt wurde, fügen Sie IhremArbeitsbereich eine neue Dokumentenansicht, genannt „Event View“, hinzu.

Page 62: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA62 Version: 2.5

Sie können einen ConditionController dann durch Ziehen des entsprechenden Objekts in EventViewabonnieren. Die Ereignisse für diesen ConditionController werden im „Event Window“ angezeigt.

Möglicherweise müssen spezielle Alarm- und/oder Ereignistypen abonniert werden, damit Sie alle Feldereines eingehenden Ereignisses oder Alarms empfangen können.

4.1.3.4 Methodenaufruf

Methodenaufrufe sind ein grundlegender Teil der OPC-UA-Spezifikation. Mit der Einführung dieserFunktionalitäten in die SPS-Welt bietet TwinCAT 3 die Möglichkeit zur effizienten Ausführung vonRPC‑Aufrufen in der IEC61131-Welt und verringert somit die klassischen Handshake-Pattern bei derKommunikation zwischen den Geräten. Der TwinCAT OPC UA Server importiert SPS‑Methoden wieOPC‑UA‑Methoden über seinen TMC-Import.

Hinweis

IEC61131-MethodeAuch 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ührtwird und somit unter den Kontext einer Echtzeit-Task fällt. Der SPS-Entwickler muss daherVorsichtsmaßnahmen treffen, sodass die Ausführungszeit der Methode in die Task-Zyklus-zeit passt.

Methoden in IEC61131-3

Methoden in der IEC61131-Welt werden immer unterhalb eines Funktionsbausteins konfiguriert. AufHochsprachenebene kann der Funktionsbaustein als umgebende Klasse der Methode betrachtet werden.Die Methode selbst muss mit einem speziellen SPS-Attribut deklariert werden, sodass das TwinCAT-Systemweiß, dass die Methode für einen Remote-Methodenaufruf aktiviert werden soll.{attribute 'TcRpcEnable':='1'}METHOD M_Sum : INTVAR_INPUT

Page 63: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 63Version: 2.5

  a : INT;  b : INT;END_VAR

Gefilterter oder ungefilterter Modus

In Abhängigkeit davon, welcher Importmodus verwendet wird, muss der umgebende Funktionsbausteinebenfalls für den OPC‑UA‑Zugriff aktiviert werden. Dies kann durch Verwendung der normalenSPS‑Attribute für den OPC‑UA‑Zugriff erfolgen.

Beispiel: Die Methode M_Sum befindet sich im Funktionsbaustein FB_Mathematics. Die Deklaration derFunktionsbausteininstanz verwendet das SPS-Attribut, das den Funktionsbaustein und damit die Methodeebenfalls für den OPC-UA-Zugriff aktiviert hat.PROGRAM MAINVAR  {attribute 'OPC.UA.DA':='1'}  fbMathematics : FB_Mathematics;END_VAR

Beachten Sie dabei, dass Sie nur dann die SPS-Attribute verwenden müssen, wenn der gefilterte Modusverwendet wird, um Symbole aus der SPS für den Zugriff über OPC UA freizugeben. Dies ist dieStandardeinstellung des OPC UA Servers.

4.1.3.5 Analog Item Types

„AnalogItemTypes“ sind ein Bestandteil der OPC-UA-Spezifikation und ermöglichen es, Metainformationenwie z. B. Einheiten an eine Variable zu heften. In der TwinCAT 3 SPS können diese Metainformationen inForm von SPS-Attributen definiert werden.

Folgende Einstellungen können vorgenommen werden:

• EngineeringUnits: Einheiten, definiert über die OPC-UA-Spezifikation• EURange: Maximaler Wertebereich der Variablen• InstrumentRange: Normaler Wertebereich der Variablen• WriteBehavior: Verhalten, wenn bei einem Schreibvorgang der Wertebereich überschritten wird.

{attribute 'OPC.UA.DA' := '1'}{attribute 'OPC.UA.DA.AnalogItemType' := '1'}{attribute 'OPC.UA.DA.AnalogItemType.EngineeringUnits' := '20529'}{attribute 'OPC.UA.DA.AnalogItemType.EURange' := '0:100'}{attribute 'OPC.UA.DA.AnalogItemType.InstrumentRange' := '10:90'}{attribute 'OPC.UA.DA.AnalogItemType.WriteBehavior' := '1'}fillLevel : UINT;

Das obige Beispiel konfiguriert die Variable „fillLevel“ als AnalogItemType und setzt hierbei die folgendenParameter:

• Einheit: 20529 („Prozent“, definiert in OPC UA Spezifikation)• Max. Wertebereich: 0 bis 100• Normaler Wertebereich: 10 bis 90• Schreibverhalten: 1 (Clamping)

Die „EngineeringUnits“ können hierbei anhand der in OPC UA spezifizierten Ids (Teil 8 derOPC‑UA‑Spezifikation) konfiguriert werden. Die Ids orientieren sich hierbei nach den weit verbreiteten undakzeptierten „Codes for Units of Measurement (Recommendation N.20)“, welche vom „United NationsCentre for Trade Facilitation and Electronic Business“ veröffentlicht wurden. Der „CommonCode“, welcherdie dreistellige, alphanumerische ID angibt, wird von OPC UA laut Spezifikation in einen Int32-Wertkonvertiert und referenziert. Dies passiert über die folgende Vorgehensweise (Auszug ausOPC‑UA‑Spezifikation v1.02, Pseudo-Code):Int32 unitId = 0;Int32 c;for (i=0; i<=3;i++){  c = CommonCode[i];  if (c == 0)    break; // end of Common Code

Page 64: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA64 Version: 2.5

  unitId = unitId << 8; // shift left  unitId = unitId | c; // OR operation}

Schreibverhalten

Beim Schreiben einer AnalogItemType-Variablen kann definiert werden, wie der OPC UA Server mit demneuen Wert in Bezug auf den Wertebereich umgehen soll. Hierbei gibt es die folgenden Möglichkeiten:

• 0: Alle Werte sind zugelassen und werden bei einem Schreibvorgang übernommen.• 1: Der zu schreibende Wert wird passend zum Wertebereich abgeschnitten.• 2: Der zu schreibende Wert wird abgewiesen, falls er den Wertebereich überschreitet.

4.1.3.6 Typsystem

Einer der größten Vorteile von OPC UA ist das Meta-Modell, welches zur Bereitstellung von Basistypengenauso verwendet werden kann wie zur Erweiterung des Typsystems durch eigene Modelle. DerselbeMechanismus wird zur Darstellung realer Objekte (Nodes) verwendet, sodass OPC UA Clients einenObjekttyp bestimmen können.

Der TwinCAT 3 OPC UA Server veröffentlicht Typinformationen von der IEC61131-Welt in seinenNamensraum. Dies umfasst nicht nur Basistypen wie z. B. BOOL, INT, DINT oder REAL, sondern aucherweiterte Typinformationen, wie z. B. die aktuelle Klasse (Funktionsbaustein) oder Struktur, die ein Objektrepräsentiert.

Typinformationen

Typinformationen sind Bestandteil des UA-Namensraums. Der TwinCAT OPC UA Server erweitert dieBasistypinformationen wie folgt:

• Lokale Typinformationen, die nur für eine Laufzeit gültig ist, werden in demselben Namensraum wie dieLaufzeitsymbole gespeichert.

• Globale Typinformationen, die über verschiedene Laufzeiten gültig sein können, werden in einemeigenen globalen Namensraum gespeichert.

Das Typsystem ist ebenfalls virtuell verfügbar und kann in Types Sektion des OPC UA Servers eingesehenwerden:

Jeder Nichtstandard-Datentyp wird im Verzeichnis BeckhoffCtrlTypes eingetragen.

Page 65: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 65Version: 2.5

Grundlagen

Angenommen, die TwinCAT 3 SPS besteht aus einem SPS-Programm mit verschiedenen STRUCTs. JederSTRUCT wird als Knoten in einem UA Namensraum repräsentiert, mit jedem Element der Struktur alsuntergeordneten Knoten.

In dem vorstehenden Beispiel besteht der STRUCT stSampleStruct aus drei untergeordneten Elementen:einer Variable nValue1 des Typs INT, einer Variable bValue2 des Typs BOOL und einem weiteren STRUCTstSubStruct, der lediglich ein untergeordnetes Element enthält – eine Variable nValue des Typs INT.

Die Struktur selbst ist lediglich eine reguläre Variable im UA-Namensraum, die den Datentyp ByteString hat.Die Clients können daher einfach mit dem Wurzelelement (der Struktur selbst) verbunden werden unddessen Werte durch Interpretation des ByteString gelesen/geschrieben werden. Damit die Interpretationjedes untergeordneten Elements vereinfacht wird, enthält das Typsystem mehr Informationen über dieStruktur selbst, in erster Linie in der Referenz zur Instanz:

Dann enthält das Typsystem mehr Informationen über ST_SampleStruct:

Und in den Referenzen von ST_SampleStruct:

Page 66: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA66 Version: 2.5

Tatsache ist, wenn ein Client die Struktur weiter interpretieren will, kann das Typsystem sehr nützlicheInformationen bieten.

Objektorientierte Erweiterungen

Angenommen, die TwinCAT-3-SPS-Laufzeit enthält ein SPS-Programm, dessen Struktur wie folgt visualisiertwerden kann:

Die zwei Funktionsbausteine „Scanner“ und „Drive“ sind von der Basisklasse „Device“ abgeleitet, indemobjektorientierte Erweiterungen der IEC61131-3 verwendet werden. Das MAIN-Programm enthält nun diefolgenden Deklarationen:PROGRAM MAINVAR  {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 Serverimportiert nun die Objekte wie folgt:

Page 67: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 67Version: 2.5

Der zugrundeliegende Datentyp kann nun in der Referenz jedes Objekts bestimmt werden, z. B. Objekt„Scanner1“:

Entsprechend des zugrundeliegenden IEC61131-Programms ist das Objekt „Scanner1“ vom Datentyp„Scanner“ und zeigt ebenfalls, welche Variablen enthalten sind und welcher Art die Variable ist: EineEingangs-, Ausgangs- oder interne (lokale) Variable. Das Diagramm oben zeigt, dass nicht nur die Variablendes tatsächlichen Funktionsbausteins hier wiedergegeben werden, sondern auch die abgeleiteten Variablender Basisklasse. Die gesamte IEC61131-3-Vererbungskette wird im UA-Namensraum repräsentiert.

4.1.3.7 Strukturierte Typen

Strukturierte Typen erlauben es, Strukturen zu lesen oder zu schreiben ohne dafür jedes Byte zuinterpretieren, weil der UA-Server den Informationstyp jedes Elements der Struktur zurückgibt. Durchkomplexe Funktionen in modernen OPC UA SDK’s können OPC UA Clients diese strukturellenInformationen durchsuchen und interpretieren.

Ab Version 2.2.x des TwinCAT OPC UA Servers werden Strukturen von der TwinCAT‑3‑Laufzeit (nur TMC-und TMI-Import) als ein StructuredType im UA‑Namensraum erzeugt. Beispiel:

STRUCT ST_Communication:TYPE ST_Communication :STRUCT  a : INT;  b : INT;  c : INT;END_STRUCTEND_TYPE

Programm MAIN:PROGRAM MAINVAR  {attribute 'OPC.UA.DA' := '1'}  {attribute 'OPC.UA.DA.StructuredType' := '1'}  stCommunication : ST_Communication;END_VAR

Page 68: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA68 Version: 2.5

Hinweis

Gefilterter ModusWerden Filter eingesetzt, um Symbole über OPC UA verfügbar zu machen, muss ein imein STRUCT oder Funktionsbaustein im UA‑Namensraum voll verfügbar sein, um alsStructuredDataType angezeigt zu werden.

Die Instanz „stCommunication“ wird dann im UA-Namensraum als „StructuredType“ angezeigt:

Alternativ kann die struct-Definition auch das SPS Attribut erhalten, um alle Instanzen von STRUCT alsStructuredType verfügbar zu machen.{attribute 'OPC.UA.DA.StructuredType' := '1'}TYPE ST_Communication :STRUCT  a : INT;  b : INT;  c : INT;END_STRUCTEND_TYPE

Um „StructuredType“ einer bestimmten Instanz zu deaktivieren, kann das folgende Attribut verwendetwerden:PROGRAM MAINVAR  {attribute 'OPC.UA.DA' := '1'}

Page 69: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 69Version: 2.5

  {attribute 'OPC.UA.DA.StructuredType' := '0'}  stCommunication : ST_Communication;END_VAR

Funktionsbaustein StructuredType

Zusätzlich enthält jeder Funktionsbaustein der TwinCAT 3 SPS auch einen Kind-Knoten, „FunctionBlock“,der den gesamten Funktionsbaustein als „StructuredDataType“ beinhaltet.

Beispiel:

Funktionsbaustein:FUNCTION_BLOCK FB_FunctionBlockVAR_INPUT  Input1 : INT;   Input2 : LREAL;END_VARVAR_OUTPUT  Output1 : LREAL; END_VAR

Instanz eines Funktionsbausteins:PROGRAM MAINVAR  {attribute 'OPC.UA.DA' := '1'}  {attribute 'OPC.UA.DA.StructuredType' := '1'}  fbFunctionBlock : FB_FunctionBlock; END_VAR

Instanz des Funktionsbausteins im OPC‑UA‑Namensraum:

FunctionBlock-Knoten mit StructuredDataType:

Alternativ kann der Funktionsbaustein auch ein SPS-Attribut erhalten, um alle Instanzen desFunktionsbausteins als „StructuredType“ zur Verfügung zu stellen.{attribute 'OPC.UA.DA.StructuredType' := '1'}FUNCTION_BLOCK FB_FunctionBlockVAR_INPUT  Input1 : INT;   Input2 : LREAL;END_VARVAR_OUTPUT  Output1 : LREAL; END_VAR

Um StructuredType einer bestimmten Instanz zu deaktivieren, kann das folgende Attribut verwendet werden:

Page 70: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA70 Version: 2.5

PROGRAM MAINVAR  {attribute 'OPC.UA.DA' := '1'}  {attribute 'OPC.UA.DA.StructuredType' := '0'}  fbFunctionBlock : FB_FunctionBlock; END_VAR

Hinweis

Maximale Größe der StrukturDie maximale Größe einer Struktur ist standardmäßig auf 16 kByte festgelegt. JedesSTRUCT tauscht ständig Daten mit dem Basis-ADS-Gerät aus, d.h. mit jedem Lese-/Schreibbefehl eines Structured Type wird eine große ADS-Meldung verschickt. Damit derADS-Router nicht mit großen Meldungen überflutet wird, ist die maximale Größe be-schränkt. Der Nutzer kann diese Vorgabe in der Datei ServerConfig.xml ändern. Dazumuss der Schlüssel <MaxStructureSize> zu OpcServerConfig\UaServerConfig\ hinzugefügtund 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 FolderTypeimportiert, wo jedes Strukturelement als einzelner Knoten verfügbar ist.

4.1.3.8 Verwendung von Arrays

Standardmäßig werden Arrays im UA-Namensraum als einzelner Knoten betrachtet. Dies bedeutet, dass,wenn Sie z. B. in der SPS ein Array dyn_BOOL[10] definieren (und dieses auch für OPC UA freigegebenhaben), es anschließend im UA-Namensraum wie folgt auftaucht:

Der Vorteil dieser Vorgehensweise ist eine deutliche Reduzierung der Komplexität des UA-Namensraumsund des Speicherverbrauchs, da nicht jede Position eines Arrays als einzelner Knoten im Namensraum zurVerfügung gestellt werden muss. Moderne UA-Clients können jedoch weiterhin auf die einzelnen Array-Positionen über den sogenannten „RangeOffset“ zugreifen.

Damit jedoch auch ältere UA-Clients unterstützt werden, welche dieses Feature nicht bieten, können Sie diePositionen eines Arrays auch als einzelne Knoten im UA-Namensraum verfügbar machen. Dies würde sichdann wie folgt darstellen:

Diese Einstellung ist durch Aktivierung der Option Legacy Array Handling im UA-Konfigurator innerhalb derjeweiligen Namensraum-Konfiguration verfügbar.

HINWEIS! Je nach Umfang des SPS-Projekts gewinnt der UA-Namensraum hierdurch deutlich anKomplexitä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.

4.1.3.9 Liste der Attribute und Kommentare

Die Konfiguration der Laufzeitvariablen für verschiedene OPC‑UA‑Funktionen (z. B. Data Access oderHistorical Access) erfolgt direkt im SPS-Programm oder im TMC Code Editor (bei Verwendung vonTwinCAT 3 C++). Der Vorteil ist, dass ein SPS-Entwickler direkt in dem Programm, mit dem er vertraut ist,entscheiden kann, ob und wie eine Variable für OPC UA freizugeben ist. Die Aktivierung erfolgt dann durchEinfügen eines Kommentars und des entsprechenden OPC-UA-Tags vor der Variablen, z. B.:

Page 71: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 71Version: 2.5

TwinCAT 3 SPS (TMC):{attribute 'OPC.UA.DA' := '1'}bVariable : BOOL;

TwinCAT 2 SPS (TPY):bVariable : BOOL; (*~ (OPC:1:available)*)

Eine detaillierte Beschreibung zur Verwendung von Attributen und Kommentaren erhalten Sie im Kapitelüber die entsprechenden Laufzeitkomponenten:

• SPS [} 41]

• C++ [} 75]

• I/O [} 94]

• Matlab/Simulink [} 106]

Die folgende Tabelle zeigt einen Überblick aller definierbaren Tags und ihrer Bedeutung. In denUnterschnitten der entsprechenden Funktion finden Sie eine ausführliche Beschreibung desFunktionsprinzips.

TwinCAT 3 (TMC):

OPC-UA-Funktion SPS-Tag C++ TMC Code Editor(Optionale Eigenschaften)

Bedeutung

Data Access (DA) {attribute 'OPC.UA.DA' :='0'}

Name: OPC.UA.DAWert: 0

Sperrt eine Variable fürOPC UA, woraufhin dieseim UA‑Namensraum nichtmehr sichtbar ist.

Data Access (DA) {attribute 'OPC.UA.DA' :='1'}

Name: OPC.UA.DAWert: 1

Aktiviert eine Variable fürOPC UA, woraufhin dieseim UA‑Namensraumsichtbar wird. Dieses Tagmuss immer gesetzt sein,wenn eine Variable für UAverwendet werden soll.

Data Access (DA) {attribute'OPC.UA.DA.Access' := 'x'}

Name: OPC.UA.DA.AccessWert: siehe rechte Spalte

Setzt Lese-/Schreib-Zugrifffür eine Variable, je nachParameter „x“.0 = Kein1 = Schreibgeschützt2 = Nur Schreibzugriff3 = Lese- undSchreibzugriff(Standardwert, wenn keinTag verwendet wird)

Data Access (DA) {attribute'OPC.UA.DA.StructuredType' := '0'}

Name:OPC.UA.DA.StructuredTypeWert: 0

Deaktiviert StructuredTypefür ein STRUCT oder einenFunktionsbaustein

Data Access (DA) {attribute'OPC.UA.DA.StructuredType' := '1'}

Name:OPC.UA.DA.StructuredTypeWert: 1

Aktiviert StructuredType fürein STRUCT oder einenFunktionsbaustein

Page 72: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA72 Version: 2.5

OPC-UA-Funktion SPS-Tag C++ TMC Code Editor(Optionale Eigenschaften)

Bedeutung

Data Access {attribute'OPC.UA.DA.Status' :='quality'}

Name: OPC.UA.DA.StatusWert: quality

Statuscode eines Symbolsim UA‑Namensraummanuell festlegen. Nur fürDatenstrukturen. Der Wert„quality“ legt fest, welchesDINT Unterelement derDatenstruktur denStatuscode festlegt. Sieheentsprechenden Artikel derDokumentation für weitereInformationen.

Historical Access(HA) [} 48]

{attribute 'OPC.UA.HA' :='1'}

Name: OPC.UA.HAWert: 1

Aktiviert eine Variable für„Historical Access“. Mussmit {attribute'OPC.UA.DA' := '1'}verwendet werden.

Historical Access(HA) [} 48]

{attribute'OPC.UA.HA.Storage' := 'x'}

Name: OPC.UA.HA.StorageWert: siehe rechte Spalte

Definiert den Speicherort fürHistorical Access, abhängigvon Parameter “x”1 = Speicher2 = Datei3 = SQL CompactDatabase4 = SQL Server Database

Historical Access(HA) [} 48]

{attribute'OPC.UA.HA.Sampling' :='x'}

Name:OPC.UA.HA.SamplingWert: siehe rechte Spalte

Legt die Abtastrate fest, mitder die Variablenwerte zuspeichern sind, inAbhängigkeit desParameters „x“ in [ms]

Historical Access(HA) [} 48]

{attribute'OPC.UA.HA.Buffer' := 'x'}

Name: OPC.UA.HA.BufferWert: siehe rechte Spalte

Definiert die maximaleAnzahl Werte, die imDatenspeicher bleiben, inAbhängigkeit desParameters „x“.

TwinCAT 2 (TPY):

OPC‑UA‑Funktion SPS‑Tag BedeutungData Access (DA) (*~ (OPC:0:not available) *) Sperrt eine Variable für OPC UA,

woraufhin diese im UA‑Namensraumnicht mehr sichtbar ist.

Data Access (DA) (*~ (OPC:1:available) *) Aktiviert eine Variable für OPC UA,woraufhin diese im UA‑Namensraumsichtbar wird. Dieses Tag muss immergesetzt sein, wenn eine Variable fürUA verwendet werden soll.

Data Access (DA) (*~(OPC_PROP[0005]:1:Schreibgeschützt) *)

Setzt den Schreibschutz für eineVariable. Muss zusammen mit (*~(OPC:1: available) *) verwendetwerden.

Data Access (DA) (*~ (OPC_UA_PROP[5100] : x: Aliasname) *)

Bestimmt x als Knotennamen imUA‑Namensraum, sogenanntes AliasMapping.

Page 73: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 73Version: 2.5

OPC‑UA‑Funktion SPS‑Tag BedeutungHistorical Access (HA) [} 48] (*~ (OPC_UA_PROP[5000]:x:Storage

media) *)Aktiviert eine Variable für „HistoricalAccess“. Muss zusammen mit (*~(OPC:1: available) *) verwendetwerden. x definiert dasSpeichermedium für die Speicherungder Datenwerte:1 = Speicher2 = Datei3 = SQL Compact Database4 = SQL Server Database

Historical Access (HA) [} 48] (*~ (OPC_UA_PROP[5000][1]:x:SamplingRate) *)

Legt die Abtastrate fest, mit der dieVariablenwerte zu speichern sind, inAbhängigkeit des Parameters „x“ in[ms]

Historical Access (HA) [} 48] (*~ (OPC_UA_PROP[5000][2]:x:Buffer)*)

Definiert die maximale Anzahl Werte,die im Datenspeicher bleiben, inAbhängigkeit des Parameters „x“.

4.1.3.10 Statuscode

Der TwinCAT OPC UA Server ermöglicht einer SPS-Anwendung die Änderung des OPC UA StatusCode.

Führen Sie die folgenden Schritte aus, um den StatusCode einer Variablen zu konfigurieren und auf dieseneinzuwirken:

SPS-Struct erstellen

Damit die Datenkonsistenz gewährleistet ist, basiert das Konzept der Änderung des OPC UA StatusCodeauf StructuredDataTypes [} 67]. Jede Variable, auf deren UA‑StatusCode eingewirkt werden soll, muss in einSTRUCT eingeschlossen sein. Erzeugen Sie ein neues STRUCT und fügen Sie ein SPS-Attribut vor derSTRUCT-Definition hinzu.{attribute 'OPC.UA.DA.STATUS' := 'quality'}TYPE ST_StatusCodeOverride :STRUCT  value  : REAL;  quality: DINT;END_STRUCTEND_TYPE

Das STRUCT enthält die Variable selbst und eine Variable vom Datentyp DINT, die den StatusCodedarstellt. Auf diese Variable wird ebenfalls mittels ihres Namens im Attribut vor der STRUCT‑Definitionverwiesen.

Erstellen Sie nun eine Instanz von diesem STRUCT, z. B. im MAIN-Programm, und fügen das reguläre SPS-Attribut hinzu, damit diese Instanz über OPC UA verfügbar wird.PROGRAM MAINVAR  {attribute 'OPC.UA.DA' := '1'}  stStatusCodeOverride : ST_StatusCodeOverride;END_VAR

Diese Instanz ist nun innerhalb des OPC‑UA‑Namensraums als ein „StructuredDataType“ verfügbar.

Page 74: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA74 Version: 2.5

StatusCode überschreiben

Um den UA StatusCode für das STRUCT zu überschreiben, bearbeiten Sie einfach den Wert der Variablen„quality“, indem Sie diesen z. B. auf „-2147155968“ setzen, ändert sich der StatusCode des STRUCT zu„BadCommunicationError“.

Der Wert muss entsprechend der Definition in der OPC‑UA‑Spezifikation festgelegt werden.

In der nachfolgenden Tabelle werden nur einige der verfügbaren Statuscodes und deren entsprechendedezimale Darstellung aufgelistet. Konsultieren Sie die offizielle OPC‑UA‑Spezifikation für eine umfassendereListe der Statuscodes.

StatusCode Hex DecimalBadUnexpectedError 0x80010000 -2147418112BadInternalError 0x80020000 -2147352576BadCommunicationError 0x80050000 -2147155968BadTimeout 0x800A0000 -2146828288BadServiceNotSupported 0x800B0000 -2146762752

Hinweis

UA‑StatusCodesAchten Sie bei der Berechnung der dezimalen Darstellung anderer UA-Statuscodes auf derGrundlage ihrer hexadezimalen Darstellung darauf, dass Ihr Rechner auf DWORD einge-stellt ist, z. B. der Windows Rechner ("Programmierer" Ansicht).

Page 75: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 75Version: 2.5

4.1.4 C++

4.1.4.1 Zugriff auf C++-Laufzeit

In diesem Teil der Dokumentation wird beschrieben, wie der Namensraum des TwinCAT OPC UA Serverszu konfigurieren ist, um Zugriff auf die Symbole eines TwinCAT‑3‑C++‑Moduls zu erhalten. Hierzu könnenSie entweder den OPC‑UA‑Konfigurator verwenden, oder die Konfiguration direkt und per Hand in derServerConfig.xml-Datei des OPC UA Servers vornehmen.

Dieser Abschnitt beinhaltet folgende Themen:

• Schritt 1: Projektbezogene Einstellungen [} 75]

• Schritt 2: Konfiguration des UA-Servers [} 76]

Schritt 1: Projektbezogene Einstellungen

Um bestimmte, in einer Instanz eines TwinCAT‑3‑C++‑Moduls enthaltene Symbole so zu konfigurieren, dasssie über OPC UA zugänglich werden, sind die folgenden Schritte in den Einstellungen der entsprechenden C++‑Modulinstanz in TwinCAT XAE erforderlich:

1. Der OPC UA Server benötigt die TMI‑Symboldatei, die standardmäßig nicht an die Ziel-Laufzeitübergeben wird. Aktivieren Sie die Übertragung durch Setzen der folgenden Optionen:

ð Die erzeugte TMI-Datei wird nach der ObjectId benannt, z. B. „Obj_01010020.tmi“ und in dasTwinCAT‑Bootverzeichnis, z. B. C:\TwinCAT\Boot\Tmi\, abgelegt.

Page 76: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA76 Version: 2.5

2. Legen Sie fest, welche Symbole für die entsprechenden Variablen zugänglich gemacht werden sollen,indem Sie das Kontrollkästchen Create Symbol im TMC-CodeGenerator aktivieren. Führen Sie denTMC-CodeGenerator anschließend aus

Schritt 2: Konfiguration des UA-Servers

Sie können den Zugang zu TwinCAT‑3‑C++‑Modulen bequem mithilfe des OPC‑UA‑Konfiguratorskonfigurieren und parametrisieren. Fügen Sie hierzu im Bereich Datenzugriff ein neues Gerät vom Typ„CPP TwinCAT 3 (TMI) gefiltert“ hinzufügen.

Das Feld SymbolFile muss auf die TMI-Datei zeigen, die für die C++‑Modulinstanz erzeugt wurde. DieseTMI-Datei befindet sich im TwinCAT‑Bootverzeichnis, z. B. C:\TwinCAT\Boot\Tmi\, und wurden nach derObjectId der TwinCAT‑3‑C++‑Modulinstanz benannt.

Die einstellbaren Parameter beschreiben die folgenden Funktionen:

Parameter Beschreibung Mögliche WerteADS Port Definiert den ADS-Port, unter dem die C+

+‑Modulinstanz zugänglich ist. Der ADS Port kann inden Eigenschaften des C++ Tasks gelesen werden.

351352…

Page 77: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 77Version: 2.5

Parameter Beschreibung Mögliche WerteAutoCfg Definiert zunächst den Typ der für die Kommunikation

verwendeten Ziel-Laufzeit, z. B. SPS, C++, I/O.Anschließend kann eine weitergehendeUnterscheidung innerhalb dieser Kategorienstattfinden.Jede AutoCfg‑Option steht sowohl als ungefilterte, alsauch gefilterte Option zur Verfügung. Gefiltertbedeutet, dass der Nutzer bestimmen kann, welche C++‑Symbole über OPC UA öffentlich zugänglichgemacht werden. Bei Verwendung einer ungefiltertenOption wird jedes C++‑Symbol an OPC UAveröffentlicht.

4020 CPP TwinCAT 3(TMI)4021 CPP TwinCAT 3(TMI) gefiltert

AutoCfgSymFile Symboldatei (TMI) der entsprechenden C++‑Modulinstanz.

Pfad zur Symboldatei.(TMI)

IoMode Definiert die Methode für den Zugriff auf Symbole. 1 (Zugriff über Handle -standardmäßig)

ArraySubItemLegacySupport

Unterelemente eines Array werden standardmäßignicht als separate Knoten im UA-Namensraumabgebildet. Stattdessen wird lediglich das Array als eineinzelnes Element abgebildet. Nichtsdestotrotzkönnen UA-Clients über deren sogenannten„IndexRange“ auf Unterelemente zugreifen.Unglücklicherweise unterstützen einige ältereOPC UA Clients diese Möglichkeit noch nicht. DiesesFlag wurde eingeführt, sodass der Zugriffnichtsdestotrotz für diese Clients möglich wird. DasFlag sorgt dafür, dass jede Array-Position alsseparater Knoten im UA‑Namensraum angezeigt wird.

HINWEIS! Dies führt zu einem höherenSpeicherbedarf des OPC UA Servers.

0 (deaktiviert -standardmäßig)1 (aktiviert)

Disabled Deaktiviert die C++‑Modulinstanz imUA‑Namensraum, woraufhin der entsprechendeKnoten nicht angezeigt wird.Es wird empfohlen diesen Parameter zu aktivieren,wenn bestimmte C++‑Laufzeiten zum Zeitpunkt derProjektplanung noch nicht verfügbar sind, weil z. B. dieentsprechenden Geräte noch nicht ans Netzwerkangeschlossen sind.

0 (deaktiviert -standardmäßig)1 (aktiviert)

4.1.4.2 Historical Access

4.1.4.2.1 Setupversion 4.x.x

Ab Setupversion 4.x.x wird Historical Access nicht mehr länger über Attribute bzw. Kommentare konfiguriert.Dies hat den Vorteil, dass die Historical-Access-Funktionalität nun auch für Laufzeiten zur Verfügung steht,dies dies bisher nicht unterstützt haben, z. B. Variablen von einem BC9191 Controller. Des Weiteren kanneine Historical‑Access‑Konfiguration nun auch nachträglich, d. h. ohne Anpassung des SPS-Projektsdurchgeführt werden.

Die Historical‑Access‑Konfiguration ist nun XML-basiert (TcUaHaConfig.xml) und kann über den OPC UAServer Konfigurator [} 181] vorgenommen werden (siehe Konfiguration von Historical Access [} 190]). DieseXML-Datei befindet sich in demselben Verzeichnis wie die TcOpcUaServer.exe. Der Vollständigkeit halberwird der Aufbau der XML-Datei an dieser Stelle jedoch kurz erklärt.<HistoryConfig>  <HistoryController>    <HistoryAdapter Type="Volatile" Id="0" File="" Server="" Database="" User="" Password=""/>    <HistoryAdapter Type="File" Id="1" File="historydb.dat" Server="" Database="" User="" Pass-

Page 78: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA78 Version: 2.5

word=""/>    <HistoryAdapter Type="SQL" Id="2" File="" Server="" Database="database123" User="user" Pass-word="pwd"/>    <HistoryAdapter Type="SQLCompact" Id="3" File="historydb.xyz" Server="" Database="" User=""Password=""/>    <HistoryAdapter Type="SQLCompact" Id="4" File="historydb2.xyz" Server="" Database="" User=""Password=""/>  </HistoryController>  <HistoryNodes>    <HistoryNode HistoryWriteable="true" SamplingRate="0" MaxSamples="100000" AdapterId="0"NS="urn:BeckhoffAutomation:Ua:PLC1" NodeId="s=PRG_HA_SingleNode.nMyValue"/>    <HistoryNode HistoryWriteable="true" SamplingRate="0" MaxSamples="100000" AdapterId="0"NS="urn:BeckhoffAutomation:Ua:PLC1" NodeId="s=PRG_HA_MultipleNodes.nMyValue1"/>    <HistoryNode HistoryWriteable="true" SamplingRate="0" MaxSamples="100000" AdapterId="0"NS="urn:BeckhoffAutomation:Ua:PLC1" NodeId="s=PRG_HA_MultipleNodes.nMyValue2"/>    <HistoryNode HistoryWriteable="true" SamplingRate="0" MaxSamples="100000" AdapterId="0"NS="urn:BeckhoffAutomation:Ua:PLC1" NodeId="s=PRG_HA_MultipleNodes.fMyValue3"/>  </HistoryNodes></HistoryConfig>

In dem Bereich <HistoryController> können alle unterstützten Datenspeicher konfiguriert werden. Aktuellwerden die folgenden Speicherorte unterstützt:

• Arbeitsspeicher („Volatile“)• Datei („File“)• SQL Compact• SQL Server (wird nicht unter Windows CE unterstützt)

Jeder <HistoryAdapter> (außer „Volatile“) kann hierbei mehrfach verwendet werden, z. B. wenn diehistorischen Werte für einzelne Variablen in unterschiedlichen Datenspeichern abgelegt werden sollen.

Im Bereich <HistoryNodes> werden die einzelnen Nodes konfiguriert, einem Datenspeicher zugewiesen undmit einer SamplingRate sowie einer maximalen Größe für den zu verwendenden Ringbuffer imDatenspeicher versehen.

Das Attribut HistoryWriteable="true" bewirkt, dass der Datenspeicher für diese Node über einenHistoryUpdate() Aufruf mit Werten befüllt werden kann. Ein solcher Aufruf wird z.B. von unserem TwinCATOPC UA Client über den UA_HistoryUpdate() Funktionsbaustein zur Verfügung gestellt. Wird eine Node mitdiesem Attribut konfiguriert, dann sampled üblicherweise der Server selbst nicht die Werte, sondernbekommt diese von anderen Clients reingereicht. Die SamplingRate ist daher bei einer solchenKonfiguration üblicherweise gleich 0.

Produkte Setupversionen ZielplattformTF6100 4.x.x IPC oder CX (x86, x64, ARM)

4.1.4.2.2 Anzeige von historischen Daten

Anzeige von Historical‑Access‑Werten in einem OPC UA Client

Die folgende Schritt-für-Schritt-Anleitung beschreibt, wie die Software UA-Expert konfiguriert werden kann,um auf historische Daten zuzugreifen.

Page 79: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 79Version: 2.5

1. Starten Sie die UA-Expert-Software und stellen Sie eine Verbindung mit dem OPC UA Server her.

Page 80: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA80 Version: 2.5

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.

Page 81: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 81Version: 2.5

ð Sie können nun den gewünschten Zeitraum, für den die Symbolwerte angezeigt werden sollen, mithilfeder Steuerelemente StartTime und EndTime festlegen, oder falls erforderlich ein CyclicUpdate für dieseVariablen starten.

4.1.4.3 Alarms & Conditions

In diesem Abschnitt werden die notwendigen Schritte zur Konfiguration von OPC UA Alarms & Conditions(A&C) auf dem TwinCAT OPC UA Server beschrieben. Das Grundkonzept ist unabhängig von derTwinCAT‑Laufzeit. Demzufolge sind die Konfigurationsschritte für SPS, C++, TcCOM-Laufzeit oder nur I/O-Task gleich.

OPC UA Alarms & Conditions (Teil 9 der OPC-UA-Spezifikation) beschreibt ein Modell für die Überwachungvon Prozesswerten und das Ausgeben von Alarmen und Ereignissen bei Zustandsänderungen einesLaufzeit-Symbols.

Voraussetzungen

Die folgenden Voraussetzungen gelten für die Verwendung von OPC UA Alarms & Conditions:

• Das zu überwachende Laufzeitsymbol muss im Namensraum verfügbar sein.• Der OPC UA Client muss A&C unterstützen. In diesem Abschnitt wird der UA-Expert (von Unified

Automation) als Referenz‑UA‑Client verwendet.

Page 82: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA82 Version: 2.5

Allgemeines

Die folgenden Schritte müssen einmalig ausgeführt werden, um ein Symbol für A&C freizugeben:

• Schritt 1: Laufzeitsymbol für Datenzugriff aktivieren [} 82] (damit das Symbol generell via OPC UAzugänglich wird.)

• Schritt 2: A&C für ein Symbol aktivieren [} 82]

• Schritt 3: Eigene Benutzerdaten mit einem Ereignis übermitteln [} 83]

• Schritt 4: Ereignis über die FireEvent-Methode auslösen [} 84]

• Schritt 5: Mehrsprachige Alarmtexte konfigurieren [} 86]

• Schritt 6: A&C bei einem Referenz-OPC-UA-Client anmelden [} 86]

Diese Schritte werden nachfolgend ausführlicher erläutert. Am Ende des Abschnitts finden Sie Informationenzum Empfang von konfigurierten Alarmen über A&C mit dem UA‑Expert‑Referenz‑Client.

Unterstützte Alarmtypen

Die Implementierung von TwinCAT OPC UA A&C unterstützt derzeit die folgenden Alarmtypen:

• LimitAlarmType: Verschiedene Grenzen für ein Symbol definieren. Wird eine Grenze erreicht, gibt derUA-Server einen Alarm aus.

• OffNormalAlarmType: Einen Wert definieren, der „normal“ ist. Wenn der aktuelle Wert vom „normalen“Wert abweicht, gibt der UA-Server einen Alarm aus.

Schritt 1: Laufzeitsymbol für Datenzugriff aktivieren

Als Voraussetzung dafür, dass Variablen für Alarms & Conditions konfiguriert werden können, muss dieentsprechende Variable zunächst im OPC UA Server zur Verfügung stehen. Im Falle einer SPS‑Variablenmuss diese zunächst entsprechend mit einem Attribut konfiguriert werden, wie im Abschnitt Zugriff auf SPS-Laufzeit [} 41] beschrieben.

Schritt 2: A&C für ein Symbol aktivieren

Mit dem TwinCAT-OPC-UA-Server-Konfigurator kann ein Laufzeitsymbol einfach für A&C konfiguriertwerden. Dieser Konfigurator hat eine einfache grafische Bedienoberfläche, um die dahinter stehende XML-Datei zu bearbeiten. Der Konfigurator steht, je nach Setupversion, in zwei Varianten zur Verfügung:Standalone [} 178] und integriert in das Visual Studio [} 192].

Der folgende Programmausschnitt zeigt ein Beispiel dieser XML-Datei, um das allgemeine Verhalten undden Aufbau der A&C-Implementierung besser zu verstehen.<TcUaAcConfig>  <ConditionController Name="ConditionController1" >    <Condition Name="Counter" Severity="200">    <LimitAlarmType LowLowLimit="-10" LowLimit="0" HighLimit="10" HighHighLimit="20" MessageNor-mal="100" MessageLowLow="10" MessageLow="11" MessageHigh="12" MessageHighHigh="13"/>      <ItemToMonitor SamplingRate="100" NS="urn:[NodeName]:BeckhoffAutomation:Ua:PLC1" Node-Id="s=MAIN.nCounter1" />    </Condition>    <Condition Name="Switch" Severity="500">      <OffNormalAlarmType Normal="0" MessageNormal="100" MessageOffNormal="20" />      <ItemToMonitor SamplingRate="100" NS="urn:[NodeName]:BeckhoffAutomation:Ua:PLC1" Node-Id="s=MAIN.bSwitch" />    </Condition>    <Condition Name="Struct" Severity="300">      <LimitAlarmType LowLowLimit="-10" LowLimit="0" HighLimit="10" HighHighLimit="20" MessageNor-mal="100" MessageLowLow="10" MessageLow="11" MessageHigh="12" MessageHighHigh="13"/>      <ItemToMonitor SamplingRate="100" NS="urn:[NodeName]:BeckhoffAutomation:Ua:PLC1" Node-Id="s=MAIN.stStruct" />    </Condition>   </ConditionController>  <ConditionController Name="ConditionController2" >    <Condition Name="Counter2" Severity="200">      <LimitAlarmType LowLowLimit="-10" LowLimit="0" HighLimit="10" HighHighLimit="20" MessageNor-mal="100" MessageLowLow="10" MessageLow="11" MessageHigh="12" MessageHighHigh="13"/>      <ItemToMonitor SamplingRate="100" NS="urn:[NodeName]:BeckhoffAutomation:Ua:PLC1" Node-Id="s=MAIN.nCounter2" />

Page 83: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 83Version: 2.5

    </Condition>  </ConditionController></TcUaAcConfig>

Eine „Bedingung“ definiert das zu überwachende Laufzeitsymbol und die Alarmgrenzen und -texte. Jede„Bedingung“ ist in einem so genannten „ConditionController“ organisiert, dem Objekt, das dieOPC UA Clients später abonnieren.

Bei der Erstellung einer Bedingung (Condition) müssen NamespaceName (NS) und NodeID spezifiziertwerden, um auf den zu überwachenden UA-Knoten zu verweisen. Der Konfigurator bietet einen einfachenBrowsing-Mechanismus, um einen Knoten auszuwählen. In der XML kann durch den Platzhalter„[NodeName]“ in NamespaceName die XML-Datei einfach zwischen zwei verschiedenen Hardwaresystemenhin und her wechseln. HINWEIS! NamespaceName beinhaltet immer den Hostnamen des IPC oderEmbedded-PC, auf dem der OPC UA Server läuft. Wird „[NodeName]“ gewählt, wird dieser Tag durch denHostnamen des aktuellen IPCs oder Embedded-PCs ersetzt, auf dem der UA-Server läuft.

SamplingRate bestimmt, wie oft der UA-Server einen Wert vom Knoten abfragen soll, um festzustellen, obeine der Alarmgrenzen erreicht wurde.

Die Alarmtexte werden über eine ID identifiziert. Die ID identifiziert eindeutig einen Alarmtext aus derRessourcendatei (siehe Schritt 5: Mehrsprachige Alarmtexte konfigurieren [} 86]).

Schritt 3: Eigene Benutzerdaten mit einem Alarm übermitteln

Alarme können Felder mit eigenen Benutzerdaten enthalten, die die mit dem Alarm ausgegebenen Datenergänzen. Diese Benutzerdatenfelder können in der Laufzeitanwendung erzeugt und ausgefüllt werden,indem ein STRUCT erstellt wird, dessen erstes Element „value“ genannt wird. Bei einem Alarm werden dannalle folgenden Elemente in einem zusätzlichen Benutzerdatenfeld gesendet.

Beispiel SPS-Anwendung:TYPE ST_CustomStruct :STRUCT  value : INT;  data  : ST_SomeStruct;END_STRUCTEND_TYPE

TYPE ST_SomeStruct :STRUCT  Data1 : INT;  Data2 : REAL;  Data3 : LREAL;END_STRUCTEND_TYPE

Die Instanz von ST_CustomStruct wird dann über den regulären Mechanismus, z. B. in TwinCAT 3, für denDatenzugriff aktiviert: Das STRUCT muss als StructuredDataType [} 89] aktiviert sein.PROGRAM MAINVAR  {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 besondereAlarmConditionTypes, sogenannte „BkUaLimitAlarmType“ und „BkUaOffNormalAlarmType“, abonnieren,damit sie die besonderen Benutzerdatenfelder beim Eingang eines Alarms empfangen können.

Page 84: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA84 Version: 2.5

Der OPC UA Client empfängt dann die Benutzerdaten in den Feldern „BkUaEventData“ und„BkUaEventValue“ des eingehenden Alarms. Im obigen Beispiel sind das der Wert der SPS-Variablen sowiedie Benutzerdaten, die mit der SPS-Struktur „ST_SomeStruct“ dargestellt sind.

Schritt 4: Ereignis über die FireEvent-Methode auslösen

Jeder ConditionController umfasst eine FireEvent-Methode, mit der die OPC UA Clients ein allgemeinesEreignis mit benutzerdefinierten EventFields auslösen können.

Page 85: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 85Version: 2.5

Wird diese Methode ausgeführt, dann wird ein Ereignis auf dem TwinCAT OPC UA Server ausgegeben.Andere OPC UA Clients können diese Ereignisse empfangen, wenn sie den entsprechendenConditionController abonnieren.

Die benutzerdefinierten EventFields werden als „UserEventData“ an das Ereignis angehängt. Diesen Datenkönnen von OPC UA Clients empfangen werden, die beim SimpleEventType „UserEventType“ angemeldetsind.

Page 86: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA86 Version: 2.5

Schritt 5: Mehrsprachigen Alarmtexten konfigurieren

Die A&C-Implementierung im TwinCAT OPC UA Server unterstützt die Verwendung von mehrsprachigenAlarmtexten. Abhängig von der Sprache, mit der sich der UA-Client mit dem Server verbindet, wird einentsprechender Alarmtext verwendet. Alarmtexte werden in XML-Dateien konfiguriert, für jede Sprache gibtes eine eigene Datei. Diese Dateien befinden sich im Ordner „res“ (Ressource) desTwinCAT OPC UA Servers. Mit dem Konfigurator können Alarmtexte bequem hinzugefügt oder entferntwerden, ohne dass die XML-Dateien direkt bearbeitet werden müssen. Jeder Alarmtext hat eine eigene ID,die in der Datei nur einmal vorkommt.

Beispiel:<TcOpcUaSvrRes Lang="en">  <Text ID="0">Text not available</Text>  <Text ID="1">Some alarm text</Text>   <Text ID="2">Value is High range</Text>  <Text ID="3">Value is HighHigh range</Text>  <Text ID="4">Value is OffNormal</Text>  ...</TcOpcUaSvrRes>

Schritt 6: A&C bei einem Referenz-OPC-UA-Client anmelden

Ein OPC UA Client muss sich bei einem ConditionController anmelden, damit er Ereignisse für Bedingungenempfangen kann, die für diesen besonderen ConditionController konfiguriert sind. Der UA‑Expert stelltFunktionen zur Verfügung, um UA-Ereignisse zu abonnieren und zu empfangen. Nachdem UA-Expertgestartet und eine Verbindung zum TwinCAT OPC UA Server hergestellt wurde, fügen Sie IhremArbeitsbereich eine neue Dokumentenansicht, genannt „Event View“, hinzu.

Page 87: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 87Version: 2.5

Sie können einen ConditionController dann durch Ziehen des entsprechenden Objekts in EventViewabonnieren. Die Ereignisse für diesen ConditionController werden im „Event Window“ angezeigt.

Möglicherweise müssen spezielle Alarm- und/oder Ereignistypen abonniert werden, damit Sie alle Feldereines eingehenden Ereignisses oder Alarms empfangen können.

4.1.4.4 Methodenaufruf

Methodenaufrufe sind ein grundlegender Teil der OPC‑UA‑Spezifikation. Mit der Einführung dieserFunktionalitäten in die SPS-Welt bietet TwinCAT 3 die Möglichkeit zur effizienten Ausführung von RPC-Aufrufen im C++‑Echtzeitkontext und verringert somit die klassischen Handshake‑Pattern bei derKommunikation zwischen den Geräten. Der TwinCAT OPC UA Server importiert C++‑Methoden wieOPC‑UA‑Methoden über dessen TMI-Import.

Hinweis

Echtzeit-MethodeAuch wenn die C++-Methode eine normale Methode im UA-Namensraum zu sein scheint,ist sie immer noch eine Echtzeit-Methode, die innerhalb des Echtzeit-Kontexts ausgeführtwird und somit unter den Kontext einer Echtzeit-Task fällt. Der TwinCAT-C++-Entwicklermuss daher Vorsichtsmaßnahmen treffen, sodass die Ausführungszeit der Methode in dieTask-Zykluszeit passt.

Page 88: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA88 Version: 2.5

Methoden in TwinCAT 3 C++

TwinCAT‑Module könnten Schnittstellen implementieren, die über vordefinierte Methoden verfügen (sieheTcCOM‑Module). Die Methode selbst muss für RPC-Aufrufe während ihrer Definition aktiviert sein (sieheTwinCAT Module Class Wizard Dokumentation), sodass der OPC UA Server weiß, dass sie zur Ausführungbereitsteht.

Damit auch der ReturnValue der Methode zur Verfügung steht, muss das entsprechende Feld markiert sein.Beachten Sie, dass die Schnittstelle, unter der die Methode erstellt wurde, implementiert werden muss.

Page 89: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 89Version: 2.5

Gefilterter oder ungefilterter Modus

In Abhängigkeit davon, welcher Importmodus verwendet wird, muss die Methode für den Zugriff überOPC UA deklariert werden. Dies kann durch Verwendung des TMC Editors und der üblichenOPC‑UA‑Attribute als optionale Eigenschaften erfolgen.

4.1.4.5 Strukturierte Typen

Strukturierte Typen erlauben es, Strukturen zu lesen oder zu schreiben ohne dafür jedes Byte zuinterpretieren, weil der UA-Server den Informationstyp jedes Elements der Struktur zurückgibt. Durchkomplexe Funktionen in modernen OPC UA SDK’s können OPC UA Clients diese strukturellenInformationen durchsuchen und interpretieren.

Ab Version 2.2.x des TwinCAT OPC UA Servers werden Strukturen von der TwinCAT‑3‑Laufzeit (nur TMC-und TMI-Import) als ein StructuredType im UA‑Namensraum erzeugt. Beispiel:

STRUCT ST_Communication:TYPE ST_Communication :STRUCT  a : INT;  b : INT;  c : INT;END_STRUCTEND_TYPE

Programm MAIN:PROGRAM MAINVAR  {attribute 'OPC.UA.DA' := '1'}  {attribute 'OPC.UA.DA.StructuredType' := '1'}  stCommunication : ST_Communication;END_VAR

Hinweis

Gefilterter ModusWerden Filter eingesetzt, um Symbole über OPC UA verfügbar zu machen, muss ein imein STRUCT oder Funktionsbaustein im UA‑Namensraum voll verfügbar sein, um alsStructuredDataType angezeigt zu werden.

Die Instanz „stCommunication“ wird dann im UA-Namensraum als „StructuredType“ angezeigt:

Page 90: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA90 Version: 2.5

Alternativ kann die struct-Definition auch das SPS Attribut erhalten, um alle Instanzen von STRUCT alsStructuredType verfügbar zu machen.{attribute 'OPC.UA.DA.StructuredType' := '1'}TYPE ST_Communication :STRUCT  a : INT;  b : INT;  c : INT;END_STRUCTEND_TYPE

Um „StructuredType“ einer bestimmten Instanz zu deaktivieren, kann das folgende Attribut verwendetwerden:PROGRAM MAINVAR  {attribute 'OPC.UA.DA' := '1'}  {attribute 'OPC.UA.DA.StructuredType' := '0'}  stCommunication : ST_Communication;END_VAR

Funktionsbaustein StructuredType

Zusätzlich enthält jeder Funktionsbaustein der TwinCAT 3 SPS auch einen Kind-Knoten, „FunctionBlock“,der den gesamten Funktionsbaustein als „StructuredDataType“ beinhaltet.

Page 91: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 91Version: 2.5

Beispiel:

Funktionsbaustein:FUNCTION_BLOCK FB_FunctionBlockVAR_INPUT  Input1 : INT;   Input2 : LREAL;END_VARVAR_OUTPUT  Output1 : LREAL; END_VAR

Instanz eines Funktionsbausteins:PROGRAM MAINVAR  {attribute 'OPC.UA.DA' := '1'}  {attribute 'OPC.UA.DA.StructuredType' := '1'}  fbFunctionBlock : FB_FunctionBlock; END_VAR

Instanz des Funktionsbausteins im OPC‑UA‑Namensraum:

FunctionBlock-Knoten mit StructuredDataType:

Alternativ kann der Funktionsbaustein auch ein SPS-Attribut erhalten, um alle Instanzen desFunktionsbausteins als „StructuredType“ zur Verfügung zu stellen.{attribute 'OPC.UA.DA.StructuredType' := '1'}FUNCTION_BLOCK FB_FunctionBlockVAR_INPUT  Input1 : INT;   Input2 : LREAL;END_VARVAR_OUTPUT  Output1 : LREAL; END_VAR

Um StructuredType einer bestimmten Instanz zu deaktivieren, kann das folgende Attribut verwendet werden:PROGRAM MAINVAR  {attribute 'OPC.UA.DA' := '1'}  {attribute 'OPC.UA.DA.StructuredType' := '0'}  fbFunctionBlock : FB_FunctionBlock; END_VAR

Page 92: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA92 Version: 2.5

Hinweis

Maximale Größe der StrukturDie maximale Größe einer Struktur ist standardmäßig auf 16 kByte festgelegt. JedesSTRUCT tauscht ständig Daten mit dem Basis-ADS-Gerät aus, d.h. mit jedem Lese-/Schreibbefehl eines Structured Type wird eine große ADS-Meldung verschickt. Damit derADS-Router nicht mit großen Meldungen überflutet wird, ist die maximale Größe be-schränkt. Der Nutzer kann diese Vorgabe in der Datei ServerConfig.xml ändern. Dazumuss der Schlüssel <MaxStructureSize> zu OpcServerConfig\UaServerConfig\ hinzugefügtund 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 FolderTypeimportiert, wo jedes Strukturelement als einzelner Knoten verfügbar ist.

4.1.4.6 Liste der Attribute und Kommentare

Die Konfiguration der Laufzeitvariablen für verschiedene OPC‑UA‑Funktionen (z. B. Data Access oderHistorical Access) erfolgt direkt im SPS-Programm oder im TMC Code Editor (bei Verwendung vonTwinCAT 3 C++). Der Vorteil ist, dass ein SPS-Entwickler direkt in dem Programm, mit dem er vertraut ist,entscheiden kann, ob und wie eine Variable für OPC UA freizugeben ist. Die Aktivierung erfolgt dann durchEinfügen eines Kommentars und des entsprechenden OPC-UA-Tags vor der Variablen, z. B.:

TwinCAT 3 SPS (TMC):{attribute 'OPC.UA.DA' := '1'}bVariable : BOOL;

TwinCAT 2 SPS (TPY):bVariable : BOOL; (*~ (OPC:1:available)*)

Eine detaillierte Beschreibung zur Verwendung von Attributen und Kommentaren erhalten Sie im Kapitelüber die entsprechenden Laufzeitkomponenten:

• SPS [} 41]

• C++ [} 75]

• I/O [} 94]

• Matlab/Simulink [} 106]

Die folgende Tabelle zeigt einen Überblick aller definierbaren Tags und ihrer Bedeutung. In denUnterschnitten der entsprechenden Funktion finden Sie eine ausführliche Beschreibung desFunktionsprinzips.

TwinCAT 3 (TMC):

OPC-UA-Funktion SPS-Tag C++ TMC Code Editor(Optionale Eigenschaften)

Bedeutung

Data Access (DA) {attribute 'OPC.UA.DA' :='0'}

Name: OPC.UA.DAWert: 0

Sperrt eine Variable fürOPC UA, woraufhin dieseim UA‑Namensraum nichtmehr sichtbar ist.

Data Access (DA) {attribute 'OPC.UA.DA' :='1'}

Name: OPC.UA.DAWert: 1

Aktiviert eine Variable fürOPC UA, woraufhin dieseim UA‑Namensraumsichtbar wird. Dieses Tagmuss immer gesetzt sein,wenn eine Variable für UAverwendet werden soll.

Page 93: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 93Version: 2.5

OPC-UA-Funktion SPS-Tag C++ TMC Code Editor(Optionale Eigenschaften)

Bedeutung

Data Access (DA) {attribute'OPC.UA.DA.Access' := 'x'}

Name: OPC.UA.DA.AccessWert: siehe rechte Spalte

Setzt Lese-/Schreib-Zugrifffür eine Variable, je nachParameter „x“.0 = Kein1 = Schreibgeschützt2 = Nur Schreibzugriff3 = Lese- undSchreibzugriff(Standardwert, wenn keinTag verwendet wird)

Data Access (DA) {attribute'OPC.UA.DA.StructuredType' := '0'}

Name:OPC.UA.DA.StructuredTypeWert: 0

Deaktiviert StructuredTypefür ein STRUCT oder einenFunktionsbaustein

Data Access (DA) {attribute'OPC.UA.DA.StructuredType' := '1'}

Name:OPC.UA.DA.StructuredTypeWert: 1

Aktiviert StructuredType fürein STRUCT oder einenFunktionsbaustein

Data Access {attribute'OPC.UA.DA.Status' :='quality'}

Name: OPC.UA.DA.StatusWert: quality

Statuscode eines Symbolsim UA‑Namensraummanuell festlegen. Nur fürDatenstrukturen. Der Wert„quality“ legt fest, welchesDINT Unterelement derDatenstruktur denStatuscode festlegt. Sieheentsprechenden Artikel derDokumentation für weitereInformationen.

Historical Access(HA) [} 48]

{attribute 'OPC.UA.HA' :='1'}

Name: OPC.UA.HAWert: 1

Aktiviert eine Variable für„Historical Access“. Mussmit {attribute'OPC.UA.DA' := '1'}verwendet werden.

Historical Access(HA) [} 48]

{attribute'OPC.UA.HA.Storage' := 'x'}

Name: OPC.UA.HA.StorageWert: siehe rechte Spalte

Definiert den Speicherort fürHistorical Access, abhängigvon Parameter “x”1 = Speicher2 = Datei3 = SQL CompactDatabase4 = SQL Server Database

Historical Access(HA) [} 48]

{attribute'OPC.UA.HA.Sampling' :='x'}

Name:OPC.UA.HA.SamplingWert: siehe rechte Spalte

Legt die Abtastrate fest, mitder die Variablenwerte zuspeichern sind, inAbhängigkeit desParameters „x“ in [ms]

Historical Access(HA) [} 48]

{attribute'OPC.UA.HA.Buffer' := 'x'}

Name: OPC.UA.HA.BufferWert: siehe rechte Spalte

Definiert die maximaleAnzahl Werte, die imDatenspeicher bleiben, inAbhängigkeit desParameters „x“.

TwinCAT 2 (TPY):

Page 94: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA94 Version: 2.5

OPC‑UA‑Funktion SPS‑Tag BedeutungData Access (DA) (*~ (OPC:0:not available) *) Sperrt eine Variable für OPC UA,

woraufhin diese im UA‑Namensraumnicht mehr sichtbar ist.

Data Access (DA) (*~ (OPC:1:available) *) Aktiviert eine Variable für OPC UA,woraufhin diese im UA‑Namensraumsichtbar wird. Dieses Tag muss immergesetzt sein, wenn eine Variable fürUA verwendet werden soll.

Data Access (DA) (*~(OPC_PROP[0005]:1:Schreibgeschützt) *)

Setzt den Schreibschutz für eineVariable. Muss zusammen mit (*~(OPC:1: available) *) verwendetwerden.

Data Access (DA) (*~ (OPC_UA_PROP[5100] : x: Aliasname) *)

Bestimmt x als Knotennamen imUA‑Namensraum, sogenanntes AliasMapping.

Historical Access (HA) [} 48] (*~ (OPC_UA_PROP[5000]:x:Storagemedia) *)

Aktiviert eine Variable für „HistoricalAccess“. Muss zusammen mit (*~(OPC:1: available) *) verwendetwerden. x definiert dasSpeichermedium für die Speicherungder Datenwerte:1 = Speicher2 = Datei3 = SQL Compact Database4 = SQL Server Database

Historical Access (HA) [} 48] (*~ (OPC_UA_PROP[5000][1]:x:SamplingRate) *)

Legt die Abtastrate fest, mit der dieVariablenwerte zu speichern sind, inAbhängigkeit des Parameters „x“ in[ms]

Historical Access (HA) [} 48] (*~ (OPC_UA_PROP[5000][2]:x:Buffer)*)

Definiert die maximale Anzahl Werte,die im Datenspeicher bleiben, inAbhängigkeit des Parameters „x“.

4.1.5 I/O

4.1.5.1 Zugriff auf IO-Task

Nachfolgend wird beschrieben, wie IO‑Taskvariablen über die Datenzugriffsfunktionen des OPC UA Serverszugänglich gemacht werden können.

Um IO-Variablen über OPC UA zugänglich zu machen, müssen die beiden Schritte einmalig durchgeführtwerden.

• Schritt 1: TwinCAT‑I/O‑Task konfigurieren, um das Symbolhandling zu aktivieren. [} 95]

• Schritt 2: I/O-Task dem OPC‑UA‑Namensraum hinzufügen [} 96]

Allgemeine Informationen

Die Variablen eines Tasks mit Prozessabbild können über OPC UA veröffentlicht werden.

Page 95: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 95Version: 2.5

Die Art und Weise, wie die Variablen angezeigt und wie mit ihnen kommuniziert wird, wird anhand vonverschiedener Parameter festgelegt. Diese Parameter können Sie bequem mithilfe desOPC‑UA‑Konfigurators festlegen. Alternativ dazu können Sie diese auch direkt in derServerConfig.xml‑Konfigurationsdatei festlegen. Die folgende Tabelle gibt einen Überblick über alleParameter, die beim Zugriff auf das I/O‑Task von Bedeutung sind.

Parameter Beschreibung Mögliche WerteADS Port Definiert den ADS-Port, unter dem das I/O‑Task

zugänglich ist. Der ADS Port kann in denEigenschaften des I/O‑Tasks ausgelesenwerden.

301302…

AutoCfg Definiert zunächst den Typ der für dieKommunikation verwendeten Ziel-Laufzeit, z. B.SPS, C++, I/O. Anschließend kann eineweitergehende Unterscheidung innerhalb dieserKategorien stattfinden.Jede AutoCfg-Option steht sowohl alsungefilterte, als auch gefilterte Option zurVerfügung. Gefiltert bedeutet, dass die Nutzerbestimmen können, welche I/O‑Variablen demOPC UA über Kommentare öffentlich zugänglichgemacht werden. Bei Verwendung einerungefilterten Option wird jede Task‑Variable anOPC UA veröffentlicht.

107 I/O TwinCAT 2/3108 I/O TwinCAT 2/3 gefiltert

AutoCfgSymFile Bestimmt den Pfad der CurrentConfig.xml‑Datei,die sich normalerweise im Ordner C:\TwinCAT\3.1\Boot\ befindet.

Pfad von CurrentConfig.xml

Disabled Deaktiviert die I/O Task im UA‑Namensraum,woraufhin der entsprechende Knoten nichtangezeigt wird. Wir empfehlen die Aktivierungdieses Parameters wenn bestimmte Laufzeitenzum Zeitpunkt der Projektplanung noch nichtverfügbar sind, weil z. B. die entsprechendenGeräte noch nicht ans Netzwerk angeschlossensind.

0 (deaktiviert - standardmäßig)1 (aktiviert)

Die folgenden Schritte beschreiben, wie Variablen von einem I/O‑Task in den UA-Namensraum importiertwerden können. Es wird vorausgesetzt, dass der OPC UA Server und die Laufzeit sich auf dem gleichenRechner befinden.

Schritt 1: TwinCAT‑I/O‑Task konfigurieren, um das Symbolhandling zu aktivieren.

Öffnen Sie die I/O‑Task‑Einstellungen und aktivieren Sie die Option Symbole erzeugen. Notieren Sie andieser Stelle auch den ADS-Port des I/O‑Tasks (im Beispiel ist das 301).

Page 96: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA96 Version: 2.5

TwinCAT 3:

TwinCAT 2:

Schritt 2: I/O‑Task dem OPC-UA-Namensraum hinzufügen

Konfigurieren Sie den OPC UA Server so konfigurieren, dass er Zugriff auf das I/O‑Task bietet. Fügen Siemithilfe des OPC-UA‑Konfigurators ein neues „IO TwinCAT 2/3“‑Gerät hinzu und konfigurieren Sie dessenEinstellungen für AdsNetId, AdsPort und SymbolFile (Pfad zur CurrentConfig.xml‑Datei).

Starten Sie, nachdem Sie die entsprechenden Eigenschaften eingestellt haben, den OPC UA Server neu,damit diese Einstellungen aktiv werden.

Page 97: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 97Version: 2.5

4.1.5.2 Historical Access

4.1.5.2.1 Setupversion 4.x.x

Ab Setupversion 4.x.x wird Historical Access nicht mehr länger über Attribute bzw. Kommentare konfiguriert.Dies hat den Vorteil, dass die Historical-Access-Funktionalität nun auch für Laufzeiten zur Verfügung steht,dies dies bisher nicht unterstützt haben, z. B. Variablen von einem BC9191 Controller. Des Weiteren kanneine Historical‑Access‑Konfiguration nun auch nachträglich, d. h. ohne Anpassung des SPS-Projektsdurchgeführt werden.

Die Historical‑Access‑Konfiguration ist nun XML-basiert (TcUaHaConfig.xml) und kann über den OPC UAServer Konfigurator [} 181] vorgenommen werden (siehe Konfiguration von Historical Access [} 190]). DieseXML-Datei befindet sich in demselben Verzeichnis wie die TcOpcUaServer.exe. Der Vollständigkeit halberwird der Aufbau der XML-Datei an dieser Stelle jedoch kurz erklärt.<HistoryConfig>  <HistoryController>    <HistoryAdapter Type="Volatile" Id="0" File="" Server="" Database="" User="" Password=""/>    <HistoryAdapter Type="File" Id="1" File="historydb.dat" Server="" Database="" User="" Pass-word=""/>    <HistoryAdapter Type="SQL" Id="2" File="" Server="" Database="database123" User="user" Pass-word="pwd"/>    <HistoryAdapter Type="SQLCompact" Id="3" File="historydb.xyz" Server="" Database="" User=""Password=""/>    <HistoryAdapter Type="SQLCompact" Id="4" File="historydb2.xyz" Server="" Database="" User=""Password=""/>  </HistoryController>  <HistoryNodes>    <HistoryNode HistoryWriteable="true" SamplingRate="0" MaxSamples="100000" AdapterId="0"NS="urn:BeckhoffAutomation:Ua:PLC1" NodeId="s=PRG_HA_SingleNode.nMyValue"/>    <HistoryNode HistoryWriteable="true" SamplingRate="0" MaxSamples="100000" AdapterId="0"NS="urn:BeckhoffAutomation:Ua:PLC1" NodeId="s=PRG_HA_MultipleNodes.nMyValue1"/>    <HistoryNode HistoryWriteable="true" SamplingRate="0" MaxSamples="100000" AdapterId="0"NS="urn:BeckhoffAutomation:Ua:PLC1" NodeId="s=PRG_HA_MultipleNodes.nMyValue2"/>    <HistoryNode HistoryWriteable="true" SamplingRate="0" MaxSamples="100000" AdapterId="0"NS="urn:BeckhoffAutomation:Ua:PLC1" NodeId="s=PRG_HA_MultipleNodes.fMyValue3"/>  </HistoryNodes></HistoryConfig>

In dem Bereich <HistoryController> können alle unterstützten Datenspeicher konfiguriert werden. Aktuellwerden die folgenden Speicherorte unterstützt:

• Arbeitsspeicher („Volatile“)• Datei („File“)• SQL Compact• SQL Server (wird nicht unter Windows CE unterstützt)

Jeder <HistoryAdapter> (außer „Volatile“) kann hierbei mehrfach verwendet werden, z. B. wenn diehistorischen Werte für einzelne Variablen in unterschiedlichen Datenspeichern abgelegt werden sollen.

Im Bereich <HistoryNodes> werden die einzelnen Nodes konfiguriert, einem Datenspeicher zugewiesen undmit einer SamplingRate sowie einer maximalen Größe für den zu verwendenden Ringbuffer imDatenspeicher versehen.

Das Attribut HistoryWriteable="true" bewirkt, dass der Datenspeicher für diese Node über einenHistoryUpdate() Aufruf mit Werten befüllt werden kann. Ein solcher Aufruf wird z.B. von unserem TwinCATOPC UA Client über den UA_HistoryUpdate() Funktionsbaustein zur Verfügung gestellt. Wird eine Node mitdiesem Attribut konfiguriert, dann sampled üblicherweise der Server selbst nicht die Werte, sondernbekommt diese von anderen Clients reingereicht. Die SamplingRate ist daher bei einer solchenKonfiguration üblicherweise gleich 0.

Produkte Setupversionen ZielplattformTF6100 4.x.x IPC oder CX (x86, x64, ARM)

Page 98: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA98 Version: 2.5

4.1.5.2.2 Anzeige von historischen Daten

Anzeige von Historical‑Access‑Werten in einem OPC UA Client

Die folgende Schritt-für-Schritt-Anleitung beschreibt, wie die Software UA-Expert konfiguriert werden kann,um auf historische Daten zuzugreifen.

1. Starten Sie die UA-Expert-Software und stellen Sie eine Verbindung mit dem OPC UA Server her.

Page 99: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 99Version: 2.5

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.

Page 100: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA100 Version: 2.5

ð Sie können nun den gewünschten Zeitraum, für den die Symbolwerte angezeigt werden sollen, mithilfeder Steuerelemente StartTime und EndTime festlegen, oder falls erforderlich ein CyclicUpdate für dieseVariablen starten.

4.1.5.3 Alarms & Conditions

In diesem Abschnitt werden die notwendigen Schritte zur Konfiguration von OPC UA Alarms & Conditions(A&C) auf dem TwinCAT OPC UA Server beschrieben. Das Grundkonzept ist unabhängig von derTwinCAT‑Laufzeit. Demzufolge sind die Konfigurationsschritte für SPS, C++, TcCOM-Laufzeit oder nur I/O-Task gleich.

OPC UA Alarms & Conditions (Teil 9 der OPC-UA-Spezifikation) beschreibt ein Modell für die Überwachungvon Prozesswerten und das Ausgeben von Alarmen und Ereignissen bei Zustandsänderungen einesLaufzeit-Symbols.

Voraussetzungen

Die folgenden Voraussetzungen gelten für die Verwendung von OPC UA Alarms & Conditions:

• Das zu überwachende Laufzeitsymbol muss im Namensraum verfügbar sein.• Der OPC UA Client muss A&C unterstützen. In diesem Abschnitt wird der UA-Expert (von Unified

Automation) als Referenz‑UA‑Client verwendet.

Page 101: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 101Version: 2.5

Allgemeines

Die folgenden Schritte müssen einmalig ausgeführt werden, um ein Symbol für A&C freizugeben:

• Schritt 1: Laufzeitsymbol für Datenzugriff aktivieren [} 101] (damit das Symbol generell via OPC UAzugänglich wird.)

• Schritt 2: A&C für ein Symbol aktivieren [} 101]

• Schritt 3: Eigene Benutzerdaten mit einem Ereignis übermitteln [} 102]

• Schritt 4: Ereignis über die FireEvent-Methode auslösen [} 103]

• Schritt 5: Mehrsprachige Alarmtexte konfigurieren [} 105]

• Schritt 6: A&C bei einem Referenz-OPC-UA-Client anmelden [} 105]

Diese Schritte werden nachfolgend ausführlicher erläutert. Am Ende des Abschnitts finden Sie Informationenzum Empfang von konfigurierten Alarmen über A&C mit dem UA‑Expert‑Referenz‑Client.

Unterstützte Alarmtypen

Die Implementierung von TwinCAT OPC UA A&C unterstützt derzeit die folgenden Alarmtypen:

• LimitAlarmType: Verschiedene Grenzen für ein Symbol definieren. Wird eine Grenze erreicht, gibt derUA-Server einen Alarm aus.

• OffNormalAlarmType: Einen Wert definieren, der „normal“ ist. Wenn der aktuelle Wert vom „normalen“Wert abweicht, gibt der UA-Server einen Alarm aus.

Schritt 1: Laufzeitsymbol für Datenzugriff aktivieren

Als Voraussetzung dafür, dass Variablen für Alarms & Conditions konfiguriert werden können, muss dieentsprechende Variable zunächst im OPC UA Server zur Verfügung stehen. Im Falle einer SPS‑Variablenmuss diese zunächst entsprechend mit einem Attribut konfiguriert werden, wie im Abschnitt Zugriff auf SPS-Laufzeit [} 41] beschrieben.

Schritt 2: A&C für ein Symbol aktivieren

Mit dem TwinCAT-OPC-UA-Server-Konfigurator kann ein Laufzeitsymbol einfach für A&C konfiguriertwerden. Dieser Konfigurator hat eine einfache grafische Bedienoberfläche, um die dahinter stehende XML-Datei zu bearbeiten. Der Konfigurator steht, je nach Setupversion, in zwei Varianten zur Verfügung:Standalone [} 178] und integriert in das Visual Studio [} 192].

Der folgende Programmausschnitt zeigt ein Beispiel dieser XML-Datei, um das allgemeine Verhalten undden Aufbau der A&C-Implementierung besser zu verstehen.<TcUaAcConfig>  <ConditionController Name="ConditionController1" >    <Condition Name="Counter" Severity="200">    <LimitAlarmType LowLowLimit="-10" LowLimit="0" HighLimit="10" HighHighLimit="20" MessageNor-mal="100" MessageLowLow="10" MessageLow="11" MessageHigh="12" MessageHighHigh="13"/>      <ItemToMonitor SamplingRate="100" NS="urn:[NodeName]:BeckhoffAutomation:Ua:PLC1" Node-Id="s=MAIN.nCounter1" />    </Condition>    <Condition Name="Switch" Severity="500">      <OffNormalAlarmType Normal="0" MessageNormal="100" MessageOffNormal="20" />      <ItemToMonitor SamplingRate="100" NS="urn:[NodeName]:BeckhoffAutomation:Ua:PLC1" Node-Id="s=MAIN.bSwitch" />    </Condition>    <Condition Name="Struct" Severity="300">      <LimitAlarmType LowLowLimit="-10" LowLimit="0" HighLimit="10" HighHighLimit="20" MessageNor-mal="100" MessageLowLow="10" MessageLow="11" MessageHigh="12" MessageHighHigh="13"/>      <ItemToMonitor SamplingRate="100" NS="urn:[NodeName]:BeckhoffAutomation:Ua:PLC1" Node-Id="s=MAIN.stStruct" />    </Condition>   </ConditionController>  <ConditionController Name="ConditionController2" >    <Condition Name="Counter2" Severity="200">      <LimitAlarmType LowLowLimit="-10" LowLimit="0" HighLimit="10" HighHighLimit="20" MessageNor-mal="100" MessageLowLow="10" MessageLow="11" MessageHigh="12" MessageHighHigh="13"/>      <ItemToMonitor SamplingRate="100" NS="urn:[NodeName]:BeckhoffAutomation:Ua:PLC1" Node-Id="s=MAIN.nCounter2" />

Page 102: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA102 Version: 2.5

    </Condition>  </ConditionController></TcUaAcConfig>

Eine „Bedingung“ definiert das zu überwachende Laufzeitsymbol und die Alarmgrenzen und -texte. Jede„Bedingung“ ist in einem so genannten „ConditionController“ organisiert, dem Objekt, das dieOPC UA Clients später abonnieren.

Bei der Erstellung einer Bedingung (Condition) müssen NamespaceName (NS) und NodeID spezifiziertwerden, um auf den zu überwachenden UA-Knoten zu verweisen. Der Konfigurator bietet einen einfachenBrowsing-Mechanismus, um einen Knoten auszuwählen. In der XML kann durch den Platzhalter„[NodeName]“ in NamespaceName die XML-Datei einfach zwischen zwei verschiedenen Hardwaresystemenhin und her wechseln. HINWEIS! NamespaceName beinhaltet immer den Hostnamen des IPC oderEmbedded-PC, auf dem der OPC UA Server läuft. Wird „[NodeName]“ gewählt, wird dieser Tag durch denHostnamen des aktuellen IPCs oder Embedded-PCs ersetzt, auf dem der UA-Server läuft.

SamplingRate bestimmt, wie oft der UA-Server einen Wert vom Knoten abfragen soll, um festzustellen, obeine der Alarmgrenzen erreicht wurde.

Die Alarmtexte werden über eine ID identifiziert. Die ID identifiziert eindeutig einen Alarmtext aus derRessourcendatei (siehe Schritt 5: Mehrsprachige Alarmtexte konfigurieren [} 105]).

Schritt 3: Eigene Benutzerdaten mit einem Alarm übermitteln

Alarme können Felder mit eigenen Benutzerdaten enthalten, die die mit dem Alarm ausgegebenen Datenergänzen. Diese Benutzerdatenfelder können in der Laufzeitanwendung erzeugt und ausgefüllt werden,indem ein STRUCT erstellt wird, dessen erstes Element „value“ genannt wird. Bei einem Alarm werden dannalle folgenden Elemente in einem zusätzlichen Benutzerdatenfeld gesendet.

Beispiel SPS-Anwendung:TYPE ST_CustomStruct :STRUCT  value : INT;  data  : ST_SomeStruct;END_STRUCTEND_TYPE

TYPE ST_SomeStruct :STRUCT  Data1 : INT;  Data2 : REAL;  Data3 : LREAL;END_STRUCTEND_TYPE

Die Instanz von ST_CustomStruct wird dann über den regulären Mechanismus, z. B. in TwinCAT 3, für denDatenzugriff aktiviert: Das STRUCT muss als StructuredDataType [} 89] aktiviert sein.PROGRAM MAINVAR  {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 besondereAlarmConditionTypes, sogenannte „BkUaLimitAlarmType“ und „BkUaOffNormalAlarmType“, abonnieren,damit sie die besonderen Benutzerdatenfelder beim Eingang eines Alarms empfangen können.

Page 103: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 103Version: 2.5

Der OPC UA Client empfängt dann die Benutzerdaten in den Feldern „BkUaEventData“ und„BkUaEventValue“ des eingehenden Alarms. Im obigen Beispiel sind das der Wert der SPS-Variablen sowiedie Benutzerdaten, die mit der SPS-Struktur „ST_SomeStruct“ dargestellt sind.

Schritt 4: Ereignis über die FireEvent-Methode auslösen

Jeder ConditionController umfasst eine FireEvent-Methode, mit der die OPC UA Clients ein allgemeinesEreignis mit benutzerdefinierten EventFields auslösen können.

Page 104: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA104 Version: 2.5

Wird diese Methode ausgeführt, dann wird ein Ereignis auf dem TwinCAT OPC UA Server ausgegeben.Andere OPC UA Clients können diese Ereignisse empfangen, wenn sie den entsprechendenConditionController abonnieren.

Die benutzerdefinierten EventFields werden als „UserEventData“ an das Ereignis angehängt. Diesen Datenkönnen von OPC UA Clients empfangen werden, die beim SimpleEventType „UserEventType“ angemeldetsind.

Page 105: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 105Version: 2.5

Schritt 5: Mehrsprachigen Alarmtexten konfigurieren

Die A&C-Implementierung im TwinCAT OPC UA Server unterstützt die Verwendung von mehrsprachigenAlarmtexten. Abhängig von der Sprache, mit der sich der UA-Client mit dem Server verbindet, wird einentsprechender Alarmtext verwendet. Alarmtexte werden in XML-Dateien konfiguriert, für jede Sprache gibtes eine eigene Datei. Diese Dateien befinden sich im Ordner „res“ (Ressource) desTwinCAT OPC UA Servers. Mit dem Konfigurator können Alarmtexte bequem hinzugefügt oder entferntwerden, ohne dass die XML-Dateien direkt bearbeitet werden müssen. Jeder Alarmtext hat eine eigene ID,die in der Datei nur einmal vorkommt.

Beispiel:<TcOpcUaSvrRes Lang="en">  <Text ID="0">Text not available</Text>  <Text ID="1">Some alarm text</Text>   <Text ID="2">Value is High range</Text>  <Text ID="3">Value is HighHigh range</Text>  <Text ID="4">Value is OffNormal</Text>  ...</TcOpcUaSvrRes>

Schritt 6: A&C bei einem Referenz-OPC-UA-Client anmelden

Ein OPC UA Client muss sich bei einem ConditionController anmelden, damit er Ereignisse für Bedingungenempfangen kann, die für diesen besonderen ConditionController konfiguriert sind. Der UA‑Expert stelltFunktionen zur Verfügung, um UA-Ereignisse zu abonnieren und zu empfangen. Nachdem UA-Expertgestartet und eine Verbindung zum TwinCAT OPC UA Server hergestellt wurde, fügen Sie IhremArbeitsbereich eine neue Dokumentenansicht, genannt „Event View“, hinzu.

Page 106: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA106 Version: 2.5

Sie können einen ConditionController dann durch Ziehen des entsprechenden Objekts in EventViewabonnieren. Die Ereignisse für diesen ConditionController werden im „Event Window“ angezeigt.

Möglicherweise müssen spezielle Alarm- und/oder Ereignistypen abonniert werden, damit Sie alle Feldereines eingehenden Ereignisses oder Alarms empfangen können.

4.1.6 Matlab/Simulink

4.1.6.1 Zugriff auf Matlab/Simulink-Module

Der TwinCAT OPC UA Server bietet die Funktionalität zur Nutzung von TwinCAT‑3‑TMI‑Dateien zum Aufbauder Namensräume. TMI-Dateien werden von TcCOM-Modulen generiert und somit zum BeispielTwinCAT‑3‑C++‑Modulinstanzen und auch Matlab/Simulink‑Modulinstanzen.

TMI-Import für TcCOM-Module

Der Import von TMI-Dateien kann im TwinCAT‑OPC‑UA‑Konfigurator konfiguriert werden. Damit eine TMI-Datei generiert und TwinCAT automatisch die TMI-Datei zum Zielsystem kopieren kann, aktivieren Sie dieOption Copy TMI to Target in den Einstellungen des TcCOM-Moduls:

Page 107: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 107Version: 2.5

Das Bootverzeichnis des Ziels enthält dann die TMI-Datei für das TcCOM-Modul, welche dann wiederumunter Verwendung des OPC‑UA‑Konfigurators in den OPC‑UA‑Namensraum importiert werden kann:

Der konfigurierte OPC‑UA‑Namensraum enthält dann eine Repräsentation des Matlab/Simulink‑Blockdiagramms:

Page 108: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA108 Version: 2.5

Gefilterter oder ungefilterter Modus

Beachten Sie, dass es derzeit keinen gefilterten Modus für generische TcCOM-Modulinstanzen gibt. Dergefilterte Modus ist lediglich für TwinCAT‑3‑C++‑Modulinstanzen möglich, wenn der TMC Code Editorverwendet wird. Die TwinCAT‑Matlab/Simulink‑Integration bietet einige Filtermöglichkeiten. Diese werden inder Dokumentation TE1400 im Abschnitt Datenaustausch beschrieben.

Wenn eine generische TcCOM‑Modulinstanz (z. B. ein Matlab/Simulink-Modul) importiert werden soll, mussdie ungefilterte Option verwendet werden und daher werden alle Symbole der Module imOPC‑UA‑Namensraum veröffentlicht.

Page 109: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 109Version: 2.5

4.1.6.2 Historical Access

4.1.6.2.1 Setupversion 4.x.x

Ab Setupversion 4.x.x wird Historical Access nicht mehr länger über Attribute bzw. Kommentare konfiguriert.Dies hat den Vorteil, dass die Historical-Access-Funktionalität nun auch für Laufzeiten zur Verfügung steht,dies dies bisher nicht unterstützt haben, z. B. Variablen von einem BC9191 Controller. Des Weiteren kanneine Historical‑Access‑Konfiguration nun auch nachträglich, d. h. ohne Anpassung des SPS-Projektsdurchgeführt werden.

Die Historical‑Access‑Konfiguration ist nun XML-basiert (TcUaHaConfig.xml) und kann über den OPC UAServer Konfigurator [} 181] vorgenommen werden (siehe Konfiguration von Historical Access [} 190]). DieseXML-Datei befindet sich in demselben Verzeichnis wie die TcOpcUaServer.exe. Der Vollständigkeit halberwird der Aufbau der XML-Datei an dieser Stelle jedoch kurz erklärt.<HistoryConfig>  <HistoryController>    <HistoryAdapter Type="Volatile" Id="0" File="" Server="" Database="" User="" Password=""/>    <HistoryAdapter Type="File" Id="1" File="historydb.dat" Server="" Database="" User="" Pass-word=""/>    <HistoryAdapter Type="SQL" Id="2" File="" Server="" Database="database123" User="user" Pass-word="pwd"/>    <HistoryAdapter Type="SQLCompact" Id="3" File="historydb.xyz" Server="" Database="" User=""Password=""/>    <HistoryAdapter Type="SQLCompact" Id="4" File="historydb2.xyz" Server="" Database="" User=""Password=""/>  </HistoryController>  <HistoryNodes>    <HistoryNode HistoryWriteable="true" SamplingRate="0" MaxSamples="100000" AdapterId="0"NS="urn:BeckhoffAutomation:Ua:PLC1" NodeId="s=PRG_HA_SingleNode.nMyValue"/>    <HistoryNode HistoryWriteable="true" SamplingRate="0" MaxSamples="100000" AdapterId="0"NS="urn:BeckhoffAutomation:Ua:PLC1" NodeId="s=PRG_HA_MultipleNodes.nMyValue1"/>    <HistoryNode HistoryWriteable="true" SamplingRate="0" MaxSamples="100000" AdapterId="0"NS="urn:BeckhoffAutomation:Ua:PLC1" NodeId="s=PRG_HA_MultipleNodes.nMyValue2"/>    <HistoryNode HistoryWriteable="true" SamplingRate="0" MaxSamples="100000" AdapterId="0"NS="urn:BeckhoffAutomation:Ua:PLC1" NodeId="s=PRG_HA_MultipleNodes.fMyValue3"/>  </HistoryNodes></HistoryConfig>

In dem Bereich <HistoryController> können alle unterstützten Datenspeicher konfiguriert werden. Aktuellwerden die folgenden Speicherorte unterstützt:

• Arbeitsspeicher („Volatile“)• Datei („File“)• SQL Compact• SQL Server (wird nicht unter Windows CE unterstützt)

Jeder <HistoryAdapter> (außer „Volatile“) kann hierbei mehrfach verwendet werden, z. B. wenn diehistorischen Werte für einzelne Variablen in unterschiedlichen Datenspeichern abgelegt werden sollen.

Im Bereich <HistoryNodes> werden die einzelnen Nodes konfiguriert, einem Datenspeicher zugewiesen undmit einer SamplingRate sowie einer maximalen Größe für den zu verwendenden Ringbuffer imDatenspeicher versehen.

Das Attribut HistoryWriteable="true" bewirkt, dass der Datenspeicher für diese Node über einenHistoryUpdate() Aufruf mit Werten befüllt werden kann. Ein solcher Aufruf wird z.B. von unserem TwinCATOPC UA Client über den UA_HistoryUpdate() Funktionsbaustein zur Verfügung gestellt. Wird eine Node mitdiesem Attribut konfiguriert, dann sampled üblicherweise der Server selbst nicht die Werte, sondernbekommt diese von anderen Clients reingereicht. Die SamplingRate ist daher bei einer solchenKonfiguration üblicherweise gleich 0.

Produkte Setupversionen ZielplattformTF6100 4.x.x IPC oder CX (x86, x64, ARM)

Page 110: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA110 Version: 2.5

4.1.6.2.2 Anzeige von historischen Daten

Anzeige von Historical‑Access‑Werten in einem OPC UA Client

Die folgende Schritt-für-Schritt-Anleitung beschreibt, wie die Software UA-Expert konfiguriert werden kann,um auf historische Daten zuzugreifen.

1. Starten Sie die UA-Expert-Software und stellen Sie eine Verbindung mit dem OPC UA Server her.

Page 111: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 111Version: 2.5

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.

Page 112: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA112 Version: 2.5

ð Sie können nun den gewünschten Zeitraum, für den die Symbolwerte angezeigt werden sollen, mithilfeder Steuerelemente StartTime und EndTime festlegen, oder falls erforderlich ein CyclicUpdate für dieseVariablen starten.

4.1.6.3 Alarms & Conditions

In diesem Abschnitt werden die notwendigen Schritte zur Konfiguration von OPC UA Alarms & Conditions(A&C) auf dem TwinCAT OPC UA Server beschrieben. Das Grundkonzept ist unabhängig von derTwinCAT‑Laufzeit. Demzufolge sind die Konfigurationsschritte für SPS, C++, TcCOM-Laufzeit oder nur I/O-Task gleich.

OPC UA Alarms & Conditions (Teil 9 der OPC-UA-Spezifikation) beschreibt ein Modell für die Überwachungvon Prozesswerten und das Ausgeben von Alarmen und Ereignissen bei Zustandsänderungen einesLaufzeit-Symbols.

Voraussetzungen

Die folgenden Voraussetzungen gelten für die Verwendung von OPC UA Alarms & Conditions:

• Das zu überwachende Laufzeitsymbol muss im Namensraum verfügbar sein.• Der OPC UA Client muss A&C unterstützen. In diesem Abschnitt wird der UA-Expert (von Unified

Automation) als Referenz‑UA‑Client verwendet.

Page 113: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 113Version: 2.5

Allgemeines

Die folgenden Schritte müssen einmalig ausgeführt werden, um ein Symbol für A&C freizugeben:

• Schritt 1: Laufzeitsymbol für Datenzugriff aktivieren [} 113] (damit das Symbol generell via OPC UAzugänglich wird.)

• Schritt 2: A&C für ein Symbol aktivieren [} 113]

• Schritt 3: Eigene Benutzerdaten mit einem Ereignis übermitteln [} 114]

• Schritt 4: Ereignis über die FireEvent-Methode auslösen [} 115]

• Schritt 5: Mehrsprachige Alarmtexte konfigurieren [} 117]

• Schritt 6: A&C bei einem Referenz-OPC-UA-Client anmelden [} 117]

Diese Schritte werden nachfolgend ausführlicher erläutert. Am Ende des Abschnitts finden Sie Informationenzum Empfang von konfigurierten Alarmen über A&C mit dem UA‑Expert‑Referenz‑Client.

Unterstützte Alarmtypen

Die Implementierung von TwinCAT OPC UA A&C unterstützt derzeit die folgenden Alarmtypen:

• LimitAlarmType: Verschiedene Grenzen für ein Symbol definieren. Wird eine Grenze erreicht, gibt derUA-Server einen Alarm aus.

• OffNormalAlarmType: Einen Wert definieren, der „normal“ ist. Wenn der aktuelle Wert vom „normalen“Wert abweicht, gibt der UA-Server einen Alarm aus.

Schritt 1: Laufzeitsymbol für Datenzugriff aktivieren

Als Voraussetzung dafür, dass Variablen für Alarms & Conditions konfiguriert werden können, muss dieentsprechende Variable zunächst im OPC UA Server zur Verfügung stehen. Im Falle einer SPS‑Variablenmuss diese zunächst entsprechend mit einem Attribut konfiguriert werden, wie im Abschnitt Zugriff auf SPS-Laufzeit [} 41] beschrieben.

Schritt 2: A&C für ein Symbol aktivieren

Mit dem TwinCAT-OPC-UA-Server-Konfigurator kann ein Laufzeitsymbol einfach für A&C konfiguriertwerden. Dieser Konfigurator hat eine einfache grafische Bedienoberfläche, um die dahinter stehende XML-Datei zu bearbeiten. Der Konfigurator steht, je nach Setupversion, in zwei Varianten zur Verfügung:Standalone [} 178] und integriert in das Visual Studio [} 192].

Der folgende Programmausschnitt zeigt ein Beispiel dieser XML-Datei, um das allgemeine Verhalten undden Aufbau der A&C-Implementierung besser zu verstehen.<TcUaAcConfig>  <ConditionController Name="ConditionController1" >    <Condition Name="Counter" Severity="200">    <LimitAlarmType LowLowLimit="-10" LowLimit="0" HighLimit="10" HighHighLimit="20" MessageNor-mal="100" MessageLowLow="10" MessageLow="11" MessageHigh="12" MessageHighHigh="13"/>      <ItemToMonitor SamplingRate="100" NS="urn:[NodeName]:BeckhoffAutomation:Ua:PLC1" Node-Id="s=MAIN.nCounter1" />    </Condition>    <Condition Name="Switch" Severity="500">      <OffNormalAlarmType Normal="0" MessageNormal="100" MessageOffNormal="20" />      <ItemToMonitor SamplingRate="100" NS="urn:[NodeName]:BeckhoffAutomation:Ua:PLC1" Node-Id="s=MAIN.bSwitch" />    </Condition>    <Condition Name="Struct" Severity="300">      <LimitAlarmType LowLowLimit="-10" LowLimit="0" HighLimit="10" HighHighLimit="20" MessageNor-mal="100" MessageLowLow="10" MessageLow="11" MessageHigh="12" MessageHighHigh="13"/>      <ItemToMonitor SamplingRate="100" NS="urn:[NodeName]:BeckhoffAutomation:Ua:PLC1" Node-Id="s=MAIN.stStruct" />    </Condition>   </ConditionController>  <ConditionController Name="ConditionController2" >    <Condition Name="Counter2" Severity="200">      <LimitAlarmType LowLowLimit="-10" LowLimit="0" HighLimit="10" HighHighLimit="20" MessageNor-mal="100" MessageLowLow="10" MessageLow="11" MessageHigh="12" MessageHighHigh="13"/>      <ItemToMonitor SamplingRate="100" NS="urn:[NodeName]:BeckhoffAutomation:Ua:PLC1" Node-Id="s=MAIN.nCounter2" />

Page 114: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA114 Version: 2.5

    </Condition>  </ConditionController></TcUaAcConfig>

Eine „Bedingung“ definiert das zu überwachende Laufzeitsymbol und die Alarmgrenzen und -texte. Jede„Bedingung“ ist in einem so genannten „ConditionController“ organisiert, dem Objekt, das dieOPC UA Clients später abonnieren.

Bei der Erstellung einer Bedingung (Condition) müssen NamespaceName (NS) und NodeID spezifiziertwerden, um auf den zu überwachenden UA-Knoten zu verweisen. Der Konfigurator bietet einen einfachenBrowsing-Mechanismus, um einen Knoten auszuwählen. In der XML kann durch den Platzhalter„[NodeName]“ in NamespaceName die XML-Datei einfach zwischen zwei verschiedenen Hardwaresystemenhin und her wechseln. HINWEIS! NamespaceName beinhaltet immer den Hostnamen des IPC oderEmbedded-PC, auf dem der OPC UA Server läuft. Wird „[NodeName]“ gewählt, wird dieser Tag durch denHostnamen des aktuellen IPCs oder Embedded-PCs ersetzt, auf dem der UA-Server läuft.

SamplingRate bestimmt, wie oft der UA-Server einen Wert vom Knoten abfragen soll, um festzustellen, obeine der Alarmgrenzen erreicht wurde.

Die Alarmtexte werden über eine ID identifiziert. Die ID identifiziert eindeutig einen Alarmtext aus derRessourcendatei (siehe Schritt 5: Mehrsprachige Alarmtexte konfigurieren [} 117]).

Schritt 3: Eigene Benutzerdaten mit einem Alarm übermitteln

Alarme können Felder mit eigenen Benutzerdaten enthalten, die die mit dem Alarm ausgegebenen Datenergänzen. Diese Benutzerdatenfelder können in der Laufzeitanwendung erzeugt und ausgefüllt werden,indem ein STRUCT erstellt wird, dessen erstes Element „value“ genannt wird. Bei einem Alarm werden dannalle folgenden Elemente in einem zusätzlichen Benutzerdatenfeld gesendet.

Beispiel SPS-Anwendung:TYPE ST_CustomStruct :STRUCT  value : INT;  data  : ST_SomeStruct;END_STRUCTEND_TYPE

TYPE ST_SomeStruct :STRUCT  Data1 : INT;  Data2 : REAL;  Data3 : LREAL;END_STRUCTEND_TYPE

Die Instanz von ST_CustomStruct wird dann über den regulären Mechanismus, z. B. in TwinCAT 3, für denDatenzugriff aktiviert: Das STRUCT muss als StructuredDataType [} 89] aktiviert sein.PROGRAM MAINVAR  {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 besondereAlarmConditionTypes, sogenannte „BkUaLimitAlarmType“ und „BkUaOffNormalAlarmType“, abonnieren,damit sie die besonderen Benutzerdatenfelder beim Eingang eines Alarms empfangen können.

Page 115: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 115Version: 2.5

Der OPC UA Client empfängt dann die Benutzerdaten in den Feldern „BkUaEventData“ und„BkUaEventValue“ des eingehenden Alarms. Im obigen Beispiel sind das der Wert der SPS-Variablen sowiedie Benutzerdaten, die mit der SPS-Struktur „ST_SomeStruct“ dargestellt sind.

Schritt 4: Ereignis über die FireEvent-Methode auslösen

Jeder ConditionController umfasst eine FireEvent-Methode, mit der die OPC UA Clients ein allgemeinesEreignis mit benutzerdefinierten EventFields auslösen können.

Page 116: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA116 Version: 2.5

Wird diese Methode ausgeführt, dann wird ein Ereignis auf dem TwinCAT OPC UA Server ausgegeben.Andere OPC UA Clients können diese Ereignisse empfangen, wenn sie den entsprechendenConditionController abonnieren.

Die benutzerdefinierten EventFields werden als „UserEventData“ an das Ereignis angehängt. Diesen Datenkönnen von OPC UA Clients empfangen werden, die beim SimpleEventType „UserEventType“ angemeldetsind.

Page 117: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 117Version: 2.5

Schritt 5: Mehrsprachigen Alarmtexten konfigurieren

Die A&C-Implementierung im TwinCAT OPC UA Server unterstützt die Verwendung von mehrsprachigenAlarmtexten. Abhängig von der Sprache, mit der sich der UA-Client mit dem Server verbindet, wird einentsprechender Alarmtext verwendet. Alarmtexte werden in XML-Dateien konfiguriert, für jede Sprache gibtes eine eigene Datei. Diese Dateien befinden sich im Ordner „res“ (Ressource) desTwinCAT OPC UA Servers. Mit dem Konfigurator können Alarmtexte bequem hinzugefügt oder entferntwerden, ohne dass die XML-Dateien direkt bearbeitet werden müssen. Jeder Alarmtext hat eine eigene ID,die in der Datei nur einmal vorkommt.

Beispiel:<TcOpcUaSvrRes Lang="en">  <Text ID="0">Text not available</Text>  <Text ID="1">Some alarm text</Text>   <Text ID="2">Value is High range</Text>  <Text ID="3">Value is HighHigh range</Text>  <Text ID="4">Value is OffNormal</Text>  ...</TcOpcUaSvrRes>

Schritt 6: A&C bei einem Referenz-OPC-UA-Client anmelden

Ein OPC UA Client muss sich bei einem ConditionController anmelden, damit er Ereignisse für Bedingungenempfangen kann, die für diesen besonderen ConditionController konfiguriert sind. Der UA‑Expert stelltFunktionen zur Verfügung, um UA-Ereignisse zu abonnieren und zu empfangen. Nachdem UA-Expertgestartet und eine Verbindung zum TwinCAT OPC UA Server hergestellt wurde, fügen Sie IhremArbeitsbereich eine neue Dokumentenansicht, genannt „Event View“, hinzu.

Page 118: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA118 Version: 2.5

Sie können einen ConditionController dann durch Ziehen des entsprechenden Objekts in EventViewabonnieren. Die Ereignisse für diesen ConditionController werden im „Event Window“ angezeigt.

Möglicherweise müssen spezielle Alarm- und/oder Ereignistypen abonniert werden, damit Sie alle Feldereines eingehenden Ereignisses oder Alarms empfangen können.

4.1.7 Dateiübertragung

4.1.7.1 Zugriff auf Dateien und Ordner über OPC UA

Ab OPC‑UA‑Spezifikation Version 1.02 enthält OPC UA einen spezialisierten ObjectType zurDateiübertragung, der in Anlage C der Spezifikation beschrieben ist. Dieser spezielle ObjectType namens„FileType“ beschreibt das Informationsmodell für die Datenübertragung. Dateien können in OPC UA mitByteStrings als einfache Variablen modelliert werden. FileType ist eine Datei mit Methoden zum Zugriff aufdie Datei. In der OPC‑UA‑Spezifikation erhalten Sie weitere Informationen zu FileType sowie Aufbau undHandhabung der zugrundeliegenden Methoden und Eigenschaften zum Zugriff auf eine Datei imOPC‑UA‑Namensraum.

Beckhoff hat einen generischen Weg implementiert, um Dateien und Ordner von einer lokalen Festplatte inden OPC‑UA‑Namensraum zu laden. Jede Datei wird durch einen FileType repräsentiert und ermöglichtLese- und Schreibvorgänge für diese Datei. Zusätzlich enthält jeder Ordner eine Methode CreateFile, umneue Dateien auf der Festplatte zu erstellen und einen eigenen FolderPath, um den tatsächlichen Pfad zumOrdner auf dem OPC UA Server festzulegen.

Page 119: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 119Version: 2.5

Hinweis

FileTransfer im Device Manager OPC UA ServerDiese Funktion hat nur der OPC UA Server des Beckhoff Device Managers (IPC Diagno-se). Der TwinCAT OPC UA Server stellt ebenfalls einige Teile dieser Dateiübertragung be-reit. Die allgemeine Funktion, die eine Offenlegung aller Dateien und Ordner ermöglicht,steht aber nur im OPC UA Server zur Verfügung, der zum Gerätemanager gehört, der au-tomatisch auf jedem Beckhoff Industrie-PC oder Embedded-PC verfügbar ist. In der Gerä-temanagerdokumentation erhalten Sie weitere Informationen.

Konfiguration

FileType-Objekte werden in einem separaten Namensraum mit der Bezeichnung „FileTransfer” erstellt. ZurKonfiguration dieses Namensraums und zur Auswahl der über OPC UA verfügbaren Dateien und Ordnerdient eine XML-Datei (files.xml), die im selben Verzeichnis wie die ausführbare Datei des OPC UA Serverssein muss. Damit die Konfiguration aktiviert wird, ist ein Neustart des Systems erforderlich. Die XML-Dateienthält Informationen über den Ordnerpfad und eine Suchmaske, die definiert, welche Dateien imOPC‑UA‑Namensraum veröffentlicht werden:<Files>  <FolderObject DisplayName="TwinCAT">    <FolderObject DisplayName="3.1">      <FolderObject DisplayName="Boot" Path="c:/TwinCAT/3.1/Boot" Search="*.*" >        <FolderObject DisplayName="Plc" Path="c:/TwinCAT/3.1/Boot/Plc" Search="*.*" ></FolderObject>        <FolderObject DisplayName="Tmi" Path="c:/TwinCAT/3.1/Boot/Tmi" Search="*.*" ></FolderObject>      </FolderObject>    </FolderObject>  </FolderObject></Files>

Beispiel: Lesen einer Datei mit UA-Expert

Der allgemeine Umgang mit Dateien ist in Anhang C der OPC-UA-Spezifikation beschrieben. Das Leseneiner Datei via UA kann in folgende Schritte unterteilt werden:

Page 120: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA120 Version: 2.5

• Aufruf der Open-Methode einer Datei. Diese Methode gibt ein Dateihandle zurück, das für denspäteren Zugriff gespeichert werden muss. Der Modus legt fest, ob die Datei gelesen oder in siegeschrieben wird. (siehe Dateimodi [} 120])

• Bestimmen der Größe der Datei mit der Eigenschaft „Size“. So kann die ganze Datei bei Aufruf derRead-Methode gelesen werden.

• Aufruf der Read-Methode. Dateihandle und Dateigröße als Eingaben einfügen. Zielordner wählen, inden der Dateiinhalt NACH dem Aufruf der Methode zu speichern ist.

• Aufruf der Close-Methode zur Freigabe des Dateihandles.

Dateimodi

Die folgende Tabelle zeigt alle verfügbaren Dateimodi.

Feld Bit BeschreibungLesen 1 Die Datei wird zum Lesen geöffnet. Wenn dieses Bit nicht

gesetzt ist, kann Read nicht ausgeführt werden.Schreiben 4 Die Datei wird zum Schreiben geöffnet. Wenn dieses Bit

nicht gesetzt ist, kann Write nicht ausgeführt werden.EraseExisting 6 Der vorhandene Dateiinhalt wird gelöscht und es wird eine

leere Datei zur Verfügung gestellt.Append 10 Die Datei wird geöffnet und ans Ende positioniert, sonst auf

den Anfang. Diese Position kann mit SetPosition geändertwerden.

4.1.8 Sicherheit

4.1.8.1 Übersicht

Sicherheit ist eine zentrale Anforderung bei der Entwicklung von OPC UA. Sie wird in verschiedenenBereichen adressiert:

• Verschlüsselung• Integrität• Authentifizierung

Die Vertraulichkeit der ausgetauschten Information wird durch die Verschlüsselung der ausgetauschtenNachrichten sichergestellt. Dabei werden moderne Kryptographie-Algorithmen verwendet. Um auch denzukünftigen Sicherheitsanforderungen gewachsen zu sein, können im Nachhinein noch stärkere undmodernere Algorithmen einer Anwendung hinzugefügt werden, ohne das Protokoll zu verändern.

Entsprechend der Anforderungen der jeweiligen Anwendung können verschiedene Sicherheitsstufengewählt werden. In einigen Bereichen ist es ausreichend die Nachrichten zu signieren, um Änderungendurch Dritte auszuschließen, in anderen Fällen dürfen Daten auch nicht von Dritten gelesen werden und einzusätzliches Verschlüsseln der Nachrichten ist erforderlich.

TF6100 OPC UA bietet die folgenden Security-Level (Security-Endpunkte) an, mit denen Clients sichverbinden können:

• None: Keine Sicherheit• Sign: Signiert Nachrichten• Sign&Encrypt: Signiert und verschlüsselt Nachrichten

Das Signieren der Nachrichten verhindert das Ändern des Inhalts einer Nachricht durch einen Dritten. Sowird verhindert, dass beispielsweise eine Schreibanweisung zum Öffnen eines Schalters durch einen Drittenverfälscht wird und der Schalter stattdessen geschlossen wird.

OPC‑UA‑Anwendungen identifizieren sich über so genannte Software- und Applikationsinstanz-Zertifikate.Mithilfe von Software-Zertifikaten ist es möglich, bestimmten Client Anwendungen einen erweiterten Zugriffauf Informationen eines OPC UA Servers zu geben, beispielsweise für das Engineering eines

Page 121: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 121Version: 2.5

OPC UA Servers. Durch Applikationsinstanz-Zertifikate kann sichergestellt werden, dass ein OPC UA Servernur mit vorkonfigurierten Clients kommuniziert. Ein Client kann durch das Applikationsinstanz-Zertifikat desServers sicherstellen, dass er mit dem richtigen Server spricht (ähnlich der Zertifikate eines Web-Browsers).Die Berücksichtigung dieser Zertifikate ist optional, d. h. ein OPC UA Server kann auch jedem Client dengleichen Zugriff abhängig der Benutzerrechte geben.

Der TwinCAT OPC UA Client und TwinCAT OPC UA Server erzeugen ein selbst-signiertes Zertifikatwährend des ersten Startvorgangs. Dieses Zertifikat besteht aus einem privaten und einem öffentlichenSchlüssel. Der private Schlüssel wird in dem Verzeichnis \PKI\CA\private und der entsprechende öffentlicheSchlüssel unter \PKI\CA\certs abgelegt. Wenn ein beliebiger OPC UA Client eine gesicherte Verbindungüber einen der Security-Endpunkte (Sign, Sign&Encrypt) mit dem Server herstellen will, muss der Client denöffentlichen Schlüssel des OPC UA Servers kennen. Umgekehrt muss der OPC UA Server den öffentlichenSchlüssel des Clients kennen. Dieser sogenannte Schlüsselaustausch wird in den folgenden Artikelnbeschrieben:

• Authentifizierung [} 121]

• Zertifikatsaustausch [} 121]

• Zugriffsrechte [} 123]

4.1.8.2 Authentifizierung

Zusätzlich zum Zertifikataustausch bietet der TwinCAT OPC UA Server die Möglichkeit, eineAuthentifizierung über Benutzername/Passwort durchzuführen. Ein OPC UA Client muss dann eine gültigeBenutzername/Passwort-Kombination verwenden, damit die Herstellung einer Verbindung zum Servererfolgreich ist.

Der TwinCAT OPC UA Server verwendet Mechanismen des Betriebssystems für die Validierung derBenutzernamen und Passwörter. Wenn der Computer, auf dem der TwinCAT OPC UA Server läuft, Mitgliedeiner Windows-Domäne ist (z. B. Active Directory), dann wird eine Anfrage an den entsprechendenDomänencontroller durchgeführt. Wenn der betreffende Computer ein Einzelgerät ist, dann wird die lokaleBenutzerdatenbank des Betriebssystems überprüft.

Die Konfiguration des TwinCAT OPC UA Servers ermöglicht zwei Einstellungen:

• Aktivierung/Deaktivierung anonymer Zugriffe (ohne Benutzerauthentifizierung)• Aktivierung/Deaktivierung der Benutzernamen-/Passwort-Validierung

Beide Einstellungen können im TwinCAT‑OPC‑UA‑Server‑Konfigurator vorgenommen werden.

4.1.8.3 Zertifikatsaustausch

Die Kommunikation zwischen einem OPC UA Client und einem OPC UA Server kann optional durchKommunikation mit einem gesicherten Endpunkt abgesichert werden. Standardmäßig generieren sowohl derTwinCAT OPC UA Server als auch der TwinCAT OPC UA Client beim ersten Start einmaschinenspezifisches, selbstsigniertes Zertifikat zur Authentifizierung.

Wenn Sie in Ihrer Umgebung eine solche verschlüsselte Kommunikationsverbindung verwenden möchten,müssen Sie ein Vertrauensverhältnis zwischen OPC UA Server und OPC UA Client herstellen.

Page 122: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA122 Version: 2.5

Vertrauenseinstellungen auf dem Server

Möchten Sie einen oder mehrere OPC UA Clients über Zertifikate am OPC UA Server authentifizieren, somuss der OPC UA Server den öffentlichen Schlüsseln der Clients vertrauen. Dies kann zum Beispiel überdas Dateisystem erfolgen. Der Server verwaltet die Vertrauenseinstellungen für Zertifikate über dasDateisystem.

• Vertrauenswürdige Zertifikate: %InstallDir%\Server\PKI\CA\trusted\certs• Abgewiesene Zertifikate: %InstallDir%\Server\PKI\CA\rejected\certs

Durch Verschieben von Client-Zertifikaten zwischen diesen Verzeichnissen können dieVertrauenseinstellungen entsprechend angepasst werden.

Auslesen des Client-Zertifikats

Die folgende Anleitung beschreibt einen einfachen Weg, wie man an das Client-Zertifikat gelangt. Hierbeibauen Sie, ohne vorher das Clientzertifikat auf den UA-Server kopiert zu haben, eine Verbindung zum UA-Server unter Verwendung eines sicheren Endpunkts auf (z. B. Basic128Rsa15/Sign&Encrypt). DieseVerbindung wird vom UA-Server initial natürlich abgewiesen, da dieser dem UA-Client zum derzeitigenZeitpunkt noch nicht vertraut. Der TwinCAT OPC UA Client würde in diesem Fall z. B. den Fehler0xE4DD0102 zurückliefern. Nach Abweisen der Verbindungsaufforderung speichert der UA-Server jedocheine Kopie des Client-Zertifikats im oben genannten „Rejected“-Verzeichnis ab. Der Name des Zertifikatsentspricht hierbei dem „Thumbprint“ des Zertifikats und lässt sich somit eindeutig dem Client-Zertifikatzuordnen. Diese Datei können Sie nun direkt in das oben genannte „Trusted“-Verzeichnis verschieben,damit der UA-Server bei allen weiteren Verbindungsanforderungen dem UA-Client vertraut und dieVerbindung akzeptiert.

Bekanntmachen des OPC UA Servers beim OPC UA Client

Abhängig vom verwendeten OPC UA Client müssen eventuell unterschiedliche Schritte vorgenommenwerden, damit der OPC UA Client dem OPC UA Server vertraut. Typischerweise erfolgt beiClient‑Applikationen mit grafischer Benutzeroberfläche ein Warnhinweis bei der ersten Verbindung mit demServer, 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

Diese Datei muss beim TwinCAT OPC UA Client in das entsprechende „Trusted“-Verzeichnis kopiertwerden: %InstallDir%\Client\PKI\CA\certs

Page 123: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 123Version: 2.5

4.1.8.4 Zugriffsrechte

Der TwinCAT 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 auchVariablen feingranular eingestellt werden. Diese Sicherheitseinstellungen sind für alle ADS-Geräteverfügbar, welche im Server-Namespace dargestellt werden können.

Konfiguration

Die Konfiguration der Berechtigungen erfolgt auf Basis einer XML-basierten Konfigurationsdatei(TcUaSecurityConfig.xml), welche in demselben Verzeichnis wie der Server liegt. Momentan muss dieseDatei noch händisch konfiguriert werden bis entsprechende Mechanismen imTwinCAT‑OPC‑UA‑Server‑Konfigurator zur Verfügung stehen. Die Konfigurationsdatei besteht aus den dreiBereichen Users, Groups und AccessInfos, welche im Folgenden näher erläutert werden sollen.

Der folgende Ausschnitt zeigt diese Datei im Auslieferungszustand.<TcUaSecurityConfig>  <Groups></Groups>  <Users>    <User Name="Anonymous" Auth="None" IsRoot="true"></User>  </Users>  <AccessInfos></AccessInfos></TcUaSecurityConfig>

Benutzer

Im Bereich <Users> können Benutzeraccounts konfiguriert werden, welche vom OPC UA Server als Loginakzeptiert werden sollen. Hierbei gibt es drei verschiedene Authentifizierungsmethoden:

• OS: Es werden die Mechanismen vom Betriebssystem verwendet, um Benutzername und Passwort zuvalidieren. Der Benutzeraccount obliegt vollständig der Kontrolle des Betriebssystems und/oder derDomäne. Dies ist die empfohlene Authentifizierungsmethode.

• Server: Benutzername und Passwort sind nur dem TwinCAT OPC UA Server bekannt. BeideInformationen werden hierbei im Klartext in der XML-Datei hinterlegt. (nicht empfohlen)

• None: Es wird nur der Benutzername vom Server ausgewertet, das Passwort wird ignoriert.

Benutzer können mit einem <DefaultAccess>‑Tag konfiguriert werden, welches den Standardzugriff desBenutzers auf einen bestimmten Namespace angibt.

Beispiel:<TcUaSecurityConfig>  <Groups></Groups>  <Users>    <User Name="MaxM" Auth="OS">      <DefaultAccess Namespace="*" Access="0x000003FF"/>

Page 124: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA124 Version: 2.5

    </User>  </Users>  <AccessInfos></AccessInfos></TcUaSecurityConfig>

In obigem Beispiel erhält der Betriebssystem-Benutzer MaxM Vollzugriff (0x3FF) auf alle Namespaces aufdem Server. Der Namespace wird hierbei über dessen Namespace-Name (z. B.urn:BeckhoffAutomation:Ua:PLC1) referenziert.

Das Zugriffslevel setzt sich auf Basis einer Bitmaske wie folgt zusammen:enum PermissionType{  UA_ATTRREADABLE = 0x0001,      // read all non value attributes  UA_READABLE = 0x0002,      // read value attribute  UA_WRITABLE = 0x0004,      // write value attribute  UA_BROWSEABLE = 0x0008,      // browse node  UA_HISTORYREADABLE = 0x0010,      // read history  UA_HISTORYINSERT = 0x0020,      // insert into history  UA_HISTORYMODIFY = 0x0040,      // modify existing history  UA_HISTORYDELETE = 0x0080,      // delete from history  UA_EVENTREADABLE = 0x0100,      // receive events  UA_EXECUTABLE = UA_WRITABLE, // execute method call  UA_ATTRWRITABLE = 0x0200,      // write non-value attributes  UA_PERMISSION_ALL = 0x03FF       // full access}

Wenn der Zugriff z.B. UA_AttrReadable, UA_Readable, UA_Writeable sein soll, dann würde derAccessLevel 0x0007 sein.

Benutzer können Mitglied einer oder mehrerer Gruppen sein. Dies kann über das MemberOf‑Attributspezifiziert werden. Bei Mitgliedschaft in mehreren Gruppen werden die Gruppen durch ein Semikolonvoneinander getrennt.

Beispiel:<TcUaSecurityConfig>  <Groups></Groups>  <Users>    <User Name="MaxM" Auth="OS" MemberOf="Administrators;Users">      <DefaultAccess Namespace="*" Access="0x000003FF"/>    </User>  </Users>  <AccessInfos></AccessInfos></TcUaSecurityConfig>

Gruppen

Um eine einfachere Konfiguration mit mehreren Benutzeraccounts zu ermöglichen, können die Benutzer inGruppenzusammengefasst werden.<TcUaSecurityConfig>  <Groups>    <Group Name="Administrators" MemberOf="Users">      <DefaultAccess Namespace="*" Access="0x000003FF"/>    </Group>     <Group Name="Users">      <DefaultAccess Namespace="urn:BeckhoffAutomation:TcOpcUaServer:1" Access="0x000003FF"/>      <DefaultAccess Namespace="urn:BeckhoffAutomation:Ua:PLC1" Access="0x000003FF"/>    </Group>  </Groups>  <Users>    <User Name="Administrator" Auth="OS" MemberOf="Administrators"></User>    <User Name="MaxM" Auth="OS" MemberOf="Users"></User>  </Users>  <AccessInfos></AccessInfos></TcUaSecurityConfig>

Gruppen können ebenfalls mit einem <DefaultAccess>‑Tag versehen werden. Gruppen können über dasMemberOf‑Attribut verschachtelt werden. Bei Mitgliedschaft in mehreren Gruppen werden diese über einSemikolon voneinander getrennt.

Page 125: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 125Version: 2.5

AccessInfos

Falls eine feingranulare Einstellung von Berechtigungen auf Node-Ebene erfolgen soll, so können zusätzlich<AccessInfos> konfiguriert werden, welche die Zugriffsberechtigungen auf Nodes spezifizieren.Zugriffsrechte können hierbei auf Unterelemente vererbt werden. Obwohl AccessInfos die feingranularsteKonfigurationsmöglichkeit von Berechtigungen ermöglichen, so wird eine solche Konfiguration auch schnellunübersichtlich. Prüfen Sie daher, ob eine Konfiguration von Zugriffsrechten auf Namespace-Ebene (sieheoben) nicht ausreichend ist.<TcUaSecurityConfig>  <Groups></Groups>  <Users>    <User Name="MaxM" Auth="OS"></User>  </Users>  <AccessInfos>    <AccessInfo>      <NodeId NS="urn:BeckhoffAutomation:Ua:PLC1" Id="s=MAIN.nCounter" Depth="-1"/>      <User Name="MaxM" Access="0x000003FF"/>    </AccessInfo>  </AccessInfos></TcUaSecurityConfig>

Die AccessInfo für eine Node beinhaltet die folgenden Einstellungen:

• NS: konfiguriert den NamespaceName, in welchem die Node lokalisiert ist• Id: konfiguriert den Identifier der Node, inklusive des IdentifierTypes (z.B. s=String)• Depth: Vererbungstiefe der Berechtigungen (-1 für unendlich)• User/Group: Benutzer oder Gruppe die auf diese Node Zugriff erhalten soll, inklusive des

AccessLevels

Produkte Setupversionen ZielplattformTF6100 4.x.x IPC oder CX (x86, x64, ARM)

4.1.9 Verschiedenes

4.1.9.1 Endpunkte und Standard-Port

Standardmäßig bietet der TwinCAT OPC UA Server die folgenden Endpunkte und Standard-Port fürOPC UA Clients zur Verbindung an:

Hinweis

Standard-PortBeachten Sie, dass der Standard-Port 4840 eventuell von anderen OPC UA Servern ver-wendet wird, z. B. dem Local Discovery Server (LDS) von der OPC Foundation, die vonmanchen Anbietern mit OPC‑UA‑Softwarepaketen eingesetzt wird.

Endpunkt BeschreibungKeine - Keine Keine SicherheitBasic128Rsa15 - Sign & Encrypt Signatur und Verschlüsselung von Nachrichten für mittlere

Sicherheitsanforderungen. Erfordert Zertifikataustausch und dieVerwaltung der Vertrauenslisten.

Weitere Informationen erhalten Sie im OPC-UA‑Server‑Sicherheitskapitel [} 120].

Page 126: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA126 Version: 2.5

Endpunkt BeschreibungBasic256 - Sign & Encrypt Signatur und Verschlüsselung von Nachrichten für mittlere bis

hohe Sicherheitsanforderungen. Erfordert mehr Rechenzeit(höhere Anforderungen an die CPU des Computers). ErfordertZertifikataustausch und die Verwaltung der Vertrauenslisten.

Weitere Informationen erhalten Sie im OPC-UA‑Server‑Sicherheitskapitel [} 120].

4.1.9.2 Generierung von NamespaceUri

Der NamespaceUri ist wichtig für die einzigartige Identifizierung eines Knotens im UA‑Namensraum. JedeNodeID besteht aus einem NamespaceIndex, einem IdentifierType und einem Bezeichner. Weil derNamespaceIndex dynamisch von einem OPC UA Server generiert werden kann, sollte ein UA-Client immerden statischen NamespaceUri verwenden, um diesen in dessen tatsächlichen NamespaceIndex aufzulösen.Alle NamespaceUris und deren entsprechender NamespaceIndex werden im sogenannten NamespaceArrayeines OPC UA Servers aufgelistet.

Weitere Informationen bezüglich des NamespaceArray und seines Inhalts finden Sie im Abschnitt WieKommunikationsparameter zu bestimmen sind [} 140].

Für jede TwinCAT‑Laufzeit wird der NamespaceUri gemäß folgendem Benennungsschema generiert:

urn:[NodeName]:BeckhoffAutomation:Ua:[Name]• [NodeName] steht für den Hostnamen des Computers, auf dem der TwinCAT OPC UA Server läuft• [Name] ist eine Zeichenkette, die über die Konfigurationsdatei des Servers oder über den

TwinCAT‑OPC‑UA‑Konfigurator festgelegt werden kann.

Beachten Sie, dass ältere Versionen des TwinCAT OPC UA Servers nicht das URI-basierte Format zurGenerierung des NamespaceUri, sondern lediglich das <Name>-Attribut, wie es in der Konfigurationsdateides Servers festgelegt wurde, verwendeten. Weil dies beim Upgrading von älteren Versionen eineunüberbrückbare Veränderung sein kann, bietet der TwinCAT OPC UA Server einen sogenanntenLegacy‑URI‑Formatwechsel, der für jede TwinCAT‑Laufzeit in der Konfigurationsdatei des Servers oder überden OPC‑UA‑Konfigurator aktiviert werden kann.

<UaNodeManager>  <Name>PLC1</Name>  <AdsPort>851</AdsPort>  <AdsNetId>127.0.0.1.1.1</AdsNetId>  <AdsTimeout>2000</AdsTimeout>  <AdsTimeSuspend>20000</AdsTimeSuspend>  <AutoCfg>4041</AutoCfg>  <IoMode>1</IoMode>  <AutoCfgSymFile>C:\TwinCAT\3.1\Boot\Plc\Port_851.tmc</AutoCfgSymFile>  <Disabled>0</Disabled>  <ArraySubItemLegacySupport>0</ArraySubItemLegacySupport>  <MaxGetHandle>100</MaxGetHandle>  <ReleaseAdsVarHandles>0</ReleaseAdsVarHandles>  <LegacyUriFormat>1</LegacyUriFormat></UaNodeManager>

Wird der Legacy‑URI‑Formatwechsel auf „0“ gesetzt, dann wird der NamespaceName gemäß dem obenbeschriebenen Schema generiert. Wird er auf „1“ gesetzt, dann ist der NamespaceName gleich dem XML-Tag <Name> und wird demzufolge wie in älteren Versionen des TwinCAT OPC UA Servers generiert.

Page 127: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 127Version: 2.5

4.1.9.3 Konfigurationsdatei

Alle Einstellungen für den TwinCAT OPC UA Server können mithilfe eines Konfigurators [} 175]vorgenommen werden, der über das Setup vom UA-Server-Version 1.6.80 geliefert wird. Der Konfiguratormacht es für den Benutzer einfacher, den UA-Server über seine ServerConfig.xml-Konfigurationsdatei zukonfigurieren. Die Konfigurationsdatei enthält eine hierarchische, XML-basierte Struktur aller einstellbarenParameter des UA-Servers. Die folgende Abbildung gibt eine Beispielstruktur dieser Datei wieder.

In Allgemeinen wird die Verwendung des OPC‑UA‑Konfigurators empfohlen, da auf diese Weise Fehler beider Konfiguration vermieden werden können.

Die Konfigurationsdatei befindet sich immer in demselben Verzeichnis wie TcOpcUaServer.exe, zumBeispiel:

• Windows XP / 7 mit TwinCAT 2: %TwinCATDIR%\OPC\UA\• Windows XP / 7 mit TwinCAT 3: %TwinCATDIR%\Functions\TF6100-OPC-UA\Win32\Server\• Windows CE TwinCAT 2 : HardDisk\System• Windows CE TwinCAT 3 : HardDisk\TwinCAT\Functions\TF6100-OPC-UA\Server\

4.1.9.4 Konfiguration mehrerer TwinCAT-Laufzeiten

Sie können optional weitere TwinCAT-ADS-Geräte zum UA-Namensraum hinzufügen. Durch dieKonfiguration des Namensraums weiß der OPC UA Server, welches TwinCAT-ADS-Gerät (z. B. PLC,IO‑Task, C++‑Laufzeit,...) über den OPC UA Server verfügbar gemacht werden soll und blendetentsprechend dessen Symbolinformationen im UA-Namensraum ein. Diese Konfiguration muss nur einmaligdurchgeführt werden.

Page 128: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA128 Version: 2.5

Hinzufügen/Entfernen von weiteren ADS-Geräten zu/aus dem UA‑Namensraum

Der TwinCAT OPC UA Server ist per Default so konfiguriert, dass er sich zur ersten SPS-Laufzeit deslokalen Systems verbindet. Um weitere ADS-Geräte bzw. weitere Laufzeiten über den UA-Namensraumverfügbar zu machen, führen Sie folgende Schritte durchführen:

• Wenn es sich bei dem hinzuzufügenden Gerät um ein lokales Gerät handelt:◦ Hinzufügen des Remotegeräts zur Konfiguration des OPC UA Servers, z. B. über den

OPC‑UA‑Konfigurator oder durch direktes Editieren der ServerConfig.xml-Datei• Wenn es sich bei dem hinzuzufügenden Gerät um ein Remotegerät handelt:

◦ Herstellen von ADS-Routen zwischen dem Rechner auf dem sich der OPC UA Server befindetund dem Remotesystem

◦ Hinzufügen des Remotegeräts zur Konfiguration des OPC UA Servers, z. B. über denOPC‑UA‑Konfigurator oder durch direktes Editieren der ServerConfig.xml-Datei

Verwenden des OPC-UA-Konfigurators

Verwenden Sie den OPC-U- Konfigurator, um weitere ADS-Geräte zum UA-Namensraum hinzuzufügen.

Im Bereich Data Access des OPC-UA-Konfigurators können Sie die im UA-Namensraum eingebundenenADS-Geräte verwalten bzw. neue Geräte hinzufügen oder existierende Geräte entfernen.

Zum Hinzufügen wählen Sie zunächst den Typ des Geräts aus der zugehörigen Drop-Down-Liste (z. B. „8(PLC: Subset)“) und klicken dann auf Add. Es wird ein zusätzlicher Eintrag zur Liste der ADS-Gerätehinzugefügt. Nehmen Sie die gewünschten Einstellungen vor. Wenn Sie die Konfiguration sofort aktivierenmöchten, klicken Sie anschließend im Menü Configuration auf Activate.

Abhängig vom hinzuzufügenden Gerät müssen unterschiedliche Einstellungen für die einzelnen Parametervorgenommen werden (siehe Data Access [} 176]).

Beachten Sie, dass Sie den OPC UA Server neu starten müssen, damit die Änderungen wirksam werden.Dies können Sie ebenfalls über den Konfigurator erledigen, indem Sie im Menü Server die Option Restartauswählen. Alternativ reicht hierzu auch ein TwinCAT‑Neustart.

[Optional] Editieren der ServerConfig.xml

Sie können die ServerConfig.xml-Datei auch direkt editieren, um weitere ADS-Geräte zum UA‑Namensraumhinzuzufügen. In dieser Konfigurationsdatei gibt es einen Bereich <UaNodeManager>, welcher jeweils denZugriff auf ein ADS-Gerät definiert, zum Beispiel:

Page 129: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 129Version: 2.5

Abhängig vom hinzuzufügenden Gerät müssen unterschiedliche Einstellungen für die einzelnen Parametervorgenommen werden (siehe Data Access [} 176]).

Beachten Sie, dass Sie den OPC UA Server neu starten müssen, damit die Änderungen wirksam werden.Dies können Sie ebenfalls über den Konfigurator erledigen, indem Sie im Menü Server die Option Restartauswählen. Alternativ reicht hierzu auch ein TwinCAT‑Neustart.

4.1.9.5 Konfiguration mehrerer Server-Instanzen

Es besteht die Möglichkeit, mehrere TwinCAT OPC UA Server auf einem System zu installieren. Dieser Teilder Dokumentation beschreibt die hierfür notwendigen Konfigurationsschritte. Die Konfiguration ist unterWindows-CE- und Windows-XP-basierten Betriebssystemen identisch und besteht aus den folgendenTeilschritten:

• Schritt 1: Installation des TwinCAT OPC UA Servers [} 130]

• Schritt 2: Kopieren der installierten UA‑Server‑Dateien in ein neues Verzeichnis [} 130]

• Schritt 3: Anpassen der Konfigurationsdatei des zweiten UA-Servers [} 130]

Lediglich die Pfade bei den beiden Betriebssystemvarianten sind unterschiedlich. In der Beschreibung dereinzelnen Schritte wird jeweils auf die Unterschiede hingewiesen.

HINWEIS! Der TwinCAT OPC UA Server ermöglicht eine Nutzung von OPC UA direkt aus der SPS-Ebene heraus. Hierfür wurde ein ADS-Server in das Produkt integriert, damit SPS-Programmierer perFunktionsbaustein Daten über OPC UA verschicken können. Möchten Sie, wie in dieser Anleitung

Page 130: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA130 Version: 2.5

beschrieben, mehrere TwinCAT OPC UA Server parallel auf einem System laufen lassen, so gilt zubeachten, dass nur die erste Instanz des UA-Servers per Funktionsbaustein angesprochen werdenkann.

Schritt 1: Installation des TwinCAT OPC UA Servers

Die Erst-Installation des TwinCAT OPC UA Servers erfolgt über die auf dem Beckhoff FTP-Server erhältlicheSetup-Datei. Standardmäßig wird der UA-Server in dem folgenden Verzeichnis installiert:

• Windows XP: %TwinCATDIR%\Function\TF6100-OPC-UA\Win32\Server\• Windows CE: HDD\System

Schritt 2: Kopieren der installierten UA‑Server‑Dateien in ein neues Verzeichnis

Die installierten UA-Server‑Dateien müssen in ein neues Verzeichnis kopiert werden. Erstellen Sie ein neuesVerzeichnis namens „Server2“ in einem Ordner Ihrer Wahl, z. B.

• Windows XP: %TWINCATDIR%\Function\TF6100-OPC-UA\Win32\Server2\• Windows CE: HDD\System\UA2

Kopieren Sie die Inhalte des Ursprungsordners in das neu erstellte Verzeichnis. Der Inhalt dieses Ordnerssollte dann wie folgt aussehen:

Schritt 3: Anpassen der Konfigurationsdatei des zweiten UA-Servers

Damit der zweite UA-Server einen anderen TCP-Port benutzt, muss einmalig dessen Konfigurationsdateiangepasst werden. Hierzu öffnen Sie die Datei ServerConfig.xml mit einem Texteditor Ihrer Wahl, zumBeispiel „Notepad“.

Weitere Informationen zur Konfigurationsdatei des UA‑Servers finden Sie im Abschnitt Konfigurationsdatei[} 127].

Page 131: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 131Version: 2.5

1. Suchen Sie in dieser Datei den Eintrag <Url>opc.tcp://[NodeName]:4840</Url> unterhalb des Knotens<UaEndpoint> und ändern Sie dessen Portnummer (4840) in einen TCP-Port Ihrer Wahl, zum Beispiel„4849“:

2. Passen Sie zusätzlich den Knoten <ServerInstanceUri>[NodeName]/Beckhoff/TcOpcUaServer/ 1 </ServerInstanceUri> an und vergeben Sie eine neue Nummer, zum Beispiel:

ð Durch Ausführen der Datei können Sie nun den zweiten TwinCAT OPC UA Server starten:• Windows XP: %TWINCATDIR%\Function\TF6100-OPC-UA\Win32\Server2\TcOpcUaServer.exe -

console

4.1.9.6 Konfiguration von Firewalls

Um eine OPC‑UA‑Kommunikation auch über ein NAT-Gerät, z. B. einen Internet-Router, zu ermöglichen,muss dieses entsprechend den verwendeten UA-Port an den TwinCAT OPC UA Server weiterleiten können(sogenanntes 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 selbstangepasst werden; entweder über die Server-Konfigurationsdatei [} 127] oder den OPC‑UA‑Konfigurator[} 175]. Das folgende Schaubild verdeutlicht noch einmal den Zusammenhang von Port Forwarding und demUA-Server.

Page 132: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA132 Version: 2.5

In diesem Beispiel baut der OPC UA Client eine UA-Verbindung über den TCP-Port 4840 zum NAT‑Gerätauf, welches dann diese Kommunikationsverbindung über ein Port Forwarding an denTwinCAT OPC UA Server weiterleitet. Das NAT-Gerät muss also nur den im TwinCAT OPC UA Serverkonfigurierten UA-Port an das Zielgerät weiterleiten. Den vom UA-Server verwendeten Port können Sieentweder in der Server-Konfigurationsdatei [} 127] einsehen oder auch ganz bequem über denUA‑Konfigurator [} 175] (im Auslieferungszustand ist dieser immer der TCP-Port 4840). Die entsprechendeKonfiguration Ihres NAT-Geräts für ein Port Forwarding entnehmen Sie bitte dessen Dokumentation.

4.1.9.7 Konfiguration des Namensraums

Ab der Version 2.1.x bietet der TwinCAT OPC UA Server eine separate Konfiguration des Namensraums,die die folgenden Funktionalitäten enthält:

• Verwaltung der ServerConfig (Lesen/Schreiben-Zugriff) des OPC UA Servers• Zertifikatmanagement für vertrauenswürdige/abgelehnte Client-Zertifikate

Page 133: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 133Version: 2.5

Verwaltung der ServerConfig

Die ServerConfig wird im Namensraum als regulärer OPC UA FileType veröffentlicht und bietet daher dieentsprechenden Methoden und Eigenschaften, um Zugriff auf die Datei zu erhalten.

Verwaltung von Client-Zertifikaten

Jedes Client-Zertifikat, das dem Server bekannt ist, wird im Namensraum als OPC‑UA‑Zertifikattypveröffentlicht. Zertifikate werden in „abgelehnte” und „vertrauenswürdige“ Zertifikate unterteilt, was durcheinen separaten Ordner im Namensraum repräsentiert wird.

Durch Aufruf der Methode Move() kann ein Zertifikat zwischen den Vertrauenslisten verschoben werden.

Zudem bieten verschiedene Eigenschaften zur einfacheren Identifikation weitere Informationen über dieZertifikate selbst.

Page 134: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA134 Version: 2.5

Verwendung der Namensraum-Konfiguration

Die Namensraum-Konfiguration darf nur von authentifizierten Benutzern verwendet werden. Dies bedeutet,dass ein OPC UA Client sich selbst gegenüber dem OPC UA Server durch Bereitstellung einer gültigenBenutzername-/Passwort-Kombination authentifizieren muss. Gültige Benutzernamen sind entweder lokaleBenutzer oder auch Benutzer von einer Windows-Domäne, wenn der Computer, auf dem derOPC UA Server läuft, ein Mitglied einer Windows-Domäne ist.

In seiner ServerConfig-Datei stellt der OPC UA Server die folgenden XML-Tags bereit, um den Zugriff aufdie Namensraum-Konfiguration zu konfigurieren:<ServerConfigNamespace Exposed="True" MinUserlevel="14" /><Users>  <User Level="15">Administrator</User>  <User Level="10">domain\RegularUser</User></Users>

In dem vorstehenden Beispiel ist dem lokalen Benutzernamen „Administrator" der Zugriff auf denKonfiguration des Namensraums gestattet, wohingegen das Benutzerkonto „domain\RegularUser” derWindows-Domäne nicht auf diesen Namensraum zugreifen darf, da die Benutzerebene zu niedrig ist.

4.2 TwinCAT OPC UA Client

4.2.1 ÜbersichtDer TwinCAT OPC UA Client bietet mehrere Möglichkeiten direkt aus der Steuerungslogik heraus mit einemoder mehreren OPC UA Servern zu kommunizieren. Zum einen steht eine OPC‑UA‑Schnittstelle direkt ausder SPS zur Verfügung, bei der über PLCopen genormte Funktionsbausteine eine Verbindung mit einemOPC UA Server initiiert werden kann. Zum anderen gibt es ein TwinCAT OPC UA Client I/O‑Gerät, welcheseine einfache, Mapping-basierte Schnittstelle bietet.

SPS‑Funktionsbausteine

Die folgende Tabelle gibt einen Überblick über die angebotenen Funktionalitäten:

Funktionalität Beschreibung Relevante FunktionsbausteineConnect/Disconnect Herstellen und Trennen von

Verbindungen zu OPC UA Servern.UA_ConnectUA_Disconnect

Polling (Read/Write) Lesen und Schreiben vonVariablen im UA-Namensraum imPolling-Modus. Beinhaltet keineSubscriptions.

UA_ConnectUA_DisconnectUA_ReadUA_WriteUA_GetNamespaceIndexUA_NodeGetHandleUA_NodeReleaseHandle

Method-Call Ausführen von Methoden imUA‑Namensraum.

UA_ConnectUA_DisconnectUA_MethodGetHandleUA_MethodReleaseHandleUA_MethodCall

Security Herstellen einer verschlüsseltenVerbindung zu einemOPC UA Server.

UA_ConnectUA_Disconnect

Die Schnittstellen jedes Funktionsbausteins sind im Rahmen dieser Dokumentation ausführlich im AbschnittSPS API [} 200] beschrieben.

Page 135: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 135Version: 2.5

I/O Gerät

Weitere Informationen zum TwinCAT OPC UA Client I/O‑Gerät finden Sie im Abschnitt I/O [} 135].

4.2.2 I/OZusätzlich zu den genormten Funktionsbausteinen der SPS-Bibliothek Tc3_PLCopen_OpcUa steht auch einTwinCAT‑3‑I/O‑Gerät („Virtual OPC UA Client“) zur Verfügung, welches OPC‑UA‑Client‑Funktionalitätenbesitzt. Dieses I/O Gerät ermöglicht somit die einfache Konfiguration eines Datenaustauschs zwischeneinem OPC UA Server und TwinCAT.

Die zu kommunizierenden OPC‑UA‑Nodes können hierbei über das reguläre TwinCAT‑Mapping mitVariablen in der SPS oder C++ verknüpft werden.

Der zugehörige „Virtual OPC UA Client“ wird mit dem TF6100 Setup ab Version 4 ausgeliefert und kann abTwinCAT 3.1 Build 4022.4 verwendet werden.

Quick Start

Die im Folgenden beschriebene Kurzanleitung ermöglicht einen schnellen Start mit dieser Komponente. Inder Kurzanleitung wird ein SPS‑Projekt erzeugt, welches zum einen eine Variable über denTwinCAT OPC UA Server freigibt (zur Simulation eines UA‑Servers) und die freigegebene Variable wiederüber den I/O‑OPC‑UA‑Client einliest. Dies kann natürlich auch auf zwei Projekte und zwei Steuerungenaufgesplittet werden.

Variablen für Server freigeben

Zur Simulation eines OPC UA Servers soll in diesem QuickStart der TwinCAT OPC UA Server verwendetwerden.

1. Erstellen Sie ein neues TwinCAT‑Projekt und fügen Sie dem Projekt ein neues SPS‑Projekt hinzu.2. Legen Sie im SPS-Projekt eine neue Variable „nQuickStartOut“ vom Datentyp INT an. Dies soll die

Variable sein, die über den OPC UA Server freigegeben wird.

3. Setzen Sie das OPC‑UA‑Attribut [} 41] für diese Variable, um die Variable über denTwinCAT OPC UA Server freizugeben.

4. Aktivieren Sie die Checkbox für den TMC-Datei-Download.5. Aktivieren Sie die Konfiguration.

Page 136: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA136 Version: 2.5

ð Die Variable ist für den Server freigegeben.

Konfiguration des I/O UA Clients1. Legen Sie in demselben SPS-Projekt eine weitere Variable „nQuickStartIn“ vom Datentyp INT an und

definieren 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.3. Fügen Sie ein neues „Virtual OPC UA Device“ hinzu.4. Fügen Sie einen neuen „OPC UA Client“ zum Device hinzu und öffnen Sie dessen Einstellungen.5. Navigieren Sie zur Registerkarte Settings. Tragen Sie dort die Server-URL des OPC UA Servers ein. In

diesem Beispiel lautet diese „opc.tcp://localhost:4840“.6. Klicken Sie auf Add Nodes.

Page 137: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 137Version: 2.5

7. Navigieren Sie zur freigegebenen Variable „nQuickStartOut“ auf dem OPC UA Server (zu findenunterhalb von 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 doppelklicken Sie auf Input\Value.Verknüpfen Sie die Variable mit der Variablen „nQuickStartIn“ aus dem SPS-Prozessabbild.

9. Aktivieren Sie die Konfiguration.

Page 138: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA138 Version: 2.5

ð Sie sollten nun die nachfolgend dargestellte Konfiguration vorfinden. Die beiden Prozessabbild-Variablen nQuickStartIn und nQuickStartOut sind miteinander verknüpft.

Page 139: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 139Version: 2.5

10. Nach dem Aktivieren der Konfiguration, loggen Sie sich in das SPS-Programm ein.

Der aktuelle Wert kann natürlich auch im Prozessabbild-Mapping eingesehen werden.

11. Über die Einstellungen am OPC UA Client können Sie Parameter wie z. B. die Samplingratemodifizieren.

Produkte Setupversionen ZielplattformTF6100 4.x.x IPC oder CX (x86, x64, ARM)

4.2.3 Unterstützte DatentypenDer TwinCAT OPC UA Client ermöglicht einen Zugriff auf OPC UA Server direkt aus der Echtzeitlogikheraus. Um Daten zu lesen und zu schreiben müssen die Datentypen beider Umgebungen zugeordnetwerden (Mapping). Nachfolgend wird diese Zuordnung beschrieben.

Basisdatentypen

Die Zuordnung der Basisdatentypen wird in PLCopen OPC UA Information Model for IEC 61131-3beschrieben.

OPC‑UA‑Datentyp SPS‑DatentypBoolean BOOLSByte SINTByte USINTInt16 INTInt32 DINTString STRINGUSint BYTE

Page 140: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA140 Version: 2.5

OPC‑UA‑Datentyp SPS‑DatentypFloat REALDouble LREALUInt16 UINTUInt32 UDINTInt64 LINTUInt64 ULINTDateTime DT

Abgeleitete Datentypen

OPC UA definiert Basisdatentypen. Andere Datentypen sind davon abgeleitet.

Auf Client-Seite ist nur mit SPS-Datentypen Zugriff auf alle UA-Datentypen möglich. Datentypen, welche vonden Basisdatentypen abgeleitet sind, werden ab TcOpcUaClient Version 2.1.0.36 ebenfalls unterstützt.Derzeit unterstützte Nicht-Basisdatentypen auf Client-Seite sind:

• Counter (UDINT in SPS nutzen)

Zugriff auf Arrays

Beim Anlegen eines Knotenhandle prüft das System Möglichkeiten des Zugriffs auf den Knoten. WeiterePrüfungen erfolgen beim Lesen und Schreiben.

Für den Zugriff auf Array-Knoten sowie Ein- und Ausgabeparameter von Methodenaufrufen müssenbestimmte Bedingungen erfüllt sein.

• Für den Zugriff auf Knoten: Array-Dimension und Datenlänge müssen beim Lesen und Schreiben zuden bereitgestellten Daten passen.

• Lesen von Zeichenketten: Sobald EINE Zeichenkette die vorgegebene Länge für SPS‑Zeichenkettenüberschreitet, schlägt der Lesevorgang fehl.

• Es werden nur Array-Dimensionen bis zu drei Ebenen unterstützt.

4.2.4 Best Practice

4.2.4.1 Wie Kommunikationsparameter zu bestimmen sind

Ganz gleich, welche OPC-UA-Funktionalität Sie implementieren möchten, es gibt doch ein paar Dinge, diebei der SPS-Projektentwicklung hilfreich sind. Es ist allgemeine Praxis, einen grafischen OPC UA Client zuverwenden, um bei der Bestimmung der Attribute eines Knotens oder einer Methode zu helfen, diezusammen mit den SPS-Funktionsbausteinen verwendet werden müssen, z. B.:

• Node Identifier [} 140]

• Node Namespace Index und entsprechender Namespace URI [} 141]

• Node Data Type [} 142]

• Method Node ID und Object Node ID [} 143]

Die folgende Dokumentation verwendet den generischen OPC UA Client UA-Expert als Beispiel. DieserClient kann von den Websites von Unified Automation erworben werden: www.unified-automation.com.

Node Identifier

Eine sehr allgemeine Aufgabe besteht aus dem Lesen oder Schreiben von Variablen, die im Allgemeinen imHinblick auf OPC UA als Knoten bezeichnet werden. Knoten sind durch die folgenden drei Elementegekennzeichnet:

• Namespace Index: Der Namensraum, in dem sich der Knoten befindet, z. B. die SPS-Laufzeit• Identifier: Eindeutiger Bezeichner des Knotens innerhalb seines Namensraums

Page 141: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 141Version: 2.5

• Identifier Type: Es gibt drei verschiedene Typen: String, Guid und Numeric.

Diese Attribute stellen die sogenannte NodeID dar – die Darstellung eines Knotens auf einemOPC UA Server – und sie werden von manchen Funktionsbausteinen benötigt. Durch Verwendung von UA-Expert können Entwickler diese Attribute einfach durch Verbindung zum OPC UA Server und Browsen zumgewünschten Knoten bestimmen. Die Attribute sind dann im Attributes-Panel sichtbar, z. B.:

Node Namespace Index und entsprechender Namespace URI

Nach der OPC‑UA‑Spezifikation kann der Namespace Index (wie vorstehend wiedergegeben) eindynamisch generierter Wert sein. Daher müssen OPC UA Clients immer den entsprechenden NamespaceURI zur Auflösung des Namespace Index verwenden, bevor ein Knotenhandle erfasst wird. Dies erfolgtdurch Verwendung des Funktionsbausteins UA_GetNamespaceIndex [} 202]. Um diesen Funktionsbausteinjedoch verwenden zu können, muss der Namespace URI bekannt sein. Der Namespace URI kann einfachdurch Verwendung von UA-Expert bestimmt werden. An den OPC UA Server anschließen und zu folgendemKnoten browsen:

Dieser Knoten enthält Informationen über alle eingetragenen Namespaces auf dem OPC UA Server. Siekönnen die entsprechenden Namespace URIs in dem Attributes-Panel sehen.

Page 142: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA142 Version: 2.5

Beispiel: Im Abschnitt über Node Identifier (siehe vorstehend) haben wir eine NodeID gesehen, in der derNamespace Index 5 war. Nach dem vorstehenden Namespace Array ist der entsprechende Namespace URIurn://SVENG-NB04/BeckhoffAutomation/Ua/PLC1. Dieser URI kann nun für den FunktionsbausteinUA_GetNamespaceIndex verwendet werden. Der OPC UA Server stellt sicher, dass dieser URI immerderselbe bleibt, auch nach einem Neustart. Der vorgenannte Namespace Index kann sich jedoch ändern,weshalb der Namespace URI und der Funktionsbaustein UA_GetNamespaceIndex immer zur Auflösung deskorrekten Namespace Index zur späteren Nutzung mit anderen Funktionsbausteinen genutzt werden sollte,wie z. B. UA_Read [} 210], UA_Write [} 212].

Node Data Type

Der Datentyp eines Knotens ist erforderlich, um zu sehen, welcher SPS-Datentyp verwendet werden muss,um einen ausgelesenen Wert zuzuordnen oder welcher SPS-Datentyp verwendet werden muss, wenn ineinen Knoten geschrieben werden soll. Bei Verwendung von UA-Expert, einfach mit dem OPC UA Serververbinden, zur Variablen browsen und deren Data Type auf dem Attributes-Panel auslesen, z. B.:

In diesem Fall ist der Data Type Int16, was einem äquivalenten Datentyp in der SPS zugeordnet werdensollte, z. 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 DatentypenBOOL BooleanSINT SByteUSINT ByteINT Int16UINT UInt16DINT Int32UDINT UInt32LINT Int64ULINT UInt64BYTE ByteWORD UInt16DWORD UInt32LWORD UInt64REAL FloatLREAL DoubleSTRING StringCHAR ByteWSTRING StringWCHAR UInt16DTDATE_AND_TIME

DateTime

DATE DateTimeTODTIME_OF_DAY

DateTime

TIME Double

Page 143: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 143Version: 2.5

Method Node ID und Object Node ID

Beim Aufruf von Methoden aus dem OPC‑UA‑Namensraum sind zwei Identifier erforderlich, wenn derMethodenhandle unter Verwendung des Funktionsbausteins UA_MethodGetHandle [} 204] erfasst wird:

• Object Node ID: Identifiziert das UA-Objekt, das die Methode enthält• Method Node ID: Identifiziert die Methode selbst

Beide NodeIDs können einfach durch Verwendung von UA-Expert bestimmt werden. An denOPC UA Server anschließen und zu der gewünschten Methode browsen, z. B.:

Der Method Identifier kann dann vom Attributes-Panel aus ausgelesen werden:

Browsen Sie anschließend zu dem UA-Objekt, das diese Methode enthält. In dem vorstehenden Beispiel istdies das Objekt fbMathematics:

Der Object Identifier kann dann vom Attributes-Panel aus ausgelesen werden:

Page 144: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA144 Version: 2.5

4.2.4.2 Wie eine Verbindung hergestellt wird

Im nachfolgenden Abschnitt wird beschrieben, wie die TcX_PLCopen_OpcUa-Funktionsbausteineverwendet werden sollten, um eine Verbindung zu einem lokalen oder entfernten OPC UA Serverherzustellen. Diese Verbindung kann dann verwendet werden, um weitere Funktionalitäten aufzurufen, z. B.Knoten auslesen oder schreiben, oder Methoden aufrufen.

Der Abschnitt beinhaltet folgende Themen:

• Übersicht [} 144]

• Schematischer Arbeitsablauf [} 144]

• Zu berücksichtigende Punkte [} 144]

• Code-Ausschnitt [} 144]

Übersicht

Die folgenden Funktionsbausteine sind erforderlich, um eine Verbindung zu einem OPC UA Serverherzustellen und später die Sitzung zu unterbrechen: UA_Connect [} 200], UA_Disconnect [} 201].

HINWEIS! Lesen Sie zunächst den Abschnitt „Wie Kommunikationsparameter zu bestimmen sind“,um bestimmte UA-Funktionalitäten besser verstehen zu können (z. B. wie Node Identifier bestimmtwerden können).

Schematischer Arbeitsablauf

Der schematische Arbeitsablauf jedes TwinCAT OPC UA Client kann in drei verschiedene Phasenkategorisiert werden: Preparation, Work und Cleanup.

Der in diesem Abschnitt beschriebene Verwendungsfall kann wie folgt visualisiert werden:

Zu berücksichtigende Punkte

Der Funktionsbaustein UA_Connect erfordert die folgenden Informationen, um eine Verbindung zu einemlokalen oder entfernten OPC UA Server herstellen zu können:

• Server URL• Session Connect Information

Die Server URL besteht grundsätzlich aus einem Präfix, einem Hostnamen und einem Port. Das Präfixbeschreibt das OPC‑UA‑Transportprotokoll, das für die Verbindung verwendet werden sollte, z. B.“opc.tcp://” für eine binäre TCP-Verbindung (Standard). Der Hostname bzw. IP-Adressenteil beschreibt dieAdressinformationen des OPC‑UA‑Zielservers, z. B. „192.168.1.1“ oder „CX-12345“. Die Portnummer ist derZielport des OPC UA Servers, z. B. „4840“. Insgesamt kann die Server URL wie folgt aussehen: opc.tcp://CX-12345:4840.

Code-Ausschnitt

Deklaration:(* Declarations for UA_Connect *)fbUA_Connect : UA_Connect;SessionConnectInfo : ST_UASessionConnectInfo;nConnectionHdl : DWORD;

Page 145: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 145Version: 2.5

(* Declarations for UA_Disconnect *)fbUA_Disconnect : UA_Disconnect;

(* Declarations for state machine and output handling *)iState : INT;bDone : BOOL;bBusy : BOOL;bError : BOOL;nErrorID : DWORD;

Implementierung:CASE iState OF

  0:      bError := FALSE;      nErrorID := 0;      SessionConnectInfo.tConnectTimeout := T#1M;      SessionConnectInfo.tSessionTimeout := T#1M;      SessionConnectInfo.sApplicationName := '';      SessionConnectInfo.sApplicationUri := '';      SessionConnectInfo.eSecurityMode := eUASecurityMsgMode_None;      SessionConnectInfo.eSecurityPolicyUri := eUASecurityPolicy_None;      SessionConnectInfo.eTransportProfileUri := eUATransportProfileUri_UATcp;      stNodeAddInfo.nIndexRangeCount := nIndexRangeCount;      stNodeAddInfo.stIndexRange := stIndexRange;      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;      ELSE        bError := TRUE;        nErrorID := fbUA_Connect.ErrorID;        nConnectionHdl := 0;        iState := 0;       END_IF    END_IF

  2:    fbUA_Disconnect(      Execute := TRUE,      ConnectionHdl := nConnectionHdl);

    IF NOT fbUA_Disconnect.Busy THEN      fbUA_Disconnect(Execute := FALSE);      IF NOT fbUA_Disconnect.Error THEN        iState := 0;      ELSE        bError := TRUE;        nErrorID := fbUA_Disconnect.ErrorID;        iState := 0;        nConnectionHdl := 0;      END_IF    END_IF

END_CASE

4.2.4.3 Wie die Knoten auszulesen sind

Im nachfolgenden Abschnitt wird beschrieben, wie die TcX_PLCopen_OpcUa-Funktionsbausteineverwendet werden sollten, um einen OPC‑UA‑Knoten von einem lokalen oder entfernten OPC UA Serverauszulesen.

HINWEIS! Lesen Sie zunächst den Abschnitt „Wie eine Verbindung hergestellt wird“.

Dieser Abschnitt beinhaltet folgende Themen:

Page 146: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA146 Version: 2.5

• Übersicht [} 146]

• Schematischer Arbeitsablauf [} 146]

• Zu berücksichtigende Punkte [} 146]

• Code-Ausschnitt [} 147]

Übersicht

Die folgenden Funktionsbausteine sind erforderlich, um eine Verbindung zu einem OPC UA Serverherzustellen, UA-Knoten auszulesen und später die Sitzung zu unterbrechen: UA_Connect [} 200],UA_GetNamespaceIndex [} 202], UA_NodeGetHandle [} 206], UA_Read [} 210], UA_NodeReleaseHandle[} 208], UA_Disconnect [} 201].

HINWEIS! Lesen Sie zunächst den Abschnitt „Wie Kommunikationsparameter zu bestimmen sind“,um bestimmte UA-Funktionalitäten besser verstehen zu können (z. B. wie Node Identifier bestimmtwerden können).

Schematischer Arbeitsablauf

Der schematische Arbeitsablauf jedes TwinCAT OPC UA Client kann in drei verschiedene Phasenkategorisiert werden: Preparation, Work und Cleanup.

Der in diesem Abschnitt beschriebene Verwendungsfall kann wie folgt visualisiert werden:

Zu berücksichtigende Punkte• Der Funktionsbaustein UA_Connect erfordert die folgenden Informationen, um eine Verbindung zu

einem lokalen oder entfernten OPC UA Server herstellen zu können (siehe auch Wie eine Verbindunghergestellt wird [} 144]):

◦ Server URL◦ Session Connect Information

• Der Funktionsbaustein UA_GetNamespaceIndex erfordert einen Connection Handle (vonUA_Connect) und Namespace URI zur Auflösung in einen Namespace Index, was später vonUA_NodeGetHandle verwendet wird, um einen Knotenhandle zu erfassen.Das Konzept von Namespace URIs und Namespace Index wird im Abschnitt WieKommunikationsparameter zu bestimmen sind [} 140] erläutert.

• Der Funktionsbaustein UA_NodeGetHandle erfordert einen Connection Handle (von UA_Connect) undNodeID (von ST_UANodeID), um einen Knotenhandle zu erfassen.Das Konzept von NodeID wird im Abschnitt Wie Kommunikationsparameter zu bestimmen sind [} 140]erläutert.

Page 147: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 147Version: 2.5

• Der Funktionsbaustein UA_Read erfordert einen Verbindungshandle (von UA_Connect), Knotenhandle(von UA_NodeGetHandle) und Zeiger zur Zielvariablen (wo der ausgelesene Wert gespeichert werdensollte).Stellen Sie dabei sicher, dass die Zielvariable den korrekten Datentyp aufweist (siehe WieKommunikationsparameter zu bestimmen sind [} 140]).

• Der Funktionsbaustein UA_NodeReleaseHandle erfordert den Verbindungshandle (von UA_Connect)und Knotenhandle (von UA_NodeGetHandle).

Code-Ausschnitt

Deklaration:(* Declarations for UA_GetNamespaceIndex *)fbUA_GetNamespaceIndex : UA_GetNamespaceIndex;nNamespaceIndex : UINT;

(* Declarations for UA_NodeGetHandle *)fbUA_NodeGetHandle : UA_NodeGetHandle;NodeID : ST_UANodeID;nNodeHdl : DWORD;

(* 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:CASE iState OF  0:    [...]

  2: (* GetNS Index *)    fbUA_GetNamespaceIndex(      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 := 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);      IF NOT fbUA_NodeGetHandle.Error THEN        iState := iState + 1;      ELSE        bError := TRUE;        nErrorID := fbUA_NodeGetHandle.ErrorID;        iState := 6;      END_IF    END_IF

Page 148: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA148 Version: 2.5

  4: (* UA_Read *)    fbUA_Read(      Execute := TRUE,      ConnectionHdl := nConnectionHdl,      NodeHdl := nNodeHdl,      cbData := SIZEOF(nReadData),      stNodeAddInfo := stNodeAddInfo,      pVariable := ADR(nReadData));    IF NOT fbUA_Read.Busy THEN      fbUA_Read( Execute := FALSE, cbData_R => cbDataRead);      IF NOT fbUA_Read.Error THEN        iState := iState + 1;      ELSE        bError := TRUE;        nErrorID := fbUA_Read.ErrorID;        iState := 6;      END_IF    END_IF

  5: (* Release Node Handle *)    fbUA_NodeReleaseHandle(      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:    [...]

END_CASE

4.2.4.4 Wie Knoten zu schreiben sind

Im nachfolgenden Abschnitt wird beschrieben, wie die TcX_PLCopen_OpcUa-Funktionsbausteineverwendet werden sollten, um Werte in einem OPC‑UA‑Knoten von einem lokalen oder entferntenOPC UA Server zu schreiben.

HINWEIS! Lesen Sie zunächst den Abschnitt „Wie eine Verbindung hergestellt wird“.

Dieser Abschnitt beinhaltet folgende Themen:

• Übersicht [} 148]

• Schematischer Arbeitsablauf [} 149]

• Zu berücksichtigende Punkte [} 149]

• Code-Ausschnitt [} 149]

Übersicht

Die folgenden Funktionsbausteine sind erforderlich, um eine Verbindung zu einem OPC UA Serverherzustellen, UA-Knoten zu schreiben und später die Sitzung zu unterbrechen: UA_Connect [} 200],UA_GetNamespaceIndex [} 202], UA_NodeGetHandle [} 206], UA_Write [} 212], UA_NodeReleaseHandle[} 208], UA_Disconnect [} 201].

HINWEIS! Lesen Sie zunächst den Abschnitt „Wie Kommunikationsparameter zu bestimmen sind“,um bestimmte UA-Funktionalitäten besser verstehen zu können (z. B. wie Node Identifier bestimmtwerden können).

Page 149: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 149Version: 2.5

Schematischer Arbeitsablauf

Der schematische Arbeitsablauf jedes TwinCAT OPC UA Client kann in drei verschiedene Phasenkategorisiert werden: Preparation, Work und Cleanup.

Der in diesem Abschnitt beschriebene Verwendungsfall kann wie folgt visualisiert werden:

Zu berücksichtigende Punkte• Der Funktionsbaustein UA_Connect erfordert die folgenden Informationen, um eine Verbindung zu

einem lokalen oder entfernten OPC UA Server herstellen zu können (siehe Wie eine Verbindunghergestellt wird [} 144]):

◦ Server URL◦ Session Connect Information

• Der Funktionsbaustein UA_GetNamespaceIndex erfordert einen Connection Handle (vonUA_Connect) und Namespace URI zur Auflösung in einen Namespace Index, was später vonUA_NodeGetHandle verwendet wird, um einen Knotenhandle zu erfassen.Das Konzept von Namespace URIs und Namespace Index wird im Abschnitt WieKommunikationsparameter zu bestimmen sind [} 140] erläutert.

• Der Funktionsbaustein UA_NodeGetHandle erfordert einen Connection Handle (von UA_Connect) undNodeID (von ST_UANodeID), um einen Knotenhandle zu erfassen.Das Konzept von NodeID wird im Abschnitt Wie Kommunikationsparameter zu bestimmen sind [} 140]beschrieben.

• Der Funktionsbaustein UA_Write erfordert einen Verbindungshandle (von UA_Connect), Knotenhandle(von UA_NodeGetHandle) und Zeiger zu einer Variablen, die den Wert enthält, der geschriebenwerden soll.Stellen Sie dabei sicher, dass die Zielvariable den korrekten Datentyp aufweist (siehe WieKommunikationsparameter zu bestimmen sind [} 140]).

• Der Funktionsbaustein UA_NodeReleaseHandle erfordert den Verbindungshandle (von UA_Connect)und Knotenhandle (von UA_NodeGetHandle).

Code-Ausschnitt

Deklaration:(* Declarations for UA_GetNamespaceIndex *)fbUA_GetNamespaceIndex : UA_GetNamespaceIndex;nNamespaceIndex : UINT;

(* Declarations for UA_NodeGetHandle *)fbUA_NodeGetHandle : UA_NodeGetHandle;NodeID : ST_UANodeID;nNodeHdl : DWORD;

(* Declarations for UA_Write *)fbUA_Write : UA_Write;stIndexRange : ARRAY [1..nMaxIndexRange] OF ST_UAIndexRange;nIndexRangeCount : UINT;stNodeAddInfo : ST_UANodeAdditionalInfo;

Page 150: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA150 Version: 2.5

sNodeIdentifier: STRING(MAX_STRING_LENGTH) := 'MAIN.nNumber';nWriteData: INT := 42;

(* Declarations for UA_NodeReleaseHandle *)fbUA_NodeReleaseHandle : UA_NodeReleaseHandle;

Implementierung:CASE iState OF  0:    [...]

  2: (* GetNS Index *)    fbUA_GetNamespaceIndex(      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 := 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);      IF NOT fbUA_NodeGetHandle.Error THEN        iState := iState + 1;      ELSE        bError := TRUE;        nErrorID := fbUA_NodeGetHandle.ErrorID;        iState := 6;      END_IF    END_IF

  4: (* UA_Write *)    fbUA_Write(      Execute := TRUE,      ConnectionHdl := nConnectionHdl,      NodeHdl := nNodeHdl,      stNodeAddInfo := stNodeAddInfo,      cbData := SIZEOF(nWriteData),      pVariable := ADR(nWriteData));    IF NOT fbUA_Write.Busy THEN      fbUA_Write(        Execute := FALSE,        pVariable := ADR(nWriteData));      IF NOT fbUA_Write.Error THEN        iState := iState + 1;      ELSE        bError := TRUE;        nErrorID := fbUA_Write.ErrorID;        iState := 6;      END_IF    END_IF

  5: (* Release Node Handle *)    fbUA_NodeReleaseHandle(      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;

Page 151: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 151Version: 2.5

      ELSE        bError := TRUE;        nErrorID := fbUA_NodeReleaseHandle.ErrorID;        iState := 6;      END_IF    END_IF

  6:    [...]

END_CASE

4.2.4.5 Wie Methoden aufzurufen sind

Im nachfolgenden Abschnitt wird beschrieben, wie die TcX_PLCopen_OpcUa-Funktionsbausteineverwendet werden sollten, um Methoden auf einem lokalen oder entfernten OPC UA Server aufzurufen.

HINWEIS! Lesen Sie zunächst den Abschnitt „Wie eine Verbindung hergestellt wird“.

Dieser Abschnitt beinhaltet folgende Themen:

• Übersicht [} 151]

• Schematischer Arbeitsablauf [} 151]

• Zu berücksichtigende Punkte [} 152]

• Code-Ausschnitt [} 152]

Übersicht

Die folgenden Funktionsbausteine sind erforderlich, um eine Verbindung zu einem OPC UA Serverherzustellen, UA-Methoden aufzurufen und später die Sitzung zu unterbrechen: UA_Connect [} 200],UA_GetNamespaceIndex [} 202], UA_MethodGetHandle [} 204], UA_MethodCall [} 203],UA_MethodReleaseHandle [} 205], UA_Disconnect [} 201].

HINWEIS! Lesen Sie zunächst den Abschnitt „Wie Kommunikationsparameter zu bestimmen sind“,um bestimmte UA-Funktionalitäten besser verstehen zu können (z. B. wie Method Identifier bestimmtwerden können).

Schematischer Arbeitsablauf

Der schematische Arbeitsablauf jedes TwinCAT OPC UA Client kann in drei verschiedene Phasenkategorisiert werden: Preparation, Work und Cleanup.

Der in diesem Abschnitt beschriebene Verwendungsfall kann wie folgt visualisiert werden:

Page 152: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA152 Version: 2.5

Zu berücksichtigende Punkte• Der Funktionsbaustein UA_Connect erfordert die folgenden Informationen, um eine Verbindung zu

einem lokalen oder entfernten OPC UA Server herstellen zu können (siehe Wie eine Verbindunghergestellt wird [} 144]):

◦ Server URL◦ Session Connect Information

• Der Funktionsbaustein UA_GetNamespaceIndex erfordert einen Connection Handle (vonUA_Connect) und Namespace URI zur Auflösung in einen Namespace Index, was später vonUA_NodeGetHandle verwendet wird, um einen Knotenhandle zu erfassen.Das Konzept von Namespace URIs und Namespace Index wird im Abschnitt WieKommunikationsparameter zu bestimmen sind [} 140] erläutert.

• Der Funktionsbaustein UA_MethodGetHandle erfordert einen Connection Handle (von UA_Connect),eine Object NodeID und Method NodeID, um einen Methodenhandle zu erfassen.Die Konzepte von Object und Method NodeID werden im Abschnitt Wie Kommunikationsparameter zubestimmen sind [} 140] erläutert.

• Der Funktionsbaustein UA_MethodCall erfordert einen Verbindungshandle (von UA_Connect),Methodenhandle (von UA_MethodGetHandle) und Informationen über die Eingangs- undAusgangsargumente der Methode, die aufgerufen werden soll. Informationen über dieEingangsargumente werden durch die Eingangsparameter pInputArgInfo und pInputArgData vonUA_MethodCall repräsentiert. Information über die Ausgangsparameter werden durch diepOutputArgInfo und pOutputArgData Eingangsparameter von UA_MethodCall repräsentiert. DerEingangsparameter pOutputArgInfoAndData stellt dann einen Zeiger zu einer Struktur dar, die dieErgebnisse des Methodenaufrufs enthält, einschließlich aller Ausgangsparameter. In demnachstehenden Code-Ausschnitt werden die pInputArgInfo und pInputArgData Parameter in derM_Init() Methode berechnet und erstellt.

• Der Funktionsbaustein UA_NodeReleaseHandle erfordert den Verbindungshandle (von UA_Connect)und Methodenhandle (von UA_MethodGetHandle).

Code-Ausschnitt

M_Init–Initialisierungsmethode des Funktionsbausteins, der den UA Methodenaufruf enthältMEMSET(ADR(nInputData),0,SIZEOF(nInputData));nArg := 1;

(********** Input parameter 1 **********)InputArguments[nArg].DataType := eUAType_Int16;InputArguments[nArg].ValueRank := -1; (* Scalar = -1 or Array *)InputArguments[nArg].ArrayDimensions[1] := 0; (* Number of Dimension in case its an array *)InputArguments[nArg].nLenData := SIZEOF(numberIn1); (* Length if its a STRING *)IF nOffset + SIZEOF(numberIn1) > nInputArgSize THEN   bInputDataError := TRUE;  RETURN;ELSE  MEMCPY(ADR(nInputData)+nOffset,ADR(numberIn1),SIZEOF(numberIn1)); (* VALUE in BYTES FORM *)  nOffset := nOffset + SIZEOF(numberIn1);END_IFnArg := nArg + 1;

(********** Input parameter 2 **********)InputArguments[nArg].DataType := eUAType_Int16;InputArguments[nArg].ValueRank := -1; (* Scalar = -1 or Array *)InputArguments[nArg].ArrayDimensions[1] := 0; (* Number of Dimension in case its an array *)InputArguments[nArg].nLenData := SIZEOF(numberIn2); (* Length if its a STRING *)IF nOffset + SIZEOF(numberIn2) > nInputArgSize THEN   bInputDataError := TRUE;  RETURN;ELSE  MEMCPY(ADR(nInputData)+nOffset,ADR(numberIn2),SIZEOF(numberIn2));(* VALUE in BYTES FORM *)  nOffset := nOffset + SIZEOF(numberIn2);END_IF

cbWriteData := nOffset;

Deklaration:

Page 153: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 153Version: 2.5

(* Declarations for UA_GetNamespaceIndex *)fbUA_GetNamespaceIndex : UA_GetNamespaceIndex;nNamespaceIndex : UINT;

(* Declarations for UA_MethodGetHandle *)fbUA_MethodGetHandle: UA_MethodGetHandle;ObjectNodeID: ST_UANodeID;MethodNodeID: ST_UANodeID;nMethodHdl: DWORD;

(* Declarations for UA_MethodCall *)fbUA_MethodCall: UA_MethodCall;sObjectNodeIdIdentifier : STRING(MAX_STRING_LENGTH) := 'MAIN.fbMathematics';sMethodNodeIdIdentifier : STRING(MAX_STRING_LENGTH) := 'MAIN.fbMathematics#M_Mul';nAdrWriteData: PVOID;numberIn1: INT := 42; // change according to input value and data typenumberIn2: INT := 42; // change according to input value and data typenumberOutPro: DINT; // result (output parameter of M_Mul())cbWriteData: UDINT; // calculated automatically by M_Init()InputArguments: ARRAY[1..2] OF ST_UAMethodArgInfo; // change according to input parametersstOutputArgInfo: ARRAY[1..1] OF ST_UAMethodArgInfo; // change according to output parametersstOutputArgInfoAndData: ST_OutputArgInfoAndData;nInputData: ARRAY[1..4] OF BYTE; // numberIn1(INT16)(2) + numberIn2(INT16)(2)nOffset: UDINT; // calculated by M_Init()nArg: INT; // used by M_Init()

(* Declarations for UA_MethodReleaseHandle *)fbUA_MethodReleaseHandle: UA_MethodReleaseHandle;

Implementierung:CASE iState OF  0:    [...]

  2: (* GetNS Index *)    fbUA_GetNamespaceIndex(      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    END_IF

  3: (* Get Method Handle *)    ObjectNodeID.eIdentifierType := eUAIdentifierType_String;    ObjectNodeID.nNamespaceIndex := nNamespaceIndex;    ObjectNodeID.sIdentifier := sObjectNodeIdIdentifier;    MethodNodeID.eIdentifierType := eUAIdentifierType_String;    MethodNodeID.nNamespaceIndex := nNamespaceIndex;    MethodNodeID.sIdentifier := sMethodNodeIdIdentifier;

    M_Init();

    IF bInputDataError = FALSE THEN      iState := iState + 1;    ELSE      bBusy := FALSE;      bError := TRUE;      nErrorID := 16#70A; //out of memory    END_IF

  4: (* Method Get Handle *)    fbUA_MethodGetHandle(      Execute := TRUE,      ConnectionHdl := nConnectionHdl,      ObjectNodeID := ObjectNodeID,      MethodNodeID := MethodNodeID,      MethodHdl => nMethodHdl);    IF NOT fbUA_MethodGetHandle.Busy THEN      fbUA_MethodGetHandle(Execute := FALSE);      IF NOT fbUA_MethodGetHandle.Error THEN

Page 154: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA154 Version: 2.5

        iState := iState + 1;      ELSE        bError := TRUE;        nErrorID := fbUA_MethodGetHandle.ErrorID;        iState := 6;      END_IF    END_IF

  5: (* Method Call *)    stOutputArgInfo[1].nLenData := SIZEOF(stOutputArgInfoAndData.pro);    fbUA_MethodCall(      Execute := TRUE,      ConnectionHdl := nConnectionHdl,      MethodHdl := nMethodHdl,      nNumberOfInputArguments := nNumberOfInputArguments,      pInputArgInfo := ADR(InputArguments),      cbInputArgInfo := SIZEOF(InputArguments),      pInputArgData := ADR(nInputData),      cbInputArgData := cbWriteData,      pInputWriteData := 0,      cbInputWriteData := 0,      nNumberOfOutputArguments := nNumberOfOutputArguments,      pOutputArgInfo := ADR(stOutputArgInfo),      cbOutputArgInfo := SIZEOF(stOutputArgInfo),      pOutputArgInfoAndData := ADR(stOutputArgInfoAndData),      cbOutputArgInfoAndData := SIZEOF(stOutputArgInfoAndData));    IF NOT fbUA_MethodCall.Busy THEN      fbUA_MethodCall(Execute := FALSE);      IF NOT fbUA_MethodCall.Error THEN        iState := iState + 1;        numberOutPro := stOutputArgInfoAndData.pro;      ELSE        bError := TRUE;        nErrorID := fbUA_MethodCall.ErrorID;        iState := 6;      END_IF    END_IF

  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;        nErrorID := fbUA_MethodReleaseHandle.ErrorID;        iState := 7;      END_IF    END_IF

  7:    [...]

END_CASE

4.2.5 Sicherheit

4.2.5.1 Übersicht

Sicherheit ist eine zentrale Anforderung bei der Entwicklung von OPC UA. Sie wird in verschiedenenBereichen adressiert:

• Verschlüsselung• Integrität• Authentifizierung

Page 155: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 155Version: 2.5

Die Vertraulichkeit der ausgetauschten Information wird durch die Verschlüsselung der ausgetauschtenNachrichten sichergestellt. Dabei werden moderne Kryptographie-Algorithmen verwendet. Um auch denzukünftigen Sicherheitsanforderungen gewachsen zu sein, können im Nachhinein noch stärkere undmodernere Algorithmen einer Anwendung hinzugefügt werden, ohne das Protokoll zu verändern.

Entsprechend der Anforderungen der jeweiligen Anwendung können verschiedene Sicherheitsstufengewählt werden. In einigen Bereichen ist es ausreichend die Nachrichten zu signieren, um Änderungendurch Dritte auszuschließen, in anderen Fällen dürfen Daten auch nicht von Dritten gelesen werden und einzusätzliches Verschlüsseln der Nachrichten ist erforderlich.

TF6100 OPC UA bietet die folgenden Security-Level (Security-Endpunkte) an, mit denen Clients sichverbinden können:

• None: Keine Sicherheit• Sign: Signiert Nachrichten• Sign&Encrypt: Signiert und verschlüsselt Nachrichten

Das Signieren der Nachrichten verhindert das Ändern des Inhalts einer Nachricht durch einen Dritten. Sowird verhindert, dass beispielsweise eine Schreibanweisung zum Öffnen eines Schalters durch einen Drittenverfälscht wird und der Schalter stattdessen geschlossen wird.

OPC‑UA‑Anwendungen identifizieren sich über so genannte Software- und Applikationsinstanz-Zertifikate.Mithilfe von Software-Zertifikaten ist es möglich, bestimmten Client Anwendungen einen erweiterten Zugriffauf Informationen eines OPC UA Servers zu geben, beispielsweise für das Engineering einesOPC UA Servers. Durch Applikationsinstanz-Zertifikate kann sichergestellt werden, dass ein OPC UA Servernur mit vorkonfigurierten Clients kommuniziert. Ein Client kann durch das Applikationsinstanz-Zertifikat desServers sicherstellen, dass er mit dem richtigen Server spricht (ähnlich der Zertifikate eines Web-Browsers).Die Berücksichtigung dieser Zertifikate ist optional, d. h. ein OPC UA Server kann auch jedem Client dengleichen Zugriff abhängig der Benutzerrechte geben.

Der TwinCAT OPC UA Client und TwinCAT OPC UA Server erzeugen ein selbst-signiertes Zertifikatwährend des ersten Startvorgangs. Dieses Zertifikat besteht aus einem privaten und einem öffentlichenSchlüssel. Der private Schlüssel wird in dem Verzeichnis \PKI\CA\private und der entsprechende öffentlicheSchlüssel unter \PKI\CA\certs abgelegt. Wenn ein beliebiger OPC UA Client eine gesicherte Verbindungüber einen der Security-Endpunkte (Sign, Sign&Encrypt) mit dem Server herstellen will, muss der Client denöffentlichen Schlüssel des OPC UA Servers kennen. Umgekehrt muss der OPC UA Server den öffentlichenSchlüssel des Clients kennen. Dieser sogenannte Schlüsselaustausch wird in den folgenden Artikelnbeschrieben:

• Authentifizierung [} 121]

• Zertifikatsaustausch [} 155]

• Zugriffsrechte [} 123]

4.2.5.2 Zertifikatsaustausch

Die Kommunikation zwischen einem OPC UA Client und einem OPC UA Server kann optional durchKommunikation mit einem gesicherten Endpunkt abgesichert werden. Standardmäßig generieren sowohl derTwinCAT OPC UA Server als auch der TwinCAT OPC UA Client beim ersten Start einmaschinenspezifisches, selbstsigniertes Zertifikat zur Authentifizierung.

Wenn Sie in Ihrer Umgebung eine solche verschlüsselte Kommunikationsverbindung verwenden möchten,müssen Sie ein Vertrauensverhältnis zwischen OPC UA Server und OPC UA Client herstellen.

Page 156: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA156 Version: 2.5

Vertrauenseinstellungen auf dem Server

Möchten Sie einen oder mehrere OPC UA Clients über Zertifikate am OPC UA Server authentifizieren, somuss der OPC UA Server den öffentlichen Schlüsseln der Clients vertrauen. Dies kann zum Beispiel überdas Dateisystem erfolgen. Der Server verwaltet die Vertrauenseinstellungen für Zertifikate über dasDateisystem.

• Vertrauenswürdige Zertifikate: %InstallDir%\Server\PKI\CA\trusted\certs• Abgewiesene Zertifikate: %InstallDir%\Server\PKI\CA\rejected\certs

Durch Verschieben von Client-Zertifikaten zwischen diesen Verzeichnissen können dieVertrauenseinstellungen entsprechend angepasst werden.

Auslesen des Client-Zertifikats

Die folgende Anleitung beschreibt einen einfachen Weg, wie man an das Client-Zertifikat gelangt. Hierbeibauen Sie, ohne vorher das Clientzertifikat auf den UA-Server kopiert zu haben, eine Verbindung zum UA-Server unter Verwendung eines sicheren Endpunkts auf (z. B. Basic128Rsa15/Sign&Encrypt). DieseVerbindung wird vom UA-Server initial natürlich abgewiesen, da dieser dem UA-Client zum derzeitigenZeitpunkt noch nicht vertraut. Der TwinCAT OPC UA Client würde in diesem Fall z. B. den Fehler0xE4DD0102 zurückliefern. Nach Abweisen der Verbindungsaufforderung speichert der UA-Server jedocheine Kopie des Client-Zertifikats im oben genannten „Rejected“-Verzeichnis ab. Der Name des Zertifikatsentspricht hierbei dem „Thumbprint“ des Zertifikats und lässt sich somit eindeutig dem Client-Zertifikatzuordnen. Diese Datei können Sie nun direkt in das oben genannte „Trusted“-Verzeichnis verschieben,damit der UA-Server bei allen weiteren Verbindungsanforderungen dem UA-Client vertraut und dieVerbindung akzeptiert.

Bekanntmachen des OPC UA Servers beim OPC UA Client

Abhängig vom verwendeten OPC UA Client müssen eventuell unterschiedliche Schritte vorgenommenwerden, damit der OPC UA Client dem OPC UA Server vertraut. Typischerweise erfolgt beiClient‑Applikationen mit grafischer Benutzeroberfläche ein Warnhinweis bei der ersten Verbindung mit demServer, 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

Diese Datei muss beim TwinCAT OPC UA Client in das entsprechende „Trusted“-Verzeichnis kopiertwerden: %InstallDir%\Client\PKI\CA\certs

Page 157: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 157Version: 2.5

4.3 TwinCAT OPC UA Gateway

4.3.1 ÜbersichtDas TwinCAT OPC UA Gateway ist die neueste Erweiterung des TS6100/TF6100-Softwareprodukts. Esbeinhaltet nicht nur eine herkömmliche OPC‑DA‑Schnittstelle, um ältere OPC‑COM‑DA‑Anwendungen mitdem TwinCAT OPC UA Server zu verbinden und kann demzufolge als der Nachfolger des altenTwinCAT OPC DA Servers (TS6120/TF6120) betrachtet werden, sondern es bietet auch eineOPC‑UA‑Schnittstelle, um mehrere grundlegende TwinCAT OPC UA Server in einen zentralenOPC‑UA‑Serverkanal zu bündeln.

4.3.2 Quick StartDas TS6100/TF6100‑Setup installiert automatisch das TwinCAT OPC UA Gateway und registriert dieAnwendung als einen Windows Service. Das Setup konfiguriert automatisch den Zugang zu einemTwinCAT OPC UA Server, der auf demselben Computer wie das Gateway läuft.

Werden dem Gateway mehr als ein TwinCAT OPC UA Server hinzugefügt, oder läuft der Server auf einemanderen Computer, müssen Änderungen an der Standardkonfiguration vorgenommen werden. VerwendenSie den Konfigurator [} 161], um diese Einstellungen zu konfigurieren.

Hinweis

Konfiguration des TwinCAT OPC UA ServersPrüfen Sie die Konfiguration des TwinCAT OPC UA Servers und vergewissern Sie sich,dass er wie erwartet arbeitet, bevor Sie fortfahren.Für weitere Informationen bezüglich der Konfiguration des TwinCAT OPC UA Servers le-sen Sie den Quick Start [} 39] im Kapitel „TwinCAT OPC UA Server“.

Page 158: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA158 Version: 2.5

QuickStart OPC COM DA

Um einen OPC COM DA Client mit dem Gateway zu verbinden, starten Sie den Client und stellen Sie eineVerbindung zu der folgenden ProgId her:UnifiedAutomation.UaGateway.1

Beim Durchsuchen des Gateway werden ein oder mehrere TwinCAT OPC UA Server im Namensraum desGateway sichtbar.

Page 159: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 159Version: 2.5

QuickStart OPC UA

Das Gateway bietet nicht nur eine OPC‑COM‑DA‑Schnittstelle, sondern erlaubt die Aggregation von einemoder mehreren TwinCAT OPC UA Servern. Hierzu öffnet das Gateway ebenfalls eine OPC‑UA‑Schnittstelle.Das Gateway ist über folgende OPC UA Server URL erreichbar:opc.tcp://[HostnameOrIpAddressOrLocalhost]:48050

Der Namensraum des Gateway beinhaltet dann alle zugrundeliegenden TwinCAT OPC UA Server.

4.3.3 LizenzierungDas TwinCAT OPC UA Gateway wird den Kunden kostenfrei geliefert. Es ist kein weiterer Lizenzerwerberforderlich. Beachten Sie, dass die Gateway‑Komponente ausschließlich für die Verbindung mitTwinCAT OPC UA Servern verwendet werden kann. Die Verbindung mit UA-Servern von Drittanbietern wirdprogrammierungstechnisch verhindert. Wenn die Umgebung des Kundens die Verbindung mit einem UA-Server eines Drittanbieters erforderlich macht, wird das Unified Automation UA-Gateway empfohlen. Diesekann bei http://www.unified-automation.com erworben werden.

4.3.4 Setup‑SzenarienAufgrund der offenen und flexiblen PC-basierten Automatisierungstechnik von Beckhoff kann dasTwinCAT OPC UA Gateway auf verschiedene Arten und Weisen betrieben und installiert werden. Imfolgenden Abschnitt werden die verschiedenen Setup-Szenarien beschrieben und die Vor- und Nachteileeiner jeden Einrichtung erläutert.

Page 160: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA160 Version: 2.5

Gateway und UA‑Server auf demselben Computer

Bei diesem Szenario sind das Gateway und der UA-Server auf demselben Computer installiert. DasGateway ist mit den Standardeinstellungen konfiguriert, um eine Verbindung mit dem lokalenTwinCAT OPC UA Server mit der folgenden Server-URL herzustellen: opc.tcp://localhost:4840.

Dieses Szenario funktioniert lediglich auf Nicht‑Windows‑CE‑Geräten.

HINWEIS! Der TwinCAT OPC UA Server ist auch für Windows CE erhältlich, aber das Gateway ist nurfür big‑WindowsPlattformen erhältlich.

Gateway und UA-Server auf verschiedenen Computern

Bei diesem Szenario sind das Gateway und der UA-Server auf verschiedenen Computern installiert. DasGateway ist für die Herstellung einer Verbindung mit dem Remote – TwinCAT OPC UA Server konfiguriert,indem dessen entsprechende Server‑URL, z. B. opc.tcp://192.168.1.1:4840, festgelegt wird.

Der TwinCAT OPC UA Server ist möglicherweise auf einem kleinen Embedded-Gerät (z. B. einem CX8090mit Windows CE) installiert, während die Gateway‑Komponente auf einer getrennten big‑Windows‑Plattform,z. B. einem zentralen Server-Gerät, installiert ist.

Gateway mit mehreren UA-Servergeräten verbunden

Beachten Sie, dass, ungeachtet der oben beschriebenen Szenarien, es selbstverständlich möglich ist,andere TwinCAT OPC UA Server ebenfalls an das Gateway anzuschließen. So kann z. B. das Gatewaykonfiguriert 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)• ...

Page 161: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 161Version: 2.5

4.3.5 Konfigurator

4.3.5.1 Übersicht

Das UA Gateway Administration Tool ist eine grafische Benutzerschnittstelle für die Konfiguration desGateway und kann über das Kontextmenü des Gateway-Symbols in der Windows-Taskleiste erreichtwerden.

Nach dem Starten des Verwaltungswerkzeugs über den Menüeintrag Administrate UaGateway wird diegrafische Benutzerschnittstelle eingeblendet. Sie bietet mehrere Konfigurationsoptionen:

• Allgemeine Einstellungen [} 162]

• Zusätzliche UA‑Server [} 163]

• Zusätzliche Endpunkte [} 164]

• OPC‑COM‑DA‑Einstellungen [} 165]

Page 162: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA162 Version: 2.5

4.3.5.2 Allgemeine Einstellungen

Autostart

In diesem Bereich können Sie das Autostart-Verhalten von UaGateway konfigurieren. Wählen SieUaGateway Runtime Process um den UaGateway Service automatisch beim Einschalten des Computerszu starten. Wählen Sie Notification Area Icon, um das Symbol des Benachrichtigungsbereichs bei derAnmeldung eines Benutzers zu starten.

Startender User (Launching User)

Das UaGateway wird als Windows NT Service ausgeführt. Diesem Service wird ein spezifischer Userkontextzugewiesen, damit COM/DCOM ordnungsgemäß konfiguriert werden können. Der User, den Sie auswählen,wird dem UaGateway Service zugeordnet. Darüber hinaus wird dem User ein LogOnAsService Rechteingeräumt (so kann er/sie den Service starten) und er wird einer lokalen Nutzergruppe hinzugefügt

Page 163: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 163Version: 2.5

(„UaGatewayUsers“). Diese Gruppe wird der Zugriffskontrollliste (ACL, Access Control List) der lokalenMaschine hinzugefügt. Für die ordnungsgemäße COM/DCOM Konfiguration müssen Sie nun nur noch alleUser, denen es möglich sein sollte, das UaGateway zu starten und auf es zuzugreifen, zu dieser Gruppehinzufügen.

Konfigurationsberechtigungen (Configuration Permissions)

Es besteht die Möglichkeit, nur bestimmten Benutzern zu erlauben, die Konfiguration des UaGateway zuverändern, sprich Verbindungen zu grundlegenden Servern hinzuzufügen oder zu entfernen. Sie können ausfolgenden Einstellungen auswählen:

• Jeder (Everyone)Jeder (auch die anonym bei UA angemeldeten User), der mit dem UaGateway in Verbindung tretenkann, kann die Konfiguration verändern.

• Beschränkt auf Betriebssystemnutzer (Limit to operating system users)Nur lokale User und User von der gleichen Domain können die Konfiguration ändern.

• Beschränkt auf Nutzer dieser Gruppe (Limit to users of this group)Die Berechtigung, die Konfiguration zu ändern, nur den Usern einer bestimmten Gruppe zugestehen.Wenn nicht alle verfügbaren Gruppen in der Drop-down-Liste Group angezeigt werden (oder eine neuerstellt Gruppe fehlt), kann mittels Drücken der Schaltfläche Refresh diese Gruppe erneut eingelesenwerden.

Remote‑DCOM‑Zugriff (Remote DCOM Access)

Bei der Aktivierung von Allow Remote Connection to UaGateway OPC COM Server, werden DCOM Port135 und das ausführbare UaGateway der Firewall-Ausnahmeliste hinzugefügt.

Wird Allow starting UaGateway by DCOM Clients deaktiviert, dann können DCOM‑Clients dasUaGateway nicht starten. In diesem Fall kann UaGateway weiterhin mithilfe des Notification Area Icon oderden Startmenüeinträgen gestartet oder gestoppt werden.

UA‑Discovery‑Anmeldung (UA Local Discovery Server)

An dieser Stelle können Sie bestimmen, ob das UaGateway beim OPC UA LDS (Local Discovery Server),falls einer installiert ist, angemeldet werden soll.

4.3.5.3 Zusätzliche UA‑Server

Die Registerkarte Configured UA Servers bietet Optionen für die Konfiguration der zugrundeliegendenTwinCAT OPC UA Server. Standardmäßig stellt das Gateway bereits eine Verbindung mit dem lokalenTwinCAT OPC UA Server (der auf demselben Computer läuft) her.

Page 164: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA164 Version: 2.5

Um weitere TwinCAT OPC UA Server zu konfigurieren oder aus der Konfiguration zu entfernen, klicken Sieauf die Plus- und Minus-Tasten unten rechts und anschließend auf Übernehmen (Apply), um dieÄnderungen zu speichern.

4.3.5.4 Zusätzliche Endpunkte

Der UA Endpunkt (Endpoint) ist die Verbindungsinformation, die ein UA Client benötigt, um eine Verbindungmit dem Gateway herzustellen. In den folgenden Abschnitten wird die UA‑Endpunktkonfigurationbeschrieben.

Allgemeines

Spezifizieren Sie mithilfe der Kontrollkästchen die Anmeldemethoden, die ein Client für die Herstellung einerVerbindung mit Ihrem UaGateway verwenden kann.

Page 165: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 165Version: 2.5

Endpunkte

An dieser Stelle können Sie alle notwendigen Einstellungen für verschiedene UA Endpunkte festlegen. DerEndpunkt wird standardmäßig mit Voreinstellungen konfiguriert. Diese stellen einen einzelnen UA Endpunktdar, der zwei Sicherheitsoptionen anbietet: Keine und Basic128RSsa15.

Die Sicherheitsoption „Keine“ erlaubt jedem UA‑Client die Herstellung einer Verbindung mit dem UaGatewayund wird lediglich für die Inbetriebnahme und Prüfung empfohlen, während diese Konfiguration in derProduktionsumgebung ausgeschaltet werden sollte.

Die verschiedenen Konfigurationselemente werden in den folgenden Abschnitten beschrieben.

Netzwerkkonfiguration

Endpunkt URL

Dies ist die Endpunkt URL des UaGateway, so wie sie in FindServers und GetEndpoint Aufrufen zu sehenist.

Protokoll

Dies ist das für diesen Endpunkt verwendete Protokoll.

Hostname/IP

Dies ist der Hostname des UaGateway (es kann sich auch um die IP-Adresse des PC handeln, auf dem dasUaGateway ausgeführt wird).

Netzwerkadapter

Dies ist der Netzwerkadapter, mit dem eine Bindung herzustellen ist. Zur Auswahl stehen:

• AlleAuswahl, dass eine Bindung mit allen IP-Adressen des Computers herzustellen ist. Der Endpunkt wirdüber den gegebenen Anschluss auf allen IP-Adressen erreichbar sein.

• NetzwerkadapterWählen Sie einen Netzwerkadapter und eine IP-Adresse (unten), um lediglich eine Bindung mit dieserAdresse herzustellen. Der Endpunkt wird nur für Clients erreichbar sein, die mit der ausgewählten IP-Adresse eine Verbindung herstellen.

• Nur lokalBei dieser Auswahl stellt das UaGateway lediglich eine Bindung mit dem Loopback-Adapter her. DerEndpunkt ist lediglich für die Clients erreichbar, die auf derselben Maschine wie das UaGatewaylaufen.

Port

Dies ist das TCP Port des Endpunkts (normalerweise 48050).

Sicherheit

Die unterstützten Sicherheitseinstellungen des Endpunkts können an dieser Stelle konfiguriert werden.Aktivieren Sie die Kontrollkästchen vor den Sicherheitsoptionen, die für einen bestimmten Endpunkt geltensollen. Für die Optionen ungleich „Keine“, muss der (müssen die) verfügbare(n)Nachrichtensicherheitsmodus (modi) angegeben werden. Die Signierung sorgt dafür, dass Nachrichten nichtverändert werden können und dass sie zwischen den Anwendungen, die eine Verbindung hergestellt haben,ausgetauscht werden. Die Verschlüsselung garantiert, dass niemand die Nachrichten lesen kann.

4.3.5.5 OPC‑COM‑DA‑Einstellungen

Im folgenden Abschnitt wird die Konfiguration des COM DA Servers des UaGateway unter Verwendung desAdministrationstools beschrieben.

Page 166: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA166 Version: 2.5

Allgemeines

ItemIDs des COM DA Server werden aus dem URI‑Namensraum und dem Bezeichner des Variablenknotensim OPC‑UA‑Adressenraum gebildet. Der Namensraumteil kann im Fall eines einzigen Namensraumsweggelassen werden. Im Drop-down-Feld Default Name Space kann der standardmäßige Namensraum mitdem Namensraum eines Zugrundeliegenden OPC‑Servers festgelegt werden. Die ItemIDs diesesbestimmten Namensraums können dann mittels ausschließlicher Angabe des Bezeichners erreicht werden,weil beim Zugriff auf ein Element der standardmäßige Namensraum intern automatisch hinzugefügt wird.Dieses Merkmal kann dazu verwendet werden, alle ItemIDs im Client, der auf den UaGateway Serverzugreift, neu zu konfigurieren, wenn Letzterer als Tunnellösung für einen zugrundeliegendenCOM DA Server fungiert, und um dabei die ItemIDs des ursprünglichen COM DA Servers beizubehalten.

Im zweiten Drop-down-Feld kann die Timestamp Source (Zeitstempelquelle) festgelegt werden. FolgendeOptionen stehen zur Auswahl:

• InternerDie Zeitstempel werden vom OPC COM DA Server erzeugt.

• SourceTimestampDie SourceTimestamps werden als Zeitstempel, die vom OPC COM DA Server bereitgestellt werden,verwendet.

• ServerTimestampDie ServerTimestamps werden als Zeitstempel, die vom OPC COM DA Server bereitgestellt werden,verwendet.

Eigenschaften-Mapping vom UA zum COM DA

Bei der Herstellung der Verbindung mit dem OPC‑COM‑DA‑Server des UaGateway werden alle sechsStandardeigenschaften (DataType, Value, Quality, TimeStamp, AccessRights und ScanRate) automatischzugeordnet. Zugrundeliegende OPC‑Server können weitere Eigenschaften (z.B. benutzerdefinierteEigenschaften, DI-Eigenschaften, usw.) bereitstellen. Diese Eigenschaften können herstellerspezifischenEigenschaften (PropertyID ≧ 5000) im COM DA Server des UaGateway zugeordnet werden.

Diese herstellerspezifischen PropertyIDs werden automatisch zugeordnet, wenn die Eigenschaften das ersteMal angefordert werden. Mithilfe dieses Dialogs können Sie die zugeordneten PropertyIDs ändern oderkonfigurieren, wie die OPC‑UA‑Eigenschaften im UaGateway‑Adressenraum den herstellerspezifischenCOM‑DA‑Eigenschaften zuzuordnen sind. Sie müssen den UA-seitigen Eigenschaftennamen und denNamensraum der Eigenschaft im UaGateway festlegen und diese den COM DA PropertyIDs zuordnen. Beider Herstellung der Verbindung mit dem COM‑DA‑Server des UaGateway können Sie die verfügbarenEigenschaften (QueryAvailableProperties) eines einzelnen OPCItems durchsuchen und dann werden Sie diezugeordneten Eigenschaften, so wie diese (im Bereich der herstellerspezifischen PropertyIDs oberhalb5000) konfiguriert wurden, sehen können.

Drücken Sie die Tasten „+“ oder „-“, um eine bestimmte Eigenschaft hinzuzufügen bzw. zu entfernen. Umden Inhalt eines bestimmten Feldes zu ändern, doppelklicken Sie auf dieses und geben die gewünschtenWerte ein. Wenn Sie auf einen Wert in der Spalte UA Property NameSpace URI doppelklicken, wird einDrop-down-Menü eingeblendet, in dem Sie eine Auswahl treffen können.

Wenn Sie durch Drücken auf „+“ eine neue Eigenschaft hinzufügen, werden die Werte des letzten Eintrags indie neue Zeile kopiert und die Property ID automatisch inkrementiert.

4.3.6 Migration von Tx6120Einer der vorrangigen Zwecke des UA Gateway ist die Bereitstellung einer zukunftsfähigen Konnektivität, umdas Supplement Tx6120 OPC DA zu ersetzen. Nutzer, die von Tx6120 OPC DA nach UA Gateway migrierenmöchten, müssen einige Dinge bedenken und konfigurieren.

Übersicht der Standardkonfiguration

Die Standardkonfiguration des UA‑Gateway stellt automatisch eine Verbindung mit dem lokalenTwinCAT OPC UA Server her und bietet den OPC DA Clients eine OPC‑DA‑Schnittstelle. Bei einerVerbindung auf der Grundlage dieser Standardkonfiguration müssen die OPC‑DA‑Clients folgende Dingeberücksichtigen:

Page 167: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 167Version: 2.5

• Die standardmäßige ProgID des UA-Gateway lautet „UnifiedAutomation.Gateway.1“. DerTwinCAT OPC DA Server verwendet eine andere ProgID („Beckhoff.TwinCATOpcServerDA“).

• Das UA-Gateway verwendet stets eine ProgID anstelle von mehreren Klonen.• Der Item Identifier eines OPC‑Symbols wird im UA-Gateway anders erzeugt. Dieses Verhalten kann

geändert werden.

Wie die Syntax eines Item Identifiers geändert werden kann

Die Syntax, die das UA-Gateway für Item Identifier verwendet, kann verändert werden, damit letztere eherder Art des TwinCAT OPC DA Servers entsprechen. Standardmäßig verwendet das UA‑Gateway bei derBildung seiner Identifier eine andere Syntax als der TwinCAT OPC DA Server.

Beispiel UA‑Gateway:

Beispiel TwinCAT OPC DA Server:

Das UA‑Gateway verwendet ein Präfix, sodass der zugrundeliegende OPC UA Client, von dem die Variablestammt, eindeutig identifiziert werden kann.

Um das UA‑Gateway so zu konfigurieren, dass es seine Identifier in etwa so bildet, wie derTwinCAT OPC DA Server, sind die nachfolgenden Schritte erforderlich. Die Funktionalität wurdeimplementiert, um den Migrationsprozess zu vereinfachen.

1. Öffnen Sie die UA-Gateway‑KonfigurationsdateiC:\Program Files (x86)\UnifiedAutomation\UaGateway\bin\uagateway.config.xml

2. Suchen Sie nach den folgenden XML-Tags in der XML-Datei:<OpcServerConfig>  <ComDaServerConfig>    <ComDaNamespaceUseAlias>false</ComDaNamespaceUseAlias>  </ComDaServerConfig></OpcServerConfig>

3. Wenn das ComDaNamespaceUseAlias XML-Tag auf „true“ gesetzt wird, können benutzerdefiniertePräfixes bestimmt werden. Suchen Sie hierfür nach dem folgenden XML-Tag in derselben XML-Datei:

Page 168: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA168 Version: 2.5

<OpcServerConfig>  <UaServerConfig>    <ConfiguredNamespaces>      ...    </ConfiguredNamespaces  </UaServerConfig></OpcServerConfig>

4. Identifizieren Sie in dieser XML‑Struktur den TwinCAT‑OPC‑UA‑Server‑Namensraum. Standardmäßigsollte dieser folgendermaßen lauten:

<OpcServerConfig>  <UaServerConfig>    <ConfiguredNamespaces>      ...      <Namespace>        <Index>...</Index>        <Uri>TcOpcUaServer/urn:Hostname:BeckhoffAutomation:Ua:PLC1</Uri>        <AllowRenameUri>false</AllowRenameUri>        <UniqueId>TcOpcUaServer#TcOpcUaServer/urn:Hostname:BeckhoffAutomation:Ua:PLC1</UniqueId>        <ComAlias>...</ComAlias>      </Namespace>      ...    </ConfiguredNamespaces  </UaServerConfig></OpcServerConfig>

5. Auf Ihrem Computer kann der Platzhalter „...” anders aussehen. Setzen Sie <ComAlias> auf das vonIhnen bevorzugte Präfix, zum Beispiel „PLC1“. Daraufhin werden die Bezeichner mit dem Präfix „PLC1“gebildet.

4.4 TwinCAT OPC UA Sample Client

4.4.1 ÜbersichtAb Version 1.6.80 des TwinCAT OPC UA Servers wird ein kleines Programm „UA Sample Client“automatisch installiert. Diese Software ermöglicht den Nutzern, den OPC‑UA‑Namensraum zu durchsuchenund die UA‑Server‑Installierung zu testen. Es befindet sich im Windows Startmenü und imInstallationsverzeichnis des/der Supplements/Function. Sie können diesen UA-Client sowohl direkt auf demUA-Server als auch auf einem Computer in Ihrem Netzwerk ausführen.

Derzeit bietet der UA Sample Client die folgenden Funktionalitäten:

• Verbindung mit OPC UA Server herstellen

• Sichere Verbindung mit OPC UA Server herstellen (siehe Sichere Verbindung mit OPC UA Serverherstellen [} 169])

• Durchsuchen des UA‑Namensraums eines OPC UA Servers (siehe Im UA-Namensraum browsen[} 172])

• Hinzufügen eines UA Nodes aus dem Namensraum in die Watchliste, die den Wert des Knotensregelmäßig liest (siehe Watchliste verwenden [} 173])

Page 169: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 169Version: 2.5

Diese Anwendung ist lediglich ein OPC‑UA‑Beispiel‑Client. Sie bietet keine anspruchsvollenFunktionalitäten, sondern wurde entwickelt, um den Benutzern eine einfach zu bedienende Schnittstelle zurVerfügung zu stellen, um ersteTests beim TwinCAT OPC UA Server durchzuführen

Um die Anwendung zu starten, führen Sie die Datei UA SampleClient.exe mit dem Befehl Als Administratorausführen aus.

Hinweis

Endpunkte des OPC UA ServersDer OPC‑UA‑Beispiel‑Client verbindet sich zuerst mit einer spezifizierten Server‑URL. DerClient akquiriert alle Endpunkte des OPC UA Servers (siehe Drop-Down-Liste „Endpunk-te”). Die an den Server zurückgesandte Liste enthält dann mehr Informationen über alleverfügbaren Endpunkte, mit denen sich der Client verbinden kann. Jeder Endpunkt kannden Hostnamen des OPC UA Servers anstatt der IP-Adresse enthalten. Der Client verwen-det dann die Informationen aus dem Endpunkt zur Verbindung mit dem Server. Wenn dieNamenslösung nicht im Netzwerk des Benutzers funktioniert, kann der Client die Verbin-dung nicht herstellen. Wenn der Endpunkt, mit dem sich der Client verbinden soll, denHostnahmen des Servers enthält, stellen Sie sicher, dass die Namenslösung in Ihrem Netz-werk funktioniert und dass der Hostname auf dem Server erreichbar ist!

4.4.2 Sichere Verbindung mit OPC UA Server herstellen1. 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.

Page 170: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA170 Version: 2.5

ð Die vom UA-Server bereitgestellten Endpunkte werden daraufhin in der Drop‑Down-Liste Endpointsangezeigt.

3. Wählen Sie in diesem Beispiel den Eintrag „<SomeName>/Beckhoff/TcOpcUaServer/1[Basic128Rsa15, SignAndEncrypt] [opc.tcp://<SomeName>:4840]“ und klicken Sie auf Connect.

HINWEIS! Sie müssen den Public Key vom Zertifikat des UA Sample Clients auf den UA Serverkopieren, damit dieser dem Sample Client „vertraut“. Anderenfalls wird der Verbindungsversuchüber den sicheren Kanal vom UA‑Server abgewiesen („BadSecureChannelClosed“). Weitere

Page 171: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 171Version: 2.5

Informationen über das Zertifikatsmanagement beim TwinCAT OPC UA Server finden Sie im AbschnittZertifikatsaustausch [} 155].

Page 172: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA172 Version: 2.5

ð Über den Browser in der linken Hälfte des Fensters können Sie nun durch den UA‑Namensraumnavigieren.

4.4.3 Im UA-Namensraum browsenÜber den Browser in der linken Hälfte des UA Sample Client können Sie nach erfolgreichem Aufbau einerVerbindung durch den UA‑Namensraum navigieren. Unterhalb des Knotens PLC1 finden Sie das momentanlaufende SPS-Programm und können sich die dort deklarierten und für UA freigegebenen Variablenanzeigen lassen.

Page 173: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA 173Version: 2.5

4.4.4 Watchliste verwendenSie können SPS-Variablen aus dem UA-Namensraum in eine Watchlist einfügen, zum Beispiel um derenWerte zyklisch von dem UA Sample Client lesen zu lassen. Öffnen Sie dazu das Kontextmenü einerVariablen und wählen Sie Add to Watchlist. Die Variable wird daraufhin in die Watchlist übernommen undderen Werte werden automatisch zyklisch aus der SPS ausgelesen.

Page 174: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Technische Einführung

TC3 OPC UA174 Version: 2.5

Page 175: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA 175Version: 2.5

5 Konfiguration

5.1 Setup Version 3.x.x

5.1.1 ÜbersichtDieser Abschnitt soll einen Einblick in den Umgang mit dem TwinCAT‑OPC‑UA‑Konfigurator geben. DerOPC‑UA‑Konfigurator parametrisiert den TwinCAT OPC UA Server bzw. ist eine grafischeBenutzeroberfläche zur Konfiguration der ServerConfig.xml-Datei. Er bietet hierbei die folgendenKonfigurationsmöglichkeiten:

• Hinzufügen/Entfernen von Geräten zum Data Access (SPS-Laufzeiten, TwinCAT‑3‑C++‑Instanzen, I/O-Tasks)

• Aktivieren/Deaktivieren von Historical Access• Aktivieren/Deaktivieren von anonymen Zugriffen bzw. Benutzername/Passwort‑Authentifizierung• Neustart oder Shutdown des OPC UA Servers

Beim Starten des TwinCAT‑OPC‑UA‑Konfigurators wird automatisch die derzeit aktive Konfiguration desTwinCAT OPC UA Servers geladen, welche sich standardmäßig als Datei ServerConfig.xml im Verzeichnis \%InstallDir%\Server\ befindet. Sie können über das Menü aber auch andere ServerConfig.xml-Dateienladen, abspeichern und aktivieren.

Die Benutzeroberfläche des OPC‑UA‑Konfigurators besteht aus den folgenden Bereichen:

• Menü-Bereich: Speichern und Aktivieren von Konfigurationen• Kategorien-Bereich: Gruppiert die Einzelparameter in verschiedene Kategorien, z. B. Data Access• Parameter-Bereich: Einzelparameter zum Aktivieren/Deaktivieren bestimmter Features

Konsultieren Sie die Dokumentation der jeweiligen Kategorien, um die Bedeutung der einzelnenKonfigurationsparameter zu erfahren:

• Data Access [} 176]

• Historical Access [} 177]

• Sicherheit [} 177]

• Alarms & Conditions (A&C) [} 178]

Page 176: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA176 Version: 2.5

• Online Panel [} 180]

5.1.2 Data AccessDie Registerkarte Data Access enthält die Konfigurationseinstellung für TwinCAT‑Runtime‑Geräte. Hiermuss ein Gerät konfiguriert werden, wenn es über OPC UA verfügbar sein soll.

Für jedes TwinCAT‑Runtime‑Gerät müssen folgenden Einstellungen erfolgen:

Einstellung BeschreibungName Anzeige Name der TwinCAT Runtime im

OPC‑UA‑NamensraumAdsNetId AmsNetId der TwinCAT Runtime. 127.0.0.1.1.1 für eine lokale

Laufzeit oder die entsprechende AmsNetId eines Remote-Geräts.ADS-Routen müssen konfiguriert werden, wenn mit einemRemote-Gerät kommuniziert wird.

AdsPort AdsPort der TwinCAT‑Runtime, z. B. 851 für die ersteTwinCAT‑3‑SPS‑Laufzeit.

SymbolFile Symboldatei, die Informationen über alle verfügbarenVariablen und Objektinstanzen der Laufzeit enthält.

AdsTimeout Timeout-Einstellung, wenn mit der Ziel-Runtime kommuniziertwird.Es wird empfohlen, diese Einstellung auf dem Standardwert zubelassen.

AdsTimeSuspend TimeSuspend-Einstellung, wenn mit der Ziel-Runtimekommuniziert wird.Es wird empfohlen, diese Einstellung auf dem Standardwert zubelassen. TimeSuspend Timeout wird ausgelöst, wenn eineZiel-Runtime vorübergehend nicht verfügbar ist. DerOPC UA Server startet nach TimeSuspend einen erneutenKommunikationsversuch.

Typ Typ der Ziel-Runtime, mit der der OPC UA Serverkommunizieren soll, z. B. TwinCAT 3 SPS, TwinCAT 2 SPS, ...

AccessMode Der Zugriffsmodus wird normalerweise nur benötigt, wenn derOPC UA Server mit einer auf einem Beckhoff BC/BX‑Gerätgehosteten Laufzeit kommunizieren soll. In so einem Fall mussdie entsprechende Einstellung aktiviert werden. Sonst ist dieStandardeinstellung in Ordnung.

LegacyArrayHandling Wenn auf veralteten OPC UA Clients Array-Elemente alsseparate UA-Knoten verfügbar sein müssen, aktivieren Siediese Einstellung.

LegacyUriFormat Aktiviert verschiedene Namensschemata zum Generieren vonNamespaceUri, wie im Abschnitt Generierung vonNamespaceUri [} 126] beschrieben.

Page 177: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA 177Version: 2.5

Einstellung BeschreibungReleaseHandles Aktiviert die Freigabe von Handles für

TwinCAT‑Laufzeitsymbole, wenn UaClients einen Knoten nichtmehr „benötigen“. Das ist der Fall, wenn ein Knoten aus derÜberwachung entfernt wird, (DeleteMonitoredItem) oder derÜberwachungsmodus eines Elements deaktiviert wird.

ForceIdentifierCase Gilt nur für die Typen TPY und SYM. Erzwingt die Groß- oderKleinschreibung der Bezeichner aller Knoten.

Disabled Kontrollkästchen anklicken, um die Laufzeit zu deaktivieren,sodass sie nicht im OPC‑UA‑Namensraum erscheint.

Weitere Informationen über laufzeitspezifische Parameter erhalten Sie im Abschnitt TwinCAT OPC UA Server[} 38].

5.1.3 Historical AccessDie Registerkarte Historical Access wird verwendet, um die allgemeinen Einstellungen für Historical Accesszu konfigurieren. Hier werden Speichermedien, die für Historical Access verwendet werden sollen, aktiviertund konfiguriert.

Weitere Informationen zu Historical Access erhalten Sie im Abschnitt TwinCAT OPC UA Server [} 38].

5.1.4 SicherheitDie Registerkarte Server Security ermöglicht allgemeine Einstellungen zu Sicherheits- undEndpunktmechanismen des OPC UA Servers.

Page 178: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA178 Version: 2.5

Die folgende Tabelle bietet einen Überblick über die möglichen Einstellungen:

Einstellung BeschreibungBenutzeridentität Aktivierung oder Deaktivierung einer bestimmten Benutzeridentität,

z. B. Deaktivierung des Kontrollkästchens „AnonymousAccess“ (Anonymer Zugriff), um eine Benutzerauthentifizierung zuerzwingen.

Endpunkte Aktivierung oder Deaktivierung bestimmter Endpunkte, z. B. zurDeaktivierung des Endpunkts „No security“ (Keine Sicherheit), umUA-Clients zu zwingen, sich mit dem Endpunkt „Sign andEncrypt“ (Signieren und Verschlüsseln) zu verbinden.

Konfiguration des Namensraums Ermöglicht die Aktivierung oder Deaktivierung der Konfiguration desNamensraums [} 132] und die Einstellung einer spezifischenSicherheitsstufe, die für den Zugriff dieses Namensraumserforderlich ist (Benutzerauthentifizierung erforderlich).

Benutzerverwaltung Ermöglicht die Konfiguration bestehender Benutzerkonten und stellteine Zugriffsebene für jedes Konto ein. Zugriffsebenen werdenderzeit lediglich zur Konfiguration des Zugriffs auf die Konfigurationdes Namensraums [} 132] verwendet. Beachten Sie, dass dasBenutzerkonto - wenn der Computer, auf dem der OPC UA Serverläuft, ein Mitglied einer Windows-Domäne ist - ebenfalls ein Konto indieser Domäne sein kann.

Client-Zertifikate Ermöglicht das Verschieben von OPC‑UA‑Client‑Zertifikatenzwischen den Vertrauenslisten „Abgelehnt“ und „Akzeptiert“. Hierkönnen Client-Zertifikate einfach identifiziert, ihnen vertraut oderdiese abgelehnt werden, wenn die Clients mit einem der sicherenEndpunkte verbunden werden.

5.1.5 Alarms & Conditions (A&C)Der Konfigurator Alarms & Conditions ist ein separates grafisches Tool. Es erstellt eine XML-basierteKonfigurationsdatei, mit der der OPC UA Server seine A&C-Konfiguration erstellt.

Page 179: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA 179Version: 2.5

Der A&C‑Konfigurator befindet sich im Installationsverzeichnis von TwinCAT OPC UA: C:\TwinCAT\Functions\TF6100-OPC-UA\Win32\ConfiguratorAc.

Der Konfigurator wird folgendermaßen verwendet:

1. Stellen Sie eine Verbindung mit dem OPC UA Server her, dessen Alarms & Conditions konfiguriertwerden sollen. Geben Sie dazu die Server-URL ein und wählen Sie einen Endpunkt, mit dem sich derKonfigurator verbinden soll.

2. Wenn die Verbindung hergestellt und der Namensraum des Servers sichtbar ist, erstellen Sie einenoder mehrere ConditionController. Ein ConditionController ist eine administrative Einheit, die dieaktuelle Alarmkonfiguration als eine oder mehrere Conditions enthält.

3. Wählen Sie einen ConditionController aus und erzeugen Sie eine oder mehrere Conditions, indem Siezu überwachende Variablen in das Conditions-Fenster in der unteren rechten Ecke ziehen und dortablegen.

4. Folgen Sie schrittweise den Anweisungen der QuickStart-Information des Konfigurators.

Page 180: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA180 Version: 2.5

5.1.6 Online PanelDas Online Panel erweitert den TwinCAT‑OPC‑UA‑Konfigurator um OPC‑UA‑Client‑Funktionalitäten. Esermöglicht den Benutzern die lokale oder Fernverbindung mit einem TwinCAT OPC UA Server zwecksErhalt von Diagnose- oder Verwaltungsfunktionalitäten.

Die folgende Tabelle beschreibt die Bereiche im Online Panel:

Bereich BeschreibungServerinformationen Liefert allgemeine Diagnoseinformationen des derzeit mit dem

TwinCAT OPC UA Server verbundenen Teilnehmers. Mögliche nützlicheInformationen:

• Lizenzstatus• Anzahl der derzeit hergestellten OPC‑UA‑Client‑Sitzungen• Anzahl verfügbarer Knoten (Berechnung kann einige Zeit in Anspruch

nehmen)• Server-Version

Server-Protokollierung Stellt Funktionalitäten zur Verfügung, um eine Logdatei auf demTwinCAT OPC UA Server zu aktivieren. Diese sollte aber nur dann verwendetwerden, wenn sie vom Beckhoff-Support empfohlen wurde, da die Erstellungder Logdatei die allgemeine Systemleistung beeinträchtigen kann.

Page 181: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA 181Version: 2.5

Bereich BeschreibungGerätezustände Stellt Diagnoseinformationen über jedes auf dem TwinCAT OPC UA Server

konfigurierte ADS-Gerät zur Verfügung. Diese Information kann sehr hilfreichsein, wenn die Verbindung mit einem ADS-Gerät überprüft werden muss. Häufigauftretendes Konfigurationsproblem kann z.B. darin bestehen, dass dieentsprechende Symboldatei (TPY, TMC) nicht vom TwinCAT OPC UA Servergeladen werden kann. Das Device States Panel wird in diesem Falle eineentsprechende Fehlermeldung ausgeben.

5.2 Setup Version 4.x.x

5.2.1 ÜbersichtDas TF6100‑Setup (Version 4.x.x und höher) liefert die aktuellste Version desTwinCAT‑OPC‑UA‑Server‑Konfigurators mit aus. Dieser wurde für ein durchgängiges und einheitlichesEngineering-Konzept in Microsoft Visual Studio als eigener Projekttyp integriert. Es können alleunterschiedlichen Facetten vom OPC UA Server konfiguriert und hierbei auch Source‑Control‑Mechanismenwie z. B. Team Foundation Server oder Subversion Integrationen verwendet werden.

Toolbar

Über die Toolbar des OPC‑UA‑Konfigurators kann eine Verbindung mit einem lokalen oder remoteTwinCAT OPC UA Server hergestellt werden. Sämtliche Konfigurationseinstellungen können dann für denjeweils selektierten Server vorgenommen werden.

Wenn die Toolbar nicht eingeblendet ist, können Sie diese über die Toolbar-Liste von Visual Studiohinzufügen.

Page 182: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA182 Version: 2.5

Produkte Setupversionen ZielplattformTF6100 4.x.x IPC oder CX (x86, x64, ARM)

5.2.2 Anlegen eines neuen ProjektsDas Projektpaket vom TwinCAT‑OPC‑UA‑Server‑Konfigurator bindet sich in das sogenannte Connectivity-Paket ein und kann beim Anlegen eines neuen Visual‑Studio‑Projekts ausgewählt werden.

Page 183: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA 183Version: 2.5

Produkte Setupversionen ZielplattformTF6100 4.x.x IPC oder CX (x86, x64, ARM)

5.2.3 Auswahl eines ZielgerätsDer TwinCAT‑OPC‑UA‑Server‑Konfigurator ermöglicht die vollständige Parametrisierung des Servers überOPC UA. Ähnlich wie im TwinCAT‑XAE‑System kann über eine Toolbar ein Ziel-OPC-UA-Server ausgewähltwerden.

Sämtliche Einstellungen in der Konfiguration werden dann für diesen OPC UA Server vorgenommen.Grundlage hierfür ist der sogenannte Konfigurations-Namespace [} 132] des Servers.

Page 184: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA184 Version: 2.5

Produkte Setupversionen ZielplattformTF6100 4.x.x IPC oder CX (x86, x64, ARM)

5.2.4 Hinzufügen von ADS-GerätenDer TwinCAT OPC UA Server kann mit einem oder mehreren ADS-Geräten „sprechen“. Zur Herstellungeiner Verbindung ist eine Route zu dem jeweiligen ADS-Gerät erforderlich. Im Konfigurator werden ADS-Geräte im Bereich Data Access angelegt, konfiguriert und somit dem OPC UA Server bekannt gegeben.Über das Kontextmenü und den dortigen Befehl Add new Device Type können neue ADS-Gerätehinzugefügt werden. Nach Ausführung des Befehls öffnet sich ein Dialogfenster, in demVerbindungsparameter für dieses Gerät konfiguriert werden können, z. B. AMS Net ID, ADS-Port oder auchdie Symboldatei.

Page 185: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA 185Version: 2.5

Nachdem ein Gerät hinzugefügt wurde, können diese Parameter über das Eigenschaftenfenster von VisualStudio bei Bedarf nachträglich modifiziert werden.

Page 186: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA186 Version: 2.5

Auswahl der Symboldatei

Auf dem ausgewählten Zielgerät vorhandene Symboldateien können direkt eingelesen werden. DieseSymboldateien können dabei entweder im TwinCAT‑Bootverzeichnis oder im Symbolverzeichnis desOPC UA Servers hinterlegt sein. Über den entsprechenden Dialog bei der Symboldatei-Konfigurationkönnen diese Dateien selektiert werden.

Der TwinCAT OPC UA File Explorer kann entweder mit dem lokalen TwinCAT‑Verzeichnis oder demRemote‑Bootverzeichnis verbunden werden. Letzteres wird über den Configuration-Namespace des Serverseingelesen (siehe Konfiguration des Namensraums [} 132]).

Page 187: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA 187Version: 2.5

Produkte Setupversionen ZielplattformTF6100 4.x.x IPC oder CX (x86, x64, ARM)

5.2.5 Download/Upload der KonfigurationBei der Benutzung des Konfigurators kann der Anwender sowohl den Download/Upload von komplettenServer-Konfigurationen anstoßen, als auch jede einzelne Facette (Data Access, Historical Access, etc.)einzeln auf ein Zielgerät aufspielen bzw. von dort öffnen. Die hierfür notwendigen Funktionen sind sowohl indie Toolbar als auch in das Kontextmenü der jeweiligen Kategorie eingebunden.

Öffnen einer Konfiguration vom Zielgerät

Durch die entsprechende Schaltfläche in der Toolbar kann die Konfiguration des selektierten Zielgerätsgeöffnet werden.

Siehe auch: Auswahl eines Zielgeräts [} 183]

Aktivieren einer Konfiguration auf ein Zielgerät

Durch die entsprechende Schaltfläche in der Toolbar kann die aktuell geöffnete Konfiguration auf dasselektierte Zielgerät heruntergeladen werden.

Siehe auch: Auswahl eines Zielgeräts [} 183]

Page 188: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA188 Version: 2.5

Öffnen einer Teilkonfiguration

Im Kontextmenü einer bestimmten Facette der Konfiguration kann diese Teilkonfiguration vom selektiertenZielgerät geöffnet werden.

Siehe auch: Auswahl eines Zielgeräts [} 183]

Herunterladen einer Teilkonfiguration

Im Kontextmenü einer bestimmten Facette der Konfiguration kann diese Teilkonfiguration auf das selektierteZielgerät heruntergeladen werden.

Page 189: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA 189Version: 2.5

Siehe auch: Auswahl eines Zielgeräts [} 183]

5.2.6 Import/Export von KonfigurationsdateienDas Kontextmenü ermöglicht den Import/Export von Konfigurationsdateien des TwinCAT OPC UA Servers.

Importieren einer Teilkonfiguration

Zum Importieren einer Teilkonfiguration (z. B. Historical Access) aus einer XML-Konfigurationsdatei, kannder entsprechende Eintrag im Kontextmenü aufgerufen werden.

Exportieren einer Teilkonfiguration

Zum Exportieren einer Teilkonfiguration (z. B. Historical Access) in eine XML-Konfigurationsdatei, kann derentsprechende Eintrag im Kontextmenü aufgerufen werden.

Page 190: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA190 Version: 2.5

5.2.7 Konfiguration von Historical AccessZur Konfiguration von Historical Access müssen zunächst die History Adapter eingerichtet werden. Hierbeihandelt es sich um die unterschiedlichen Speicherorte für die historischen Daten, z. B. RAM, Datei, SQLServer. Über das Kontextmenü können diese Adapter zur Konfiguration hinzugefügt werden. Je nachAdaptertyp müssen weitere Parameter spezifiziert werden, z. B. der gewünschte Pfad zur Dateiablage oderdie Zugangsdaten zum SQL Server.

Page 191: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA 191Version: 2.5

Nachdem der History Adapter angelegt wurde, können die gewünschten Variablen zu diesem Adapterhinzugefügt werden. Diese Variablen müssen zum Zeitpunkt des Engineerings bereits auf dem selektiertenOPC UA Server vorliegen. Zur Selektion der Variablen kann der integrierte OPC UA Target Browserverwendet werden.

Per Drag-and-drop kann eine Variable aus dem Target Browser zum History Adapter hinzugefügt werden. ImEigenschaftenfenster der neu hinzugefügten Variable können weitere Parameter spezifiziert werden, z. B.die gewünschte SamplingRate oder die Größe des zu verwendenden Ringbuffers im History Adapter.

Siehe auch: Auswahl eines Zielgeräts [} 183]

Page 192: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA192 Version: 2.5

5.2.8 Konfiguration von Alarms & ConditionsZur Konfiguration von Alarms & Conditions müssen zunächst die Condition Controller eingerichtet werden.Hierbei handelt es sich um Container-Einheiten, die Alarme gruppieren. Über das Kontextmenü könnendiese Controller zur Konfiguration hinzugefügt werden.

Nachdem der Condition Controller angelegt wurde, können die gewünschten Variablen zu diesem Controllerhinzugefügt und im Sinne des Alarms & Conditions überwacht werden. Für jede Variable wird hierbei eineCondition angelegt, welche die Parameter für die Überwachung spezifiziert. Diese Variablen müssen zumZeitpunkt des Engineerings bereits auf dem selektierten OPC UA Server vorliegen. Zur Selektion derVariablen kann der integrierte OPC UA Target Browser verwendet werden.

Per Drag-and-drop kann eine Variable aus dem Target Browser zum Condition Controller hinzugefügtwerden. In dem sich öffnenden Dialogfenster können der Condition-Typ und die weiteren Parameter für dieÜberwachung definiert werden, z. B. SamplingRate und Severity.

Page 193: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA 193Version: 2.5

Danach können, je nach ausgewähltem Condition-Typ, zusätzliche Parameter im Eigenschaftenfenster derCondition definiert werden. Die Schwellenwerte für den jeweiligen Condition‑Typ werden als einzelne Itemsin der Baumansicht der Konfiguration angezeigt. Auch hier lassen sich die entsprechenden Parameter imEigenschaftenfenster konfigurieren.

Anschließend müssen die entsprechenden Alarmtexte definiert werden, die beim Triggern einer Condition anden OPC UA Client versendet werden sollen. Das Anlegen von Alarmtexten wird im Abschnitt Konfigurationvon Alarmtexten [} 195] beschrieben. Die Alarmtexte können per Drag-and-drop auf den jeweiligenSchwellenwert einer Condition gezogen werden.

Page 194: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA194 Version: 2.5

OffNormal-Alarmtyp

Bei einem OffNormal‑Alarmtyp lässt sich ein Normalwert definieren, den eine Variable üblicherweise habensollte. Weicht der Variablenwert hiervon ab, wird ein Alarm ausgelöst. Entsprechend muss dieserNormalwert konfiguriert werden.

Anschließend müssen die entsprechend zu versendenden Alarmtexte per Drag-and-drop aus demResources-Bereich selektiert und auf den jeweiligen Schwellenwert der Condition gezogen werden.

Limit-Alarmtyp

Bei einem Limit-Alarmtyp lassen sich unterschiedliche Schwellenwerte definieren, bei deren Erreichen einAlarm verschickt werden soll. Diese Schwellenwerte müssen entsprechend konfiguriert werden.

Anschließend müssen die entsprechend zu versendenden Alarmtexte per Drag-and-drop aus demResources-Bereich selektiert und auf den jeweiligen Schwellenwert der Condition gezogen werden.

Produkte Setupversionen ZielplattformTF6100 4.x.x IPC oder CX (x86, x64, ARM)

Siehe auch: Auswahl eines Zielgeräts [} 183]

Page 195: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA 195Version: 2.5

5.2.9 Konfiguration von AlarmtextenDer TwinCAT‑OPC‑UA‑Server‑Konfigurator ermöglicht die (mehrsprachige) Verwaltung von Alarmtexten, diezum Beispiel beim Alarms & Conditions [} 192] verwendet werden. Die Konfiguration der Texte erfolgt imBereich Resources.

Jeder Alarmtext wird durch eine eindeutige ID identifiziert. Dieser ID können dann mehrere Sprachtextezugeordnet werden.

Page 196: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA196 Version: 2.5

Über das Kontextmenü können sogenannte „Resource Items“ angelegt und mit neuen Sprachelementenversehen werden.

Das Eigenschaftenfenster ermöglicht die weitere Parametrisierung eines Sprachelementen, zum Beispiel derSprachtext und die zugeordnete Sprache. Beim Setzen der Sprache wird die zugehörige Locale IDautomatisch gesetzt. Die Locale ID wird vom OPC UA Client angefordert um anzugeben in welcher Spracheer Alarmtexte erwartet.

Produkte Setupversionen ZielplattformTF6100 4.x.x IPC oder CX (x86, x64, ARM)

Page 197: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA 197Version: 2.5

5.2.10 Konfiguration der EndpunkteDie Endpunkte des TwinCAT OPC UA Servers geben an, welche Security-Mechanismen bei derVerbindungsherstellung eines Clients benutzt werden sollen. Diese reichen von „unverschlüsselt“ bis zu„verschlüsselt und signiert“, basierend auf verschiedenen Schlüsselstärken. Die Endpunkte können über denKonfigurator aktiviert/deaktiviert werden. Zum Beispiel kann es sinnvoll sein, den unverschlüsseltenEndpunkt zu deaktivieren, damit sich alle Clients nur mit gültigem und als vertrauenswürdig eingestuftemZertifikat verbinden können. Die Konfiguration der Endpunkte erfolgt direkt auf Ebene desOPC‑UA‑Server‑Projekts. Durch einen Doppelklick auf das Projekt können in der RegisterkarteUA Endpoints die entsprechenden Einstellungen vorgenommen werden. Diese Einstellungen werden nacheinem Aktivieren der Konfiguration und einem anschließenden Neustart des Servers wirksam (sieheDownload/Upload der Konfiguration [} 187] und Neustart des Servers [} 198]).

Produkte Setupversionen ZielplattformTF6100 4.x.x IPC oder CX (x86, x64, ARM)

5.2.11 Konfiguration von Zertifikats-VertrauenseinstellungenDie auf dem Server vorhandenen Client-Zertifikate können über den Konfigurator komfortabel verwaltetwerden. In den Projekteinstellungen können im Bereich UA Endpoints > Client-Zertifikate alsvertrauenswürdig eingestuft oder verweigert werden.

Page 198: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA198 Version: 2.5

Nachdem ein OPC UA Client zum ersten Mal versucht hat, sich mit einem sicheren Endpunkt des Servers zuverbinden, wird das Client-Zertifikat auf dem Server hinterlegt und als „rejected“ deklariert. Anschließendkann der Server-Administrator über oben gezeigten Dialog das Zertifikat freischalten. Ein anschließenderVerbindungsversuch des Clients mit einem gesicherten Endpunkt wird dann erfolgreich sein.

5.2.12 Neustart des ServersDer TwinCAT‑OPC‑UA‑Server‑Konfigurator ermöglicht das Antriggern eines Neustarts vom OPC UA Server.Dies kann lokal oder remote erfolgen und bezieht sich auf das jeweils selektierte Zielgerät. Beachten Sie,dass ein Neustart des Servers immer einen Verbindungsverlust aller verbundenen Clients nach sich zieht.Der Neustart kann über die Toolbar getriggert werden.

Produkte Setupversionen ZielplattformTF6100 4.x.x IPC oder CX (x86, x64, ARM)

Siehe auch: Auswahl eines Zielgeräts [} 183]

5.2.13 Troubleshooting & LoggingFür eine erweiterte Diagnose kann eine Loggingfunktion des TwinCAT OPC UA Servers aktiviert werden. Inder Registerkarte Online Panel des Projekts kann diese Funktion lokal oder remote, je nach selektiertemZielgerät, aktiviert oder deaktiviert werden.

Page 199: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Konfiguration

TC3 OPC UA 199Version: 2.5

AppTrace

In den meisten Fällen ist es ausreichend ein sogenanntes „AppTrace“ zu erstellen. Je höher der Trace level,desto detailliertere (und mehr) Daten werden geschrieben.

StackTrace

In einigen wenigen Fällen ist es zusätzlich notwendig ein sogenanntes „StackTrace“ zu erstellen. Auch hiergilt: Je höher der Trace level, desto detailliertere (und mehr) Daten werden geschrieben.

Hinweis

Aktivierung des LoggingsBeachten Sie, dass die Loggingfunktion so lange aktiv ist, bis sie wieder über den Konfigu-rator deaktiviert oder bis der TwinCAT OPC UA Server neu gestartet wird.

Hinweis

Schreiben der LogdateiDurch das Aktivieren der Loggingfunktion auf dem Server wird eine Protokolldatei auf demDateisystem geschrieben. Stellen Sie sicher, dass ausreichend Speicherplatz zur Verfü-gung steht und setzen Sie die Loggingparameter (Anzahl Logdateien, Größe pro Logdatei)entsprechend.

Hinweis

Performance- und TimingverhaltenBeachten Sie, dass sich durch Aktivieren der Protokollfunktionen das Timing-Verhalten desOPC UA Servers verändert und hierdurch, je nach Plattform und Projekt, Geschwindig-keitseinbußen entstehen können.

Produkte Setupversionen ZielplattformTF6100 4.x.x IPC oder CX (x86, x64, ARM)

Siehe auch: Auswahl eines Zielgeräts [} 183]

Page 200: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

SPS API

TC3 OPC UA200 Version: 2.5

6 SPS API

6.1 Funktionsbausteine

6.1.1 UA_Connect

Dieser Funktionsbaustein stellt eine OPC-UA-Remote-Verbindung zu einem anderen OPC UA Server her,der via ServerUrl und SessionConnectInfo spezifiziert wird. Der Funktionsbaustein gibt einVerbindungshandle zurück, der für andere Funktionsbausteine, z. B. UA_Read, verwendet werden kann.

VAR_INPUTVAR_INPUT    Execute            : BOOL;    ServerUrl          : STRING(MAX_STRING_LENGTH);    SessionConnectInfo : ST_UASessionConnectInfo;         Timeout            : TIME := DEFAULT_ADS_TIMEOUT; END_VAR

Execute: Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.

ServerUrl: OPC UA Server URL. d. h. 'opc.tcp://172.16.3.207:4840' oder 'opc.tcp://CX_0193BF:4840'.

SessionConnectInfo: Verbindungsinformation (siehe ST_UASessionConnectInfo [} 216])

Timeout: Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetztauf 5 Sekunden.

HINWEIS! ST_UASessionConnectInfo.tSessionTimeout muss kürzer sein als dieses Timeout.

VAR_OUTPUTVAR_OUTPUT    ConnectionHdl : DWORD;    Done          : BOOL;    Busy          : BOOL;    Error         : BOOL;    ErrorID       : DWORD;END_VAR

ConnectionHdl: OPC‑UA‑Verbindungshandle.

Done: Schaltet auf TRUE, wenn der Funktionsbaustein erfolgreich ausgeführt wurde.

Busy: Dieser Ausgang ist 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 wirdnicht die Zeit der Verbindung sondern die Empfangszeit überwacht.

Error: Dieser Ausgang schaltet auf TRUE, wenn bei der Ausführung eines Befehls ein Fehler auftritt. Derbefehlsspezifische Fehlercode ist in ErrorID enthalten.

ErrorID: Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls.

Page 201: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

SPS API

TC3 OPC UA 201Version: 2.5

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

6.1.2 UA_Disconnect

Dieser Funktionsbaustein schließt eine OPC-UA-Remote-Verbindung zu einem anderen OPC UA Server.Die Verbindung wird über ihr Verbindungshandle spezifiziert.

VAR_INPUTVAR_INPUT    Execute           : BOOL;    ConnectionHdl     : DWORD;         Timeout           : TIME := DEFAULT_ADS_TIMEOUT; END_VAR

Execute: Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.

ConnectionHdl: Verbindungshandle, das vorher vom Funktionsbaustein UA_Connect [} 200] ausgegebenwurde.

Timeout: Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetztauf 5 Sekunden.

VAR_OUTPUTVAR_OUTPUT    Done        : BOOL;    Busy        : BOOL;    Error       : BOOL;    ErrorID     : DWORD;END_VAR

Done: Schaltet auf TRUE, wenn der Funktionsbaustein erfolgreich ausgeführt wurde.

Busy: Dieser Ausgang ist 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 wirdnicht die Zeit der Verbindung sondern die Empfangszeit überwacht.

Error: Dieser Ausgang schaltet auf TRUE, wenn bei der Ausführung eines Befehls ein Fehler auftritt. Derbefehlsspezifische Fehlercode ist in nErrID enthalten.

ErrorID: Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

Page 202: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

SPS API

TC3 OPC UA202 Version: 2.5

6.1.3 UA_GetNamespaceIndex

Dieser Funktionsbaustein erfasst den Namespace Index für einen Namespace URI. Der Namespace Indexwird für die Identifizierung von Symbolen benötigt, z. B. wenn die Funktionsbausteine UA_Read [} 210]oderUA_Write [} 212]genutzt werden.

VAR_INPUTVAR_INPUT    Execute       : BOOL;    ConnectionHdl : DWORD;    NamespaceUri  : STRING(MAX_STRING_LENGTH);    Timeout       : TIME := DEFAULT_ADS_TIMEOUT; END_VAR

Execute: Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.

ConnectionHdl: Verbindungshandle, das vorher vom Funktionsbaustein UA_Connect [} 200] ausgegebenwurde.

NamespaceUri: Namensraum-URI, der aufgelöst werden soll. Beim TwinCAT OPC UA Server ist das für dieerste SPS-Laufzeit „PLC1“.

Timeout: Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetztauf 5 Sekunden.

VAR_OUTPUTVAR_OUTPUT    NamespaceIndex : UINT;    Done           : BOOL;    Busy           : BOOL;    Error          : BOOL;    ErrorID        : DWORD;END_VAR

NamespaceIndex: Namespace Index des gegebenen Namensraum-URI. Dieser kann in anderenFunktionsbausteinen verwendet werden, z. B. UA_Read oder UA_Write.

Done: Schaltet auf TRUE, wenn der Funktionsbaustein erfolgreich ausgeführt wurde.

Busy: Dieser Ausgang ist 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 wirdnicht die Zeit der Verbindung sondern die Empfangszeit überwacht.

Error: Dieser Ausgang schaltet auf TRUE, wenn bei der Ausführung eines Befehls ein Fehler auftritt. Derbefehlsspezifische Fehlercode ist in ErrorID enthalten.

ErrorID: Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

Page 203: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

SPS API

TC3 OPC UA 203Version: 2.5

6.1.4 UA_MethodCall

Dieser Funktionsbaustein ruft eine Methode auf einem Remote-UA-Server auf. Die Methode wird durch eineVerbindung und ein Methodenhandle bestimmt. Erstere kann durch UA_Connect [} 200] und letzterer durchUA_MethodGetHandle [} 204] abgefragt werden.

VAR_INPUTVAR_INPUT    Execute                     : BOOL;    ConnectionHdl               : DWORD;    MethodHdl                   : DWORD;    nNumberOfInputArguments     : UDINT;    pInputArgInfo               : POINTER TO ST_UAMethodArgInfo;    cbInputArgInfo              : UDINT;    pInputArgData               : PVOID;    cbInputArgData              : UDINT;    pInputWriteData             : PVOID;    cbInputWriteData            : UDINT;    nNumberOfOutputArguments    : UDINT;    pOutputArgInfo              : POINTER TO ST_UAMethodArgInfo;    cbOutputArgInfo             : UDINT;     pOutputArgInfoAndData       : PVOID;    cbOutputArgInfoAndData      : UDINT;     Timeout                     : TIME := DEFAULT_ADS_TIMEOUT; END_VAR

Execute: Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.

ConnectionHdl: Verbindungshandle, das vorher vom Funktionsbaustein UA_Connect [} 200] ausgegebenwurde.

MethodHdl: Methodenhandle, zuvor vom Funktionsbaustein UA_MethodGetHandle [} 204] ausgegeben.

nNumberOfInputArguments: Anzahl Eingabeparameter.

pInputArgInfo: Zeigt auf die Pufferadresse, wo Eingabeparameterinformationen in Form eines ArraysST_UAMethodArgInfo hinterlegt sind.

cbInputArgInfo: Größe des Puffers, wo die Eingabeparameterinformation hinterlegt ist.

pInputArgData: Zeigt auf die Pufferadresse, wo Eingabeparameter (konstanter Länge) hinterlegt sind.

cbInputArgData: Größe des Eingabepuffers, wo Eingabeparameter (mit konstanter Länge) hinterlegt sind.

pInputWriteData: Zeiger auf Pufferadresse, wo Eingabeparameter (dynamischer Länge) hinterlegt sind.

cbInputWriteData: Größe des Eingabepuffers, wo Eingabeparameter (mit dynamischer Länge) hinterlegtsind.

Page 204: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

SPS API

TC3 OPC UA204 Version: 2.5

nNumberOfOutputArguments: Anzahl Ausgabeparameter.

pOutputArgInfo: Zeigt auf die Pufferadresse, wo Ausgabeparameterinformationen als ArrayST_UAMethodArgInfo hinterlegt sind.Für die Bestimmung des Zielspeichers der einzelnen Ausgabeparameter ist nLenData erforderlich.Die anderen Elemente können so gesetzt werden, dass eine Typprüfung der zurückgegebenen Parametererfolgt oder undefiniert bleiben.

cbOutputArgInfo: Größe des Puffers, wo die Ausgabeparameterinformation hinterlegt ist.

pOutputArgInfoAndData: Zeigt auf die Adresse des Puffers, wo die Output-Parameter als BYTE-Arraygespeichert werden sollen. Das BYTE Array enthält die Anzahl der Output-Parameter als DINT, 4 reservierteBytes und Parameterinformationen als ARRAY OF ST_UAMethodArgInfo [} 217] (mit der Länge der Output-Parameter) gefolgt von reinen Daten. Beachten Sie, dass die Daten als 1-byte-Alignment gepackt sind.

cbOutputArgInfoAndData: Größe des Puffers, in dem die Output-Parameter als BYTE-Array gespeichertwerden sollen.

Timeout: Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetztauf 5 Sekunden.

VAR_OUTPUTVAR_OUTPUT    cbRead_R     : UDINT;    Done         : BOOL;    Busy         : BOOL;    Error        : BOOL;    ErrorID      : UDINT;END_VAR

cbRead_R: Zählung aller empfangenen Bytes.

Done: Schaltet auf TRUE, wenn der Funktionsbaustein erfolgreich ausgeführt wurde.

Busy: Dieser Ausgang ist 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 wirdnicht die Zeit der Verbindung sondern die Empfangszeit überwacht.

Error: Dieser Ausgang schaltet auf TRUE, wenn bei der Ausführung eines Befehls ein Fehler auftritt. Derbefehlsspezifische Fehlercode ist in nErrID enthalten.

ErrorID: Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUa

6.1.5 UA_MethodGetHandle

Dieser Funktionsbaustein erfasst ein Handle für eine UA-Methode, das dann für den Aufruf einer Methodeüber UA_MethodCall [} 203] verwendet werden kann.

Page 205: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

SPS API

TC3 OPC UA 205Version: 2.5

VAR_INPUTVAR_INPUT    Execute          : BOOL;    ConnectionHdl    : DWORD;    ObjectNodeID     : ST_UANodeID;    MethodNodeID     : ST_UANodeID;    Timeout          : TIME := DEFAULT_ADS_TIMEOUT; END_VAR

Execute: Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.

ConnectionHdl: Verbindungshandle, das vorher vom Funktionsbaustein UA_Connect [} 200] ausgegebenwurde.

ObjectNodeID: Objektknoten-ID der aufzurufenden Methode. (Typ: ST_UANodeID [} 217])

MethodNodeID: Methoden-Knoten-ID der aufzurufenden Methode. Entspricht dem ID-Atttribut imUA‑Namensraum. (Typ: UA_Connect [} 200])

Timeout: Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetztauf 5 Sekunden.

VAR_OUTPUTVAR_OUTPUT    MethodHdl   : DWORD;    Done        : BOOL;    Busy        : BOOL;    Error       : BOOL;    ErrorID     : UDINT;END_VAR

MethodHdl: Gibt ein Methodenhandle zurück, das für den Aufruf einer Methode über UA_MethodCall [} 203]verwendet werden kann.

Done: Schaltet auf TRUE, wenn der Funktionsbaustein erfolgreich ausgeführt wurde.

Busy: Dieser Ausgang ist 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 wirdnicht die Zeit der Verbindung sondern die Empfangszeit überwacht.

Error: Dieser Ausgang schaltet auf TRUE, wenn bei der Ausführung eines Befehls ein Fehler auftritt. Derbefehlsspezifische Fehlercode ist in nErrID enthalten.

ErrorID: Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUa

6.1.6 UA_MethodReleaseHandle

Dieser Funktionsbaustein gibt das spezifizierte Methodenhandle frei.

Page 206: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

SPS API

TC3 OPC UA206 Version: 2.5

VAR_INPUTVAR_INPUT    Execute           : BOOL;    ConnectionHdl     : DWORD;    MethodHdl         : DWORD;    Timeout           : TIME := DEFAULT_ADS_TIMEOUT; END_VAR

Execute: Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.

ConnectionHdl: Verbindungshandle, das vorher vom Funktionsbaustein UA_Connect [} 200] ausgegebenwurde.

MethodHdl: Methodenhandle, das zuvor vom Funktionsbaustein UA_MethodGetHandle [} 204] ausgegebenwurde.

Timeout: Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetztauf 5 Sekunden.

VAR_OUTPUTVAR_OUTPUT    Done        : BOOL;    Busy        : BOOL;    Error       : BOOL;    ErrorID     : UDINT;END_VAR

Done: Schaltet auf TRUE, wenn der Funktionsbaustein erfolgreich ausgeführt wurde.

Busy: Dieser Ausgang ist 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 wirdnicht die Zeit der Verbindung sondern die Empfangszeit überwacht.

Error: Dieser Ausgang schaltet auf TRUE, wenn bei der Ausführung eines Befehls ein Fehler auftritt. Derbefehlsspezifische Fehlercode ist in nErrID enthalten.

ErrorID: Enthält den befehlsspezifischen ADS Fehlercode des zuletzt ausgeführten Befehls.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUa

6.1.7 UA_NodeGetHandle

Dieser Funktionsbaustein fragt ein Knotenhandle für ein gegebenes Symbol im UA-Namensraum ab. DasSymbol wird durch ein Verbindungshandle und seine Knoten-ID spezifiziert.

VAR_INPUTVAR_INPUT    Execute       : BOOL;    ConnectionHdl : DWORD;    NodeID        : ST_UANodeID;    Timeout       : TIME := DEFAULT_ADS_TIMEOUT; END_VAR

Page 207: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

SPS API

TC3 OPC UA 207Version: 2.5

Execute: Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.

ConnectionHdl: Verbindungshandle, das vorher vom Funktionsbaustein UA_Connect [} 200] ausgegebenwurde.

Node ID: Knotenhandle, der zuvor vom Funktionsbaustein UA_NodeGetHandle [} 206] ausgegeben wurde.

Timeout: Zeit bis zum Abbruch der Function. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetztauf 5 Sekunden.

VAR_OUTPUTVAR_OUTPUT    NodeHdl     : DWORD;    Done        : BOOL;    Busy        : BOOL;    Error       : BOOL;    ErrorID     : DWORD;END_VAR

NodeHdl: Knotenhandle, das für andere Funktionsbausteine verwendet werden kann, z. B. UA_Read oderUA_Write.

Done: Schaltet auf TRUE, wenn der Funktionsbaustein erfolgreich ausgeführt wurde.

Busy: Dieser Ausgang ist TRUE, bis der Baustein einen Befehl ausführt hat, maximal für die Dauer des„Timeout“ am Eingang. Solange Busy = TRUE akzeptieren die Eingänge keinen neuen Befehl. Es wird nichtdie Zeit der Verbindung sondern die Empfangszeit überwacht.

Error: Dieser Ausgang schaltet auf TRUE, wenn bei der Ausführung eines Befehls ein Fehler auftritt. Derbefehlsspezifische Fehlercode ist in ErrorID enthalten.

ErrorID: Enthält den befehlsspezifischen ADS Fehlercode des zuletzt ausgeführten Befehls.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

6.1.8 UA_NodeGetHandleList

Dieser Funktionsbaustein fragt Knotenhandles für Knoten im UA-Namensraum ab.

VAR_INPUTVAR_INPUT    Execute          : BOOL;    ConnectionHdl    : DWORD;    NodeIDCount      : UINT;    NodeIDs          : ARRAY[1..nMaxNodeIDsInList] OF ST_UANodeID;    Timeout          : TIME := DEFAULT_ADS_TIMEOUT;    END_VAR

Execute: Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.

Page 208: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

SPS API

TC3 OPC UA208 Version: 2.5

ConnectionHdl: Verbindungshandle, das vorher vom Funktionsbaustein UA_Connect [} 200] ausgegebenwurde.

NodeIDCount: Anzahl Knoten, für die ein Knotenhandle erforderlich ist.

NodeIDs: Array von NodeIDs, die mit der struct ST_UANodeID [} 217] erstellt wurden.

Timeout: Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetztauf 5 Sekunden.

VAR_OUTPUTVAR_OUTPUT    NodeHdls     : ARRAY[1..nMaxNodeIDsInList] OF DWORD;    NodeErrorIDs : ARRAY[1..nMaxNodeIDsInList] OF DWORD;    cbData_R     : UDINT;    Done         : BOOL;    Busy         : BOOL;    Error        : BOOL;    ErrorID      : DWORD;END_VAR

NodeHdls: Array angeforderter Knotenhandles.

NodeErrorIDs: Array von Fehler-IDs, falls keine Knotenhandles zur Verfügung stehen.

cbData_R: Größe der gelesenen Daten.

Done: Schaltet auf TRUE, wenn der Funktionsbaustein erfolgreich ausgeführt wurde.

Busy: Dieser Ausgang ist 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 wirdnicht die Zeit der Verbindung sondern die Empfangszeit überwacht.

Error: Dieser Ausgang schaltet auf TRUE, wenn bei der Ausführung eines Befehls ein Fehler auftritt. Derbefehlsspezifische Fehlercode steht in nErrID.

ErrorID: Enthält die Fehler-ID, wenn ein Fehler auftritt.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

6.1.9 UA_NodeReleaseHandle

Dieser Funktionsbaustein gibt ein Knotenhandle frei.

VAR_INPUTVAR_INPUT    Execute       : BOOL;    ConnectionHdl : DWORD;    NodeHdl       : DWORD;    Timeout       : TIME := DEFAULT_ADS_TIMEOUT; END_VAR

Execute: Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.

Page 209: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

SPS API

TC3 OPC UA 209Version: 2.5

ConnectionHdl: Verbindungshandle, das vorher vom Funktionsbaustein UA_Connect [} 200] ausgegebenwurde.

NodeHdl: Freizugebendes Knotenhandle.

Timeout: Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetztauf 5 Sekunden.

VAR_OUTPUTVAR_OUTPUT    Done       : BOOL;    Busy       : BOOL;    Error      : BOOL;    ErrorID    : DWORD;END_VAR

Done: Schaltet auf TRUE, wenn der Funktionsbaustein erfolgreich ausgeführt wurde.

Busy: Dieser Ausgang ist 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 wirdnicht die Zeit der Verbindung sondern die Empfangszeit überwacht.

Error: Dieser Ausgang schaltet auf TRUE, wenn bei der Ausführung eines Befehls ein Fehler auftritt. Derbefehlsspezifische Fehlercode ist in ErrorID enthalten.

ErrorID: Enthält den befehlsspezifischen ADS Fehlercode des zuletzt ausgeführten Befehls.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

6.1.10 UA_NodeReleaseHandleList

Dieser Funktionsbaustein gibt mehrere Knotenhandles frei.

VAR_INPUTVAR_INPUT    Execute          : BOOL;    ConnectionHdl    : DWORD;    NodeHdlCount     : UINT;    NodeHdls         : ARRAY[1..nMaxNodeIDsInList] OF DWORD;    Timeout          : TIME := DEFAULT_ADS_TIMEOUT;    END_VAR

Execute: Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.

ConnectionHdl: Verbindungshandle, das vorher vom Funktionsbaustein UA_Connect [} 200] ausgegebenwurde.

NodeHdlCount: Anzahl Knotenhandles.

NodeHdls: Array von Knotenhandles, die freizugeben sind.

Timeout: Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetztauf 5 Sekunden.

Page 210: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

SPS API

TC3 OPC UA210 Version: 2.5

VAR_OUTPUTVAR_OUTPUT    NodeErrorIDs : ARRAY[1..nMaxNodeIDsInList] OF DWORD;    Done         : BOOL;    Busy         : BOOL;    Error        : BOOL;    ErrorID      : DWORD;END_VAR

NodeErrorIDs: Array von Fehler-IDs, falls ein Knotenhandle nicht freigegeben werden konnte.

Done: Schaltet auf TRUE, wenn der Funktionsbaustein erfolgreich ausgeführt wurde.

Busy: Dieser Ausgang ist 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 wirdnicht die Zeit der Verbindung sondern die Empfangszeit überwacht.

Error: Dieser Ausgang schaltet auf TRUE, wenn bei der Ausführung eines Befehls ein Fehler auftritt. Derbefehlsspezifische Fehlercode steht in nErrID.

ErrorID: Enthält die Fehler-ID, wenn ein Fehler auftritt.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

6.1.11 UA_Read

Dieser Funktionsbaustein liest Werte aus einem gegebenen Knoten- und Verbindungshandle.

VAR_INPUTVAR_INPUT    Execute           : BOOL;    ConnectionHdl     : DWORD;    NodeHdl           : DWORD;    stNodeAddInfo     : ST_UANodeAdditionalInfo;    pVariable         : PVOID;    cbData            : UDINT;    Timeout           : TIME := DEFAULT_ADS_TIMEOUT;    END_VAR

Execute: Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.

ConnectionHdl: Verbindungshandle, das vorher vom Funktionsbaustein UA_Connect [} 200] ausgegebenwurde.

NodeHdl: Knotenhandle, das zuvor vom Funktionsbaustein UA_NodeGetHandle [} 206] ausgegeben wurde.

stNodeAddInfo: Definiert zusätzliche Informationen, z. B. welches Attribut aus dem UA‑Namensraumgelesen (Standard: 'Value'-Attribut) oder welcher IndexRange verwendet werden soll. Wird durch STRUCTST_UANodeAdditionalInfo [} 218] spezifiziert.

Page 211: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

SPS API

TC3 OPC UA 211Version: 2.5

pVariable: Zeiger auf Datenspeicher, wo die gelesenen Daten abgespeichert werden sollen.

cbData: Bestimmt die Größe der zu lesenden Daten.

Timeout: Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetztauf 5 Sekunden.

VAR_OUTPUTVAR_OUTPUT    Done        : BOOL;    Busy        : BOOL;    Error       : BOOL;    ErrorID     : UDINT;    cbData_R    : UDINT;END_VAR

Done: Schaltet auf TRUE, wenn der Funktionsbaustein erfolgreich ausgeführt wurde.

Busy: Dieser Ausgang ist 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 wirdnicht die Zeit der Verbindung sondern die Empfangszeit überwacht.

Error: Dieser Ausgang schaltet auf TRUE, wenn bei der Ausführung eines Befehls ein Fehler auftritt. Derbefehlsspezifische Fehlercode ist in nErrID enthalten.

ErrorID: Enthält den befehlsspezifischen ADS‑Fehlercode des zuletzt ausgeführten Befehls.

cbData_R: Anzahl zu lesender Bytes.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

6.1.12 UA_ReadList

Dieser Funktionsbaustein liest Werte aus mehreren gegebenen Knoten- und Verbindungshandles.

VAR_INPUTVAR_INPUT    Execute          : BOOL;    ConnectionHdl    : DWORD;    NodeHdlCount     : UINT;    NodeHdls         : ARRAY[1..nMaxNodeIDsInList] OF DWORD;    stNodeAddInfo    : ARRAY[1..nMaxNodeIDsInList] OF ST_UANodeAdditionalInfo;    pVariable        : PVOID;    cbData           : ARRAY[1..nMaxNodeIDsInList] UDINT;    cbDataTotal      : UDINT;    Timeout          : TIME := DEFAULT_ADS_TIMEOUT;    END_VAR

Execute: Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.

ConnectionHdl: Verbindungshandle, das vorher vom Funktionsbaustein UA_Connect [} 200] ausgegebenwurde.

Page 212: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

SPS API

TC3 OPC UA212 Version: 2.5

NodeHdlCount: Anzahl Knotenhandles, die in der Eingangsvariablen NodeHdls gespeichert sind.

NodeHdls: Array von Knotenhandles, die vorher vom Funktionsbaustein UA_NodeGetHandle [} 206] oderUA_NodeGetHandleList [} 207] erhalten wurden.

stNodeAddInfo: Definiert zusätzliche Informationen, z. B. welches Attribut aus dem UA‑Namensraumgelesen (Standard: 'Value'-Attribut) oder welcher IndexRange verwendet werden soll. Wird durch STRUCTST_UANodeAdditionalInfo [} 218] spezifiziert.

pVariable: Zeiger auf Datenspeicher, wo die gelesenen Daten abgespeichert werden sollen.

cbData: Bestimmt die Größe der zu lesenden Daten.

cbDataTotal: Gesamtgröße der zu empfangenden Daten.

Timeout: Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetztauf 5 Sekunden.

VAR_OUTPUTVAR_OUTPUT    Done      : BOOL;    Busy      : BOOL;    Error     : BOOL;    ErrorID   : UDINT;    cbData_R  : UDINT;END_VAR

Done: Schaltet auf TRUE, wenn der Funktionsbaustein erfolgreich ausgeführt wurde.

Busy: Dieser Ausgang ist 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 wirdnicht die Zeit der Verbindung sondern die Empfangszeit überwacht.

Error: Dieser Ausgang schaltet auf TRUE, wenn bei der Ausführung eines Befehls ein Fehler auftritt. Derbefehlsspezifische Fehlercode steht in nErrID.

ErrorID: Enthält den befehlsspezifischen ADS‑Fehlercode des zuletzt ausgeführten Befehls.

cbData_R: Anzahl der gelesenen Bytes

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

6.1.13 UA_Write

Dieser Funktionsbaustein schreibt Werte in ein gegebenes Knoten- und Verbindungshandle.

Page 213: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

SPS API

TC3 OPC UA 213Version: 2.5

VAR_INPUTVAR_INPUT    Execute        : BOOL;    ConnectionHdl  : DWORD;    NodeHdl        : DWORD;    stNodeAddInfo  : ST_UANodeAdditionalInfo;     pVariable      : PVOID;    cbData         : UDINT;         Timeout        : TIME := DEFAULT_ADS_TIMEOUT; END_VAR

Execute: Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.

ConnectionHdl: Verbindungshandle, das vorher vom Funktionsbaustein UA_Connect [} 200] ausgegebenwurde.

NodeHdl: Knotenhandle, der zuvor vom Funktionsbaustein UA_NodeGetHandle [} 206] ausgegeben wurde.

stNodeAddInfo: Definiert zusätzliche Informationen, z. B. auf welchen IndexRange oder welches Attributgeschrieben werden soll (standardmäßig wird das 'Value'-Attribut verwendet). Wird durch STRUCTST_UANodeAdditionalInfo [} 218] spezifiziert.

pVariable: Zeiger auf zu schreibende Daten.

cbData: Legt die Größe der zu schreibenden Werte fest.

Timeout: Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetztauf 5 Sekunden.

VAR_OUTPUTVAR_OUTPUT    Done      : BOOL;    Busy      : BOOL;    Error     : BOOL;    ErrorID   : DWORD;END_VAR

Done: Schaltet auf TRUE, wenn der Funktionsbaustein erfolgreich ausgeführt wurde.

Busy: Dieser Ausgang ist 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 wirdnicht die Zeit der Verbindung sondern die Empfangszeit überwacht.

Error: Dieser Ausgang schaltet auf TRUE, wenn bei der Ausführung eines Befehls ein Fehler auftritt. Derbefehlsspezifische Fehlercode ist in ErrorID enthalten.

ErrorID: Enthält den befehlsspezifischen ADS‑Fehlercode des zuletzt ausgeführten Befehls.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

6.2 Datentypen

6.2.1 E_UAAttributeIDE_UAAttributeIDTYPE E_UAAttributeID:(    eUAAI_NodeID     := 1,    eUAAI_NodeClass    := 2,    eUAAI_BrowseName := 3,

Page 214: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

SPS API

TC3 OPC UA214 Version: 2.5

    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

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

6.2.2 E_UADataTypeE_UADataTypeTYPE E_UADataType:(    eUAType_Undefinied := -1,    eUAType_Null     := 0,    eUAType_Boolean    := 1,    eUAType_SByte     := 2,    eUAType_Byte     := 3,    eUAType_Int16     := 4,    eUAType_UInt16     := 5,    eUAType_Int32     := 6,    eUAType_UInt32     := 7,    eUAType_Int64     := 8,    eUAType_UInt64     := 9,    eUAType_Float     := 10,    eUAType_Double     := 11,    eUAType_String     := 12,    eUAType_DateTime := 13,    eUAType_Guid     := 14,    eUAType_ByteString := 15,    eUAType_XmlElement := 16,    eUAType_NodeId     := 17,    eUAType_ExpandedNodeId := 18,    eUAType_StatusCode := 19,    eUAType_QualifiedName := 20,    eUAType_LocalizedText := 21,    eUAType_ExtensionObject:= 22,    eUAType_DataValue := 23,    eUAType_Variant    := 24,    eUAType_DiagnosticInfo := 25)DINT;END_TYPE

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

6.2.3 E_UAIdentifierTypeE_UATransportProfile

Page 215: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

SPS API

TC3 OPC UA 215Version: 2.5

TYPE E_UAIdentifierType:(    eUAIdentifierType_String := 1,    eUAIdentifierType_Numeric := 2,    eUAIdentifierType_GUID := 3,    eUAIdentifierType_Opaque := 4)DINT;END_TYPE

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

6.2.4 E_UASecurityMsgModeE_UASecurityMsgModeTYPE E_UASecurityMsgMode:(    eUASecurityMsgMode_BestAvailable := 0,    eUASecurityMsgMode_None     := 1,    eUASecurityMsgMode_Sign     := 2,    eUASecurityMsgMode_Sign_Encrypt := 3)DINT;END_TYPE

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

6.2.5 E_UASecurityPolicyE_UASecurityPolicyTYPE E_UASecurityPolicy:(    eUASecurityPolicy_BestAvailable := 0    eUASecurityPolicy_None     := 1,    eUASecurityPolicy_Basic128     := 2,    eUASecurityPolicy_Basic128Rsa15 := 3,    eUASecurityPolicy_Basic256     := 4)DINT;END_TYPE

None: Richtlinie für Konfigurationen mit geringsten Sicherheitsanforderungen.

Basic128: Richtlinie für Konfigurationen mit geringen bis mittleren Sicherheitsanforderungen.

Basic128Rsa15: Definiert Sicherheitsrichtlinie für Konfigurationen mit mittlerer bis hoher Sicherheit.

Basic256: Definiert eine Sicherheitsrichtlinie für Konfigurationen mit hohen Sicherheitsanforderungen.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

Page 216: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

SPS API

TC3 OPC UA216 Version: 2.5

6.2.6 E_UATransportProfileE_UATransportProfileTYPE E_UATransportProfile:(    eUATransportProfileUri_UATcp        := 1,    eUATransportProfileUri_WSHttpBinary     := 2,    eUATransportProfileUri_WSHttpXmlOrBinary := 3,    eUATransportProfileUri_WSHttpXml     := 4)DINT;END_TYPE

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

6.2.7 ST_UASessionConnectInfoST_UASessionConnectInfo TYPE ST_UASessionConnectInfo:STRUCT    sApplicationUri     : STRING(MAX_STRING_LENGTH);    sApplicationName    : STRING(MAX_STRING_LENGTH);

    eSecurityMode     : E_UASecurityMsgMode;    eSecurityPolicyUri : E_UASecurityPolicy;    eTransportProfileUri : E_UATransportProfile;

    tSessionTimeout     : TIME;    tConnectTimeout     : TIME;END_STRUCTEND_TYPE

sApplicationUri: Anwendungs-Uri maximale Zeichenkettenlänge 255. Ab TcUAClient 2.0.0.14 wird diese automatisch vom Zertifikat vorgegeben, wie in der PLCOpenSpezifikation definiert.

sApplicationName: Anwendungsname mit maximaler Zeichenkettenlänge von 255.

eSecurityMode: Sicherheitsmeldungsmodus. Verfügbare Modi siehe E_UASecurityMsgMode [} 215].

eSecurityPolicyUri: Sicherheitsrichtlinien-Uri. Verfügbare Sicherheitsrichtlinien-Uri siehe E_UASecurityPolicy[} 215].

eTransportProfileUri: Transportprofil-Uri. Verfügbare Transportprofil-Uri siehe E_UATransportProfile [} 216];

nSessionTimeout: Wert Sitzungstimeout.

nConnectTimeout: Wert Verbindungstimeout.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

6.2.8 ST_UAIndexRangeST_UAIndexRange

Page 217: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

SPS API

TC3 OPC UA 217Version: 2.5

TYPE ST_UAIndexRange:STRUCT    nStartIndex     : UDINT;    nEndIndex     : UDINT;END_STRUCTEND_TYPE

Für alle Dimensionen:

• StartinIndex und EndIndex müssen zugewiesen werden.• StartIndex muss kleiner als EndIndex sein.• Um auf alle Elemente in einer Dimension zugreifen zu können, müssen StartIndex und EndIndex

abhängig von der Gesamtzahl Elemente in der Dimension zugewiesen werden.• Einzelne Elemente einer Dimension können ausgewählt werden, indem der gleiche StartIndex und

EndIndex angegeben wird.

nStartIndex: Startindex der Daten.

nEndIndex: Endindex der Daten.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

6.2.9 ST_UAMethodArgInfoST_UAMethodArgInfo TYPE ST_UAMethodArgInfo:STRUCT    DataType     : E_UADataType := -1;    ValueRank    : DINT := 2147483647;    ArrayDimensions : ARRAY[1..3] OF UDINT := [0,0,0];    nLenData     : DINT;END_STRUCTEND_TYPE

E_UADataType: Legt den UA‑Datentyp für den Methodenparameter fest. (E_UADataType [} 214])

ValueRank: Legt fest, ob der Parameter Skalar (-1) oder Array ist.

ArrayDimensions: Wenn der Parameter ein Array ist, spezifiziert dieser die Dimensionen des Arrays. JedesElement bestimmt die Länge pro Dimension.

nLenData: Spezifiziert die Länge des Arguments. Bei Ausgabeinformationen wird von STRUCT nur diesesElement gefordert.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

6.2.10 ST_UANodeIDST_UANodeID TYPE ST_UANodeID:STRUCT    nNamespaceIndex     : UINT;    nReserved     : ARRAY [1..2] OF BYTE; //fill bytes    sIdentifier     : STRING(MAX_STRING_LENGTH);

Page 218: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

SPS API

TC3 OPC UA218 Version: 2.5

    eIdentifierType     : E_UAIdentifierType;END_STRUCTEND_TYPE

nNamespaceIndex: Namensraum-Index unter dem der Knoten verfügbar ist. Kann mit demFunktionsbaustein UA_GetNamespaceIndex [} 202] bestimmt werden.

sIdentifier: Bezeichner wie im UA‑Namensraum gezeigt (Attribut 'Identifier').

eIdentifierType: Typ der Variablen, beschrieben mittels E_UAIdentifierType [} 214].

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

6.2.11 ST_UANodeAdditionalInfoST_UANodeAdditionalInfo TYPE ST_UANodeAdditionalInfo:STRUCT    eAttributeID : E_UAAttributeID;    nIndexRangeCount : UINT;    nReserved     : ARRAY[1..2] OF BYTE; // fill bytes    stIndexRange : ARRAY[1..nMaxIndexRange] OF ST_UAIndexRange;END_STRUCTEND_TYPE

eAttributeID: Spezifiziert die ID des OPC‑UA‑Attributs. Standardmäßig wird eUAAI_Value verwendet.(E_UAAttributeID [} 213])

nIndexRangeCount: Legt fest, wie viele Indexbereiche in stIndexRange verwendet werden.

stIndexRange: Spezifiziert einen Indexbereich für das Lesen von Werten aus einem Array.(ST_UAIndexRange [} 216])

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS BibliothekenTwinCAT 3.1 Win32, Win64, CE-X86, CE-ARM Tc3_PLCopen_OpcUaTwinCAT 2.11 R3 Build 2245 Win32, CE-X86, CE-ARM Tc2_PLCopen_OpcUa

Page 219: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Beispiele

TC3 OPC UA 219Version: 2.5

7 BeispieleÜbersicht

Beispiel Kategorie TwinCAT-Ver-sion

Beschreibung Download

TF6100_OPCUA_ServerSample

OPC UA Server TC3(>=3.1.4020.0)

Das Beispiel beinhaltet eine SPSzur Bereitstellung von Variablenfür denTwinCAT OPC UA Server (DataAccess).

https://infosys.beckhoff.com/content/1031/TF6100_Tc3_OpcUa/Resources/zip/4695962507.zip

TF6100_OPCUA_ClientSample

OPC UA Client TC3(>=3.1.4020.0)

Beispiele für UA_Read,UA_Write, UA_ReadList undUA_MethodCall(Tc3_PLCopen_OpcUa)Das Projekt beinhaltet einezweite SPS zur exemplarischenBereitstellung derOPC UA Server Definition (DataAccess).

https://infosys.beckhoff.com/content/1031/TF6100_Tc3_OpcUa/Resources/zip/4695964171.zip

TF6100_OPCUA_HASample

OPC UA Server TC3(>=3.1.4020.0)

Historical Access: SPS-Beispielprogramm

https://infosys.beckhoff.com/content/1031/TF6100_Tc3_OpcUa/Resources/zip/4695965835.zip

TS6100_OPCUA_ClientSample

OPC UA Client TC2 Beispiele für UA_Read undUA_Write

https://infosys.beckhoff.com/content/1031/TF6100_Tc3_OpcUa/Resources/zip/4695969163.zip

TS6100_OPCUA_HASample

OPC UA Server TC2 Historical Access: SPS-Beispielprogramm

https://infosys.beckhoff.com/content/1031/TF6100_Tc3_OpcUa/Resources/zip/4695967499.zip

Page 220: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Anhang

TC3 OPC UA220 Version: 2.5

8 Anhang

8.1 FehlerdiagnoseDie folgende Tabelle bietet einige hilfreiche Informationen zur Fehlerdiagnose.

TwinCAT OPC UA Server

Verhalten HinweiseEin OPC UA Client sieht den PLC Namespacenicht

TF6100 Setup Version 3.x und kleiner: Dieser Status istein Hinweis auf eine fehlende Lizenz. Überprüfen Sie, obSie eine gültige TF6100 Lizenz aktiviert haben.

Ein OPC UA Client bekommt bei Auslesen vonNodes den StatusCode 0x810e0000

TF6100 Setup Version 4.x: Dieser Status ist ein Hinweisauf eine fehlende Lizenz. Überprüfen Sie, ob Sie einegültige TF6100 Lizenz aktiviert haben.

Die über Kommentare/Attribute freigegebenenVariablen werden nicht im OPC UA Serverangezeigt

Überprüfen Sie, ob die Symboldatei ordnungsgemäß aufdie Steuerung übertragen wurde (z. B. Auswahlkästchenim SPS-Projekt), im Bootverzeichnis vorhanden ist und derPfad zur Symboldatei in der Konfigurationsdatei desServers auf die richtige Symboldatei verweist. Sie könnenauch über die DeviceState Node im jeweiligen Namespaceeventuell aufgetretene ErrorMessages überprüfen. Hierwird z. B. auch eingetragen, wenn die Symboldatei nichtgefunden wurde.Überprüfen Sie auch die ordnungsgemäße Schreibweiseder Kommentare/Attribute.

Die vom OPC UA Client geforderteSamplingrate/PublishingInterval werden vomServer nicht eingehalten

OPC UA Client/Server ist kein Echtzeitprotokoll, d. h. dasses keine Garantie gibt, dass der Server eine vom Clientgeforderte Samplingrate oder PublishingInterval auchimmer zu 100% einhält. Die zur Verfügung stehendenSamplingraten und PublishingIntervalle können in derKonfigurationsdatei des Servers eingesehen und beiBedarf modifiziert werden (<AvailableSamplingRates> und<MinPublishingInterval>).

Ein OPC UA Client kann sich nicht mit demServer verbinden, obwohl der Server imWindows Task Manager angezeigt wird. Eserscheint die Fehlermeldung „Hostunreachable“ (o.ä.)

Überprüfen Sie, ob gegebenenfalls Firewall-Einstellungeneine Kommunikation mit dem Server verhindern. DerServerport muss für eine eingehende TCP-Kommunikationgeöffnet sein, damit sich ein Client verbinden kann.

Ein OPC UA Client sieht zwar die Endpunktedes Servers, eine Verbindung mit diesenschlägt jedoch mit der Fehlermeldung „Hostunreachable“ fehl

Überprüfen Sie, ob die Namensauflösung in IhremNetzwerk ordnungsgemäß funktioniert und der Serverunter seinem Hostnamen erreichbar ist. Auch wenn sichder OPC UA Client augenscheinlich mit der IP-Adressedes Servers verbindet (z. B. opc.tcp://192.168.0.1:4840),um auf die Endpunkte des Servers zuzugreifen, soreturniert der Server in seinen Endpunkten dennoch immerden eigenen Hostnamen. Wenn sich nun der Client direktmit einem der Endpunkte verbindet, so verwendet erwieder den Hostnamen des Servers. Im Falle einer nichtfunktionierenden Namensauflösung schlägt dann dieVerbindung fehl.

Ein OPC UA Client sieht zwar die Endpunktedes Servers, eine Verbindung mit einemsicheren Endpunkt schlägt jedoch fehl. Eserscheint die Fehlermeldung„BadSecurityChecksFailed“

Überprüfen Sie, ob der Server dem Client-Zertifikatvertraut. Die notwendigen Konfigurationsschritte könnenSie im Abschnitt Zertifikatsaustausch [} 121] nachlesen.

Page 221: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Anhang

TC3 OPC UA 221Version: 2.5

Verhalten HinweiseBei Verwendung eines SQL Servers zurSpeicherung von Historical AccessInformationen, werden die Werte nicht zur SQL-Datenbank hinzugefügt

Überprüfen Sie die Zugangsdaten zum SQL Server unddass der SQL Server auch im Netzwerk erreichbar ist.Stellen Sie auch sicher, dass Sie ein „Big Windows“-Betriebssystem auf dem TwinCAT OPC UA Serververwenden, da SQL Server nicht unter Windows CE fürHistorical Access verwendet werden können (SQLCompact hingegen schon).

Beim Auslesen von Variablen erhält ein OPCUA Client die Fehlermeldung„BadDeviceFailure“

Dies ist ein Hinweis darauf, dass das zugehörige ADS-Gerät nicht erreichbar ist, z. B. wenn kein SPS-Programmgestartet ist. Überprüfen Sie die Konnektivität mit demADS-Gerät und stellen Sie sicher, dass die entsprechendeLaufzeit aktiv ist.

Arrays werden nicht voll aufgelöst imNamespace dargestellt

Standardmäßig werden Arrays von einfachen Datentypennicht „aufgeklappt“ im Namensraum dargestellt. EinzelneArray-Indizes sind dennoch über die sogenannteIndexRange Funktion von OPC UA adressierbar. Ein OPCUA Client sollte diese Funktion entsprechend unterstützen.Ist dies nicht der Fall, so kann über einen Optionsschalterin der Konfigurationsdatei des Servers bewirkt werden,dass ein Array „aufgeklappt“ dargestellt und somit jedeseinzelne Arrayelement als separate Node adressierbar ist.Dieser Optionsschalter ist im Abschnitt Verwendung vonArrays [} 70] beschrieben.

8.2 OPC-UA-Client-FehlercodesDie Funktionsbausteine des TwinCAT OPC UA Client besitzen eigene Fehlercodes, die das Auftreten einesFehlers signalisieren und mit einer ErrorID weitere Informationen zum aufgetretenen Problem anzeigen. Eskönnen sowohl TwinCAT-ADS-Fehlermeldungen (ADS Return Codes [} 222]) mit dem Highword 0x0000 alsauch eigene Fehlermeldungen aus dem Client oder der SPS-Bibliothek mit dem Highword 0xE4DDauftreten.

Verwendete TwinCAT-ADS-Fehler sind beispielsweise folgende:

Hex Name Beschreibung0x 0000 0705 DEVICE_INVALIDSIZE Parametergröße nicht korrekt0x 0000 0706 DEVICE_INVALIDDATA Ungültige Parameterwerte

Diese Fehlercodeliste führt die möglichen eigenen Fehlerwerte auf:

Hex Name Beschreibung0x E4DD 0001 UAC_E_FAIL Aufruf von UA Service fehlgeschlagen0x E4DD 0100 UAC_E_CONNECTED Server bereits verbunden0x E4DD 0101 UAC_E_CONNECT Allgemeiner Fehler beim Aufbau einer

Verbindung0x E4DD 0102 UAC_E_UASECURITY UA Security konnte nicht eingerichtet werden0x E4DD 0103 UAC_E_ITEMEXISTS Element ID bereits vorhanden0x E4DD 0104 UAC_E_ITEMNOTFOUND Element existiert nicht0x E4DD 0105 UAC_E_ITEMTYPE Ungültiger oder nicht unterstützter Elementtyp0x E4DD 0106 UAC_E_CONVERSION Variablentypen können nicht konvertiert werden0x E4DD 0107 UAC_E_SUSPENDED Gerät hängt. Bitte später erneut versuchen...0x E4DD 0108 UAC_E_TYPE_NOT_SUPPORTED Konvertierung Variablentyp wird nicht

unterstützt.0x E4DD 0109 UAC_E_NSNAME_NOTFOUND Kein Namensraum mit dem angegebenen

Namen gefunden.

Page 222: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Anhang

TC3 OPC UA222 Version: 2.5

Hex Name Beschreibung0x E4DD 0110 UAC_E_CONNECT_NOTFOUND Verbindung fehlgeschlagen: Ziel-Host konnte

nicht gefunden werden.0x E4DD 0111 UAC_E_TIMEOUT Timeout: d. h. Ziel-Host antwortet nicht0x E4DD 0112 UAC_E_INVALIDHDL Sitzungshandle ungültig0x E4DD 0113 UAC_E_INVALIDNODEID UA-Knoten-ID unbekannt0x E4DD 0114 UAC_E_INVAL_IDENTIFIER_TYPE Bezeichnertyp der UaNodeId ungültig0x E4DD 0115 UAC_E_IDENTIFIER_NOTSUPP Bezeichnertyp UaNodeId wird nicht unterstützt0x E4DD 0116 UAC_E_INVAL_NODE_HDL Ungültiges Knotenhandle0x E4DD 0117 UAC_E_UAREADFAILED UA Read aus unbekannter Ursache

fehlgeschlagen0x E4DD 0118 UAC_E_UAWRITEFAILED UA Write aus unbekannter Ursache

fehlgeschlagen0x E4DD 0119 UAC_E_INVAL_NODEMETHOD_HDL Ungültiges Methodenhandle0x E4DD 011A UAC_E_CALL_FAILED Aufruf fehlgeschlagen, Ursache unbekannt0x E4DD 011B UAC_E_CALLDECODE_FAILED Aufruf erfolgreich, Decodierung Rückgabewert

fehlgeschlagen0x E4DD 011C UAC_E_NOTMAPPEDTYPE Nicht zugeordneter Datentyp in Rückgabewert0x E4DD 011D UAC_E_CALL_FAILED_BADINTERNAL Aufruf fehlgeschlagen mit UA_BadInternal

0x E4DD 011E UAC_E_METHODIDINVALID Unbekannte MethodenID (bei Aufrufzurückgegeben, auch wenn von GetMethodHdlbereitgestellt)

0x E4DD 011F UAC_E_TOOMUCHDIM Methodenaufruf hat Parameter mit mehr als 3Dimensionen zurückgegeben - wird nichtunterstützt.

0x E4DD 0120 UAC_E_CALL_FAILED_INVALIDARG Aufruf fehlgeschlagen mitOpcUa_BadInvalidArgument

0x E4DD 0121 UAC_E_CALL_FAILED_TYPEMISMATCH

Aufruf fehlgeschlagen mitUAC_E_CALL_FAILED_TYPEMISMATCH

0x E4DD 0122 UAC_E_CALL_FAILED_OUTOFRANGE Aufruf fehlgeschlagen mitUAC_E_CALL_FAILED_OUTOFRANGE

0x E4DD 0123 UAC_E_CALL_FAILED_BADSTRUCTURE

Aufruf fehlgeschlagen mitOpcUa_BadStructureMissing

0x E4DD 0124 UAC_E_CALL_TYPEMISMATCH_OUTPARAM

Aufruf erfolgreich, aber keineTypenübereinstimmung der bereitgestelltenAusgabeinformation

0x E4DD 0125 UAC_E_NONVALIDTYPEINFO Knoten hat unzureichende Typinformationen0x E4DD 0126 UAC_E_INVALIDATTRIBID Zugriff auf ungültiges Attribut von Knoten0x E4DD 0128 UAC_E_NOTSUPPORTED Das Kommando wird vom verbundenen

UaServer nicht unterstützt, z. B. beim Aufrufvon UA_HistoryUpdate.

8.3 ADS Return CodesFehlercode: 0x000 [} 222]..., 0x500 [} 223]..., 0x700 [} 223]..., 0x1000 [} 224]......

Globale Fehlercodes

Hex Dec Beschreibung0x0 0 Kein Fehler0x1 1 Interner Fehler0x2 2 Keine Echtzeit0x3 3 Zuweisung gesperrt-Speicherfehler0x4 4 Postfach voll

Page 223: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Anhang

TC3 OPC UA 223Version: 2.5

Hex Dec Beschreibung0x5 5 Falsches HMSG0x6 6 Ziel-Port nicht gefunden0x7 7 Zielrechner nicht gefunden0x8 8 Unbekannte Befehl-ID0x9 9 Ungültige Task-ID0xA 10 Kein IO0xB 11 Unbekannter ADS-Befehl0xC 12 Win32 Fehler0xD 13 Port nicht angeschlossen0xE 14 Ungültige ADS-Länge0xF 15 Ungültige AMS Net ID0x10 16 niedrige Installationsebene0x11 17 Kein Debugging verfügbar0x12 18 Port deaktiviert0x13 19 Port bereits verbunden0x14 20 ADS Sync Win32 Fehler0x15 21 ADS Sync Timeout0x16 22 ADS Sync AMS Fehler0x17 23 Keine Index-Map für ADS Sync vorhanden0x18 24 Ungültiger ADS-Port0x19 25 Kein Speicher0x1A 26 TCP Sendefehler0x1B 27 Host nicht erreichbar0x1C 28 Ungültiges AMS Fragment

Router Fehlercodes

Hex Dec Name Beschreibung0x500 1280 ROUTERERR_NOLOCKEDMEMORY Lockierter Speicher kann nicht zugewiesen werden.0x501 1281 ROUTERERR_RESIZEMEMORY Die Größe des Routerspeichers konnte nicht geändert

werden.0x502 1282 ROUTERERR_MAILBOXFULL Das Postfach hat die maximale Anzahl der möglichen

Meldungen erreicht. Die aktuell gesendete Nachricht wur-de abgewiesen.

0x503 1283 ROUTERERR_DEBUGBOXFULL Das Postfach hat die maximale Anzahl der möglichenMeldungen erreicht.Die gesendete Nachricht wird nicht im ADS Monitor an-gezeigt.

0x504 1284 ROUTERERR_UNKNOWNPORTTYPE Der Porttyp ist unbekannt.0x505 1285 ROUTERERR_NOTINITIALIZED Router ist nicht initialisiert.0x506 1286 ROUTERERR_PORTALREADYINUSE Die gewünschte Portnummer ist bereits vergeben.0x507 1287 ROUTERERR_NOTREGISTERED Der Port ist nicht registriert.0x508 1288 ROUTERERR_NOMOREQUEUES Die maximale Anzahl von Ports ist erreicht.0x509 1289 ROUTERERR_INVALIDPORT Der Port ist ungültig.0x50A 1290 ROUTERERR_NOTACTIVATED Der Router ist nicht aktiv.

Allgemeine ADS Fehlercodes

Hex Dec Name Beschreibung0x700 1792 ADSERR_DEVICE_ERROR Gerätefehler0x701 1793 ADSERR_DEVICE_SRVNOTSUPP Service wird vom Server nicht unterstützt0x702 1794 ADSERR_DEVICE_INVALIDGRP Ungültige Index-Gruppe0x703 1795 ADSERR_DEVICE_INVALIDOFFSET Ungültiger Index-Offset0x704 1796 ADSERR_DEVICE_INVALIDACCESS Lesen und schreiben nicht gestattet.0x705 1797 ADSERR_DEVICE_INVALIDSIZE Parametergröße nicht korrekt0x706 1798 ADSERR_DEVICE_INVALIDDATA Ungültige Parameter-Werte0x707 1799 ADSERR_DEVICE_NOTREADY Gerät ist nicht betriebsbereit0x708 1800 ADSERR_DEVICE_BUSY Gerät ist beschäftigt0x709 1801 ADSERR_DEVICE_INVALIDCONTEXT Ungültiger Kontext (muss in Windows sein)0x70A 1802 ADSERR_DEVICE_NOMEMORY Nicht genügend Speicher0x70B 1803 ADSERR_DEVICE_INVALIDPARM Ungültige Parameter-Werte

Page 224: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Anhang

TC3 OPC UA224 Version: 2.5

Hex Dec Name Beschreibung0x70C 1804 ADSERR_DEVICE_NOTFOUND Nicht gefunden (Dateien,...)0x70D 1805 ADSERR_DEVICE_SYNTAX Syntax-Fehler in Datei oder Befehl0x70E 1806 ADSERR_DEVICE_INCOMPATIBLE Objekte stimmen nicht überein0x70F 1807 ADSERR_DEVICE_EXISTS Objekt ist bereits vorhanden0x710 1808 ADSERR_DEVICE_SYMBOLNOTFOUND Symbol nicht gefunden0x711 1809 ADSERR_DEVICE_SYMBOLVERSIONINVALID Symbol-Version ungültig0x712 1810 ADSERR_DEVICE_INVALIDSTATE Gerät im ungültigen Zustand0x713 1811 ADSERR_DEVICE_TRANSMODENOTSUPP AdsTransMode nicht unterstützt0x714 1812 ADSERR_DEVICE_NOTIFYHNDINVALID Notification Handle ist ungültig0x715 1813 ADSERR_DEVICE_CLIENTUNKNOWN Notification-Client nicht registriert0x716 1814 ADSERR_DEVICE_NOMOREHDLS Keine weitere Notification Handle0x717 1815 ADSERR_DEVICE_INVALIDWATCHSIZE Größe der Notification zu groß0x718 1816 ADSERR_DEVICE_NOTINIT Gerät nicht initialisiert0x719 1817 ADSERR_DEVICE_TIMEOUT Gerät hat einen Timeout0x71A 1818 ADSERR_DEVICE_NOINTERFACE Interface Abfrage fehlgeschlagen0x71B 1819 ADSERR_DEVICE_INVALIDINTERFACE Falsches Interface angefordert0x71C 1820 ADSERR_DEVICE_INVALIDCLSID Class-ID ist ungültig0x71D 1821 ADSERR_DEVICE_INVALIDOBJID Object-ID ist ungültig0x71E 1822 ADSERR_DEVICE_PENDING Anforderung steht aus0x71F 1823 ADSERR_DEVICE_ABORTED Anforderung wird abgebrochen0x720 1824 ADSERR_DEVICE_WARNING Signal-Warnung0x721 1825 ADSERR_DEVICE_INVALIDARRAYIDX Ungültiger Array-Index0x722 1826 ADSERR_DEVICE_SYMBOLNOTACTIVE Symbol nicht aktiv0x723 1827 ADSERR_DEVICE_ACCESSDENIED Zugriff verweigert0x724 1828 ADSERR_DEVICE_LICENSENOTFOUND Fehlende Lizenz0x725 1829 ADSERR_DEVICE_LICENSEEXPIRED Lizenz abgelaufen0x726 1830 ADSERR_DEVICE_LICENSEEXCEEDED Lizenz überschritten0x727 1831 ADSERR_DEVICE_LICENSEINVALID Lizenz ungültig0x728 1832 ADSERR_DEVICE_LICENSESYSTEMID Lizenz der System-ID ungültig0x729 1833 ADSERR_DEVICE_LICENSENOTIMELIMIT Lizenz nicht zeitlich begrenzt0x72A 1834 ADSERR_DEVICE_LICENSEFUTUREISSUE Lizenzproblem: Zeitpunkt in der Zukunft0x72B 1835 ADSERR_DEVICE_LICENSETIMETOLONG Lizenz-Zeitraum zu lang0x72c 1836 ADSERR_DEVICE_EXCEPTION Exception beim Systemstart0x72D 1837 ADSERR_DEVICE_LICENSEDUPLICATED Lizenz-Datei zweimal gelesen0x72E 1838 ADSERR_DEVICE_SIGNATUREINVALID Ungültige Signatur0x72F 1839 ADSERR_DEVICE_CERTIFICATEINVALID öffentliches Zertifikat0x740 1856 ADSERR_CLIENT_ERROR Clientfehler0x741 1857 ADSERR_CLIENT_INVALIDPARM Dienst enthält einen ungültigen Parameter0x742 1858 ADSERR_CLIENT_LISTEMPTY Polling-Liste ist leer0x743 1859 ADSERR_CLIENT_VARUSED Var-Verbindung bereits im Einsatz0x744 1860 ADSERR_CLIENT_DUPLINVOKEID Die aufgerufene ID ist bereits in Benutzung0x745 1861 ADSERR_CLIENT_SYNCTIMEOUT Timeout ist aufgetreten0x746 1862 ADSERR_CLIENT_W32ERROR Fehler im Win32 Subsystem0x747 1863 ADSERR_CLIENT_TIMEOUTINVALID Ungültiger Client Timeout-Wert0x748 1864 ADSERR_CLIENT_PORTNOTOPEN ADS-Port nicht geöffnet0x750 1872 ADSERR_CLIENT_NOAMSADDR Interner Fehler in Ads-Sync0x751 1873 ADSERR_CLIENT_SYNCINTERNAL Hash-Tabelle-Überlauf0x752 1874 ADSERR_CLIENT_ADDHASH Schlüssel nicht gefunden im Hash0x753 1875 ADSERR_CLIENT_REMOVEHASH Keine weitere Symbole im Cache0x754 1876 ADSERR_CLIENT_NOMORESYM Ungültige Antwort empfangen0x755 1877 ADSERR_CLIENT_SYNCRESINVALID Sync Port ist gesperrt

RTime Fehlercodes

Hex Dec Name Beschreibung0x1000 4096 RTERR_INTERNAL Interner Fehler im TwinCAT Echtzeit-System.0x1001 4097 RTERR_BADTIMERPERIODS Timer-Wert ist nicht gültig.0x1002 4098 RTERR_INVALIDTASKPTR Task-Pointer hat den ungültigen Wert 0 (null).

Page 225: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Anhang

TC3 OPC UA 225Version: 2.5

Hex Dec Name Beschreibung0x1003 4099 RTERR_INVALIDSTACKPTR Task Stackpointer hat den ungültigen Wert 0.0x1004 4100 RTERR_PRIOEXISTS Die Request Task Priority ist bereits vergeben.0x1005 4101 RTERR_NOMORETCB Kein freies TCB (Task Control Block) zur Verfügung. Ma-

ximale Anzahl von TCBs beträgt 64.0x1006 4102 RTERR_NOMORESEMAS Keine freien Semaphoren zur Verfügung. Maximale An-

zahl der Semaphoren beträgt 64.0x1007 4103 RTERR_NOMOREQUEUES Kein freier Platz in der Warteschlange zur Verfügung.

Maximale Anzahl der Plätze in der Warteschlange be-trägt 64.

0x100D 4109 RTERR_EXTIRQALREADYDEF Ein externer Synchronisations-Interrupt wird bereits an-gewandt.

0x100E 4110 RTERR_EXTIRQNOTDEF Kein externer Synchronisations-Interrupt angewandt.0x100F 4111 RTERR_EXTIRQINSTALLFAILED Anwendung des externen Synchronisierungs- Interrupts

ist fehlgeschlagen0x1010 4112 RTERR_IRQLNOTLESSOREQUAL Aufruf einer Service-Funktion im falschen Kontext0x1017 4119 RTERR_VMXNOTSUPPORTED Intel VT-x Erweiterung wird nicht unterstützt.0x1018 4120 RTERR_VMXDISABLED Intel VT-x Erweiterung ist nicht aktiviert im BIOS.0x1019 4121 RTERR_VMXCONTROLSMISSING Fehlende Funktion in Intel VT-x Erweiterung.0x101A 4122 RTERR_VMXENABLEFAILS Aktivieren von Intel VT-x schlägt fehl.

TCP Winsock-Fehlercodes

Hex Dec Name Beschreibung0x274c 10060 WSAETIMEDOUT Verbindungs Timeout aufgetreten.

Fehler beim Herstellen der Verbindung, da die Gegenstelle nach einer be-stimmten Zeitspanne nicht ordnungsgemäß reagiert hat, oder die hergestellteVerbindung konnte nicht aufrecht erhalten werden, da der verbundene Hostnicht reagiert hat.

0x274d 10061 WSAECONNREFUSED Verbindung abgelehnt.

Es konnte keine Verbindung hergestellt werden, da der Zielcomputer dies ex-plizit abgelehnt hat. Dieser Fehler resultiert normalerweise aus dem Versuch,eine Verbindung mit einem Dienst herzustellen, der auf dem fremden Host in-aktiv ist—das heißt, einem Dienst, für den keine Serveranwendung ausgeführtwird.

0x2751 10065 WSAEHOSTUNREACH Keine Route zum Host

Ein Socketvorgang bezog sich auf einen nicht verfügbaren Host.Weitere Winsock-Fehlercodes: Win32-Fehlercodes

8.4 Support und ServiceBeckhoff und seine weltweiten Partnerfirmen bieten einen umfassenden Support und Service, der eineschnelle und kompetente Unterstützung bei allen Fragen zu Beckhoff Produkten und Systemlösungen zurVerfügung stellt.

Beckhoff Support

Der Support bietet Ihnen einen umfangreichen technischen Support, der Sie nicht nur bei dem Einsatzeinzelner Beckhoff Produkte, sondern auch bei weiteren umfassenden Dienstleistungen unterstützt:

• Support• Planung, Programmierung und Inbetriebnahme komplexer Automatisierungssysteme• umfangreiches Schulungsprogramm für Beckhoff Systemkomponenten

Hotline: +49(0)5246/963-157Fax: +49(0)5246/963-9157E-Mail: [email protected]

Beckhoff Service

Das Beckhoff Service-Center unterstützt Sie rund um den After-Sales-Service:

Page 226: ftp.beckhoff.comftp.beckhoff.com/download/document/automation/twincat3/... · Translate this pageftp.beckhoff.com

Anhang

TC3 OPC UA226 Version: 2.5

• Vor-Ort-Service• Reparaturservice• Ersatzteilservice• Hotline-Service

Hotline: +49(0)5246/963-460Fax: +49(0)5246/963-479E-Mail: [email protected]

Weitere Support- und Serviceadressen finden Sie auf unseren Internetseiten unter http://www.beckhoff.de.

Beckhoff Firmenzentrale

Beckhoff Automation GmbH & Co. KG

Hülshorstweg 2033415 VerlDeutschland

Telefon: +49(0)5246/963-0Fax: +49(0)5246/963-198E-Mail: [email protected]

Die Adressen der weltweiten Beckhoff Niederlassungen und Vertretungen entnehmen Sie bitte unserenInternetseiten:http://www.beckhoff.de

Dort finden Sie auch weitere Dokumentationen zu Beckhoff Komponenten.