Rust als sichere Alternative?

Codebeispiel mit Kompilierfehler des Borrow-Systems
Codebeispiel mit Kompilierfehler des Borrow-Systems

Darauf aufbauend kann die Implementierung des Steuerungsprogramms erfolgen. Dabei wird auf eine klare Trennung von Echtzeit- und Nicht-Echtzeitanteilen geachtet. Das hat den Vorteil, dass unkritischer Code keine Echtzeitressourcen verschwendet und der wirklich kritische Code kleiner wird. Allerdings werden Datenstrukturen benötigt, um Daten zwischen den beiden Teilen auszutauschen, ohne den Echtzeitteil zu blockieren. Sie werden in einer Bibliothek zur Verfügung gestellt, in der auch andere typischen Modelle wie Zustandsautomaten enthalten sind. Sowohl im Echtzeit- als auch im Nicht-Echtzeitteil können beliebige Bibliotheken eingebunden werden, die für das jeweilige Betriebssystem verfügbar sind. Das bietet einen hohen Mehrwert, da auf eine Vielzahl von Bibliotheken zurückgegriffen werden kann. Für den Echtzeitteil müssen jedoch zusätzliche Validierungen durchgeführt werden, z.B. die Freiheit von Speicherzuweisungen oder ungebundenen Schleifendurchläufen. Dies kann durch statische Codeanalyse oder durch Analysen während des Kompiliervorgangs erfolgen.

Ausblick

Das Interesse an Rust in der Steuerungstechnik zeigt sich auch in Projekten wie einem vollständig in Rust implementierten OPC UA Server und Client oder einem Ethercat Master. Um das Potential von Rust zu evaluieren und die Praxistauglichkeit zu testen, wird die vorgestellte Architektur am ISW der Universität Stuttgart analysiert und implementiert. Die bisherigen Erfahrungen zeigen, dass Rust das Potential für die SPS-Programmiersprache der Zukunft hat.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert