17 ARITHMETIC OPERATION FUNCTIONS
17.1 Addition
777
17
17 ARITHMETIC OPERATION FUNCTIONS
17.1 Addition
ADD(_E)
These functions output the sum of input values ((s1) + (s2) + ... + (s28)).
*1 The input variable "s" can be changed in the range of 2 to 28.
â– Descriptions, types, and data types
â– Operation processing
• These functions add the INT, DINT, or REAL type data ((s1) + (s2) + ... + (s28)) input to (s1) to (s28), and output from (d) in
the same data type as (s).
Data type is the INT type
• A value input to (s1) to (s28) is the INT, DINT, or REAL type data value.
• If an underflow and an overflow occur in the operation result, the result will be output as follows from (d).
• When the operation result is 0, the zero flag (SM8020) turns on.
Ladder diagram
*1
Structured text
*1
[Without EN/ENO] [With EN/ENO] [Without EN/ENO]
d:=ADD(s1,s2);
[With EN/ENO]
d:=ADD_E(EN,ENO,s1,s2);
Argument Description Type Data type
EN Execution condition (TRUE: Execution, FALSE: Stop) Input variable BOOL
s1 to s28 Input Input variable ANY_NUM
ENO Output status (TRUE: Normal, FALSE: Abnormal) Output variable BOOL
d Output Output variable ANY_NUM
Data type is INT Data type is DINT Data type is REAL
• Even if underflow or overflow occurs in the
operation result, it is not regarded as an
operation error. "ADD_E" outputs "TRUE" from
ENO.
[Example 1]
32767+2=1
(7FFFH)+(0002H)=0001H
The most significant bit becomes 0, and the carry
flags (SM716 and SM8022) turn on.
[Example 2]
-32768+(-2)=-1
(8000H)+(FFFEH)=(FFFFH)
The most significant bit becomes 1, and the borrow
flag (SM8021) turns on.
• Even if underflow or overflow occurs in the
operation result, it is not regarded as an
operation error. "ADD_E" outputs "TRUE" from
ENO.
[Example 1]
2147483647+2=1
(7FFFFFFFH)+(0002H)=(00000001H)
The most significant bit becomes 1, and the carry
flags (SM716 and SM8022) turn on.
[Example 2]
-2147483648+(-2)=-1
(80000000H)+(FFFEH)=(7FFFFFFFH)
The most significant bit becomes 1, and the borrow
flag (SM8021) turns on.
An operation error occurs and an undefined value
is output.
INT
1234
INT
5678
INT
6912
(s1)
(s2)
(d)