Modifiers and Operators in IL

In the IL language the following operators and modifiers can be used.

Modifiers:
C with JMP, CAL, RET: The instruction is only then executed if the result of the preceding expression is TRUE. ·
N with JMPC, CALC, RETC: The instruction is only then executed if the result of the preceding expression is FALSE.
N otherwise: Negation of the operand (not of the accumulator) Below you find a table of all operators in IL with their possible modifiers and the relevant meaning:

Below you find a table of all operators in IL with their possible modifiers and the relevant meaning:

Operator Modifiers Meaning
LD N Make current result equal to the operand
ST N Save current result at the position of the operand
S   Then put the Boolean operand exactly at TRUE if the current result is TRUE
R   Then put the Boolean operand exactly at FALSE if the current result is TRUE
AND N,( Bitwise AND
OR N,( Bitwise OR
XOR N,( Bitwise exclusive OR
ADD ( Addition
SUB ( Subtraction
MUL ( Multiplication
DIV ( Division
GT ( >
GE ( >=
EQ ( =
NE ( <>
LE ( <=
LT ( <
JMP CN Jump to the label
CAL CN Call programor function block or
RET CN Leave POU and return to caller.
)   Evaluate deferred operation

Example of an IL program while using some modifiers:

LD TRUE (*load TRUE in the accumulator*)
ANDN BOOL1 (*execute AND with the negated value of the BOOL1 variable*)
JMPC mark (*if the result was TRUE, then jump to the label “mark”*)
LDN BOOL2 (*save the negated value of *)
ST ERG (*BOOL2 in ERG*)
label:    
LD BOOL2 (*save the value of *)
ST ERG *BOOL2 in ERG*)

It is also possible in IL to put parentheses after an operation. The value of the parenthesis is then considered as an operand.

For example:

LD  2

MUL 2

ADD 3

Erg

Here is the value of Erg 7. However, if one puts parentheses:

LD 2

MUL (2

ADD 3

)

ST Erg

The resulting value for Erg is 10, the operation MUL is only then evaluated if you come to “)”; as operand for MUL 5 is then calculated.