This article will discuss the use of various types of math calculation instructions in the Omron PLC. In CX-Programmer, there are four basic calculation instructions: addition “+(400)”, subtraction “-(410)”, multiplication “*(420)”, and division “/(430)”. In this program, all of these instructions will be used to calculate a value.
Program Objective

Signed Binary Add Without Carry Instruction +(400)
The +(400) instruction is used to add two word memory values (16-bit). It supports data in signed binary format with a value range of -32,768 to +32,767. This instruction requires three word memory allocations (initial value, value to be added, and result) and one input parameter as the instruction trigger.
In this program, the Signed Binary Add Without Carry / +(400) instruction will be used to add two word memory values.
Signed Binary Subtract Without Carry Instruction -(410)
The -(410) instruction is used to subtract a value from a word memory (16-bit). It supports data in signed binary format with a value range of -32,768 to +32,767. This instruction requires three word memory allocations (value to be subtracted, subtractor value, and result) and one input parameter as the instruction trigger.
In this program, the Signed Binary Subtract Without Carry / -(410) instruction will be used to subtract a word memory value.
Signed Binary Multiply Instruction *(420)
The *(420) instruction is used to multiply two word memory values (16-bit). It supports data in signed binary format with a value range of -32,768 to +32,767. This instruction requires four word memory allocations (multiplicand, multiplier, and result) and one input parameter as the instruction trigger. The result of this instruction occupies two word memory allocations.
In this program, the Signed Binary Multiply / *(420) instruction will be used to multiply two word memory values.
Signed Binary Divide Instruction /(430)
The /(430) instruction is used to divide a value in word memory (16-bit). It supports data in signed binary format with a value range of -32,768 to +32,767. This instruction requires four word memory allocations (dividend, divisor, and result) and one input parameter as the instruction trigger. The result of this instruction occupies two word memory allocations.
In this program, the Signed Binary Divide / /(430) instruction will be used to divide a word memory value.
Using Add, Subtract, Multiply, and Divide in CX-Programmer

Simulation Video
In the video below, we simulated the Omron PLC math program and showed you the results.
Mapping Details
S.No. | Comment | Input (I) | Memory Word |
---|---|---|---|
1 | TRIG(+) | 0.00 | |
2 | TRIG(-) | 0.01 | |
3 | TRIG(*) | 0.02 | |
4 | TRIG(/) | 0.03 | |
5 | DATA_1 | D0 | |
6 | DATA_2 | D1 | |
7 | RESULT(+) | D2 | |
8 | DATA_10 | D10 | |
9 | DATA_11 | D11 | |
10 | RESULT(*) | D12 | |
11 | DATA_20 | D20 | |
12 | DATA_21 | D21 | |
13 | RESULT(-) | D22 | |
14 | DATA_30 | D30 | |
15 | DATA_31 | D31 | |
16 | RESULT(/) | D32 |
OMRON PLC Math Instructions

RUNG 0 (ADD INSTRUCTION)
In this Rung, if the TRIG(+) (0.00) button is pressed, then the +(400) instruction will add the value in the DATA_1 (D0) memory word with the value in the DATA_2 (D1) memory word and the calculation result will be entered into the RESULT(+) (D2) memory word.
RUNG 1 (SUBSTRACT INSTRUCTION)
In this Rung, if the TRIG(-) (0.01) button is pressed, then the -(410) instruction will subtract the value in the DATA_20 (D20) memory word with the value in the DATA_21 (D21) memory word and the calculation result will be entered into the RESULT(-) (D22) memory word.

RUNG 2 (MULTIPLY INSTRUCTION)
In this Rung, if the TRIG(*) (0.02) button is pressed, then the *(420) instruction will multiply the value in the DATA_10 (D10) memory word with the value in the DATA_11 (D11) memory word and the calculation result will be entered into the RESULT(*) (D12) memory word.
RUNG 3 (DIVIDE INSTRUCTION)
In this Rung, if the TRIG(/) (0.03) button is pressed, then the /(430) instruction will divide the value in the DATA_30 (D30) memory word with the value in the DATA_31 (D31) memory word and the calculation result will be entered into the RESULT(/) (D32) memory word.
Read Next:
- Introduction to Functional Block Diagrams
- PLC List Program for Basic Instructions Explained
- PLC Repeat Until Statement in SCL Language
- Standard Colors in PLC Automation Systems
- Advanced Skills Required for a PLC Programmer