Skip to main content
Von Fabian Ott
05. März 2024

Echtzeit Maschinensteuerung und Hardwareunabhängigkeit

5. März 2024
Von Fabian Ott

Unabhängigkeit gegenüber der Wahl der Hardware für ihre Steuerungsanwendung bringt viele Vorteile. Mit der Nutzung eines offenen Hardwarekonzepts stehen Ihnen die modernen Tools der Softwareentwicklung zur Verfügung und Sie haben die Möglichkeit auf Engpässe in den Lieferketten einfacher zu reagieren. Dies schliesst entgegen weitläufiger Meinung auch Echtzeit Maschinensteuerung nicht aus. Erfahren Sie hier wie dies anhand eines vergangenen Kundenauftrages aussehen kann.

Ausgangslage

Auslöser für das Projekt waren die enormen Lieferschwierigkeiten bei industriellen Steuerungskomponenten. Mit einem Absatz von jährlich mehreren hundert Maschinen pro Maschinentyp, waren die Auswirkungen der Lieferkrise für unseren Schweizer Kunden enorm.

Die bisherige Hardware, basierend auf einer Ein-Hersteller Integration, erlaubte keinen Einsatz von Hardware anderer Hersteller. Um die Produktion wiederherzustellen und unseren Kunden für künftige Probleme in den Lieferketten zu wappnen, musste so schnell wie möglich ein Replattforming durchgeführt werden. Ein Wechsel auf die nächste proprietäre Plattform war dabei kein Thema.

Entwicklungs- und Testsimulator

Für die gewählte Hard- und Software soll zu Entwicklungs-, Test- und Demonstartionszwecken ein Simulator aufgebaut werden. Eine ausführlichere Beschreibung zum Aufbau des Simulators finden Sie hier: Entwicklungs- und Testsimulator

Anforderungen

  • Das zugrundeliegende Betriebssystem soll eine weite Verbreitung haben und so die Kompatibilität mit derzeitiger und künftiger Hardware erhöhen.
  • Die verwendete Hardware für das Betriebssystem soll in einer kompatiblen Hardware-Architektur (ARM / X86 als Priorität) von mehreren Herstellern angeboten werden.
  • Ein Wechsel des Hardwaretyps soll in «vertretbarem» Aufwand erfolgen können, ein erneutes Umschreiben der Steuerungssoftware soll ausgeschlossen werden.
  • Es soll auf bewährten Software-Stacks aufgebaut werden, da im Maschinenbau Zuverlässigkeit und Ausfallsicherheit ein sehr wichtiges Gut ist.

Lösung

Betriebssystem

Als zugrundeliegendes Betriebssystem kommt Linux mit dem PREEMPT_RT Echtzeitpatch zum Einsatz, welcher grundsätzlich und unabhängig von der Hardwarerchitektur überall installiert werden kann, auf der auch Linux läuft.

Zwei Varianten wurden getestet, eine mit Yocto-Linux im Selbstbau sowie eine mit einem bereits bestehenden Betriebssystem, basierend ebenfalls auf Yocto. Das bestehende Betriebssystem kam von einem unserer Hardware- und Integrationspartner – Weidmüller.

Weidemüller, eine Firma die sich «Hardware Agnostik» auf die Fahne geschrieben hat, unterstützte uns dabei ihr Betriebssystem auf die ausgewählte Hardware zu portieren. Dies konnten wir mit verhältnismässig geringem Aufwand erreichen, in dem wir uns das ARM Systemready™ Programm resp. deren Schnittstelle zu Nutze machten. Auf diese Weise war es nicht nötig das Yocto Betriebssystem neu zu kompilieren.

IEC-61131-3 und nicht IEC-Umgebungen

Als IEC-61131-3 Laufzeitumgebung kommt die PLC-Runtime Codesys zum Einsatz, diese wird bereits von vielen Herstellern unterstützt und ist für verschiedenste Betriebssysteme, unter anderem auch für Linux, verfügbar. Hier konnten wir eine Standard „Vanilla“ Version von Codesys verwenden und die, an der Hardware, nötigen Optimierungen durchführen.

Eine weitere Möglichkeit wäre die Verwendung von OpenPLC. Wichtiger war bei diesem Kunden jedoch die Möglichkeit des kommerziellen Support und der Einsatz einer bewährten Runtime.

Auch die Verwendung von nicht IEC-61131-3 kompatible Sprachen ist kein Problem. Egal ob C/C++, Rust, Go, etc. Das Linux Realtime Scheduling ist nicht gebunden an eine Programmiersprache.

Containerisierung

Um eine grösst mögliche Unabhängigkeit gegenüber dem Betriebssystem zu erreichen kann auf eine konsequente containerisierung der Applikationen mittels z.B. Docker gesetzt werden. Dies ermöglicht das Einsetzen von modernem Software CI/CD Tooling. So können Softwarekomponenten, verantwortlich für das HMI, die Datenerfassung usw. separiert werden. Entgegen den langläufigen Vorurteilen ist grundsätzlich auch die containerisierung der Echtzeitanwendung selbst denkbar, da ein Linux- basierter Container auf einem Linux- Host nicht virtualisiert ist und so kaum Einbussen bei der Performance entstehen.

Feldbus

Als Feldbus kam EtherCAT™ sowie CANOpen zum Einsatz, beide Protokolle sind bewährt und weit verbreitet. Im Falle von EtherCAT™ kann auf dem Master eine standard Netzwerkkarte verwendet werden. Im Gegensatz zu anderen Echtzeit Feldbustechnologien, basierend auf Ethernet, setzt EtherCAT™ keine spezielle Hardware für die Netzwerkverbindung voraus.

Antriebstechnik und Motion

Zur Ansteuerung der Antriebe kam die CIA 402 kompatible Softmotion Bibliothek von Codesys zum Einsatz. Mit dieser können verschiedenste Antriebe von diversen Herstellern angesteuert werden. Wird z.B. C / C++ verwendet, könnte zum Beispiel auch der Acontis Stack verwendet werden welcher von viele etablierte Hersteller eingesetzt wird.

Fazit

Je nach Anforderung stehen unterschiedliche Möglichkeiten und Technologien zur Erreichung einer Harwareunabhängigkeit zur Verfügung. Zögern Sie nicht uns, bezüglich einer massgeschneiderten Lösung zu kontaktieren.