Introduction
When an assignment is performed, the current value of a single or multi-element variable is replaced by the result of the evaluation of the expression.
An assignment consists of a variable specification on the left
side, followed by the assignment operator :=
, followed
by the expression to be evaluated.
Both variables (left and right sides of the assignment operator) must have the same data type.
Arrays are a special case. After being explicitly enabled, assignment of two arrays with different lengths can be made.
Assigning the Value of a Variable to Another Variable
Assignments are used to assign the value of a variable to another variable.
The instruction
A := B ;
is used, for example, to replace the value
of the variable A
with the current value of variable B
. If A
and B
are elementary
data types, the individual value of B
is passed to A
. If A
and B
are derived
data types, the values of all B
elements are passed
to A
.
Assigning the Value of a Literal to a Variable
Assignments are used to assign a literal to variables.
The instruction
C := 25 ;
is used, for example, to assign the value 25 to the variable C
.
Assigning the Value of an Operation to a Variable
Assignments are used to assign to a variable a value which is the result of an operation.
The instruction
X := (A+B-C)*D ;
is used, for example, to
assign the result of the operation (A+B-C)*D
to the
variable X
.
Assigning the Value of an FFB to a Variable
Assignments are used to assign a value returned by a function or a function block to a variable.
The instruction
B := MOD(C,A) ;
is used, for example, to
call the MOD
(Modulo) function and assign the result
of the calculation to the variable B
.
The instruction
A := MY_TON.Q ;
is used, for
example, to assign the value of the Q
output of the MY_TON
function block (instance of the TON
function block) to the variable A
. (This is not
a function block call) )
Multiple Assignments
Multiple assignments are a supplement to IEC 61131-3 and must be enabled explicitly.
Even after being enabled, multiple assignments are NOT allowed in the following cases:
in the parameter list for a function block call
in the element list to initialize structured variables
The instruction
X := Y := Z
is allowed.
The instructions
FB(in1 := 1, In2 := In3 := 2) ;
and
strucVar := (comp1 := 1, comp2 := comp3 := 2) ;
are not allowed.
Assignments between Arrays and WORD
-/DWORD
Variables
Assignments
between arrays and WORD
-/DWORD
variables
are only possible if a type conversion has previously been carried
out, e.g.:
%Q3.0:16 := INT_TO_AR_BOOL(%MW20) ;
The following conversion functions are available (General Library,
family Array
):
MOVE_BOOL_AREBOOL
MOVE_WORD_ARWORD
MOVE_DWORD_ARDWORD
MOVE_INT_ARINT
MOVE_DINT_ARDINT
MOVE_REAL_ARREAL