Simon Moosbrugger Bachmann electronic GmbH

Ob die Heizung eines modernen Gebäudes, die Fertigungsstraße eines Autoherstellers oder der sichere, autonome Betrieb einer Windkraftanlage – speicherprogrammierbare Steuerungen sind nicht mehr wegzudenken.

Ambros Morscher Bachmann electronic GmbH

Strukturierter Text wurde in den frühen 1990er Jahren normiert und hat sich seit damals nur geringfügig verändert.

Mathias Rieder Bachmann electronic GmbH

Unsere IDE erlaubt es, auf Basis von Eclipse und mithilfe des Xtext-Frameworks Code in Strukturiertem Text auf moderne Art und Weise zu entwickeln.

Alter Compiler, integriert in einer State of the Art IDE geht nicht? Doch! Dieser Artikel zeigt, wie ein etablierter, jahrzehntealter Compiler für eine Programmiersprache aus der Domäne der Automatisierung in Eclipse integriert und dadurch revitalisiert werden kann. Weiter beleuchten wir, wie unterschiedliche Features einer modernen IDE für die in die Jahre gekommene Sprache implementiert werden können. Möglich macht das die Verwendung des Xtext-Frameworks.

Im Umfeld der Automatisierung dreht sich alles um speicherprogrammierbare Steuerungen (SPS oder engl. PLC). Unser ganzes Leben ist von ihnen umgeben. Ob die Heizung eines modernen Gebäudes, die Fertigungsstraße eines Autoherstellers oder der sichere, autonome Betrieb einer Windkraftanlage – speicherprogrammierbare Steuerungen sind nicht mehr wegzudenken. SPS-Software wird grundlegend nicht anders als andere Software entwickelt. Es gibt dafür besonders geeignete Programmiersprachen, Entwicklungsumgebungen und natürlich eigene Compiler. Als besonders beliebte Programmiersprachesprache für Automatisierungsaufgaben hat sich über die Jahre die Sprache Strukturierter Text (ST) herausgestellt. Die Sprache wurde in den frühen 1990er Jahren normiert und hat sich seit damals nur geringfügig verändert. Das spiegelt sich auch in der Toolchain wider, die noch von vielen Anwendern verwendet wird. Compiler und Entwicklungsumgebungen stammen oft noch aus derselben Zeit, samt den damals üblichen Workflows und Hilfsmitteln. Wir haben uns zum Ziel gesetzt, einen Compiler aus dieser Zeit, der durchaus noch seine Daseinsberechtigung hat, mithilfe von Eclipse und Xtext in das 21. Jahrhundert zu hieven. Die von uns entwickelte IDE trägt den Namen PLC Developer. Sie erlaubt es, auf Basis von Eclipse und mithilfe des Xtext-Frameworks Code in Strukturiertem Text auf moderne Art und Weise zu entwickeln. Dafür generiert sie eine auf XML basierende Zwischensprache (PLCopen), die von dem externen Compiler gelesen und verarbeitet wird. Schlussendlich kann die kompilierte Applikation vom PLC Developer auf die SPS gespielt und ausgeführt werden (Abb. 1).

Abb. 1: Der Workflow von der Quelldatei bis zur auf der SPS ausführbaren Applikation

Abb. 1: Der Workflow von der Quelldatei bis zur auf der SPS ausführbaren Applikation

Das ist Strukturierter Text

Strukturierter Text (ST) ist eine der fünf Programmiersprachen, die in der Norm IEC 61131-3 definiert sind. Die Sprache ist stark an Pascal angelehnt, wobei einige Merkmale eingeführt wurden, die sie besonders angenehm für die SPS-Programmierung macht. Listing 1 zeigt ein einfaches Programm, das eine Lampe blinken lässt. Die Applikation besteht nur aus einem so genannten Baustein (Program Organization Unit, POU), einem Programm mit dem Namen PLC_PRG.

PROGRAM PLC_PRG
  VAR
    lamp    AT %QX1.9 : BOOL;
    button  AT %IX1.1 : BOOL;
  END_VAR

  IF (button) THEN
    lamp := NOT(lamp);
  END_IF
END_PROGRAM

Dieses Programm ist vergleichbar mit einer Main-Methode aus Java, nur dass unsere SPS dieses Programm zyklisch aufruft, z. B. einmal pro Sekunde. Es deklariert zwei lokale Variablen. Die Variable lamp ist vom Typ BOOL und wird gleichzeitig auf einen sogenannten Kanal Q1.1 der SPS gemappt. Das bedeutet, dass wir unsere Variablen direkt an angeschlossene Aktoren (z. B. eine Lampe) und auch Sensoren (z. B. ein Taster) binden können. Auch ohne weitere Kenntnisse von ST können wir hier erkennen, dass unsere Applikation eine Lampe zum Blinken bringt, solange wir einen Taster gedrückt halten.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Java Magazin 11.17 - "Per Anhalter durch das Cloud-Universum"

Alle Infos zum Heft
579813086Aus altem Compiler wird ein neuer mit Eclipse
X
- Gib Deinen Standort ein -
- or -