Modifiers and Operators in IL

Modifiers
Modifier Combined with operator Description
C JMP, CAL, RET The command is only executed if the result of the preceding expression is TRUE.
N JMPC, CALC, RETC The command is only executed if the result of the preceding expression is FALSE.
N otherwise negation of the operand (not of the accumulator).
Operators with the possible modifiers
Operator N Meaning Example
LD N Loads the (negated) the value of the operand into the accumulator. LD ivar
ST N Stores the (negated) content of the accumulator in the operand. ST iErg
S   Sets the operand (type BOOL) to TRUE if the content of the accumulator is TRUE. S bVar1
R   Sets the operand (type BOOL) to FALSE if the content of the accumulator is TRUE. R bVar1
AND N,( Bitwise AND of the accumulator value and (negated) operand AND bVar2
OR N,( Bitwise OR of the accumulator value and (negated) operand OR xVar
XOR N,( Bitwise exclusive OR of the accumulator value and (negated) operand XOR N,(bVar1,bVar2)
NOT   Bitwise negation of the accumulator value
ADD ( Addition of the accumulator value and the operand; result is written into the accumulator. ADD ivar1
SUB ( Subtraction of the operand from the accumulator value; result is written into the accumulator. SUB iVar2
MUL ( Multiplication of accumulator value and operand; result is written into the accumulator. MUL ivar2
DIV ( Division of the accumulator value by the operand; result is written into the accumulator. DIV 44
GT ( Checks whether the accumulator value is greater than the operand value; result (BOOL) is written into the accumulator; > GT 23
GE ( Checks whether the accumulator value is greater than or equal to the operand value; result (BOOL) is written into the accumulator. GE iVar2
EQ ( Checks whether the accumulator value is equal to the operand value; result (BOOL) is written into the accumulator. EQ iVar2
NE ( Checks whether the accumulator value is not equal to the operand value; result (BOOL) is written into the accumulator; NE iVar1
LE ( Checks whether the accumulator value is smaller than or equal to the operand value; result (BOOL) is written into the accumulator. LE 5
LT ( Checks whether the accumulator value is smaller than the operand value; result (BOOL) is written into the accumulator. LT cVar1
JMP CN Unconditional (conditional) jump to the specified jump label JMPN next
CAL CN (Conditional) call of a program or a function block (if the accumulator value is TRUE) CAL prog1
RET   Exit the box and return to the calling box. RET
RET C If the accumulator value is TRUE: exit the box and return to the calling box. RETC
RET CN If the accumulator value is FALSE: exit the box and return to the calling box. RETCN
)   Evaluation of the reset operation  

Example

../_images/90ef96fe4aeb4703c0a8640e0137fa74
Application Description Examples
Several operands for 1 operator

Options

  • You enter the operands into consecutive rows, separated by commas in the 2nd column.
  • You repeat the operator in consecutive rows.

Variant 1 :

../_images/a3c03281f02dfeb7c0a8640e0199bd17

Variant 2 :

../_images/e376975cf02e4b6cc0a8640e00decc4e
Complex operands For a complex operand, you enter the opening parenthesis ( in the first column. You enter the closing parenthesis in the first column in a separate row following the operand entries of the following rows.

A string is rotated by a character each cycle:

../_images/7c8adff773d80607c0a8640e00a4b655
Function block call, program call

Column 1: Operator CAL or CALC

Column 2: Name of the function block instance or the program and opening parenthesis (. If no parameters follow, the closing parenthesis ) is entered here.

rows following that:

Column 1: parameter name followed by := for input parameter or => for output parameter

Column 2: parameter value followed by a comma , if further parameters follow. The closing parenthesis ) is input after the last parameter.

As a limitation according to the IEC standard, complex expressions cannot be used here. You must assign such constructs to the function block or the program before the call.

../_images/8cb71f4e7401cfebc0a8640e019fe7dd
Function Call

Row 1: Column 1: LD

Column 2: input variable

Row 2: Column 1: Function name Column 2: further input parameters separated by commas.

CODESYS writes the return value into the accumulator.

Row 3: Column 1: ST Column 2: variable into which the return value is written

../_images/a1c3e196f03cef92c0a8640e0129cee6
Action call

Like function block call or program call.

The action name is appended to the name of the FB instance or the program.

../_images/0be8db1df04ada6bc0a8640e0020f010
Jump

Column 1: operator JMP or JMPC.

Column 2: Name of the jump label of the destination network.

In the case of an unconditional jump, the preceding instruction sequence must end with one of the following commands: ST, STN, S, R, CAL, RET, JMP

In the case of a conditional jump the execution of the jump depends on the loaded value.

../_images/fccbb14b746cd274c0a8640e00cb0360

See also