Modbus Training
Modbus Training
Table of Contents
1
1 System Setup
1.1
1:1 Network
Modbus Master
Modbus Slave
Port 2
Port 2
RS2323C/RS485
1.2
Modbus Slave
Port 2
Port 2
Modbus Slave
RS485
Port 2
Modbus Slave
Port 2
In this example, a FC5A Modbus Master will communicate with a FC5A Modbus Slave, whose slave
number is 15. The master reads D8057 of the slave, stores it in D0100, reads M8121 and stores it in
M0100.
2.1.1 System Setup
Port 2 of two FC5A All-in-one CPUs is connected with a RS232C/RS485 cable. The master
communicates with the slave using two communication requests.
Modbus Master
Port 2
Port 2
RS2323C/RS485
2.1.2
Request #1
D0100
Read
D8057
Request #2
M0100
Read
M8121
(3) Select Configure > Function Area Settings from the main menu to open the Function Area
Settings dialog box, and then select the Communication tab.
(4) Select Modbus RTU Slave from the dropdown list for Port 2, and then the Communication
Parameters dialog box will appear. Input 15 as the Slave Number, click OK to close the dialog
box, and then click OK to close the Function Area Settings dialog box.
(5) Connect the FC5A as the Modbus Slave to the PC and select Online > Download Program
from the main menu to open the Download Program dialog box. Click the Download button to start
downloading the program.
(6) The Program Download confirmation dialog box will appear, letting you know the setup for the
Modbus Slave has finished.
2.1.3
(1) Create a new program and select the appropriate PLC type. In this example, select FC5A-C10R2.
(2) Select Configure > Function Area Settings from the main menu to open the Function Area
Settings dialog box, and then select the Communication tab.
(3) Select Modbus RTU Master from the dropdown list for Port 2, the Modbus Master Request Table
dialog box will appear.
D0100
Modbus Slave
Read
D8057
(5) Click on the Function Code cell for Request #1 in the dialog box, and the dropdown list will appear.
From the dropdown list, select the 03 Read Holding Register.
In order to obtain the Modbus address of MicroSmart operands, the formula shown in the images
below can be used. For example, the Modbus address of D8057 can be calculated as follows:
D8057 (MicroSmart Operand) = (8057 - 8000) + 408001 = 408058 (Modbus Address).
(6) Enter D100 in the Master Allocation No., 1 in the Data Size, 15 in the Slave No., and 408058
in the Slave Address. The setup for communication Request #1 has been completed. The one
word data at the address 408058 of Modbus Slave #15 will read out and be stored in D0100 of the
Modbus Master.
M0100
Modbus Slave
Read
M8121
(8) To obtain the Modbus Address of M8121, select the Special Internal Relay sheet in the Modbus
Address table and look up M8121.
(9) Click on the Function Code cell for Request #2 in the dialog box, and select the 01 Read Coil
Status from the dropdown list. Then, Input M100 in the Master Allocation No., 1 as the Data
Size, 15 as the Slave No., and 009098 as the Slave Address.
(10)Setup for communication request #2 has been completed. The one bit data at the address 009098
of Modbus Slave #15 is read and stored in M0100 of the Modbus Master.
(11)Click OK to close the Modbus RTU Request Table dialog box. Click OK again to close the
Function Area Settings dialog box.
(12)Connect the FC5A as the Modbus Master to the PC and select Online > Download Program
from the main menu to open the Download Program dialog box. Click the Download button to start
downloading the program.
(13)The Program Download confirmation dialog box will appear, and the Modbus Master setup has
been completed.
2.1.4
(1) Connect the PC to the Modbus Master and select Online > Monitor from the main menu to start
the Monitor mode.
(2) Select Online > Point Write to open a Point Write dialog box, and then input D100 as the monitor.
On the Modbus Slave, change D8057 with the Analog Potentiometer 1 and see D100 of the
Modbus Master change between 0 through 255.
(3) Select Online > Direct Set/Reset to open a Direct Set/Reset dialog box, and then input M100 to
monitor. M100 turns on and off every second.
10
2.2
In this example, a FC5A Modbus Master will communicate with a FC5A Modbus Slave, whose slave
number is 15. The master reads D8057 and D8058 of the slave and stores it in D0100 and D0101,
and reads M8121 through M8123 and stores them in M0100 through M0102.
2.2.1 System Setup
Two FC5A All-in-one CPUs are connected with a RS232C/RS485 cable using Port 2. The master
communicates with the slave using two communication requests.
Modbus Master
Port 2
Port 2
RS2323C/RS485
Request #1
Request #2
D0100
Read
D8057
D0101
D8058
M0100
M8121
M0100
Read
M0100
M0100
M0100
(1) Open the Modbus Master program of example 1 and open the Modbus Master Request Table
dialog box.
(2) Change the Data Size of Request #1 from 1 to 2 and of the Request #2 from 1 to 3.
11
2.3
In this example, a FC5A Modbus Master will communicate with a FC5A Modbus Slave, whose slave
number is 15. The master writes D50 to the D20 of the slave, and writes M50 to Q2 of the slave. The
slave outputs Q0 when D20 is equal to 5000.
2.3.1 System Setup
Port 2 of two FC5A All-in-one CPUs is connected with a RS232C/RS485 cable. The master
communicates with the slave using two communication requests.
Modbus Master
Port 2
Port 2
RS2323C/RS485
Request #1
D50
Write
D20
Request #2
M50
Write
Q2
12
2.3.2
(1) Create a new file and configure the function area settings as shown (1) through (4) in Example 2.
(2) Create a ladder program as shown in the image below. When D20 is equal to 5000, Q0 turns on.
(1) Create a new file and open the Modbus RTU Master Request Table.
(2) Enter the two communication requests according to the specification. After inputting all parameters,
the Modbus RTU Master Request Table will look like the image below.
(4) Close the Request Table and Function Area Settings dialog boxes, and then download the
program to the Modbus Master.
2.3.4
(1) Connect the PC to the Modbus Master and select Online > Monitor from the main menu to start
the Monitor mode.
(2) Select Online > Point Write to open a Point Write dialog box, and then input D50 to monitor.
Change the D50 value and see if Q0 of the Modbus Slave turns on when D50 of the Modbus
Master is equal to 5000.
13
(3) Select Online > Direct Set/Reset to open a Direct Set/Reset dialog box, and then input M50 to
monitor. Set/reset M50 and see if Q2 of the Modbus Slave turns on/off accordingly.
14
2.4
In this example, a FC5A Modbus Master will communicate with a FC5A Modbus Slave, whose slave
number is 15. The master will write D50 to D20 and M50 to Q2 when M0100 turns on. The slave
outputs Q0 when D20 is equal to 5000. A touchscreen also monitors the Modbus Slave through Port 1
of the slave and changes the value of D20 and Q2.
2.4.1
System Setup
Modbus Master
Port 2
HG touchscreen
RS2323C/RS485
Request #1
D50
Write
D20
(400021)
Read/Write
Numerical
Input
M50
Write
Q2
(000003)
Read
Pilot Lamp
Request #2
Write
Bit Button
(Toggle)
When the Request Execution Relay is enabled, internal relays are assigned to all the communication
requests registered in the Request Table. The communication requests are executed only when
corresponding internal relays are ON. For example, when M200 is assigned as the Request Execution
Relay, 4 internal relays starting from M200 are assigned to the communication requests as follows.
And only when M202 is ON, the Modbus Master executes the communication request #3. Therefore,
when M202 is OFF, the value in D20 of the Modbus Slave #15 can be changed with a touch screen
without over-written by the Modbus Master.
15
2.4.2
The setup for the Modbus Slave is the same as 3.3.2 in the example 3.
2.4.3
(1) Create a new file and open the Modbus RTU Master Request Table.
(2) Input the two communication requests according to the specification. And then click on Use and
input M0200 in the Request Execution Internal Relay setting. After inputting all the parameters,
Modbus RTU Master Request Table will look like the image below.
(5) Close the Request Table and Function Area Settings dialog boxes.
(6) Create a ladder program as shown in the image below. When M100 turns on, M200 and M201 are
set.
Note: When a Request Execution Relay turns on, the corresponding communication request is
executed and the Request Execution Relay is automatically turned off. Therefore, when a Request
Execution Relay is turned on with a SET instruction following a SOTU/D instruction as shown above,
the communication request is executed just one time.
(7) Download the program to the Modbus Master.
16
2.4.4
17
(4) Create a Bit Button and input Q 2 as the Destination Device and select Toggle as the Action
Mode.
(5) Download the project to the touchscreen connected to Port 1 of Modbus Slave #15.
2.4.5
(1) Connect the PC to the Modbus Master and select Online > Monitor from the main menu to start
the Monitor mode.
(2) Select Online > Point Write to open a Point Write dialog box, and then input D50 to monitor.
Change the D50 value to 5000 and confirm that Q0 of the slave does not turn on, and the D20
value of the slave shown on the touchscreen remains 0.
(3) Turn on M100 of the master, and then Q0 of the Slave turns on and the D20 value shown on the
touchscreen becomes 5000.
18
(4) Change the D20 value to a value other than 5000 using the Numerical Input on the screen, and
the Q0 of the slave turns off. Change the D20 value back to 5000, and then Q0 turns on again.
(5) Select Online > Direct Set/Reset to open a Direct Set/Reset dialog box, and then input M50 to
monitor. Set/reset M50 and confirm that Q2 of the slave does not turn on, and the Pilot Lamp on
the touchscreen also does not turn on.
(6) Turn on M101 of the master. Then Q2 of the slave will turn on and the Pilot Lamp on the
touchscreen also turns on.
(7) Toggle Q2 using the Bit Button on the screen and see Q2 of the slave and the Pilot Lamp on the
screen turn off. Toggle Q2 again, then Q2 and the Pilot Lamp turn on.
Note:
If you want to execute communication requests repeatedly when the Request Execution Relay is
enabled, you have to program SET instructions following M8125 (In-operation Output) to set the relays.
For example, if you program as below, the communication Request #1 is executed only when M100
turns on, but the communication Request #2 is executed repeatedly as long as the PLC is running.
19
2.5
In example 5, a FC5A Modbus Master will communicate with a FC5A Modbus Slave, whose slave
number is 15. The master will write D50 to D20. Q0 of the slave turns off D20 ms later after I0 turns on.
2.5.1
System Setup
Modbus Master
Port 2
Port 2
RS2323C/RS485
Request #1
D50
Write
D20
Note:
As shown below (FC5A Modbus Slave Address Map in 30-5 of FC5A Users Manual), only the
Function Code 3 can be used to access the preset values of timers and counters. As the Function
Code 3 is 03 Read Holding Registers, you can read these values but cannot write values to them.
2.5.2
(1) Create a new file and configure the function area settings as shown (1) through (4) in 3.1.2.
(2) Create a ladder program as shown below. When I0 turns on, TIM T0 instruction starts, and D20
ms later, Q0 is turned on.
20
2.5.3
(1) Create a new file and open the Modbus RTU Master Request Table and configure the Request #1
as follows.
(2) Close the dialog box and download the program to the master.
2.5.4
(1) Connect the PC to the Modbus Master and select Online > Monitor from the main menu to start
the Monitor mode.
(2) Select Online > Point Write to open a Point Write dialog box, and then input D50 to the monitor.
Write 0 to D50, and then turn on I0 of the slave. Q0 should turn on right after I0 turns on.
(3) Write 30 to D50, and then turn on I0 of the slave.Q0 should turn on about 3 sec after I0 turns on.
21