Program instructions
7.8 Math
S7-200 SMART
System Manual, V2.3, 07/2017, A5E03822230-AF
297
7.8
Math
7.8.1
Add, subtract, multiply, and divide
LAD / FBD
STL
Description
ADD_DI
ADD_R
+I IN1, OUT
+D IN1, OUT
+R IN1, OUT
The Add Integer instruction adds two 16-bit integers to produce a 16-bit
result. The Add Double Integer instruction adds two 32-bit integers to pro-
duce a 32-bit result. The Add Real (+R) instruction adds two 32-bit real
numbers to produce a 32-bit real number result.
•
LAD and FBD: IN1 + IN2 = OUT
•
STL:
IN1 + OUT = OUT
SUB_DI
SUB_R
-I IN1, OUT
-D IN1, OUT
-R IN1, OUT
The Subtract Integer instruction subtracts two 16-bit integers to produce a
16-bit result. The Subtract Double Integer (-D) instruction subtracts two 32-
bit integers to produce a 32-bit result. The Subtract Real (-R) instruction
subtracts two 32-bit real numbers to produce a 32-bit real number result.
•
LAD and FBD: IN1 - IN2 = OUT
•
STL: OUT - IN1 = OUT
MUL_DI
MUL_R
*I IN1, OUT
*D IN1, OUT
*R IN1, OUT
The Multiply Integer instruction multiplies two 16-bit integers to produce a
16-bit result. The Multiply Double Integer instruction multiplies two 32-bit
integers to produce a 32-bit result. The Multiply Real instruction multiplies
two 32-bit real numbers to produce a 32-bit real number result.
•
LAD and FBD: IN1 * IN2 = OUT
•
STL: IN1 * OUT = OUT
DIV_DI
DIV_R
/I IN1, OUT
/D IN1, OUT
/R IN1, OUT
The Divide Integer instruction divides two 16-bit integers to produce a 16-bit
result. (No remainder is kept.) Divide Double Integer instruction divides two
32-bit integers to produce a 32-bit result. (No remainder is kept.) The Divide
Real (/R) instruction divides two 32-bit real numbers to produce a 32-bit real
number result.
•
LAD and FBD: IN1 / IN2 = OUT
•
STL: OUT / IN1 = OUT
Non-fatal errors with ENO = 0
SM bits affected
•
0006H Indirect address
•
SM1.1 Overflow
•
SM1.3 Divide by zero
•
SM1.0 Result of operation = zero
•
SM1.1 Overflow, illegal value generated during the operation, or illegal
input
•
SM1.2 Negative result
•
SM1.3 Divide by zero