Daten einer Siemens Simatic S7 SPS verarbeiten

Die Simatic S7 Produktreihe der Firma Siemens ist eine sehr weit verbreitete Industrie-Steuerung (SPS). Wir zeigen, wie man mit dem verlinked connect-Gateway Datenpunkte aus einer S7-Steuerung erfasst.
Inhaltsverzeichnis
Aufbau mit der Simatic SPS
In diesem Beispiel verwenden wir eine Siemens Simatic S7-1200 als Steuerung. Dies ist eine relativ moderne Variante aus der Reihe. In vielen Unternehmen treffen wir etwas ältere Steuerungen, etwa eine 400er oder 300er an. Der Datenzugriff erfolgt jedoch in allen Fällen über das “S7comm” Protokoll. Dieses Protokoll ist ein proprietäres Protokoll der Firma Siemens und unterliegt keinem offenen Standard. Daher ist der Zugriff hierüber nicht ganz trivial und erfordert einiges an Know-How.

Im connect-Gateway haben wir dieses Know-How in ein Plugin zur Kommunikation via “S7comm” gegossen, so dass für den Anwender nur noch einige wenige Einstellungen zu tätigen sind.
Installation
Die Datenerfassung an der SPS erfolgt über das TCP/IP Netzwerk. Das connect-Gateway läuft für dieses Beispiel auf einem kleinen Industrie-PC, der über das Netzwerk mit der Steuerung verbunden ist.
Konfiguration der S7-1200
Die Steuerung fungiert als Daten-Produzent für die zu erfassenden Werte. Hierfür lesen wir die Eingänge und Ausgänge an der SPS aus und geben die Werte weiter. Die digitalen Eingänge können wir im Beispiel über kleine Schalthebel auf “High” bzw. “Low” setzen. Wichtig ist, dass wir über das connect-Gateway nicht nur die aktuellen Werte der Eingänge, sondern auch der geschalteten Ausgänge erfassen können.
Datapoints
Wir legen für jeden Wert, den wir aus lesen wollen zunächst entsprechende Datapoints
im connect-Gateway an.
<datapoints> <datapoint> <path>/dp_1200_di00</path> <type>integer</type> </datapoint> </datapoints>
Um die Daten aus der S7-1200 auslesen zu können, müssen wir die Speicheradressen für diese Werte innerhalb der S7-1200 kennen. Diese Adressen ermitteln wir über das Siemens TIA-Portal. In der Konfiguration der dortigen Datenbausteine sind alle benötigten Angaben hinterlegt. Wir wollen hier nicht auf die Details des komplexen TIA-Portals eingehen, aber für einen SPS-Programmierer oder Techniker ist es kein Problem, diese Adressen zu ermitteln.
Mit den ermittelten Adressen konfigurieren wir das connect-Gateway so, dass die zu erfassenden Werte periodisch von der S7-1200 abgefragt werden. In unserem Beispiel ermitteln wir jede Sekunde einen aktuellen Wert.
Endpoint S7-1200
Zunächst legen wir einen Endpoint
fest. Unter diesem Endpoint ist die S7-1200 über das Netzwerk erreichbar.
<endpoint> <name>S7_1200</name>
Für diesen Endpoint legen wir nun S7comm
als Protocol
fest. Über die Paramters
legen wir u.a. die IP-Adresse und andere Einstellungen fest.
<protocol plugin="S7comm"> <name>S7comm</name> <parameters> <param key="host">192.168.0.31</param> <param key="port">102</param> <param key="rack">0</param> <param key="slot">1</param> </parameters>
Trigger
Die Daten sollen einmal pro Sekunde abgefragt werden. Also legen wir einen zyklischen Trigger
an, der dies erledigt.
<trigger> <cyclicTrigger> <period>1000</period> <unit>milliseconds</unit> </cyclicTrigger> </trigger>
Producer
Für jeden Datapoint
legen wir im weiteren einen Producer
an. Für jeden Datapoint
müssen wir die entsprechende Adresse innerhalb der S7-1200 SPS konfigurieren.
<producer> <name>dp_1200_di00</name> <parameters> <param key="area_type">PE</param> <param key="data_type">BIT</param> <param key="db_number">0</param> <param key="length">1</param> <param key="offset">0</param> </parameters>
Decoder
Um den konkreten Wert einer Variable in einen Datapoint
zu schreiben, müssen wir im letzten Schritt noch einen NUMBER_DECODER
definieren. Dieser wandelt den Datentyp aus der Siemens-Welt für unser Gateway um.
<decoder plugin="NUMBER_DECODER"> <parameters/>
Mapping
Innerhalb des Decoders wird nun das Mapping festgelegt. Es legt fest, wohin der Werte der Variable aus der S7-1200 SPS in den Dataspace des connect-Gateways geschrieben wird. Beim Mapping wird auch der Datentyp festgelegt.
<mapping> <datapoint>/dp_1200_di00</datapoint> <parameters> <param key="type">u8</param> </parameters> </mapping
Damit ist die Konfiguration abgeschlossen. Die Werte werden nun zyklisch erhoben und stehen im connect-Gateway für Daten-Konsumenten zur Verfügung.
Foto-Strecke
Ergebnis
Die Maschinendatenerfassung an einer Siemens Simatic Steuerung ist kein Problem mit dem connect-Gateway. Es müssen lediglich die Speicheradressen bekannt sein, um die entsprechenden Werte ermitteln zu können. Sind die Daten einmal als Datenpunkt im connect-Gateway verfügbar, können sie an beliebige Systeme weitergereicht werden.
Im Übrigen ist der umgekehrte Weg auch möglich, dass heißt man kann Werte in der S7-Steuerung setzen. So kann man etwa bestimmte Konfigurationsparameter über eine Datenbank an die Steuerung weiterreichen. Das verlinked connect-Gateway macht es möglich.