Digital Retrofit einer Moeller SPS über RS232

In diesem Beitrag befassen wir uns mit dem digitalen Retrofit einer alten SPS der Firma Moeller. Leider verfügt diese ältere Steuerungsvariante nur über eine serielle Schnittstelle. Aber kein Problem, mit dem connect-Gateway bekommen wir auch Daten über RS232.
Inhaltsverzeichnis
Einführung
Schaut man sich den Produktionsbereich eines mittelständischen Betriebs an, findet man dort häufig eine Reihe von unterschiedlichen Maschinen diverser Hersteller und verschiedensten Alters vor. PS4 Steuerungen der Firma Moeller GmbH (heute EATON) hatten vor 20 Jahren eine recht große Verbreitung.
Aufgrund der langen Maschinenlaufzeiten finden wir auch heute immer wieder Steuerungen dieses Typs im Feld vor. Die Serie besitzt allerdings im Vergleich zu aktuellen Steuerungen noch keine Ethernet-basierte Kommunikationsschnittstelle. Hier zeigen wir, wie mit Hilfe des verlinked connect-Gateways das Retro-Fitting solch einer Steuerungen über RS232 durchgeführt werden kann.
Aufbau
Als Beispiel verwenden wir eine Moeller PS4-201-MM1 Steuerung. Es existieren eine Reihe weiterer Steuerungen aus der PS4 Reihe, die über dasselbe Protokoll angebunden werden können.
Die Anbindung erfolgt dabei über den seriellen Programmierport der Steuerung. Die Kommunikation über diesen Port folgt keinem offenen Standard, sondern benutzt ein von Moeller entwickeltes, nicht öffentlich dokumentiertes Protokoll. Wir haben jedoch einen Weg gefunden, um über RS232-Schnittstelle mit der Steuerung zu kommunizieren.
Installation und Retro-Fitting
Die Steuerungen verfügen über eine serielle Schnittstelle (physikalisch RS-232) die eigentlich für die Programmierung genutzt wird. Über diese Schnittstelle ist es möglich, Live-Daten aus der Steuerung abzurufen. Dies machen wir uns für das Retro-Fitting zu Nutze und setzen diese Daten im connect-Gateway auf moderne Protokolle um.
Das connect-Gateway läuft für diese Demo auf einem Industrie-PC. Steuerung und connect-Gateway sind über ein serielles Kabel miteinander verbunden.
Konfiguration
Das connect-Gateway fragt die Daten der PS4-Steuerung aktiv an. Die Steuerung liefert daraufhin die angefragten Ergebnisse zurück. Wir wollen die digitalen Eingänge sowie die digitalen Ausgänge der Steuerung auslesen. In unserem Beispiel wurde der „Eingang 1“ der Steuerung über eine Drahtbrücke auf „HIGH” gesetzt. Alle anderen Eingänge sind unbeschaltet und sollten daher einen “LOW” Pegel ausgeben. Zusätzlich ist in der Steuerung ein Lauflicht programmiert, das die Ausgänge der Steuerung im Sekundentakt durchschaltet.
Datapoints
Wir erfassen 8 digitale Eingänge und 6 Ausgänge über das connect-Gateway. Hierzu legen wir entsprechende Datapoints
an (Auszug)
<datapoints> <datapoint> <path>/moeller/di0</path> <type>integer</type> </datapoint> <datapoint> <path>/moeller/di1</path> <type>integer</type> </datapoint> <datapoint> <path>/moeller/do0</path> <type>integer</type> </datapoint> <datapoint> <path>/moeller/do1</path> <type>integer</type> </datapoint> </datapoints>
Endpoint
Für die Moeller SPS legen wir nun einen Endpoint an, um von diesem die Daten abzufragen.
<endpoint> <name>Moeller_SPS</name>
Der Endpoint kommuniziert über die serielle Schnittstelle. Also konfigurieren wir das Protocol
als SERIAL
.
<protocol plugin="SERIAL"> <name>RS232</name>
Das SERIAL
Plugin erwartet eine Reihe von Konfigurationsparametern, wie sich die serielle Schnittstelle verhält. Unter anderem legen wir hier die serielle Schnittstelle (serial_interface
) fest.
<parameters> <param key="serial_interface">/dev/ttymxc0</param> <param key="baud_rate">9600</param> <param key="data_bits">8</param> <param key="stop_bits">ONE_STOP_BIT</param> <param key="parity">NO_PARITY</param> </parameters>
Trigger
Wir wollen möglichst exakte Echtzeitdaten ermitteln. Also legen wir eine Datenerhebung von zwei mal pro Sekunde fest. Der Trigger
wird also alle 500 Millisekunden ausgelöst.
<trigger> <cyclicTrigger> <period>500</period> <unit>milliseconds</unit> </cyclicTrigger> </trigger>
Producer
Um die Daten aus der Moeller SP4 auslesen zu können, müssen sowohl die Anfrageparameter für die verschiedenen Steuerungswerte als auch der Aufbau des Antworttelegrams bekannt sein.
Da das Protokoll nicht öffentlich dokumentiert ist, finden sich diese Angaben in der für Kunden zugänglichen verlinked Protopedia. Hier sind alle wichtigen Informationen, Anleitungen sowie Beispiele für die Konfiguration einer Vielzahl von Protokollen verfügbar. Mit Hilfe dieser Informationen ist die Konfiguration des connect-Gateway auch für eine Moeller Steuerung einfach umsetzbar.
Wir legen für die digitalen Eingänge (DI
) und Ausgänge (DO
) jeweils einen Producer an.
<producer> <name>DI</name>
Die Anfrage, die über die serielle Schnittstelle zur SPS abgesetzt wird, ist wie erwähnt kryptisch und numerisch. Im Beispiel fragen wir die Eingänge über folgende Parameters
ab.
<parameters> <param key="request">0C07820800080085</param> <param key="message_length">6</param> </parameters>
Decoder
Aus der Antwort von der SPS ermitteln wir mit einem BITS_DECODER
den richtigen Wert für einen bestimmten Ein- oder Ausgang. Das Mapping
legt dann fest, in welchen Datapoint
der aktuelle Wert des Ein- oder Ausgangs geschrieben werden soll.
<decoder plugin="BITS_DECODER"> <mapping> <datapoint>/moeller/di1</datapoint> <parameters> <param key="byte_offset">4</param> <param key="byte_length">1</param> <param key="bit_offset">1</param> <param key="bit_length">1</param> </parameters> </mapping> </decoder>
Foto-Strecke
Ergebnis
Die Maschinendatenerfassung von einer Moeller Steuerung ist über das connect-Gateway mit dem passenden Plugin einfach realisierbar. Die für das Protokoll benötigten Parameter sind über das Plugin dokumentiert und für Kunden einsehbar.
Mit Hilfe dieser Informationen ist eine Konfiguration des verlinked connect-Gateways schnell möglich. Das Retro-Fitting von Steuerungen, die wie im Beispiel nur über eine serielle Schnittstelle verfügen, wird mit dem connect-Gateway zum Kinderspiel.