Bild in lightbox öffnen

TIA Portal: OPC UA

1. Allgemeines

In diesem Blogartikel erklären wir die Vorgehensweise und die Grundlagen für die Erstellung einer OPC UA-Methode. Diese kann beispielsweise über eine OPC-Client-Anwendung von einem Laptop aus mit einer SPS kommunizieren. Ein Beispiel für eine solche Anwendung ist eine Lösung, mit der sich Daten aus der SPS auf einem externen Computer verfolgen und protokollieren lassen. Diese Funktionen bietet die UaExpert-App.

Die zentralen Komponenten einer OPC UA-Methode sind die Systemfunktionsblöcke „OPC_UA_ServerMethodPre“ und „OPC_UA_ServerMethodPost“, die die OPC-UA-Methode implementieren. Die Nutzung von OPC UA auf der SPS kann jedoch auch auf einfachere Weise erfolgen, ohne dass Methoden verwendet werden müssen. Mehr dazu später.

Weitere Details findest du hier: Siemens OPC UA Beispielprojekt.

Wenn du lediglich auf Variablen zugreifen und diese ändern möchtest, ohne komplexe Anweisungen wie das Aufrufen von Methoden oder Funktionen zu benötigen, dann fahre mit Kapitel 2.2 fort.

Um OPC UA auf der SPS zu nutzen, aktiviere es in den SPS-Eigenschaften unter „OPC UA“ und wähle anschließend die Lizenz unter „Runtime-Lizenzen“ aus.

2. SPS als Server

2.1 Beispiel für die Verwendung von OPC UA-Methoden

2.1.1 Erläuterung der Systemfunktionsblöcke

Die OPC-UA-Methoden werden durch den Aufruf der Systemfunktionsblöcke „OPC_UA_ServerMethodPre” und „OPC_UA_ServerMethodPost” erstellt. Rufe diese Systemfunktionen in einem S7-Funktionsblock auf, um dessen Funktionalität als OPC-UA-Methode zu implementieren. Du findest die Systemfunktionsblöcke in der Liste mit Anweisungen des TIA Portals unter „Kommunikation > OPC UA > OPC UA-Server“.

2.1.2 Funktionale Abfolge

Wird eine OPC UA-Methode aufgerufen, werden ihre Eingabeparameter an die Systemfunktion „OPC_UA_ServerMethodPre“ übergeben. Diese stellt sie dann dem Anwenderprogramm zur Verfügung. Zusätzlich gibt ein Parameter im Funktionsblock an, dass die Methode von einem OPC UA-Client aufgerufen wurde. Führe deinen benutzerdefinierten Funktionscode aus, nachdem der entsprechende Parameter gesetzt wurde.

Nach der Verarbeitung des Funktionscodes müssen die Ausgabeparameter und der Statuscode an die Systemfunktion „OPC_UA_ServerMethodPost“ übergeben werden. Setze außerdem einen Schnittstellenparameter, um anzuzeigen, dass der Code ausgeführt wurde. Die Systemfunktion überträgt anschließend die Ausgabeparameter und den Statuscode an den OPC UA-Client.

2.1.3 Schnittstellenbeschreibung der Systemfunktionsblöcke
OPC_UA_ServerMethodPre:

Die folgende Abbildung und Tabelle erläutern die Schnittstelle der Systemfunktion „OPC_UA_ServerMethodPre“:

OPC_UA_ServerMethodPost:

Die folgende Abbildung und Tabelle erläutern die Schnittstelle der Systemfunktion „OPC_UA_ServerMethodPost“:

2.1.4 Erstellung des grundlegenden Frameworks

Erstelle im Modul zunächst immer ein grundlegendes Framework, das für die Funktion der OPC-UA-Methode erforderlich ist. Führe für jede Methode die Schritte 1 bis 4 der folgenden Vorgehensweise durch. Befolge die Schritte 5 bis 8 nur, wenn deine Methode Eingabe- oder Ausgabeparameter benötigt. Gehe wie folgt vor:

1. Öffne den zuvor erstellten Funktionsblock.

2. Rufe die Funktion „OPC_UA_ServerMethodPre“ im Block auf. Stelle sicher, dass die Funktion als „Multi-Instanz“ angelegt ist.

3. Rufe danach die Funktion „OPC_UA_ServerMethodPost“ auf. Stelle sicher, dass die Funktion als „Multi-Instanz“ angelegt ist.

4. Weise den Blockschnittstellen der Funktionen "OPC_UA_ServerMethodPre" und "OPC_UA_ServerMethodPost" geeignete Variablen zu. Informationen zu den Blockschnittstellen findest du in Kapitel 2.1.3.

5. Um die Eingabeparameter für die OPC UA-Methode zu definieren, erstelle im statischen Bereich des Blocks eine Variable namens „UAMethod_InParameters“ vom Datentyp „Struct“ oder „UDT“. Innerhalb dieser Struktur werden die einzelnen Übergabeparameter definiert (z. B. „myInt1“ und „myInt2“ vom Datentyp „Int“).

6. Weise die Variable „UAMethod_InParameters” der Blockschnittstelle „UAMethod_InParameters” der Pre-Funktion zu.

7. Um die Ausgabeparameter für die OPC-UA-Methode zu definieren, erstelle im statischen Bereich des Blocks eine Variable namens „UAMethod_OutParameters“ vom Datentyp „Struct“ oder „UDT“. Definiere innerhalb dieser Struktur die einzelnen Übergabeparameter, beispielsweise „myIntResult“ als „DInt“.

8. Weise die Variable „UAMethod_OutParameters“ der Blockschnittstelle „UAMethod_OutParameters“ der Post-Funktion zu.

9. Stelle sicher, dass die Kontrollkästchen „Erreichbar aus HMI/OPC UA/Web API“ in den Vor- und Nachverarbeitungsdeklarationen sowie bei den Ein- und Ausgangsparametern aktiviert sind.

2.1.5 Programmierbeispiel

Um das Beispielprojekt in Betrieb zu nehmen, lade zunächst das OPC UA-Beispielprojekt von der Siemens-Website herunter. Lade anschließend die kostenlose UaExpert-App herunter. Wenn du die SPS simulieren möchtest, verwende PLCSIM Advanced, da die Standardversion von PLCSIM keine OPC UA-Funktionen bietet.

In unserem Beispiel gibt es 4 Funktionen, die von einem OPC-UA-Client wie folgt aufgerufen werden können:

  • "OpcMethodAllowedDataTypes": Diese Methode enthält alle zulässigen Datentypen als Eingabeparameter. Bei der Ausführung werden die übergebenen Werte als Ausgabeparameter der Methode bereitgestellt.

  • "OpcMethodBubbleSort": Diese Methode verwendet ein Array vom Typ Integer als Eingabeparameter. Die übergebenen Werte werden nach ihrer Wertgröße sortiert, und das Ergebnis wird als Ausgabeparameter zurückgegeben.

  • "OpcMethodSetPlcTime": Verwende diese Methode, um die SPS-Zeit einzustellen.

  • "OpcMethodStateMachine": Diese Methode enthält eine Schrittkette, die beim Aufruf der Methode gestartet wird. Die Methode hat keine Eingabe- oder Ausgabeparameter. Während die Schrittfolge abgearbeitet wird, wird beim erneuten Aufruf der Methode eine negative Antwort zurückgegeben.

2.1.6 Verbindung mit dem Client herstellen

Verbinde zunächst UaExpert mit dem Server der SPS:

1. Starte das Tool „UaExpert“.

2. Klicke auf die Schaltfläche „Add server“.

3. Doppelklicke unter „Custom Discovery“ auf „Double click to Add Serve“.

4. Gib die IP-Adresse der SPS in das Textfeld des angezeigten Dialogfelds ein und klicke dann auf „OK“. Die IP-Adresse findest du im TIA Portal unter den Eigenschaften der SPS. Sie befindet sich unter der Eigenschaft „OPC UA“.

5. Wähle einen Endpunkt (end point) aus (in diesem Beispiel „None“) und bestätige anschließend mit „OK“.

6. Wähle in der Projektnavigation den Endpunkt aus und klicke auf die Schaltfläche „Connect Server“.

Nachdem du eine Verbindung zum SPS-Server hergestellt hast, kannst du die zuvor angelegten Methoden aufrufen:

  • Navigiere dazu im Bereich „Address Space“ zu Root > Objekte > DeviceSet > SamplePlcOpcUaMethods > DataBlockInstance. Die zuvor angelegten OPC UA-Methoden findest du in den Objekten der Blockinstanzen.

  • Klicke mit der rechten Maustaste auf eine Methode (zum Beispiel innerhalb der Instanz von „InstOpcMethodSetPlcTime“) und wähle dann „Call...“.

2.2 Direkter Zugriff auf SPS-Daten vom Client aus

Um die Navigation zu den gewünschten Daten zu vereinfachen, könnten wir eine Schnittstelle nutzen, um die Variablen zu organisieren. Wähle dazu im Projektbaum unter „OPC UA-Kommunikation” die Server-Schnittstellen aus und füge eine neue Schnittstelle hinzu. Ziehe dann die zu bearbeitenden Variablen per Drag & Drop dorthin.

Wechsle nun zur UaExpert-App und wiederhole die Schritte aus Abschnitt 2.6: Stelle eine Verbindung vom Client zum Server her. Nach dem Verbindungsaufbau kannst du die gewünschten Variablen per Drag & Drop in den Arbeitsbereich ziehen. So können wir die Werte überwachen und bearbeiten.

Für jede Variable können wir auch den Zugriffstyp „Lesen/Schreiben“ auswählen.

2.3 Zugriffssicherheit

Um die Daten auf der SPS zu schützen, ist es am einfachsten, den Gastzugang zu deaktivieren und autorisierte Benutzer anzulegen. Befolge dazu die folgenden Schritte: Unter SPS-Eigenschaften > OPC UA > Sicherheit deaktivierst du die Gastanmeldung und aktivierst die Benutzernamen- und Passwortauthentifizierung.

Wenn wir jetzt versuchen, eine Verbindung zum Server herzustellen, werden wir nach den Anmeldedaten gefragt.

2.4 Datenerfassung

Der OPC-UA-Server kann zur Überwachung und Bearbeitung von Daten sowie, was am wichtigsten ist, zur Erfassung und Protokollierung von Daten verwendet werden. Mit UaExpert können Daten aus der SPS erfasst und exportiert werden.

Klicke in der UaExpert-App auf „Neues Dokument hinzufügen“ und wähle dann „Datenlogger-Ansicht“ aus.

Die Erfassung beginnt, sobald du auf die Schaltfläche „Start“ klickst. Nach Beendigung der Erfassung wird eine CSV-Datei mit den Werten der ausgewählten Variablen erstellt.