Implementation Of PLC Arithmatic Instructions
In case of PLC various instructions are available which can be used for computational purpose.
The compute/math instructions evaluate arithmetic operations using an expression or a specific arithmetic instruction.
Various instructions PLC can support are as follows.
Instruction |
Description |
ADD |
Add two values |
SUB |
Subtract two values |
MUL |
Multiply two values |
DIV |
Divide two values |
MOD |
Determine the remainder after one value is divided by another |
SQR |
Calculate the square root of a value |
NEG |
Take the opposite sign of a value |
ABS |
Take the absolute value of a value |
When these operations are carried out in the PLC, the type should be the same for source and destination e.g. real, integer etc. You can use mix data types, but loss of accuracy and rounding error occurs. The instruction may take more time to execute.
A compute/math instruction executes once each time the instruction is scanned as long as the rung-condition-in is true. Out of the above; ADD, SUB, MUL and DIV instructions are available in the PLC simulator.
The input and output parameters associated with these instructions are:
Input Parameter |
Data Type |
Description |
EnableIn |
BOOL |
Enable input. If cleared, the instruction does not execute and outputs are not updated |
Source A |
REAL |
Value to add to Source B |
Source B |
REAL |
Value to add to Source A |
Output Parameter |
Data Type |
Description |
EnableOut |
BOOL |
Enable output |
Dest |
REAL |
Result of the math instruction |
ADD instruction:
The ADD instruction adds Source A to Source B and places the result in the Destination.
When the instruction is used in Relay Ladder the output parameter conditions are defined as mentioned below.
Condition |
Action |
prescan |
The rung-condition-out is set to false. |
rung-condition-in is false |
The rung-condition-out is set to false. |
rung-condition-in is true |
Destination = Source A + Source B.The rung-condition-out is set to true |
SUB instruction:
The SUB instruction subtracts Source B from Source A and places the result in the Destination.
When the instruction is used in Relay Ladder the output parameter conditions are defined as mentioned below.
Condition |
Action |
prescan |
The rung-condition-out is set to false. |
rung-condition-in is false |
The rung-condition-out is set to false. |
rung-condition-in is true |
Destination = Source A - Source B.The rung-condition-out is set to true |
MUL instruction:
The MUL instruction multiplies Source A with Source B and places the result in the Destination.
When the instruction is used in Relay Ladder the output parameter conditions are defined as mentioned below.
Condition |
Action |
prescan |
The rung-condition-out is set to false. |
rung-condition-in is false |
The rung-condition-out is set to false. |
rung-condition-in is true |
Destination = Source A*Source B.The rung-condition-out is set to true |
DIV instruction:
The DIV instruction divides Source A by Source B and places the result in the Destination.
When the instruction is used in Relay Ladder the output parameter conditions are defined as mentioned below.
Condition |
Action |
prescan |
The rung-condition-out is set to false. |
rung-condition-in is false |
The rung-condition-out is set to false. |
rung-condition-in is true |
Destination = Source A/ Source B.The rung-condition-out is set to true |