Digital Retrofit einer Moeller SPS über RS232

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.

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.