====== SPS / PLC Programmierung ====== Eine kurze Zusammenfassung aller Sprachelemente. [[https://de.wikipedia.org/wiki/Strukturierter_Text|Strukturierter Text]] (ST, auch SCL) ist eine der sechs in [[https://de.wikipedia.org/wiki/EN_61131|IEC 61131-3]] festgeschriebenen Programmiersprachen für Automatisierungstechnik. Sie orientiert sich an PASCAL und enthält sowohl Sprachelemente dieser Sprache als auch SPS-typische Elemente. Besonders geeignet ist ST für alle Aufgaben, die sich mit mathematischen Formeln beschreiben lassen, wie die Programmierung komplexer Algorithmen, mathematischer Funktionen und für Rezept- und Datenverwaltung. Solche Programmteile werden mit ST bedeutend vereinfacht. Typisch für Strukturierten Text sind Anweisungen, die wie in Hochsprachen bedingt (IF..THEN..ELSE) oder in Schleifen (WHILE..DO) ausgeführt werden können. Für SPS-typische Aufgaben wie Timer, Trigger, Counter und RS-FlipFlop kommen auch in ST die Funktionsbausteine der Standardbibliothek zum Einsatz. ---- ====== Sprachelemente ====== ===== Struktuierter Text (ST) ===== ---- ==== IF ==== [[https://infosys.beckhoff.com/index.php?content=../content/1031/tc3_plc_intro/2528275595.html&id=|Hier Beckhoff IF]] ---- ST-Anweisung IF Die IF-Anweisung verwenden Sie, um eine Bedingung zu prüfen und, abhängig von dieser Bedingung, Anweisungen auszuführen. Syntax: **IF THEN {ELSIF THEN ELSIF THEN ELSE } END_IF;** Der Abschnitt innerhalb der geschweiften Klammer {} ist optional. Wenn TRUE liefert, führt TwinCAT nur die und keine der anderen Anweisungen aus. Ansonsten prüft TwinCAT die booleschen Ausdrücke, beginnend mit , nacheinander bis ein Ausdruck TRUE liefert. Anschließend wertet TwinCAT alle Anweisungen, die zwischen diesem Ausdruck und vor der nächsten ELSE oder ELSIF -Anweisung stehen, aus und führt sie entsprechend aus. Wenn keiner der booleschen Ausdrücke TRUE liefert, wertet TwinCAT nur die aus. Beispiel: IF fTemp < 17 THEN bHeatingOn := TRUE; ELSIF fTemp > 25 THEN bOpenWindow := TRUE; ELSE bHeatingOn := FALSE; bOpenWindow := FALSE; END_IF; Siehe auch: ExST-Anweisung CONTINUE ---- ==== FOR ==== ---- [[https://infosys.beckhoff.com/index.php?content=../content/1031/tc3_plc_intro/2528275595.html&id=|Hier Beckhoff FOR]] ---- ST-Anweisung FOR Die FOR-Schleife verwenden Sie, um Anweisungen mit einer bestimmten Anzahl von Wiederholungen auszuführen. Syntax: FOR := TO {BY } DO END_FOR; Der Abschnitt innerhalb der geschweiften Klammern {} ist optional. TwinCAT führt die solange aus, wie der nicht größer, oder - bei negativer Schrittgröße increment - kleiner als der ist. Dies wird vor der Ausführung der geprüft. Immer wenn die Anweisungen ausgeführt worden sind, wird der Zähler automatisch um die Schrittgröße erhöht. Die Schrittgröße kann jeden ganzzahligen Wert haben. Wenn Sie keine Schrittgröße angeben, ist die Standard-Schrittgröße 1. Beispiel: FOR nCounter := 1 TO 5 BY 1 DO nVar1 := nVar1*2; END_FOR; nErg := nVar1; ==== CASE ==== ---- {{url>https://infosys.beckhoff.de/content/1031/tc3_plc_intro/9007201783027339.html 2500, 620 noscroll noborder left|Hier Beckhoff IF}} ---- ==== WHILE ==== ---- {{url>https://infosys.beckhoff.de/content/1031/tc3_plc_intro/9007201783032715.html 2500, 490 noscroll noborder left|Hier Beckhoff IF}} ---- ==== REPEAT ==== ---- {{url>https://infosys.beckhoff.de/content/1031/tc3_plc_intro/9007201783038091.html 2500, 490 noscroll noborder left|Hier Beckhoff IF}} ---- ==== RETURN ==== ---- {{url>https://infosys.beckhoff.de/content/1031/tc3_plc_intro/9007201783043467.html 2500, 250 noscroll noborder left|Hier Beckhoff IF}} ---- ==== JMP ==== ---- {{url>https://infosys.beckhoff.de/content/1031/tc3_plc_intro/9007201783048843.html 2500, 420 noscroll noborder left|Hier Beckhoff IF}} ---- ==== EXIT ==== ---- {{url>https://infosys.beckhoff.de/content/1031/tc3_plc_intro/9007201783054219.html 2500, 110 noscroll noborder left|Hier Beckhoff IF}} ---- ==== CONTINUE ==== ---- {{url>https://infosys.beckhoff.de/content/1031/tc3_plc_intro/9007201783059595.html 2500, 280 noscroll noborder left|Hier Beckhoff IF}} ---- ==== Aufruf Funktionsbausteine ==== ---- {{url>https://infosys.beckhoff.de/content/1031/tc3_plc_intro/2528323979.html 2500, 240 noscroll noborder left|Hier Beckhoff IF}} ---- ==== Kommentare ==== ---- {{url>https://infosys.beckhoff.de/content/1031/tc3_plc_intro/9007201783070347.html 2500, 420 noscroll noborder left|Hier Beckhoff IF}} ----