Prozesse mit vielen Wechsel- und Rückwirkungen lassen sich mit den klassischen Methoden nicht mehr optimal automatisieren, mit modellbasierten Ansätzen dagegen schon.

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 kom­plexe mechanische, elektrische oder mecha­tronische 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.

Die Auswahl des Phoenix Contact-spezifischen System Target Files eröffnet zusätzliche Konfigurations­möglichkeiten.
Die Auswahl des Phoenix Contact-spezifischen System Target Files eröffnet zusätzliche Konfigurations­möglichkeiten. (Quelle: Phoenix Contact)

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 Schnittstell­e 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 Hoch­sprachenprogramme 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 Teil­projekte 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 Echtzeit­fä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 Hochsprachen­programmen mit den physikalischen I/O-Modulen der Steuerung oder den
Variablen anderer Programme.

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

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äte­spezifische 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.

Multirate-Modell in Simulink: Die Engineering-Plattform stellt sicher, dass diese Programmteile synchron mit anderen Steuerungs-Tasks ablaufen.
Multirate-Modell in Simulink: Die Engineering-Plattform stellt sicher, dass diese Programmteile synchron mit anderen Steuerungs-Tasks ablaufen. (Quelle: Phoenix Contact)

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 ent­wickeln 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 verschieden­e 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 ver­gleichen. Auf diese Weise lassen sich die Parameter des Modells gezielt so lange nachjustieren, bis die Abweichungen ­eliminiert sind.

Ein interessantes Feature der neuen Target-Version: Grafische Repräsentation des in Simulink erstellen Modells im Engineering-Tool PLCnext Engineer.
Ein interessantes Feature der neuen Target-Version: Grafische Repräsentation des in Simulink erstellen Modells im Engineering-Tool PLCnext Engineer. (Quelle: Phoenix Contact)

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-Um­gebung 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 über­greifende 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

Sie möchten gerne weiterlesen?