Program instructions
7.8 Math
S7-200 SMART
System Manual, 09/2015, A5E03822230-AC
259
Add, subtract, multiply, and divide
ADD_DI
+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
-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
*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
/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
• 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