SPS

In diesem Kapitel wird beschrieben, wie Sie den Namensraum des TwinCAT OPC UA Servers konfigurieren, um Zugriff auf die Symbole eines SPS Projekts zu erhalten. Dies erfordert die Durchführung der folgenden Schritte:

Aktivieren der Symboldatei

Um die Symbole eines SPS Projekts über OPC UA verfügbar zu machen, ist es zunächst einmal erforderlich, daß Sie den Download der Symboldatei (TMC) in den Eigenschaften des SPS Projekts aktivieren.

SPS 1:

Hierdurch wird beim Aktivieren des Projekts die Symboldatei automatisch auf das entsprechende Zielgerät übertragen und liegt dort dann im TwinCAT Bootverzeichnis vor. Der Name der Symboldatei orientiert sich hierbei am ADS Port (siehe unten) der SPS Laufzeit, zum Beispiel:

%TwinCATInstallDir%\3.1\Boot\Plc\Port_851.tmc
SPS 2:

Quick Start

Ist der TwinCAT OPC UA Server ebenfalls auf demselben Gerät installiert, so liest er im Auslieferungszustand automatisch immer die Symboldatei der ersten SPS Laufzeit ein, wodurch keine weiteren Einstellungen am Server notwendig sind. Durch das Aktivieren des Projekts wird somit die Symboldatei auf das Zielgerät übertragen und durch einen anschließenden TwinCAT Neustart auch der TwinCAT OPC UA Server neu gestartet. Dieser findet nun beim Startvorgang die Symboldatei im Bootverzeichnis und liest diese ein. Durch die gesetzten Pragmas erkennt der Server welche Symbole er in seinem Adressraum bereitstellen soll.

Freigabe von Symbolen

In der TwinCAT 3 SPS werden Symbole über sogenannte Pragmas für OPC UA freigegeben. Ein solches Pragma wurde zum Beispiel auch im Quick Start Tutorial verwendet, um eine Variable für OPC UA freizugeben. Das Pragma wird vor dem Symbol eingefügt für das es gelten soll. Das folgende Pragma kann verwendet werden, um eine Variable, Array, Struktur für OPC UA freizugeben. Der TwinCAT OPC UA Server erkennt beim Auslesen der Symbolik dieses Pragma und importiert das zugehörige Symbol in seinen Namensraum. Die entsprechende Typinformation wird hierbei übernommen und auf OPC UA abgebildet.

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

Für einzelne Teilfunktionen des Data Access können zusätzliche Pragmas erforderlich sein, zum Beispiel Strukturen, Properties, AnalogItemType, StatusCode, das Setzen einer Description, Alias, oder auch des Read-Only Flags einer Node. Die zusätzlichen Pragmas werden dann in einer separaten Zeile eingefügt, zum Beispiel:

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

(Setzt das Read-Only Flag für diese Variable)

Das Pragma zur Freigabe eines Symbols wird auf alle Kind-Symbole automatisch weitervererbt. Möchte man die Vererbung ab einer bestimmten Stelle blockieren, zum Beispiel ab einem bestimmten Member einer Struktur, so kann mit dem folgenden Pragma gearbeitet werden:

{attribute 'OPC.UA.DA' := '0'}
stChild : ST_ChildStruct;

Im Falle von Funktionsbausteinen und Strukturen ist der Definitionsort des Pragmas entscheidend. Definiert man das Pragma an einer Instanz, so wird nur diese Instanz (und alle Kindelemente) für OPC UA freigegeben. Definiert man das Pragma hingegen an der Funktionsbaustein- oder Strukturdefinition, so werden alle Instanzen des Funktionsbausteins oder der Struktur freigegeben. In dem folgenden Beispiel sollen die beiden Instanzen fbTest1 und fbTest2 des Funktionsbausteins FB_BLOCK1 über OPC UA verfügbar gemacht werden. Wenn eine ganze Instanz freigegeben wird, sind über OPC UA auch alle ihre Symbole verfügbar. Das SPS-Programm sieht wie folgt aus:

PROGRAM MAIN
VAR
  {attribute 'OPC.UA.DA' := '1'}
  fbTest1 : FB_BLOCK1;
  fbTest2 : FB_BLOCK1;
END_VAR
FUNCTION_BLOCK FB_BLOCK1
VAR_INPUT
  {attribute 'OPC.UA.DA' := '1'}
  ni1 : INT;
  ni2 : INT;
END_VAR
VAR_OUTPUT
  {attribute 'OPC.UA.DA' := '1'}
  no1 : INT; 
  no2 : INT;
END_VAR
VAR
  {attribute 'OPC.UA.DA' := '1'}
  nx1 : INT;
  nx2 : INT;
END_VAR

Die Instanz fbTest1 erhält nun das Pragma, wodurch alle enthaltenen Symbole automatisch ebenfalls für OPC UA freigegeben werden, sprich fbTest.ni1, fbTest.ni2, usw. Die Instanz fbTest2 erhält hingegen nicht das Pragma, allerdings wurden die drei darin enthaltenen Variablen ni1, no1 und nx1 mit dem Pragma gekennzeichnet. Diese sind demzufolge in allen Instanzen über OPC UA verfügbar.

Konfiguration des Servers

Über den TwinCAT OPC UA Configurator können Sie nun den TwinCAT OPC UA Server konfigurieren, so daß er die erzeugte Symboldatei einliest und die SPS Laufzeit als Data Access Gerät in seinem Adressraum zur Verfügung stellt.

Fügen Sie hierzu im TwinCAT OPC UA Configurator in der Registerkarte Data Access ein neues Gerät hinzu. Selektieren Sie die AMS Net ID Ihres Geräts und tragen Sie den ADS Port der SPS Laufzeit ein. Den ADS Port finden Sie in den Eigenschaften des SPS Projekts:

SPS 3:

In der Auswahlliste des Felds „Type“ wählen Sie nun den Eintrag „TwinCAT 3 SPS (TMC) – Filtered“ aus. In dem Feld „SymbolFile“ wählen Sie die Symboldatei (TMC) aus, welche nach dem Aktivieren des TwinCAT SPS Projekts erzeugt wurde und nun im Bootverzeichnis liegen sollte. Alternativ können Sie auch über die Online-Symbolik gehen.

SPS 4:

Alle weiteren Einstellungen können Sie auf den Standardwerten belassen.