0% found this document useful (0 votes)
94 views

Modbus Training

This document provides training on Modbus communication using FC5A PLCs as the Modbus master and slave devices. It includes 5 examples of common Modbus tasks: 1) Reading data from a slave, 2) Reading multiple data from a slave, 3) Writing data to a slave, 4) Using request execution relays, and 5) Changing preset timer/counter values. For each example, it describes the system setup, provides the programming steps to configure the master and slave using WindLDR software, and instructions to test the communication. Programming involves settings such as slave number, function codes, data sizes, and mapping registers between the master and slave devices.

Uploaded by

masWIDI
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
94 views

Modbus Training

This document provides training on Modbus communication using FC5A PLCs as the Modbus master and slave devices. It includes 5 examples of common Modbus tasks: 1) Reading data from a slave, 2) Reading multiple data from a slave, 3) Writing data to a slave, 4) Using request execution relays, and 5) Changing preset timer/counter values. For each example, it describes the system setup, provides the programming steps to configure the master and slave using WindLDR software, and instructions to test the communication. Programming involves settings such as slave number, function codes, data sizes, and mapping registers between the master and slave devices.

Uploaded by

masWIDI
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

FC5A Modbus Communication Training

Table of Contents
1

System Setup ...................................................................................................................... 3


1.1
1:1 Network................................................................................................................ 3
1.2
1:N Network (Up to 31 Slaves).................................................................................. 3
2
Modbus Communication Examples ................................................................................... 4
2.1
Example 1 - Reading 1 word and 1 bit data from a slave .......................................... 4
2.2
Example 2 - Reading 2 words and 3 bits data from a slave ..................................... 11
2.3
Example 3 - Writing 1 word and 1 bit to a slave...................................................... 12
2.4
Example 4 - Using Request Execution Relay .......................................................... 15
2.5
Example 5 - Changing the preset values of Timers or Counters.............................. 20

1 System Setup
1.1

1:1 Network
Modbus Master

Modbus Slave

Port 2

Port 2

RS2323C/RS485

1.2

1:N Network (Up to 31 Slaves)


Modbus Master

Modbus Slave

Port 2

Port 2

Modbus Slave

RS485
Port 2

Modbus Slave
Port 2

2 Modbus Communication Examples


2.1

Example 1 - Reading 1 word and 1 bit data from a slave

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

Modbus Slave #15

Port 2

Port 2

RS2323C/RS485

2.1.2

Request #1

D0100

Read

D8057

Request #2

M0100

Read

M8121

Programming WindLDR - Setting up the Modbus Slave #15

(1) Start WindLDR and create a new program.


(2) Select the appropriate PLC type. In this example, FC5A-C24R2 is used.
Select Configure > PLC Selection from the main menu to open the PLC Selection dialog box.
Select FC5A-C24R2 in the PLC list and click OK to close the dialog box.

(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

Programming WindLDR - Setting up the Modbus Master

(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.

(4) Define the first communication request.


Modbus Master
Request #1

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.

Note: Modbus Device, Modbus Address, and Function Code.


When using FC5A as a Modbus Slave device, Modbus Addresses are assigned to all the operands
available on FC5A. In the page 30-9 of the FC5A Users Manual, the Address Map of the FC5A
Modbus Slave is shown as below. For example, special data registers D8000 thru D8499 are
considered the Holding Registers. The Modbus Addresses 408001 thru 408500 are assigned to these
operands, and the Function Codes 3, 6 or 16 can be used to manipulate these operands.

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).

Notes: For your reference, the Modbus Address table FC5A_ModbusSlave_AddressMap.xls


showing all the operands available on FC5A and corresponding Modbus address is available on the
IDEC MicroSmart Pentra web page under Documents and Downloads.

(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.

(7) Define the second communication request.


Modbus Master
Request #2

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

Check the system

(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

Example 2 - Reading 2 words and 3 bits data from a slave

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

Modbus Slave #15

Port 2

Port 2

RS2323C/RS485
Request #1

Request #2

D0100

Read

D8057

D0101

D8058

M0100

M8121

M0100

Read

M0100

M0100
M0100

2.2.2 Programming WindLDR - Setting up the Modbus Slave #15


Nothing has to be changed from Example 1.
2.2.3

Programming WindLDR - Setting up the Modbus Master

(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

Example 3 - Writing 1 word and 1 bit to a slave

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

Modbus Slave #15

Port 2

Port 2

RS2323C/RS485
Request #1

D50

Write

D20

Request #2

M50

Write

Q2

Note: Function Code


FC5A Modbus Master supports 8 Function Codes as shown below (30-5 in the FC5A Users Manual).
Though the Function Codes 05, 06, 15 or 16 can be used to write values to Modbus Slave devices,
you need to make sure which function codes the Modbus Slave devices support. In fact, some
Modbus devices do not support Function Code 15 and 16.
For example, FC5A Modbus Slave supports all the 8 function codes, and you need to select the
function code according to the operand type you want to access. If you want to read the status of I0,
you need to use 02 Read Input Status, and if you want to write values to D1, you need to use either
06 Preset Single Register or 16 Preset Multiple Registers.

12

2.3.2

Programming WindLDR - Setting up Modbus Slave #15

(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.

(3) Download the program to the Modbus Slave.


2.3.3

Programming WindLDR - Setting up the Modbus Master

(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

Check the system

(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

Example 4 - Using Request Execution Relay

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

Modbus Slave #15


Port 2

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)

Note: Modbus Master Request Table and Request Execution Relay


When the Request Execution Relay is disabled, all the registered requests in the Request Table are
executed repeatedly. For example, if 4 communication requests are registered as follows, Request 1
through 4 are executed in order, and when Request #4 is completed, FC5A starts over with Request
#1. As a result, even if the value in D20 of the Modbus Slave #15 is changed with a touchscreen, the
value will be over-written by the Modbus Master.

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

Programming WindLDR - Setting up Modbus Slave #15

The setup for the Modbus Slave is the same as 3.3.2 in the example 3.
2.4.3

Programming WindLDR - Setting up the Modbus Master

(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

Programming WindO/I NV2 - Setting up the Screen

(1) Create a new project and select an appropriate screen type.


(2) Create a Numerical Input and input D 20 as the Destination Device.

(3) Create a Pilot Lamp and input Q 2 as the Device.

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

Check the system

(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

Example 5 - Changing the preset values of Timers or Counters

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

Modbus Slave #15

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

Programming WindLDR - Setting up the Modbus Slave #15

(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.

(3) Download the program to the Modbus Slave.

20

2.5.3

Programming WindLDR - Setting up the Modbus Master

(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

Check the system

(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

You might also like