Suchen

Model-Based Design und automatische Codegenerierung für SPS

| Autor / Redakteur: Philipp Wallner * / Sebastian Gerstl

Während Steuerungssoftware im Anlagen- und Maschinenbau eine immer wichtigere Rolle spielt, fallen Funktionstests in der Praxis meist noch unter den Tisch. Dabei bieten Steuerungsplattformen bereits seit Jahren nahtlos integrierte Schnittstellen für modellbasierte Entwicklung, Simulation und automatische Generierung von SPS-Software, was diese Probleme minimiert.

Firma zum Thema

Da die Anforderungen an Produktqualität, Maschineneffizienz sowie an flexible Produktionslösungen stetig steigen, ist es notwendig, Maschinensoftware effizienter zu entwickeln und zu testen. Alternative Entwürfe können mittels Simulation schnell und einfach durchgespielt und im Anschluss als wiederverwendbare Softwarebausteine automatisch auf eine Industriesteuerung übertragen werden. Hilfreich sind hierbei eine modellbasierte Entwicklung und darauf basierend die automatische Generierung von Steuerungscode.
Da die Anforderungen an Produktqualität, Maschineneffizienz sowie an flexible Produktionslösungen stetig steigen, ist es notwendig, Maschinensoftware effizienter zu entwickeln und zu testen. Alternative Entwürfe können mittels Simulation schnell und einfach durchgespielt und im Anschluss als wiederverwendbare Softwarebausteine automatisch auf eine Industriesteuerung übertragen werden. Hilfreich sind hierbei eine modellbasierte Entwicklung und darauf basierend die automatische Generierung von Steuerungscode.
(Bild: Clipdealer)

Der Maschinenbau ist im Wandel. Im Zuge der digitalen Transformation hat die Mechanik längst ihre dominierende Rolle bei der Entstehung von Produktionsmaschinen verloren. Heute sind es umfangreiche und anspruchsvolle Steuerungsprogramme, die das Kern-Know-how beinhalten – und die der Maschine „Leben einhauchen“.

Während aber die Bedeutung von Software und Daten im Maschinenbau mittlerweile unbestritten ist, werden Steuerungsprogramme nach wie vor kaum strukturierten Tests unterzogen, sondern meist erst an der realen Maschine „ausprobiert“. Um den Auslieferungstermin nicht zu verzögern, wird die Maschine in Konsequenz weitgehend ungetestet ausgeliefert. Fehler und Stillstände im Feld, verbunden mit kostenintensiven Update-Einsätzen, sind die Folge.

Getestete Software durch modellbasierte Entwicklung

Return on Investment für unabhängige Verifizierung und Validierung: Je später im Entwicklungszyklus ein Fehler erkannt und behoben wird, desto kostspieliger und unangenehmer wirkt er sich aus.
Return on Investment für unabhängige Verifizierung und Validierung: Je später im Entwicklungszyklus ein Fehler erkannt und behoben wird, desto kostspieliger und unangenehmer wirkt er sich aus.
(Bild: NASA)

Aus diesem Grund setzen immer mehr führende Maschinenbauer wie ENGEL und Trumpf auf modellbasierte Entwicklung („Model-Based Design“) und automatische Generierung von Steuerungscode. Modellbasierte Entwicklung erlaubt umfangreiche Tests der Software, lange bevor die Maschine zur Verfügung steht, und der Schaltschrank fertig verkabelt ist. Möglich wird das durch Simulationsmodelle, die das Verhalten der Mechanik und Elektrik im Zusammenspiel mit der Steuerungssoftware wiedergeben. Fehler, die sonst nur durch umfangreiche Tests an der Maschine oder im Laborbetrieb festgestellt und damit sehr spät im Entwicklungsprozess gefunden und behoben worden wären, sind damit frühzeitig erkennbar.

Auch Testszenarios, die wegen Gefährdung von Mensch und Maschine normalerweise gar nicht durchgeführt werden können, sind in der Simulation gefahrlos zu beobachten. Damit wird das Risiko von Verzögerungen bei der Auslieferung und kostenintensiven Stillständen im Feld minimiert und Kosten für physikalische Prototypen reduziert.

Immer häufiger findet die virtuelle Inbetriebnahme Einzug in den Entwicklungsprozess im Maschinenbau. Dabei wird eine digitale Repräsentation der Maschine oder Anlage – also ein Modell oder digitaler Zwilling – mit der auf der Industriesteuerung laufenden Applikation verbunden. Der Steuerung wird das Verhalten der physikalischen Anlage vorgegaukelt, sodass auf diesem Weg die Funktionalität in einer sicheren Umgebung gewährleistet werden kann.

Steuerungssoftware auf Knopfdruck

Die modellbasierte Entwicklung geht an dieser Stelle noch deutlich über die virtuelle Inbetriebnahme hinaus. Dabei wird zusätzlich auch die Steuerungsapplikation, die später an der physikalischen Anlage läuft, modelliert und zusammen mit dem Maschinen- oder Anlagenmodell in der Simulation getestet. Die so verifizierten Funktionen werden anschließend nicht mehr manuell codiert, sondern auf Knopfdruck auf die Steuerung – also eine SPS oder einen Industrie-PC – übertragen.

Die Vorteile der automatischen Generierung von SPS-Code liegen dabei auf der Hand. Zum einen werden die bereits getesteten Funktionen fehlerfrei in für die Steuerung verständlichen Quellcode (C, C++ oder IEC 61131-3) übersetzt. Selbst bei sehr umfangreichen Programmen kommt es dabei nicht zu Implementierungsfehlern, die bei manueller Programmierung auch durch erfahrene Programmierer kaum vermeidbar sind. Zum anderen kann sich der Entwickler auf seine Kernkompetenz – zum Beispiel die Entwicklung einer Ablaufsteuerung oder eines Regelalgorithmus – konzentrieren und muss sich nicht mit den Besonderheiten der jeweils eingesetzten SPS-Sprache auseinandersetzen. Auch der Wechsel von einer Sprache in eine andere (zum Beispiel von C zu strukturiertem Text oder umgekehrt) oder von einer Steuerungsplattform auf eine andere ist einfach möglich. Das Modell bildet hier stets den Ausgangspunkt für die Codegenerierung. Der automatisierte Workflow verkürzt die aufgewendete Entwicklungszeit von der Anforderung bis zur fertigen Implementierung und schafft damit Zeit für Innovationen.

Evolution der Programmiersprachen: Durch modellbasierte Entwicklung findet eine weitere Abstraktion der Programmierung von Maschinensoftware statt, die dabei hilft, die steigende Komplexität handhabbar zu machen.
Evolution der Programmiersprachen: Durch modellbasierte Entwicklung findet eine weitere Abstraktion der Programmierung von Maschinensoftware statt, die dabei hilft, die steigende Komplexität handhabbar zu machen.
(Bild: Mathworks)

Insgesamt findet eine weitere Abstraktion der Programmierung von Steuerungen statt. Wurde in den Anfängen das Programm in Maschinensprache oder Assembler implementiert, so unterstützen die Entwicklungsumgebungen der Steuerungshersteller heute Hochsprachen wie C, C++ oder die in der IEC 61131-3 Norm zusammengefassten Sprachen. Durch die zunehmende Bedeutung modellbasierter Entwicklung kommt mit der automatischen Generierung von SPS-Code aus Simulationsmodellen eine weitere Abstraktionsebene hinzu, die die Komplexität umfangreicher Maschinenapplikationen handhabbar macht.

Hier darf jedoch keinesfalls der Fehler gemacht werden, die Modelle in Simulink als eine Art grafischer Programmierung zu verstehen. Es handelt sich vielmehr um ausführbare Spezifikationen, die eine frühzeitige Absicherung der Funktionalität durch Simulation und die Erstellung von Steuerungsprogrammen durch automatische Codegenerierung ermöglichen.

Spricht Ihre SPS MATLAB?

In anderen Branchen wie der Automobil- oder Luftfahrtindustrie seit vielen Jahren etabliert, gewinnt das Thema der Codegenerierung auch im Umfeld des Maschinenbaus immer mehr an Bedeutung. Das spiegelt sich in der Tatsache wider, dass alle gängigen Hersteller von Industriesteuerungen und Industrie-PCs Schnittstellen zu MATLAB und Simulink anbieten.

Unterstützte Steuerungsplattformen aus MATLAB und Simulink: Alle gängigen Steuerungshersteller unterstützen die automatische Generierung von SPS-Code (IEC 61131 oder C/C++).
Unterstützte Steuerungsplattformen aus MATLAB und Simulink: Alle gängigen Steuerungshersteller unterstützen die automatische Generierung von SPS-Code (IEC 61131 oder C/C++).
(Bild: Mathworks)

Der Ablauf für die automatische Codegenerierung ist dabei folgender: In MATLAB oder Simulink implementierte und getestete Applikationen werden auf Knopfdruck in für die Steuerung verständlichen Quellcode – je nach Zielplattform IEC 61131, C oder C++ – umgewandelt und in die jeweilige Entwicklungsumgebung des Steuerungsherstellers integriert. Damit werden die Vorzüge beider Systeme vereint. Funktionen für Ablaufsteuerungen, Regelalgorithmen sowie für die Echtzeitauswertung von Prozessdaten werden in MATLAB und Simulink entwickelt, während die Anbindung an die Steuerungshardware und die Erstellung der Maschinenvisualisierung in der Entwicklungsumgebung für die SPS erfolgen.

Ein weites Anwendungsfeld sind Algorithmen für die Künstliche Intelligenz. So können etwa Machine Learning Modelle für die vorausschauende Wartung („Predictive Maintenance“) in MATLAB entwickelt und trainiert und dann mithilfe der Codegenerierung auf die Steuerung übertragen werden. Eine manuelle Umsetzung mit herkömmlichen Mitteln der Programmierung wäre hier nur mit großem Aufwand möglich.

Auch die Steuerungshersteller bestätigen, dass die automatische Generierung von Maschinenprogrammen von innovativen Unternehmen, die sich als Marktführer in ihren Segmenten behaupten, bereits erfolgreich eingesetzt wird.

* Der Autor: Philipp Wallner arbeitet als Industry Manager, EMEA, Industrial Automation & Machinery bei MathWorks.
* Der Autor: Philipp Wallner arbeitet als Industry Manager, EMEA, Industrial Automation & Machinery bei MathWorks.
(Bild: Mathworks)

Der Markt ist im Umbruch: Markteinführungszeiten werden immer kürzer, gleichzeitig werden Anforderungen an Qualität, Maschineneffizienz und flexible Produktlösungen stetig weiter steigen. Um Ausfälle und unnötige Verzögerungen zu vermeiden ist es daher mittlerweile unverzichtbar, Maschinensoftware gründlich und effizient zu entwickeln als auch zu testen. Um dies zu beschleunigen, können alternative Entwürfe mittels Simulation auf einer geeigneten Plattform schnell und einfach durchgespielt und anschließend automatisch auf eine Industriesteuerung übertragen werden. Bewährte Softwarebausteine lassen sich dabei leicht wiederverwenden. Führende Maschinenbauer haben das erkannt und setzen seit Jahren erfolgreich auf modellbasierte Entwicklung und automatische Generierung von Steuerungscode.

(ID:46742629)