
Prozesse mit vielen Wechsel- und Rückwirkungen lassen sich mit den klassischen Methoden nicht mehr optimal automatisieren, mit modellbasierten Ansätzen dagegen schon. (Quelle: Phoenix Contact)
Bei einem modellbasierten Ansatz werden Maschinenmodell und Steuerungsprogramm weitgehend parallel im Simulationswerkzeug erstellt. Da das Maschinenmodell nicht nur als grafische Repräsentation fungiert, sondern sich auch simulieren lässt, erlaubt dies eine frühe Verifizierung des Gesamtmodells gegen die Systemanforderungen. Deshalb lassen sich eine Vielzahl von Applikationen mit dem modellbasierten Ansatz einfacher umsetzen: kaskadierte Regelungen, Multi-Variablen-Regler, schnelle Momentregelungen oder komplexe mathematische Formeln in einer steuerungstechnischen Anwendung.
Steuerungs-Code aus dem Modell generieren
Um derartige Applikationen einfach und elegant auszuführen, empfiehlt sich das Software-Tool Matlab/Simulink von The MathWorks. Die schon in den 1970ern entwickelte Programmiersprache Matlab hat sich seither in verschiedenen Bereichen etabliert, etwa in der Datenanalyse, Bildverarbeitung sowie der Entwicklung von Steuerungs- und Regelungs-Algorithmen. Durch die Kopplung mit dem Erweiterungsmodul Simulink erhalten Anwender die Option, grafische Blöcke zur Modellierung zu nutzen. So lassen sich komplexe mechanische, elektrische oder mechatronische Systeme übersichtlich visualisieren. Zudem gibt es zahlreiche Toolboxen für spezielle Applikationsfelder. Solche vorgefertigten Funktionsmodule senken den Modellierungsaufwand zusätzlich. Vor diesem Hintergrund ist es nicht verwunderlich, dass sich Matlab/Simulink bei der Entwicklung komplexer Systeme in vielen Branchen durchsetzen konnte – beispielsweise in der Wind- oder Automobilindustrie.
Längst verlangen auch Maschinen- und Anlagenbauer solche Konzepte. Schließlich stehen sie ebenfalls unter permanentem Druck, ihre Entwicklungszyklen zu verkürzen und Kosten zu senken. Zwar werden auch in diesen Industriebereichen bereits seit geraumer Zeit Anlagenmodelle und Reglerstrukturen modelliert, jedoch erfolgt die Implementierung in ein Automatisierungssystem zumeist über eine manuelle Umwandlung der Regelalgorithmen in IEC-61131-3-kompatiblen Code, der dann auf der Steuerung abgearbeitet werden kann. Neben dem zusätzlichen Zeitaufwand durch die händische Transformation von Modellen erweist sich dieses Verfahren insbesondere bei komplexen Regelalgorithmen als fehleranfällig.
Abhilfe schafft ein weiteres Tool: der Simulink Coder. Damit lässt sich aus einem Simulink-Modell, das zum Beispiel einen Pitch-Regler für eine Windenergieanlage beinhaltet, direkt ein ausführbarer Maschinencode generieren.

Für jede Aufgabe das passende Werkzeug
Bei der PLCnext Technology handelt es sich um ein offenes Linux-basiertes Eco-System für Automatisierungsanforderungen. Aufgrund einer offenen Schnittstelle zwischen Anwenderprogramm und Betriebssystem, über die sämtliche Sytemkomponenten ihre Daten synchron und in Echtzeit austauschen, lässt sich jede Projektaufgabe mit dem passenden Tool realisieren. Als komfortabel bei der PLCnext Technology zeigt sich, dass Hochsprachenprogramme nicht mehr in eine IEC-61131-Task eingebunden werden müssen. So können die verschiedenen Technologie-Spezialisten stets in der von ihnen präferierten Programmiersprache - IEC 61131-3, C, C++, C#, Python oder eben Matlab/Simulink - parallel an einem Projekt entwickeln, sodass sich die Code-Erstellung deutlich beschleunigt.
Kristallisationspunkt für alle Teilprojekte und Programmiersprachen ist PLCnext Engineer. 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 der Programmteile machen muss: Denn Hochsprachenprogramme und Modelle laufen im Echtzeit-Kontext und können deterministisch sequenziell oder parallel zu den IEC-61131-3-Programmen ausgeführt werden. Das Engineering-Tool übernimmt ebenso die Konfiguration der Abarbeitung, beispielsweise die schnelle Verschaltung von Variablen aus den Modellen oder den Hochsprachenprogrammen mit den physikalischen I/O-Modulen der Steuerung oder den
Variablen anderer Programme.

Erstellte Modelle online während der Laufzeit überwachen
Als Schnittstelle zwischen der Steuerungshardware von Phoenix Contact und der Entwicklungsumgebung Matlab/Simulink fungiert das Tool PLCnext Target for Simulink. Dieses Add-on übernimmt 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 Simulink-Anwender erweiterte Einstellmöglichkeiten, um zum Beispiel spezielle Änderungen am Code oder anderen Konfigurationsoptionen vorzunehmen, bevor dieser mit nur einem Mausklick kompiliert wird.
Der Download des Modells in die Steuerungs-CPU 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 können die erstellten Modelle in der Engineering-Oberfläche PLCnext Engineer öffnen und online während der Laufzeit überwachen. Somit eröffnen sich den Applikations-Entwicklern eine Vielzahl von Optionen, die in einer klassischen Engineering-Umgebung für Steuerungssysteme in der Regel nicht verfügbar sind.

Abweichungen gezielt eliminieren
Sämtliche Werkzeuge rund um die PLCnext Technology, die in Zusammenhang mit Matlab/Simulink stehen, lassen sich für die modellbasierte Entwicklung nutzen. Beispielsweise kann aus Simulink heraus ein Fehler auch in Eclipse analysiert werden. Die zahlreichen Schnittstellen ermöglichen es, komplexe Regelsysteme auf einfache und effiziente Art zu entwickeln und somit 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. Im weiteren Entwicklungsverlauf werden die generierten Modelle auf den PLCnext-fähigen Steuerungen geprüft. Dazu stehen verschiedene Möglichkeiten zur Verfügung. Zum Beispiel lässt sich über das Feature Co-Simulation ein Modell gleichzeitig in Simulink und auf der Steuerung abarbeiten, sodass die Äquivalenz der Modellausführung kontrolliert werden kann. Zusätzlich ist es möglich, die ‚gemessenen‘ Daten aus der Softwaresimulation in Matlab/Simulink als Baseline aufzuzeichnen und mit den Daten der Hardwaresimulation zu vergleichen. Auf diese Weise lassen sich die Parameter des Modells gezielt so lange nachjustieren, bis die Abweichungen eliminiert sind.

Einzelne Daten direkt verändern
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 und protokolliert werden. Neben den klassischen Blöcken aus der Matlab/Simulink-Umgebung wird auch das Stateflow-Blockset unterstützt. Tritt ein Fehler auf, etwa eine 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 das Modell geändert werden kann. Diese Iteration von Modellentwicklung und Test wird so lange wiederholt, bis das gewünschte Systemverhalten erreicht ist.
Autoren
Konstantin Just,
Product Management Software and Safety, Phoenix Contact Electronics in Lemgo
Florian Zaffke,
Entwicklungsingenieur, Sokratel Kommunikations- und Datensysteme in Norderstedt