Twincat 3: Verbindung von bekannten Simulationstools

Aufgrund der Globalisierung sind die Anforderungen im Anlagen- und Maschinenbau in den letzten Jahren ständig gestiegen. Das Resultat ist, dass Anlagenhersteller mit der Aufgabe konfrontiert sind, neue Technologien kostengünstig und unter erheblichem Zeitdruck zu realisieren. Die Entwicklungs- und Inbetriebnahmezeiten neuer Anlagen stellen dabei einen wesentlichen Kostenfaktor dar. Um diesen zu reduzieren, bedient man sich eines Simulationswerkzeugs, welches bereits in einer frühen Phase des Engineerings Anwendung findet. Der folgende Beitrag zeigt, wie man den Anforderungen mithilfe des Rapid Control Prototypings begegnen kann.

Die im Bereich der Regelungs- und Steuerungstechnik als \’Rapid Control Prototyping\‘ bezeichnete Entwurfsmethode umfasst mehrere Schritte: – Modellbildung des zu automatisierenden Systems – Regelungs- bzw. Steuerungsentwurf – Simulation des Gesamtsystems – Implementierung des Regelungs- und Steuerungsentwurfes auf der Zielplattform – Test der Implementierung durch Ankopplung der Zielplattform an das Systemmodell (\’Soft ware in the Loop\‘ – SIL) – Test des realen Systems mit der realen Steuerung Das Engineering von komplexen Anlagen benötigt zumeist mehrere Iterationsschleifen, sodass diese Schritte mehrfach durchlaufen werden. Damit der Entwurfsprozess durchgängig gestaltet werden kann, ist es erforderlich, dass zwischen dem Simulations- und dem Engineeringwerkzeug Schnittstellen bestehen, die eine Weiterverarbeitung der bereits erstellten Daten ermöglichen. Basierend auf diesen Schnittstellen kann ein in einem Simulationswerkzeug generierter Code automatisch in ein Echtzeitsystem integ-riert werden. Damit ergeben sich nicht nur deutlich kürzere Durchlaufzeiten der einzelnen Iterationsschleifen, sondern man erhält darüber hinaus noch Steuerungscodes von deutlich höherer Qualität. Das Steuerungssystem Twincat 3 Twincat 3 ist die neue Softwaregeneration von Beckhoff, mit deren Hilfe nahezu jedes PC-basierte System mit einer Echtzeitumgebung erweitert werden kann, in der SPS-, Safety-SPS-, NC-, CNC-, Robotik- und C/C++-Module ablaufen können. Die Anzahl der ­neben­ein­ander ausführbaren Module wird nur durch die Leistungsfähigkeit der verwendeten Hardware begrenzt. Das Softwaresystem besteht aus einer Laufzeitumgebung und einem Engineeringwerkzeug. Erstere ermöglicht durch ihren modularen Aufbau die gleichzeitige Abarbeitung verschiedener Module in Echtzeit. Durch die Multicore-Unterstützung lässt sich die Ausführung der einzelnen Module auf verschiedene CPU-Kerne verteilen, was eine optimale Nutzung der Rechenleistung moderner Prozessoren für die Automatisierungstechnik ermöglicht. Die Engineeringumgebung nutzt als Framework die in der Softwareentwicklung verbreitete Entwicklungsumgebung Microsoft Visual Studio. Der Twincat System Manager zur Konfiguration des Gesamtsystems wurde ebenso in diese Entwicklungsumgebung integriert wie die Editoren für die IEC61131-3-Programmiersprachen. Durch die Integration in Visual Studio ist es möglich, sowohl die Programmiersprachen C und C++ für die Erstellung von Echtzeitmodulen zu verwenden, als auch, mithilfe von C#, C++ oder Visual Basic, komplexe Visualisierungen in derselben Entwicklungsumgebung zu implementieren. Für die Entwicklung von Echtzeitmodulen in C/C++ verfügt die Twincat-Entwicklungsumgebung über einen Echtzeitdebugger, der die Debugging-Oberfläche von Visual Studio für Echtzeitmodule nutzbar macht. Das Simulationssystem – Matlab/Simulink Matlab/Simulink von \’The Mathworks\‘ gilt heute in Forschung und Entwicklung als das Standardwerkzeug zur digitalen Simulation technischer Systeme. Bereits mit der Basis-Bibliothek von Simulink lassen sich komplexe, dynamische Systeme im Modell nachbilden und simulieren. Mithilfe zahlreicher zusätzlicher Toolboxen kann der Modellierungsaufwand für spezielle Anwendungsfelder weiter reduziert werden. 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, der 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. Anbindung 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 ein passendes Framework, das die Schnittstelle zum Twincat-3-System bildet. Aus einem Simulink-Modell wird so ein Simulink-Modul, das in der Twincat-Entwicklungsumgebung mit I/Os oder anderen Modulen verknüpft werden kann. Alternativ 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. 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 werden mit den üblichen Simulink-Blöcken definiert. 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 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 Modul lässt sich im Baum aufklappen, um dessen Ein- und Ausgänge anzuzeigen. Digitale und analoge I/Os von beliebigen Modulen (SPS-, Simulink-, C++-Module usw.) können untereinander verknüpft werden. Über diese Verknüpfungen wird in der Twincat-Entwicklungsumgebung der Datentransport 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. – Möchte der Benutzer Anpassungen am gene- rierten Code vornehmen, kann er ein eben- falls automatisch generiertes Visual-Studio- Projekt in die Baumstruktur einbinden. Die generierte Projektdatei enthält alle Quellcode- dateien, Compiler- und Linkereinstellungen, die zur erfolgreichen Kompilierung des Moduls notwendig sind. Nach erfolgreicher Kompi- lierung wird eine Instanz des damit erzeugten Moduls automatisch in die Baumstruktur eingehängt und verfügt danach (natürlich nur bei unverändertem Quellcode) über die glei- chen Eigenschaften wie die Instanz eines Mo- duls, das fertig kompiliert in den Baum einge- hängt wurde. Parametrierung des Moduls Schon bei der Implementierung in Simulink werden den Parametern der verwendeten Simulink-Blöcke Werte zugewiesen, die während der Simulationsphase optimiert werden können. Diese Parameterwerte werden mit der Codegenerierung als Grundeinstellung in das Modul übernommen. Der Anwender hat aber zusätzlich noch die Möglichkeit, diese Parameter in der Twincat-Entwicklungsumgebung anzupassen. Beispielsweise kann so, nach dem Austausch von Komponenten der Regelstrecke, die Reglerauslegung angepasst werden, ohne dafür zwangsläufig Matlab und Simulink benutzen zu müssen. Inbetriebnehmer einer Anlage, die möglicherweise gar nicht mit Simulink vertraut sind oder das Softwarepaket gar nicht auf ihrem Entwicklungsrechner installiert haben, können trotzdem Parameter anpassen. Grundeinstellungen der Parameter können jederzeit wiederhergestellt werden. Die Parameter findet man in einer grafischen Oberfläche innerhalb der Entwicklungsumgebung. In dieser grafischen Oberfläche findet man die Blöcke beliebig verschachtelter Simulink-Modelle in einer Baumstruktur wieder, mit deren Hilfe der Anwender einfach und übersichtlich durch Modellstrukturen navigieren und zielgerichtet Parameter anpassen kann. External Mode Mithilfe des \’External Mode\‘ lässt sich aus Simulink eine Verbindung zu dem generierten Modul herstellen. Im Gegensatz zum \’Normal Mode\‘, bei dem das implementierte Modell direkt in Simulink gerechnet wird, erlaubt der \’External Mode\‘, Simulink lediglich als grafisches Frontend zu nutzen. Der Anwender kann sich aus der Simulink-Oberfläche per Mausklick mit dem generierten Modul verbinden, das im Twincat-System ausgeführt wird. Die \’External Mode\‘-Verbindung kann mit allen Steuerungen innerhalb eines Netzwerkes hergestellt werden. Der Nutzer hat nun die Möglichkeit, zur Laufzeit Einstellungen innerhalb des in Echtzeit ausgeführten Moduls anzupassen, indem er die Parameter der Blöcke innerhalb der Simulink-Umgebung ändert. Außerdem werden von Blöcken, wie dem Simulink-Scope, die zur Darstellung von Zuständen oder zeitlichen Verläufen dienen, die tatsächlichen Werte des in Echtzeit ausgeführten Moduls angezeigt. Konnektivität über ADS Die ADS-Verbindung zum generierten Modul wird nicht nur zur Datenübertragung für den \’External Mode\‘ genutzt. Auch aus anderen Anwendungen, wie beispielsweise Visualisierungen, Leitrechnern oder entfernten Steuerungsrechnern, kann ein Datenaustausch mit dem Simulink-Modul stattfinden. Ein Leitrechner kann Parameter oder interne Zustände beeinflussen; eine Visualisierungsoberfläche kann interne Zustände oder Ausgangssignale des Moduls anzeigen. Im Sinne der Sicherheit der Anlage lassen sich die Zugriffsmöglichkeiten auf die Parameter vor der Codegenerierung einschränken. Anwendungsmöglichkeiten der Matlab/Simulink-Anbindung Durch die Anbindung von Matlab/Simulink an das Twincat-3-Softwaresystem stehen viele neue Möglichkeiten für die Automatisierungstechnik zur Verfügung. Folgende, teilweise aufeinander aufbauende Beispiele, sollen einen Überblick geben: Beispiel 1: Rapid Control Prototyping Im Entwicklungsstadium der reinen Simulation in Simulink wird ein Regler in ein Simulink-Modell implementiert, das per \’Model Referencing\‘ in das Simulationsmodell des Regelkreises eingebunden wird. Der geschlossene Regelkreis kann so zunächst in der reinen Simulation ausgelegt und getestet werden. Im Anschluss wird das Reglermodell ohne jegliche Veränderung per Mausklick in ein Twincat-Modul übersetzt, das als Regler für die reale Strecke in Echtzeit arbeitet. Durch die Tatsache, dass Standard-Simulink-Blöcke als Ein- und Ausgänge verwendet werden, sind diese im übergeordneten Simulink-Modell genau so verwendbar wie am später generierten Modul in Twincat. Beispiel 1a: Echtzeitsimulation einer Regelstrecke Die Regelstrecke wird ebenfalls in einem separaten Simulink-Modell implementiert, das durch \’Model Referencing\‘ in das Modell des geschlossenen Regelkreises eingebunden wird. Mit dem hieraus generierten Twincat-Modul wird eine Echtzeitsimulation durchgeführt, bei der ein in IEC61131-3, C++ oder ebenfalls in Simulink implementierter Regler getestet werden kann. Beispiel 2: Echtzeitsimulation einer Maschine Aus einem in Simulink erstellten Maschinenmodell wird ein Simulink-Modul für Twincat generiert, um ein SPS-Programm in Echtzeit testen zu können, schon bevor die reale Maschine angeschlossen ist. Beispiel 2a: \’Hardware-in-the-Loop\‘-Simulation Einzelne Teile einer komplexen Anlage werden in separaten Simulink-Modellen gekapselt, die per \’Model Referencing\‘ in einem Gesamtmodell zusammengefügt werden. Durch die Kapselung der Teilsysteme können daraus separate Module generiert werden. In Twincat werden diese Module zur Echtzeitsimulation der Teilsysteme verwendet. Die reale Anlage wird Schrittweise in Betrieb genommen, während einzelne Anlagenteile noch als Simulationsmodell eingebunden sind. Beispiel 3: \’Hardware-in-the-Loop\‘-Simulation Ein Prüfstand zur Untersuchung von Stellantrieben, als Teilsysteme eines mechatronischen Systems, soll als \’Hardware-in-the-Loop\‘-Simulation realisiert werden. Das dynamische Modell des Gesamtsystems wurde in Simulink implementiert und daraus ein Twincat-Modul generiert. – Die Signale von und zu den zu untersuchenden Stellantrieben wurden als Ein- und Ausgänge aus dem Simulink-Modell herausgeführt. Zur Ansteuerung der Antriebe und zur Messdatenerfassung werden handelsübliche Antriebsregler sowie digitale und analoge Ein- und Ausgangsbaugruppen verwendet, die mit den entsprechenden Modulein- und Modulausgängen verknüpft werden. – Ein SPS-Programm, das parallel zu dem aus Simulink generierten Modul abgearbeitet wird, übernimmt die Fehlerüberwachung und die übergeordnete Prüfstandssteuerung. Zusätz- liche Sensoren zur Überwachung mechani- scher Schwingungen an den Antrieben werden ausschließlich von dieser Steuerung ausge- wertet. Dadurch ist es möglich, das Simulink- Modell auf die reine Simulation des mechatro- nischen Systems zu beschränken und die Über- wachung der realen Hardware auszulagern. – Eine manuelle Parametrierung des simulierten Systems sowie die Darstellung des momentanen Systemzustandes können optional mit- hilfe des \’External Mode\‘ über die Simulink-Oberfläche erfolgen. – Die grafische Darstellung sowie die Langzeit erfassung interner und externer Signalverläufe werden über das \’Twincat ScopeView 2\‘ rea- lisiert. Zur weiteren Auswertung werden die so gespeicherten Daten u.a. in Matlab auf- bereitet. Zusammenfassung Das Twincat-Target ermöglicht die Einbindung von Modulen, die in der Simulationsumgebung Matlab/Simulink von \’The Mathworks\‘ implementiert wurden, in das Twincat-3-Steuerungssystem. Im Gegensatz zu ähnlich gelagerten Anbindungen dieser Simulationsumgebung an Steuerungssysteme, werden keine zusätzlichen Blöcke für Modellein- bzw. Modellausgänge benötigt. Die gewählte Art der Integration ermöglicht daher das so genannte Modell-Referencing bei der reinen Simulation in Simulink. Im Sinne des \’Rapid Control Prototyping\‘ können so einzelne Teilsysteme auf das Zielsystem überführt werden, ohne Anpassungen im Simulationsmodell vornehmen zu müssen. Die in Simulink zur Simulation verwendeten Variablen bzw. Parameterwerte werden, nach der Einbindung des entsprechenden Moduls in Twincat 3, in der grafischen Oberfläche des System Managers dargestellt, sodass diese auch hier noch verändert werden können. Ebenfalls kann aus anderen Modulen oder Anwendungen heraus zur Laufzeit auf diese Parameter zugegriffen werden. Die so entstandene Anbindung von Matlab/Simulink an das Twincat-3-Softwaresystem hebt sich durch ihre Möglichkeiten deutlich von ähnlich gelagerten Anbindungen ab.

Beckhoff Automation GmbH & Co. KG
http://www.beckhoff.de/TwinCAT3

Das könnte Sie auch Interessieren

Weitere Beiträge

Bild: Ceratizit Deutschland GmbH
Bild: Ceratizit Deutschland GmbH
Werkzeuge – immer passend

Werkzeuge – immer passend

Eine digitalisierte Fertigung hat viele Gesichter… und Recker Technik aus Eschweiler setzt ihr auf jeden Fall einen Smiley auf. Dort bringt die Produktion mit digitalen Zwillingen mehr Effizienz in den Alltag sowie gleichzeitig mehr Überblick über das Toolmanagement und die Werkzeugkosten. Mit dabei: Zwei Tool-O-Maten, die intelligenten Werkzeugausgabesysteme von Ceratizit – dank denen immer das passende Werkzeug für den Job zur Hand ist.

mehr lesen
Bild: Hainbuch GmbH
Bild: Hainbuch GmbH
„Wie passende Spanntechnik die Automation voranbringt“

„Wie passende Spanntechnik die Automation voranbringt“

Zunehmend individuellere Kundenanforderungen, mehr Schwankungen im Auftragseingang und weniger Fachkräfte – diese Faktoren beeinflussen die Fertigungsplanung zunehmend. Gerade bei kleinen Herstellungschargen mit Losgrößen unter 100 macht in diesem Spannungsfeld die Automatisierung, etwa von Hainbuch, den Unterschied. Ein entscheidender Ansatzpunkt in der Umsetzung ist neben Maschine, Roboter und Bediener der Rüst- und Spannprozess.

mehr lesen
Bild: Schunk SE & Co. KG Spanntechnik
Bild: Schunk SE & Co. KG Spanntechnik
Futter für die Ewigkeit

Futter für die Ewigkeit

Siemens Energy setzt für die Präzisionsbearbeitung an einer Horizontaldrehmaschine Magnos Elektropermanent-Magnetspannfutter von Schunk ein. Dank der gleichmäßig dauerhaft wirkenden Magnetspannkraft erfolgt das Spannen der Werkstücke deformations- und vibrationsarm – für eine ausgezeichnete Bearbeitungs- und Oberflächenqualität. Mit der zugehörigen App lässt sich die Spannsituation simulieren und sicher parametrieren.

mehr lesen