JMPC

Bedingter Sprung (Jump Conditional)

Die Programmausführung wird, falls das letzte Verknüpfungsergebnis TRUE war, an der im Operandenbereich angegebenen Marke fortgesetzt.

Gültige Operanden für diesen Operator haben folgende Datentypen: Jedes im Programm vorkommende Label ist gültig. Der im Akkumulator stehende Wert muss vom Typ BOOL sein.

Anmerkung
  • Dieser Operator kann nur in AWL verwendet werden.
  • var_1 und var_2 können von jedem Datentyp sein, da ein Vergleich für jeden Datentyp möglich ist. var_3, var_4 und var_5 müssen entsprechend den mit ihnen ausgeführten Operationen numerische Datentypen sein. LABEL1 und LABEL2 müssen gültige Marken im Programm sein. Der Sprung wird nur ausgeführt, wenn der Akkumulator den Wert TRUE hält. Andernfalls, wird die Programmausführung mit dem Befehl fortgeführt, der auf den JMPC-Befehl folgt.

  • Nach der Marke muss ein Doppelpunkt folgen. Im JMPC-Befehl muss der Doppelpunkt nach dem Markennamen jedoch weggelassen werden.

  • Marken lassen sich nur am Anfang eines Netzwerks einfügen. Eine Sprungmarke kann nur am Anfang eines Netzwerks eingefügt werden, auch wenn kein Sprung darauf erfolgt. (z.B. LABEL0 in diesem Code-Fragment).

Beispiel

POE-Kopf

Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden.

AWL-Rumpf

(* Beginning of network 0 *)

LABEL0:

LD

var_1

(* Load var_1 in accu *)

EQ

var_2

(* Compare accu with var_2; store result of comparison in accu;

result is of type BOOL*)

JMPC

LABEL1

(* If accu contains TRUE continue program execution at position LABEL1 *)

(* Beginning of network 1 *)

LABEL1:

MUL

var_3

(* Multiply accu by var_3 *)

SUB

var_4

(* Subtract var_4 from accu; result is store in accu *)

ST

var_5

(* Store accu in var_5*)

Letzte Änderung: 2024-10-21Feedback zu dieser SeitePanasonic Hotline