Codesys
Der Unterbau für virtuelle Steuerungen
Virtuelle Steuerungen versprechen Flexibilität und Ressourceneffizienz, stellen aber klare Anforderungen an das Systemdesign. Erfahren Sie, welche Rolle Linux, Preempt RT, Container-Engines und Paketmanager spielen und worauf Maschinen- und Anlagenbauer bei Auswahl und Betrieb achten sollten.
Virtuelle Steuerungen lassen sich im Gegensatz zu Soft-SPSen mehrfach auf einem einzigen Gerät nutzen – abhängig von dessen CPU-Leistung. Dazu werden sie nicht installiert, sondern über Images als Softwarecontainer instanziiert. Einmal verfügbar, lassen sie sich wie physikalische Steuerungen unabhängig voneinander betreiben – jedoch ohne zusätzliche Verdrahtung, Netzteile oder Platz auf Hutschienen.
Doch können solche Steuerungen die gleichen Echtzeit-eigenschaften bieten wie physikalische Systeme? Grundsätzlich ist dies möglich, allerdings müssen dafür bestimmte Voraussetzungen erfüllt sein. Diese werden in diesem Artikel anhand des geräteunabhängigen IEC-61131-3-Systems Codesys erläutert. Eine wichtige Anforderung vorab: Energiesparfunktionen wie PowerSafe-Optionen können bei Workstation-PCs und insbesondere bei mobilen Systemen sinnvoll sein, wirken sich jedoch negativ auf deterministische Anwendungen aus. Für Systeme mit Echtzeitanforderungen müssen diese Optionen im BIOS deaktiviert werden. Nur mit einer konstanten Taktfrequenz als Basisgröße lassen sich feste Zykluszeiten garantieren
Welche weiteren Anforderungen zu berücksichtigen sind, wird im Folgenden beschrieben.
Passendes Betriebssystem für virtuelle Steuerungen
Linux ist als Betriebssystem in industriellen Steuerungen mittlerweile weit verbreitet, sowohl für physikalische als auch für virtualisierte Systeme. In der Vergangenheit war die Vielfalt eingesetzter Betriebssysteme größer. SPSen wurden teilweise mit Nischensystemen wie pSOS, FreeRTOS oder Nucleus RTOS betrieben, teils auch ganz ohne Betriebssystem. Das anpassbare SPS-Laufzeitsystem Codesys Control ermöglichte solche Individualisierungen.
Mit der zunehmenden Standardisierung auf Linux steht eine einheitliche Betriebssystembasis zur Verfügung, durch die grundlegende Funktionen wie Ethernet oder Dateisysteme unmittelbar nutzbar sind. Leistungsfähige CPUs und ausreichender Speicher sind in Industriehardware heute in der Regel vorhanden. Da Linux als Open-Source-System kostengünstig eingesetzt werden kann, hat sich diese Lösung etabliert. Auch Anbieter klassischer Echtzeitbetriebssysteme wie Wind River Systems stellen Linux-Distributionen bereit.
Für den Einsatz virtueller Steuerungen ist ein Zugang zum Zielsystem über Secure Shell (SSH) erforderlich. Bei manchen Systemen müssen SSH und entsprechende Benutzerkonten zunächst aktiviert beziehungsweise eingerichtet werden.
Linux wurde ursprünglich als Workstation-Betriebssystem konzipiert und ist per se nicht echtzeitfähig. Abhilfe schafft der zusätzliche Echtzeitkernel ‚Preempt RT‘, der inzwischen vollständig in den Linux-Kernel integriert ist. Je nach Distribution kann entweder ein Image mit integriertem Echtzeitkernel verwendet oder dieser nachträglich installiert werden (Bild 1).
Zusätzliche Maßnahmen können das Echtzeitverhalten weiter verbessern. In der Codesys Online-Hilfe werden entsprechende Optimierungsschritte sowie Messmethoden beschrieben, mit denen sich der Erfolg der Schritte und die Echtzeiteigenschaften des Gesamtsystems bewerten lassen. Bei der erstmaligen Nutzung virtueller Steuerungen stellt sich häufig die Frage nach der geeigneten Linux-Distribution. Codesys nutzt Debian Linux als Basis für die Entwicklung. Grundsätzlich können jedoch auch andere technisch kompatible Distri-butionen eingesetzt werden, beispielsweise von Red Hat, Canonical oder SUSE. Kommerzielle Distributionen bieten ergänzende Support- und Wartungsleistungen, was insbesondere dann relevant ist, wenn Unternehmen (noch) nicht über eine ausgeprägte eigene Linux-Kompetenz verfügen. Darüber hinaus existieren vorkonfigurierte Systeme und Images, die etwa Echtzeitfähigkeit, Security sowie Sicherheits- und Update-Mechanismen bereits enthalten, zum Beispiel Lösungen auf Basis von TTTech nerve.
Mit dem Yocto-Framework lassen sich Linux-Systeme individuell zusammenstellen. Dies bietet hohe Flexibilität, macht den Anwender jedoch zum Systemhersteller. Damit verbunden ist die Verpflichtung zur Bereitstellung von Sicherheitsupdates, etwa im Rahmen des Cyber Resilience Act, was zusätzlichen organisatorischen Aufwand bedeutet.
Container und Laufzeitsysteme
Für den Einsatz virtueller Steuerungen ist eine installierte Container-Engine erforderlich, je nach Linux-Distribution beispielsweise Docker oder Podman. In den Containern geschieht die eigentliche Abstraktion der Steuerung: Speicher und Schnittstellen werden als Ressourcen bereitgestellt, deren Nutzung gekapselt und deren Performance-Bedarf verwaltet. So stellt man durch Konfiguration Ressourcen bereit, insbesondere von Netzwerkschnittstellen für den Feldbus. Ob dabei physikalische oder per vLAN virtualisierte Netzwerkschnittstellen genutzt werden, spielt keine Rolle. Container verhalten sich wie autarke Subsysteme, basieren jedoch auf dem zugrunde liegenden Betriebssystem und erben dessen Eigenschaften, insbesondere die Echtzeitfähigkeit. Sie werden auf Basis von Images aufgesetzt, die bereits die virtuelle Steuerung in Form des Laufzeitsystems ‚Codesys Virtual Control SL‘ zur Ausführung der Steuerungsapplikation enthalten. Solche Container samt virtueller Steuerung lassen sich unabhängig voneinander managen, also starten, stoppen und auch wieder entfernen.
Mit einem ‚Linux Package Manager‘ werden die Images in den Containern verwaltet. Bei Codesys werden dpkg für Debian-basierte Systeme und rpm für Red-Hat-Systeme unterstützt. Zwar lassen sich Packages grundsätzlich auch ohne Paketmanager einsetzen, die Anwendungs- und Installa- tionsprozeduren dafür sind jedoch fehleranfällig. Um die Verwaltung zu vereinfachen, werden alle erforderlichen Operationen über ein Python-Skript automatisiert. Entsprechend ist zusätzlich eine aktuelle Python-Engine erforderlich. Sie lässt sich mit nur einem Kommando nachinstallieren. Auf Basis dieses Skripts kommandiert das Codesys Development System in dem Deploy-Add-on die gesamte Containerverwaltung (Bild 2). Für die Nutzung der SPS wird somit kein SSH-Tool benötigt. Die Skriptfunktionen (Bild 3) können bei Bedarf auch von anderen Tools genutzt werden und bilden eine zentrale API zur Verwaltung virtueller Steuerungen – für Automatisierer ebenso wie für IT-Administratoren.
Erweiterte Virtualisierung
Soll Linux nicht das einzige Betriebssystem auf dem Zielgerät sein, können optional Hypervisor-Systeme zur tiefergehenden Virtualisierung der Hardware eingesetzt werden. Diese ermöglichen den parallelen Betrieb weiterer Betriebssysteme wie Windows, VxWorks oder QNX – jede per Hypervisor virtualisierte Maschine kann ihr eigenes Betriebssystem mitbringen. Acontis, Realtime Systems oder VMware/ Broadcom bieten beispielsweise Produkte mit integriertem Echtzeitverhalten an. Der Nachteil: Jede virtuelle Maschine benötigt eine eigene Betriebssysteminstallation sowie fest zugewiesene Ressourcen wie CPU, RAM, SSD, CPU und Schnittstellen. Dadurch steigt der Gesamtressourcenbedarf des Zielsystems. Der Einsatz von Hypervisoren ersetzt die Container für virtuelle Steuerungen nicht, sondern ergänzt sie gegebenenfalls.
"Single Source" oder "Best-in-class"
In der Vergangenheit setzten Automatisierer häufig auf Komplettlösungen eines einzelnen Herstellers. Dies vereinfachte Abstimmung und Support, führte jedoch auch zu Abhängigkeiten bei Lieferfähigkeit und Preisgestaltung.
Demgegenüber steht der "Best-in-class"-Ansatz, bei dem Komponenten anwendungsbezogen ausgewählt werden. Virtuelle Steuerungen unterstützen dieses Vorgehen, da sie hardwareunabhängig eingesetzt werden können. Zwar entsteht initial ein höherer Aufwand, dafür bleibt die Auswahl von Systemkomponenten und Lieferanten flexibel.
Dieses Prinzip ist aus offenen Feldbussystemen bekannt. Das Gleiche gilt in der Steuerungswelt für virtuelle Codesys-Steuerungen. Zusätzliche Funktionen wie Visualisierung sowie Motion-, CNC- oder Robotics-Anwendungen können über integrierte oder externe Subsysteme realisiert werden.
Zur Unterstützung der Systemauswahl existieren vorkonfigurierte Bundles aus Betriebssystemen, getesteten Konfigurationen und teilweise auch Hypervisoren auf typischen Hardwareplattformen. Messwerte für diese Plattformen geben Aufschluss über die Leistungsfähigkeit und die Grenzen dieser Systeme. Auch ein Wechsel zu einer anderen CPU-Architektur, etwa von x86 zu ARM, ist möglich, sofern die Steuerungsapplikation unverändert in Echtzeit ausgeführt werden kann. Die Abstraktion der Hardware mit ihrer Konfiguration macht es dem Automatisierer einfach, bei Bedarf zum optimalen System zu wechseln. In jedem Fall kann man sich anhand weniger Parameter das gewünschte System zusammenstellen und bei Bedarf weiterentwickeln. Die Vorteile klassischer SPS bleiben dabei erhalten.
| Web-Tipp |
|
Mit virtuellen Steuerungen können Motion- und Robotikaufgaben auch über große Distanzen zuverlässig ausgeführt werden. Wie, lesen Sie hier. Erfahren Sie, wie Sie ein Linux-basiertes Codesys Control SL-Produkt für Ihr Gerät und Ihre Anwendung einrichten. Klicken Sie hier. |
Codesys auf der embedded world 2026: Halle 4, Stand 307














