Sprünge im Programm mit FUP

Sprungfunktionen programmieren

Ob ein SPS-Programm in KOP oder FUP erstellt wird, spielt für die Abarbeitung keine Rolle. Denn, das Programm wird in der CPU in AWL abgearbeitet. Hierbei erfolgt die Abarbeitung sequentiell, das bedeutet Zeile für Zeile von oben nach unten und zyklisch, das bedeutet wiederholend. Man kann die Abarbeitung des Programms mit den Sprungfunktionen beeinflussen. Diese haben den Vorteil, dass man damit ein Programm in mehrere Bereiche aufteilen kann und je nach Verknüpfungsoperation nur die Bereiche abarbeiten lässt, die man möchte. In Step7 befinden sich diese Funktionen unter dem Knoten Sprünge.

Hier stehen dem Programmierer folgende Bausteine zur Verfügung:

  • Label: Zur Definition des Ziels
  • JMP: Absoluter Sprungbefehl
  • JMP: Bedingter Sprungbefehl bei 1
  • JMPN: Bedingter Sprungbefehl bei 0

Sprungmarke mit LABEL definieren

Damit zu einer Sprungmarke gesprungen werden kann, muss man diese zuerst definieren. Dies geschieht mit dem Baustein LABEL. Damit wird ein Netzwerk als Sprungmarke definiert, wohin entweder absolut oder an eine Bedingung geknüpft gesprungen werden kann. Die Sprungmarke benötigt einen Namen. Für die Namensvergabe hat man maximal 4 Stellen zur Verfügung, wobei das erste Zeichen ein Buchstabe sein muss. Die restlichen Zeichen sind frei wählbar.

Sprungmarke definieren

Sprung ohne Bedingung

Mit JMP kann zu einer Sprungmarke ohne Bedingung gesprungen werden. Solche Sprungfunktionen werden auch absolute Sprünge bezeichnet, da sie ausgeführt werden und nicht an das Vorhandensein eines Signals notwendig ist. Beim JMP-Baustein wird oberhalb das Sprungziel eingetragen.

Absoluter Sprung

Bedingter Sprung mit JMP

Eine Sprungfunktion kann auch eine Bedingung geknüpft werden. In dem Fall führt der Ausgang einer Verknüpfungsoperation an den JMP-Baustein. Der Sprungbefehl wird dann nur ausgeführt, wenn das VKE der Verknüpfungsoperation eine 1 ist.

Bedingter Sprung

Bedingter Sprung bei VKE 0

Der JMP-Befehl wird ausgeführt, wenn das VKE eine 1 ist. Es gibt auch die Möglichkeit, den Sprungbefehl auszuführen, wenn das VKE eine 0 ist. In dem Fall muss man den Baustein JMPN wählen. Damit wird eine Sprungfunktion ausgelöst, wenn das VKE der Verknüpfungsoperation 0 ist.

Jump wenn VKE 0

Mit diesen drei Bausteinen ist es möglich, die Abarbeitung des Programms, je nach Ergebnis der Verknüpfungsergebnisse, zu beeinflussen. Eine beliebte Methode ist, das Programm in mehrere Bereiche aufzuteilen und jeden Bereich als Sprungmarke zu definieren. Im unteren Bereich befinden sich jeweils Sprungfunktionen, um wieder zum Anfang des Bereichs zu springen. So würde der Bereich ständig und wiederholend abgearbeitet, bis sich eine Bedingung ändert.