Anbieter zum Thema
Simulationsumgebung Matlab/Simulink
Matlab/Simulink von „The Mathworks“ ist heute in Forschung und Entwicklung ein Standardwerkzeug zur digitalen Simulation technischer Systeme. Bereits mit der Basis-Bibliothek von Simulink lassen sich komplexe, dynamische Systeme im Modell nachbilden und simulieren. Mit Hilfe zahlreicher zusätzlicher Toolboxen lässt sich der Modellierungsaufwand für spezielle Anwendungsfelder weiter reduzieren. Insbesondere beim Entwurf und der Optimierung linearer und nichtlinearer Regelkreise lassen sich die Stärken von Matlab/Simulink für die Automatisierungstechnik nutzen. Aber auch die Modellierung dynamischer Systeme zum simulativen Test zugehöriger Steuerungsprogramme erleichtert den Entwicklungsprozess einer automatisierten Maschine.
Die Implementierung von Steuerungs- bzw. Regelungsalgorithmen in einem Automatisierungssystem erfolgte bisher – zumeist manuell – unabhängig von bereits bestehenden Implementierungen in Simulink. Neben dem zusätzlichen Zeitaufwand ist diese Vorgehensweise, insbesondere bei komplexeren Algorithmen, sehr fehleranfällig. Die Implementierung von nachträglichen Änderungen in beiden Softwaresystemen ist bei komplexen Algorithmen nicht praktikabel. Es fehlte eine durchgängige Programmierbarkeit.
Einen Ansatz, diesen Missstand zu beseitigen, bietet der Realtime-Workshop, welcher von „The Mathworks“ als Erweiterung für Simulink angeboten wird. Mit seiner Hilfe lässt sich aus einem Simulink-Modell, das beispielsweise die Implementierung eines Reglers beinhaltet, per Mausklick ein C- oder C++-Code generieren. Der generierte Code bildet die Grundlage dafür, diesen Regler in Echtzeit auszuführen, was wiederum die Grundvoraussetzung für dessen Einsatz in einer realen Anlage ist.
Flexibles Anbinden an TwinCAT 3
Mit der Möglichkeit der Integration von C++-Modulen in das Automatisierungssystem, ergibt sich eine sehr flexibel verwendbare Lösung zur Einbindung des vom Realtime-Workshop generierten Codes. Bei Verwendung des TwinCAT-Target generiert der Realtime-Workshop neben dem Code für das implementierte Simulink-Modell automatisch die passende Schnittstelle zum TwinCAT-System. Aus einem Simulink-Modell wird so ein Simulink-Modul für TwinCAT, das in der TwinCAT-3-Entwicklungsumgebung mit I/Os oder anderen Modulen verknüpft werden kann. Außerdem lassen sich Module ineinander verschachteln. So lässt sich beispielsweise ein Regler in Simulink implementieren, der innerhalb einer SPS als eine Art Funktionsblock aufgerufen werden kann.
Die Voraussetzungen des Simulink-Modells
Im Gegensatz zu ähnlichen Implementierungen von Simulink in Steuerungssystemen werden bei der Verwendung des TwinCAT-Target keine speziellen Simulink-Blöcke, z. B. Eingangs- oder Ausgangsblöcke benötigt, um ein TwinCAT-3-Modul zu erzeugen. Eingänge und Ausgänge lassen sich mit den üblichen Simulink-Blöcken definieren.
Generierung des Moduls aus Simulink
Vorraussetzung für die Generierung eines TwinCAT-Moduls aus Simulink ist der Realtime-Workshop von „The Mathworks“ sowie das TwinCAT-Target. Wenn beides auf dem System installiert ist, hat man im Einstellungsfenster eines Simulink-Modells die Möglichkeit, TwinCAT als Zielsystem des Realtime-Workshops auszuwählen. Mit der Auswahl dieses Zielsystems erhält der Benutzer weitere Konfigurationsmöglichkeiten, wie z. B. die Aktivierung oder Deaktivierung des „External Mode“. Grundsätzlich genügen hier die Standardeinstellungen, um die Generierung des TwinCAT-Moduls starten zu können. Für erfahrene Benutzer gibt es zusätzlich die Möglichkeit, den Generierungsprozess zunächst auf die reine Codegenerierung zu beschränken. So können, wenn gewünscht, spezielle Anpassungen des Codes vorgenommen werden, bevor dieser kompiliert wird.
Integration des Moduls in TwinCAT
Bei der Integration des Moduls in die TwinCAT-3-Entwicklungsumgebung hat der Benutzer verschiedene Möglichkeiten:
Eine Instanz des fertig kompilierten Moduls kann über einen Auswahldialog in die Entwicklungsumgebung eingefügt werden, so wie es TwinCAT-Anwender von der Einbindung eines kompilierten SPS-Projektes gewohnt sind. Die eingefügte Instanz erscheint dann in einer Baumstruktur, welche den logischen Aufbau des Steuerungssystems wiedergibt. Das Prozessabbild des Moduls steht im Baum in Form von Ein- und Ausgangsvariablen zur Verfügung. Digitale und analoge I/Os von beliebigen Modulen (SPS-, Simulink-, C++-Module etc.) können untereinander verknüpft werden. Über diese Verknüpfungen wird in der TwinCAT-Entwicklungsumgebung der Datenaustausch zwischen den Prozessabbildern der einzelnen Module konfiguriert. Um die zyklische Abarbeitung des eingefügten Moduls zu gewährleisten, wird es mit einer zyklischen Echtzeittask verbunden. Diese wird beim Einfügen des Moduls automatisch angelegt und mit der in Simulink eingestellten Zykluszeit oder „Fixed-Step-Size“ vorkonfiguriert. Alternativ zum zyklischen Aufruf durch eine Task, kann ein instanziiertes Modul auch innerhalb eines anderen aufgerufen werden: In diesem Fall kann innerhalb des aufrufenden Moduls auf die Eingangs- und Ausgangsprozessdaten des aufgerufenen Moduls zugegriffen werden.
Artikelfiles und Artikellinks
(ID:339170)