Meine SPS kann Linux, und nun? - Ein Linux-basierter Software-Stack für industrielle Eingebettete Systeme
von Christoph Stoidner (arvero GmbH)
Freitag, 09.05.2014, Stage E, 18:30-19:00 Uhr
Track: Embedded
Meine SPS kann Linux, und nun? - Ein Linux-basierter Software-Stack für industrielle Eingebettete Systeme
Linux im industriellen Anlagenbau und der Automatisierungsindustrie ist längst keine Besonderheit mehr. Viele Hersteller liefern inzwischen Maschinensteuerungen, SPSen oder Kleinstgeräte, welche für die Applikationsentwicklung neben proprietären SPS-Programmiersystemen auch offene Linux-Systeme für die Programmierung in C/C++ anbieten. Ein solches offenes System hat fraglos viel Charme und zahllose Vorteile. Im Vergleich zu einem proprietären SPS-Programmiersystemen fehlen jedoch wesentliche, für industriellen Anwendungen typische, Infrastruktur-Funktionalitäten: Zur frühzeitigen Fehlererkennung und Vermeidung von Störungen oder Unfällen ist ein zuverlässiges Alarm-Management notwendig. Der Datenaustausch mit anderen Geräten wird meist mittels verschiedene Feldbus-Protokolle abgewickelt. Für dezentrale Systeme ist ein Fernzugriff über Internet oder dedizierte Funknetze erforderlich. Auch bei zentralisierten Systemen wird der Wunsch immer größer auch vom entfernten Standort aus oder mobil auf Diagnose-Information und Live-Daten zugreifen zu können. Für die Konfiguration und Bedienung der Anwendung muss auf einfachste Weise eine grafische Oberfläche zusammenstellbar sein - verwendbar für den Zugriff per Browser oder auf einem angeschlossenes Display. Nicht zuletzt muss ein sicheres und einfaches Konzept für Software-Updates existieren - auch vom entfernten Standort aus nutzbar. Die Erfahrung hat gezeigt, dass das Fehlen einer oder mehrerer dieser Funktionalitäten den Anwendungsentwickler meist vor große Probleme stellt und die Entwicklungszeit sowie das Risiko deutlich vergrößert.
Es existieren verschiedene Ansätze Software-Stacks aus anderen Bereichen auch für industrielle Anwendungen zu nutzen. Der bekannteste Vertreter dabei ist die Android-Plattform. Neben dem ausgefeilten App-Konzept bietet vor allem die konmfortable grafische Benutzeroberfläche einen großen Fortschritt für die Anwendungsentwicklung. Dennoch bleiben dabei im speziellen SPS-Umfeld viele typische Anforderungen auf der Strecke.
Um neben dem Charme eines offenen Linux-Systems auch die typische SPS-Funktionalität zu erlangen haben wir gemeinsam mit unserem Kunden einen Software-Stack entwickelt, welcher speziell den Anforderungen von industriellen eingebetteten Anwendungen Rechnung trägt. Basis des Stacks ist natürlich ein Linux-System. Wichtige Kernanforderungen sind dabei eine harte Echtzeitfähigkeit, geringe CPU-Auslastung sowie ein minimaler Speicherbedarf. Somit wird eine hohe Skalierbarkeit erreicht, was auch die Verwendung auf "Low-Performance"-Systemen erlaubt. Darauf aufbauend realisieren verschiedenen Komponenten die erforderlichen Funktionalitäten: Ein Alarmmanager erlaubt das Reagieren auf Fehlersituation, informiert angebundenen Systeme per M2M-Kommunikation oder den Betreiber per E-Mail oder SMS. Ein Diagnosesystem sammelt Anwendungsspezifische Logging-Informationen. Verschiedene Feldbus-Protokolle (z.B. CANopen, EtherCAT, Modbus, M-BUS, EC 60870-5-104 oder IEC 61850) können zur Kommunikation mit angeschlossenen Geräten verwendet werden. Daneben bieten Basisdienste wie FTP oder HTTP(s) einen komfortablen Kommunikationskanal zu übergeordneten Systemen. Zur Live-Daten-Erfassung sowie Fernadministration können Daten mit einem Portal-Server ausgetauscht werden. Die eigentliche Anwendung wird in C/C++ oder einer SPS-typischen Sprache entwickelt. Für kleine Steuer- und Regelaufgaben existiert eine Browser-basierte Programmierumgebung. Zur Bedienung der Anwendung kann eine individuelle Visualisierung entworfen werden, welche im Browser oder auf einem angeschlossenen Display angezeigt wird. Der Update der Anwendungssoftware kann mit signierten Paketen via Browser oder entfernten Webserver erfolgen.
Der Software-Stack ergänzt das Linux-System um die typischen Anforderungen industrieller eingebetteter Anwendungen. Dabei bleibt die Flexibilität und der Charme des offenen Systems erhalten und dem Anwendungsentwickler wird eine Menge Arbeit erspart.
Über den Autor Christoph Stoidner:
Christoph Stoidner studierte Informatik an der heutige THM in Gießen. Als freiberuflicher Software-Entwickler beschäftigte er sich lange Zeit mit Betriebssystemen, Laufzeitumgebungen und Treibern für SPS-Systeme. Heute berät er mit der arvero GmbH als selbstständiger Unternehmer Kunden beim Einsatz von "Embedded Linux"-Systemen.