MATLAB Simulink PLC Coder Erstellen einer SCL-Quelle...

1
MATLAB Simulink ® PLC Coder Erstellen einer SCL-Quelle aus einem Simulink ® -Stateflowchart Maximilian Goss, Christof Noller, Christoph Kohlbacher Kontakt Prof. Dr. Stephan Simons Fachbereich Elektrotechnik und Informationstechnik Birkenweg 8, 64295 Darmstadt E-Mail: [email protected] Seminar „Automatisierung“ Sommersemester 2001 Maximilian Goss Christof Noller Christoph Kohlbacher Projektvorstellung und Ziele Neben den gängigen Programmiersprachen für speicher- programmierbare Steuerungen nach EN 61131 besteht der Wunsch nach einer modellbasierten automatischen Code- generierung. Hierfür hat die Firma Mathworks für ihre Soft- ware Matlab die Simulink PLC Coder Toolbox entwickelt, mit der strukturierter Text für SPS Systeme erzeugt werden kann. In diesem Projekt soll diese Toolbox zur Entwicklung der Steuerungssoftware für die Ansteuerung eines Modells eines Schüttgut-Transports eingesetzt werden. Das Modell arbeitet folgendermaßen: Die Transport-Lore wird an einer Stelle be- füllt, fährt dann zur Entleerstation und wird entleert. Nach Entleerung der Lore fährt sie wieder zurück unter die Befüll- station. Diese Position ist der Grundzustand der Anlage. Die Steuerung soll mit MATLAB Simulink® Stateflow modelliert, dem PLC Coder® in strukturierten Text übersetzt und in einer SPS getestet werden. Einführung MATLAB® PLC Coder generiert automatisch strukturierten Text aus MATLAB Simulink® und Stateflow® Modellen. Die Übersetzung erfolgt in PLCopen®, XML®, S7-SCL® und anderen gängigen Formaten für SPS Steuerungen. So kann das Steuerungsmodell generell und universell gehal- ten werden und der automatische erzeugte Programmcode kann auf verschiedenen, herstellerabhängigen Plattformen eingesetzt werden. Außerdem werden mit dem PLC Coder® Systemtests ohne größeren Aufwand möglich. Durch die Unterstützung von MATLAB Stateflow® lassen sich komplexe Funktionsabläufe graphisch darstellen und einfacher veri- fizieren. Größere Kontrollstrukturen sind so ebenfalls reali- sierbar. Es kann die von MATLAB® gewohnte Entwicklungs- umgebung verwendet werden. Prinzipiell werden keine tiefer- gehenden Kenntnisse für die Programmierung von SPS Systemen benötigt. Grundlagen Simulink® Stateflow Chart Block Der routinemäßige Arbeitsablauf bei der Erstellung von Steuerungsprogrammen mit dem PLC Coder® ist in den Grundzügen immer gleich. Je nach Anforderung an das Programm kann dann der Schwerpunkt mehr direkt in Simulink® oder in Stateflow liegen. Zuerst muss eine leere Simulink® Arbeitsfläche erzeugt werden. Hier kann nun mit den von Simulink® gewohnten Modellierungsmethoden ein Modell erstellt werden. Um eine Ablaufsteuerung zu gestalten kann ein Stateflow Chart Block verwendet werden. Hinsichtlich der späteren Konvertierung und Erstellung von SCL-Quellen muss das System, welches übersetzt werden soll, in einem einzigen Subsystem in Simulink® vorliegen. Der PLC Coder® übersetzt keine kompletten Simulink® Modelle sondern nur ein ausgewähltes Subsystem. So kann zum Beispiel "in the Loop" getestet werden: Es wird ein Sub- system (für die spätere Verwendung an einer Steuerung) erstellt und die Ein- bzw. Ausgänge werde zum Testen in Simulink® simuliert. Hier ist es auch möglich komplexe Hardware zu simulieren um das Programm ausgiebig zu testen. Modellierung im Stateflow Mit einem Doppelklick auf einen Stateflow-Block wird die MATLAB® Toolbox Stateflow geöffnet, worin dann per UML das Ablaufdiagramm modelliert werden kann. Hier wird mit den standardisierten Symbolen für zum Beispiel States, Transitions, Conditions, Actions und Events gearbeitet. Vorsicht ist bei der Erstellung der Nummerierung der Pfeile geboten. Diese legen die Ausführungshierarchie fest. Bei falscher Wahl der Ziffern können rasch tote Zweige oder unerfüllbare Bedingungen entstehen. Kompilieren und Simulieren Nachdem das Stateflow Chart erstellt ist, kann das Modell übersetzt und getestet werden. Um die Kompatibilität sicherzustellen muss in Simulink® ein Solver mit fester Schrittweite eingestellt werden. Als Solver kann zum Beispiel ein ode3-Algorithmus gewählt werden. PLC Coder® einstellen Bevor der PLC Coder® das Modell in strukturierten Text wandelt muss eingestellt werden, für welche Plattform bzw. welchen Hersteller der Code verwendet werden soll. Das Zielsystem muss festgelegt werden. Hier wird noch einmal deutlich wie universell Programmcode durch den PLC Coder® gehalten werden kann. Ein funktionierendes Modell kann einfach in alle gängigen Formate transferiert werden. In diesem Projekt wird "Siemens SIMATIC STEP 7 5.4" gewählt. Unter "Target IDE Path" wird der Ordner ausgewählt, der die STEP7.exe Datei enthält. Bei "Code Output Directory" wird eingestellt, wohin die entstehende SCL Quelle abgelegt werden soll. Strukturierten Text generieren Der PLC Coder® hat die Fähigkeit, das zu übersetzende Subsystem auf Kompatibilität zu prüfen. Diese Prüfung sollte vor jeder Erzeugung von strukturiertem Text durchgeführt werden, da geprüft wird, ob das Modell den Anforderungen einer Übersetzung entspricht. Nach erfolgreicher Überprüfung kann das Subsystem dann über den PLC Coder® in SCL übersetzt werden Fazit Der PLC Coder® ist eine mögliche Alternative um die Pro- grammierung von Steuerungen erheblich zu vereinfachen. Sobald die Aufgabenstellungen aber an Komplexität zuneh- men und sich die Datenstrukturen von einfachen Inputs/ Outputs zu Bus-Strukturen/Feldern wandeln, stoßen der Anwender sowie das System an ihre Grenzen. Dies liegt vielleicht daran, dass in das System PLC Coder® noch nicht alle relevanten Funktionen eingebunden sind, um es für komplexe Systeme einzusetzen. Trotzallem ist der PLC Coder® auf einem guten Weg, sich auf eine Stufe mit den heutzutage gängigen Systemen zu stellen. Darstellung Schrittweise Realisierung über PLC-Coder® Stateflow-Baustein in MATLAB Simulink® Modellierung der Anlage im Stateflow® UML-Diagramm der Anlage im Stateflow® Generierung über PLC Coder® Übersetzungsergebnis

Transcript of MATLAB Simulink PLC Coder Erstellen einer SCL-Quelle...

Page 1: MATLAB Simulink PLC Coder Erstellen einer SCL-Quelle …cra.eit.h-da.de/data/pdf/Poster/MatlabPLCCoder_Poster_SS11.pdf · MATLAB Simulink® PLC Coder Erstellen einer SCL-Quelle aus

MATLAB Simulink® PLC Coder Erstellen einer SCL-Quelle aus einem Simulink®-Stateflowchart Maximilian Goss, Christof Noller, Christoph Kohlbacher

Kontakt

Prof. Dr. Stephan Simons

Fachbereich Elektrotechnik und Informationstechnik

Birkenweg 8, 64295 Darmstadt

E-Mail: [email protected]

Seminar „Automatisierung“

Sommersemester 2001

Maximilian Goss

Christof Noller

Christoph Kohlbacher

Projektvorstellung und Ziele

Neben den gängigen Programmiersprachen für speicher-programmierbare Steuerungen nach EN 61131 besteht der Wunsch nach einer modellbasierten automatischen Code-generierung. Hierfür hat die Firma Mathworks für ihre Soft-ware Matlab die Simulink PLC Coder Toolbox entwickelt, mit der strukturierter Text für SPS Systeme erzeugt werden kann. In diesem Projekt soll diese Toolbox zur Entwicklung der Steuerungssoftware für die Ansteuerung eines Modells eines Schüttgut-Transports eingesetzt werden. Das Modell arbeitet folgendermaßen: Die Transport-Lore wird an einer Stelle be-füllt, fährt dann zur Entleerstation und wird entleert. Nach Entleerung der Lore fährt sie wieder zurück unter die Befüll-station. Diese Position ist der Grundzustand der Anlage. Die Steuerung soll mit MATLAB Simulink® Stateflow modelliert, dem PLC Coder® in strukturierten Text übersetzt und in einer SPS getestet werden.

Einführung

MATLAB® PLC Coder generiert automatisch strukturierten Text aus MATLAB Simulink® und Stateflow® Modellen. Die Übersetzung erfolgt in PLCopen®, XML®, S7-SCL® und anderen gängigen Formaten für SPS Steuerungen.

So kann das Steuerungsmodell generell und universell gehal-ten werden und der automatische erzeugte Programmcode kann auf verschiedenen, herstellerabhängigen Plattformen eingesetzt werden. Außerdem werden mit dem PLC Coder® Systemtests ohne größeren Aufwand möglich. Durch die Unterstützung von MATLAB Stateflow® lassen sich komplexe Funktionsabläufe graphisch darstellen und einfacher veri-fizieren. Größere Kontrollstrukturen sind so ebenfalls reali-sierbar. Es kann die von MATLAB® gewohnte Entwicklungs-umgebung verwendet werden. Prinzipiell werden keine tiefer-gehenden Kenntnisse für die Programmierung von SPS Systemen benötigt.

Grundlagen Simulink® Stateflow Chart Block

Der routinemäßige Arbeitsablauf bei der Erstellung von Steuerungsprogrammen mit dem PLC Coder® ist in den Grundzügen immer gleich. Je nach Anforderung an das Programm kann dann der Schwerpunkt mehr direkt in Simulink® oder in Stateflow liegen. Zuerst muss eine leere Simulink® Arbeitsfläche erzeugt werden. Hier kann nun mit den von Simulink® gewohnten Modellierungsmethoden ein Modell erstellt werden. Um eine Ablaufsteuerung zu gestalten kann ein Stateflow Chart Block verwendet werden.

Hinsichtlich der späteren Konvertierung und Erstellung von SCL-Quellen muss das System, welches übersetzt werden soll, in einem einzigen Subsystem in Simulink® vorliegen.

Der PLC Coder® übersetzt keine kompletten Simulink® Modelle sondern nur ein ausgewähltes Subsystem. So kann zum Beispiel "in the Loop" getestet werden: Es wird ein Sub-system (für die spätere Verwendung an einer Steuerung) erstellt und die Ein- bzw. Ausgänge werde zum Testen in Simulink® simuliert. Hier ist es auch möglich komplexe Hardware zu simulieren um das Programm ausgiebig zu testen.

Modellierung im Stateflow

Mit einem Doppelklick auf einen Stateflow-Block wird die MATLAB® Toolbox Stateflow geöffnet, worin dann per UML das Ablaufdiagramm modelliert werden kann. Hier wird mit den standardisierten Symbolen für zum Beispiel States, Transitions, Conditions, Actions und Events gearbeitet. Vorsicht ist bei der Erstellung der Nummerierung der Pfeile geboten. Diese legen die Ausführungshierarchie fest. Bei falscher Wahl der Ziffern können rasch tote Zweige oder unerfüllbare Bedingungen entstehen.

Kompilieren und Simulieren Nachdem das Stateflow Chart erstellt ist, kann das Modell übersetzt und getestet werden. Um die Kompatibilität sicherzustellen muss in Simulink® ein Solver mit fester Schrittweite eingestellt werden. Als Solver kann zum Beispiel ein ode3-Algorithmus gewählt werden.

PLC Coder® einstellen

Bevor der PLC Coder® das Modell in strukturierten Text wandelt muss eingestellt werden, für welche Plattform bzw. welchen Hersteller der Code verwendet werden soll. Das Zielsystem muss festgelegt werden. Hier wird noch einmal deutlich wie universell Programmcode durch den PLC Coder® gehalten werden kann. Ein funktionierendes Modell kann einfach in alle gängigen Formate transferiert werden. In diesem Projekt wird "Siemens SIMATIC STEP 7 5.4" gewählt. Unter "Target IDE Path" wird der Ordner ausgewählt, der die STEP7.exe Datei enthält. Bei "Code Output Directory" wird eingestellt, wohin die entstehende SCL Quelle abgelegt werden soll.

Strukturierten Text generieren

Der PLC Coder® hat die Fähigkeit, das zu übersetzende Subsystem auf Kompatibilität zu prüfen. Diese Prüfung sollte vor jeder Erzeugung von strukturiertem Text durchgeführt werden, da geprüft wird, ob das Modell den Anforderungen einer Übersetzung entspricht. Nach erfolgreicher Überprüfung kann das Subsystem dann über den PLC Coder® in SCL übersetzt werden Fazit Der PLC Coder® ist eine mögliche Alternative um die Pro-grammierung von Steuerungen erheblich zu vereinfachen. Sobald die Aufgabenstellungen aber an Komplexität zuneh-men und sich die Datenstrukturen von einfachen Inputs/ Outputs zu Bus-Strukturen/Feldern wandeln, stoßen der Anwender sowie das System an ihre Grenzen. Dies liegt vielleicht daran, dass in das System PLC Coder® noch nicht alle relevanten Funktionen eingebunden sind, um es für komplexe Systeme einzusetzen. Trotzallem ist der PLC Coder® auf einem guten Weg, sich auf eine Stufe mit den heutzutage gängigen Systemen zu stellen.

Darstellung Schrittweise Realisierung über PLC-Coder®

Stateflow-Baustein in MATLAB Simulink®

Modellierung der Anlage im Stateflow®

UML-Diagramm der Anlage im Stateflow®

Generierung über PLC Coder®

Übersetzungsergebnis