nw  

Library Parser und Code Generator für SPS-Software basierend auf Scala

Zusammenfassung

Im Rahmen dieser Bachelorarbeit wurde ein Codegenerator entwickelt, der in der Lage ist Scala-Code in SPS-Code umzuwandeln. Dafür wurde eine DSL entwickelt, die es ermöglicht den Syntax von SPS-Code in Scala zu verwenden. Es wurden bestehende SPS-Code-Bibliotheken geparst, um daraus eine entsprechende Bibliothek basierend auf Scala zu generieren.

Schlüsselbegriffe

SPS, Scala, Parser, Compiler, Code Generator, DSL

Zielsetzung

Das Ziel dieser Bachelorarbeit bestand darin, den Prototyp eines Code-Generators für SPS-Controller anhand der Nutzung von bestehenden SPS-Bibliotheken zu entwickeln. Der Fokus wurde dabei darauf gelegt, dass es möglich sein sollte, SPS-Code in Scala zu schreiben. Damit sollte ermöglicht werden, für unterschiedliche SPS-Typen, wiederverwendbaren und Typ-Sicheren SPS-Code zu schreiben.

Ausgangslage

Die Viscom Engineering AG ist ein auf Gebäudeautomation spezialisierter Systemintegrator. Um die Projektabwicklung zu standardisieren, hat das Unternehmen im Laufe der Jahre einen teilautomatisierten Prozess entwickelt. Die Tool-Sammlung dieses Prozesses ist im Laufe der Zeit historisch gewachsen und veraltet. Aus diesem Grund wurde im Rahmen dieses Projekts einen neuen Code Generator entwickelt, der als zentrale Komponente in eine neue Plattform integriert werden soll.

Ergebnisse

Im Rahmen dieses Projekts wurden vier Module entwickelt:
Ein Parser-Modul, das den Code von SPS-Bibliotheken einscannt, anschliesend parst und daraus eine Scala Source Code Bibliothek generiert. Ein Anlagen-Generator-Modul, das auf Basis von Projektdaten und unter Verwendung der neu generierten Scala-Bibliothek eine SPS-Anlage in Scala-Code generieriert und die Systemkomponenten initialisiert mit Defaultwerten. Des weiteren wurde eine domänenspezifische Sprache (DSL) entwickelt, die es erlaubt typsicheren SPS-Code in Scala zu schreiben und diesen für die eingesetzten SPS-Typen zu generieren. Schliesslich wurde noch einen XML-Generator-Modul erstellt, das die XML-Dateien für die SPS-Controller basierend auf der generierten Anlage generiert.

Projektdaten

Projektdauer: 19.09.22 - 24.03.23
Aufwand in Personenstunden: 2x 360h
Teamgrösse: 2

Auftraggeber

Viscom Engineering AG
Alte Obfelderstrasse 59
CH-8910 Affoltern am Albis
https://viscomag.ch/

Projektteam

Kevin Zellweger
Damian Zehnder

Kontakt
Prof. Dr. Dominik Gruntz
Leiter Institut für Mobile und Verteilte Systeme FHNW
dominik.gruntz@fhnw.ch

Daniel Kröni
Wissenschaftlicher Mitarbeiter
daniel.kroeni@fhnw.ch
<< zurück