Inhaltsverzeichnis

SPS / PLC Programmierung

Eine kurze Zusammenfassung aller Sprachelemente.

Strukturierter Text (ST, auch SCL) ist eine der sechs in 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

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 <boolean expression_1> THEN <IF-instructions> {ELSIF <boolean expression_2> THEN <ELSIF-instruction_1> ELSIF <boolean expression_n> THEN <ELSIF_instruction_n-1> ELSE <ELSE_instructions>} END_IF;

Der Abschnitt innerhalb der geschweiften Klammer {} ist optional.

Wenn <boolean expression_1> TRUE liefert, führt TwinCAT nur die <IF-instructions> und keine der anderen Anweisungen aus.

Ansonsten prüft TwinCAT die booleschen Ausdrücke, beginnend mit <boolean expression_2>, 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 <ELSE_instructions> aus.

Beispiel:

  1. IF fTemp < 17 THEN
  2. bHeatingOn := TRUE;
  3. ELSIF fTemp > 25 THEN
  4. bOpenWindow := TRUE;
  5. ELSE
  6. bHeatingOn := FALSE;
  7. bOpenWindow := FALSE;
  8. END_IF;

Siehe auch: ExST-Anweisung CONTINUE


FOR


Hier Beckhoff FOR


ST-Anweisung FOR

Die FOR-Schleife verwenden Sie, um Anweisungen mit einer bestimmten Anzahl von Wiederholungen auszuführen.

Syntax:

FOR <counter> := <start value> TO <end value> {BY <increment> } DO <instructions> END_FOR;

Der Abschnitt innerhalb der geschweiften Klammern {} ist optional.

TwinCAT führt die <instructions> solange aus, wie der <counter> nicht größer, oder - bei negativer Schrittgröße increment - kleiner als der <end value> ist. Dies wird vor der Ausführung der <instructions> geprüft.

Immer wenn die Anweisungen <instructions> ausgeführt worden sind, wird der Zähler <counter> automatisch um die Schrittgröße <increment> erhöht. Die Schrittgröße <increment> 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



WHILE



REPEAT



RETURN



JMP



EXIT



CONTINUE



Aufruf Funktionsbausteine



Kommentare