Modellbasierte Software-Entwicklung Matlab/Simulink und PLCnext: Applikationen fehlerfrei umsetzen

Von Konstantin Just, Florian Zaffke*

Eine modellbasierte Entwicklung mit Matlab/Simulink in Kombination mit den PLCnext-Controllern unterstützt bei der Erkennung und Behebung konzeptioneller Fehler früh im Entwicklungsprozess der Automatisierung.

Anbieter zum Thema

Bild1: Die Software PC Worx Target for Simulink ermöglicht die automatische Konvertierung von Simulink-Modellen in gerätespezifischen Code für die Steuerungen von Phoenix Contact.
Bild1: Die Software PC Worx Target for Simulink ermöglicht die automatische Konvertierung von Simulink-Modellen in gerätespezifischen Code für die Steuerungen von Phoenix Contact.
(Bild: Phonix Contact)

Die technischen Funktionen moderner Maschinen und Anlagen werden stetig komplexer und fordern flexiblere und effizientere Entwicklungslösungen, um den wachsenden Kosten einer Neuentwicklung in der Automation entgegenzuwirken. Daher hat der Stellenwert von Software in den letzten Jahren zugenommen. Durch den modellbasierten Ansatz werden das Steuerungsprogramm und das Maschinenmodell im Simulationswerkzeug modelliert. Da das Modell nicht nur als grafische Repräsentation fungiert, sondern sich auch simulieren lässt, erlaubt es die frühzeitige Verifizierung des Gesamtmodells durch Simulation gegen die Systemanforderungen. Mit dem modellbasierten Ansatz ist deshalb eine Vielzahl von Applikationen einfacher umsetzbar: kaskadierte Regelungen, schnelle Momentregelungen oder die Realisierung komplexer mathematischer Formeln in einer steuerungstechnischen Anwendung.

Gleichzeitige Simulation und Verifizierung

Um derartige Applikationen einfach und elegant auszuführen, empfiehlt sich das Software-Tool Matlab/Simulink von The MathWorks. Die schon in den 1970er Jahren entwickelte Programmiersprache Matlab hat sich seither weltweit in verschiedenen Bereichen als Standard-Werkzeug etabliert, etwa in der Datenanalyse, Bildverarbeitung sowie der Entwicklung von Steuerungs- und Regelungs-Algorithmen. Durch die anschließende Kopplung mit dem Erweiterungsmodul Simulink erhalten die Anwender die Option, grafische Blöcke zur Modellierung zu nutzen. Damit lassen sich komplexe mechanische, elektrische oder mechatronische Systeme übersichtlich visualisieren. Prototypen können schnell und kostengünstig erarbeitet werden, weil eine gleichzeitige Simulation und Verifizierung möglich ist. Da der Nutzer die Entwicklungsumgebung darüber hinaus um zahlreiche Toolboxen für spezielle Applikationsfelder ergänzen kann, sinkt der Modellierungsaufwand aufgrund der Verwendung vorgefertigter Funktionsmodule. Vor diesem Hintergrund ist es nicht verwunderlich, dass sich Matlab/Simulink wegen seiner modellbasierten Ansätze bei der Entwicklung komplexer Systeme in vielen Branchen durchsetzen konnte – beispielsweise der Wind- oder Automobilindustrie.

Der Einsatz im Maschinen- und Anlagenbau

In Zeiten eines steigenden Kostendrucks sowie immer kürzerer Entwicklungszyklen der Systeme und Anlagen verlangen mittlerweile auch Maschinen- und Anlagenbauer solche Konzepte. Obwohl in diesen Industriebereichen bereits seit geraumer Zeit Modelle der Anlagen und Anlagenregler entworfen werden, erfolgt die Implementierung in ein Automatisierungssystem zumeist über eine manuelle Umwandlung der Regelalgorithmen in IEC-61131-Code, der dann auf der Steuerung abgearbeitet werden kann. Neben dem zusätzlichen Zeitaufwand durch die manuelle Transformation von Modellen erweist sich dieses Verfahren insbesondere bei komplexen Regelalgorithmen als fehleranfällig, was hohe Testaufwände nach sich zieht. Beim Einsatz der Toolbox Simulink Coder lässt sich jedoch aus einem Simulink-Modell, das zum Beispiel einen Pitch-Regler für eine Windenergieanlage beinhaltet, ausführbarer Maschinencode generieren.

Deterministisch sequenzielle oder parallele Ausführung

Bei der PLCnext Technology handelt es sich um ein offenes Ecosystem für aktuelle und zukünftige Automatisierungsanforderungen, das auf Linux aufsetzt und die Vorteile des Betriebssystems einfach nutzbar macht. Als Basis dient eine intelligente Schicht zwischen Anwenderprogramm und Betriebssystem, über die sämtliche Systemkomponenten Daten synchron sowie in Echtzeit austauschen. Aufgrund dieser offenen Schnittstelle lässt sich jede Projektaufgabe mit dem passenden Tool realisieren. Im Rahmen der Entwicklung verfügen die jeweiligen Programmierer in der Regel über unterschiedliche Kenntnisse. Als besonders komfortabel zeigt sich, dass Hochsprachenprogramme bei der PLCnext Technology nicht mehr in eine IEC-61131-Task eingebunden werden müssen. So können die Akteure in der von ihnen präferierten Programmiersprache – beispielsweise IEC 61131-3, C, C++, C#, Python oder Matlab/Simulink für regelungstechnische Anwendungen - parallel entwickeln, sodass sich die Codeerstellung deutlich beschleunigt.

Als Teil des offenen Ecosystems PLCnext Technology stellt PLCnext Engineer die Engineering-Umgebung für die Steuerungen von Phoenix Contact dar. Die in den unterschiedlichen Disziplinen erzeugten Projektteile lassen sich in diesem Tool zusammenführen, ohne dass sich der Entwickler Gedanken über Determinismus und Echtzeitfähigkeit machen muss. Hochsprachenprogramme und Modelle laufen dazu im Echtzeit-Kontext und können deterministisch sequenziell oder parallel zu den IEC-61131-3-Programmen ausgeführt werden. PLCnext Engineer übernimmt die Konfiguration der Abarbeitung ebenso wie die einfache und schnelle Verschaltung von Variablen aus den Modellen oder Hochsprachenprogrammen zu physikalischen I/O-Modulen oder anderen Programmen. Der Prozess läuft in den gewohnten Schritten ab, die der Anwender aus den weiteren Gewerken der Applikationsentwicklung verinnerlicht hat.

Automatische Code-Erzeugung für RFC- und AXC-Steuerungen

Mit dem „PC Worx Target for Simulink“ stellt Phoenix Contact die Schnittstelle zur Entwicklungsumgebung Matlab/Simulink bereit. Das Add-on erlaubt die automatische Code-Generierung des zu implementierenden Modells für alle gängigen Industriesteuerungen der Produktfamilien Remote Field Controller (RFC) und Axioline Controller (AXC). Zu diesem Zweck erzeugt es die Schnittstelle zwischen dem erstellten Code aus dem Simulink Coder und dem PLCnext Framework. Mit dem Add-on erhalten die Simulink-Anwender erweiterte Einstellmöglichkeiten, um zum Beispiel spezielle Änderungen am Code oder anderen Konfigurationsoptionen vorzunehmen, bevor diese mit nur einem Mausklick kompiliert werden (Bild 2).

Bild 2: 
Die Auswahl des Phoenix Contact-spezifischen System Target Files eröffnet der Entwicklung weitere Konfigurationsmöglichkeiten.
Bild 2: 
Die Auswahl des Phoenix Contact-spezifischen System Target Files eröffnet der Entwicklung weitere Konfigurationsmöglichkeiten.
(Bild: Phoenix Contact)

Die Integration des Modells gestaltet sich genauso intuitiv. Der aus Simulink erzeugte gerätespezifische Code des implementierten Modells kann einfach als Programm in ein Projekt eingebunden und als Task mit einer beliebigen Task-Zeit auf einer PLCnext-fähigen Steuerung ausgeführt werden. Anwender haben nun die Option, die erstellten Modelle in der Engineering-Oberfläche PLCnext Engineer zu öffnen und online während der Laufzeit zu überwachen, was zu einer umfassenden Transparenz führt. Es eröffnen sich ihnen somit eine Vielzahl von Alternativen, die in einer Engineering-Umgebung für Steuerungssysteme in der Regel nicht verfügbar sind (Bild 3).

Bild 3: Add-on zur Einbindung und Ausführung von Matlab/Simulink-Modellen auf den Steuerungen von Phoenix Contact.
Bild 3: Add-on zur Einbindung und Ausführung von Matlab/Simulink-Modellen auf den Steuerungen von Phoenix Contact.
(Bild: Phoenix Contact)

Verschiedene Möglichkeiten der Modellprüfung

Sämtliche Gewerke rund um das offene Ecosystem PLCnext Technology, die in Zusammenhang mit Matlab/Simulink stehen, lassen sich für die modellbasierte Entwicklung nutzen. Die zahlreichen Schnittstellen ermöglichen es dem Anwender, komplexe Regelsysteme auf einfache und effiziente Art zu entwickeln und das Gesamtverhalten eines Systems abzubilden. Als Beispiel sei die Steuerungssoftware für eine Windenergieanlage genannt. Ihr Design wird in der Entwicklungsumgebung Matlab/Simulink erzeugt und so lange getestet, bis das gewünschte Systemverhalten erreicht ist, beispielsweise auch durch Verwendung der darauf spezialisierten Toolbox Simulink Test (Bild 4).

Bild 4: Darstellung eines Multirate-Modells in Simulink.
Bild 4: Darstellung eines Multirate-Modells in Simulink.
(Bild: Phoenix Contact)

Im weiteren Entwicklungsverlauf werden die generierten Modelle auf den PLCnext-fähigen Steuerungen geprüft. Dazu stehen dem Anwender über das PC Worx Target for Simulink verschiedene Möglichkeiten zur Verfügung. Zum Beispiel lässt sich über das Feature Cosimulation ein Modell gleichzeitig in Simulink und auf der Steuerung abarbeiten, sodass die Equivalent der Modellausführung kontrolliert werden kann. Zusätzlich ist es möglich, die gemessenen Daten aus der Software-Simulation in Matlab/Simulink als Baseline aufzuzeichnen und mit den Daten auf der Hardware-Simulation zu vergleichen. Auf diese Weise kann der Anwender gezielt gegen Abweichungen vorgehen und das zu entwickelnde Modell nachjustieren.

Genaue Analyse über ein Add-on

Um zur generellen Übersicht eine grafische Repräsentation des Modells direkt in der Engineering-Oberfläche von PLCnext Engineer zu haben, lässt sich der Viewer for Simulink einsetzen. Mit dem Add-on zum ansonsten lizenzfreien Engineering-Tool ist das Modell inklusive Live-Daten analysierbar. Durch Hinzunahme weiterer Schnittstellen – wie dem Watch-Fenster oder dem Daten-Logger – können diese Daten direkt verändert oder auf einen bestimmten Wert gezwungen respektive protokolliert werden (Bild 5).

Bild 5: Grafische Repräsentation des in Simulink erstellen Modells im Engineering-Tool PLCnext Engineer.
Bild 5: Grafische Repräsentation des in Simulink erstellen Modells im Engineering-Tool PLCnext Engineer.
(Bild: Phoenix Contact)

Neben den klassischen Blöcken, die aus der Matlab/Simulink-Umgebung bekannt sind, wird ebenfalls das Stateflow Blockset unterstützt. Tritt ein Fehler auf, wie etwa bei einer Division durch Null, erfolgt an den Diagnoseausgängen des Modells eine entsprechende Anzeige. Durch die übergreifende Zusammenarbeit der Gewerke lassen sich die Debugging-Funktionen des Programmierwerkzeugs Eclipse ebenso im Zusammenhang mit dem GNU-Debugger (GDB) verwenden, damit Fehler detektiert, gegebenenfalls auf einen bestimmten Modellteil zurückgeführt und abgeändert werden können. Diese Iteration aus Modellentwicklung und Tests wird so lange wiederholt, bis das gewünschte Systemverhalten erreicht ist.

Offner Marktplatz für Apps und Bibliotheken

Ferner umfasst das offene Ecosystem PLCnext Technology andere nützliche Bestandteile, etwa den PLCnext Store. Er wurde als offener Marktplatz konzipieren, sodass Apps für nahezu jeden Anwendungsfall erhältlich sind. Im Store findet der Anwender z.B. Funktionsbibliotheken, die in IEC 61131 generiert wurden. Auch für Drittanbieter wird hier eine Plattform geboten, um die von ihnen entwickelten komplexen Regler oder Apps einer stetig wachsenden Community bereitzustellen – sei es kostenfrei oder gegen eine Lizenzgebühr. Die PLCnext Technology unterstützt somit, Produkte schneller zu entwickeln, Fehler früher im Prozess zu entdecken sowie die Kosten für Hardware-Prototypen zu senken.

* * Konstantin Just ... arbeitet im Product Management Software and Safety bei Phoenix Contact Electronics GmbH, Lemgo. Florian Zaffke ist Entwicklungsingenieur bei Sokratel Kommunikations- und Datensysteme, Norderstedt.

Artikelfiles und Artikellinks

(ID:48113112)