Using the D2–DCM with MODBUS

Using the D2–DCM with MODBUS
Using the D2–DCM
with MODBUS
C
Data Communications Module, 2nd Edition, 2/03
C–2
Using the D2–DCM with MODBUS
Introduction
How Does the
D2–DCM work with
MODBUS?
The D2–DCM can be used as a slave interface to a network using the MODBUS RTU protocol.
To use the D2–DCM with MODBUS, your host software must send a MODBUS function code
and a MODBUS address to specify a PLC memory location that is understood by the D2–DCM.
Host sends a
MODBUS request...
What's the status of Y0?
D2-DCM responds
Y0 is ON"
... D2–DCM
responds
with data
It would be quite difficult to discuss all of the ins and outs of MODBUS in this document.
Instead, the purpose of this Appendix is to:
D provide a quick overview of MODBUS Data Types and Function Codes.
D how to determine the proper MODBUS address necessary to allow the host
software to access various memory locations in the DL205 system.
One key point to remember is that not all host software packages using MODBUS drivers
operate exactly the same way. That is, there are a couple of different ways to achieve the
same result, especially when it comes to specifying the needed address for the PLC memory
location. Therefore, it is important that you follow the instructions for your particular software
package or network master.
Data Communications Module, 2nd Edition, 2/03
C–3
Using the D2–DCM with MODBUS
MODBUS Function
Codes Supported
C–3
The host software package reads or writes information by sending a MODBUS function code
to the D2–DCM. The following table provides a description of the MODBUS function codes
supported by the D2–DCM.
MODBUS Code
Function
DL205 Data Types
Available
01
Read a group of coils
Y, CR, T, CT
02
Read a group of inputs
X, SP
05
Set / Reset a single coil
Y, CR, T, CT
15
Set / Reset a group of coils
Y, CR, T, CT
03, 04
Read a value from one or
more registers
V
06
Write a value into a single
register
V
16
Write a value into a group
of registers
V
NOTE: The maximum MODBUS secondary address supported by the D2–DCM is 60 (5A
hex).
MODBUS Data Types You are probably accustomed to seeing data types like X input, Y output, C control relay, V
memory data registers, etc. for the various types of memory in a DL205 system. For example,
Supported
if you need to know the status of Y12, then you ask for Y12. MODBUS does not use these
same data types, so you have to determine which MODBUS data type corresponds to the
PLC memory location that you need. The following table will help.
DL205 Memory Type
Quantity1
(Decimal)
PLC Range
(Octal)
Corresponding
MODBUS
Data Type
Inputs (X)
320
X0 – X477
Input
Special Relays (SP)
144
SP0 – SP137
SP540 – SP617
Input
Outputs (Y)
320
Y0 – Y477
Coil
Control Relays (CR)
256
C0 – C377
Coil
Timer Contacts (T)
128
T0 – T177
Coil
Counter Contacts (CT)
128
CT0 – CT177
Coil
Stage Status Bits (S)
512
S0 – S777
Coil
Timer Current Values (V)
128
V0 – V177
Input Register
Counter Current Value (V)
128
V1000 – V1177
Input Register
V Memory, user data (V)
1024
V2000 – V3777
Holding Register
V Memory, user data (V)
Non–volatile
256
V4000 – V4377
Holding Register
V Memory, system (V)
106
V7620 – V7737
V7746 – V7777
Holding Register
Data Communications Module, 2nd Edition, 2/03
C–4
Using the D2–DCM with MODBUS
Determining the MODBUS Address
There are typically two ways that most host software packages allow you to specify a PLC
memory location. These are:
D By specifying the MODBUS data type and address.
D By specifying a MODBUS address only.
If the Host Software
Requires the Data
Type and Address...
Many host software packages allow you to specify the MODBUS data type and the MODBUS
address that corresponds to the PLC memory location. This is the easiest method, but not all
packages allow you to do it this way. The various MODBUS data types were presented
earlier, but they have been included again in the following table.
The actual equation used to calculate the address depends on the type of PLC data you are
using. The PLC memory types are split into two categories for this purpose.
D Discrete – X, SP, Y, CR, S, T (contacts), C (contacts)
D Word – V, Timer current value, Counter current value
In either case, you basically convert the PLC octal address to decimal and add the
appropriate MODBUS address (if required). The following tables show the exact equation
used for each group of data.
DL205 Memory Type
QTY1
(Dec.)
PLC Range
(Octal)
For Discrete Data Types .... Convert PLC Addr. to Dec.
MODBUS
Address Range
+
Start of Range
MODBUS
Data Type
+ Data Type
Inputs (X)
320
X0
–
X477
2048
–
2367
Input
Special Relays (SP)
144
SP0
SP540
–
–
SP137
SP617
3072
3280
–
–
3167
3471
Input
Outputs (Y)
320
Y0
–
Y477
2048
–
2367
Coil
Control Relays (CR)
256
C0
–
C377
3072
–
3551
Coil
Timer Contacts (T)
128
T0
–
T177
6144
–
6271
Coil
Counter Contacts (CT)
128
CT0
–
CT177
6400
–
6527
Coil
Stage Status Bits (S)
512
S0
–
S777
5120
–
5631
Coil
For Word Data Types ....
Convert PLC Addr. to Dec.
Timer Current Values (V)
128
V0
–
V177
Counter Current Values (V)
128
V1000
–
V Memory, user data (V)
1024
V2000
V Memory, user data (V)
non–volatile
256
V Memory, system (V)
106
+
Data Type
0
–
127
Input Register
V1177
512
–
639
Input Register
–
V3777
1024
–
2047
Holding Register
V4000
–
V4377
2048
–
2303
Holding Register
V7620
V7746
–
–
V7737
V7777
3984
4070
–
–
4063
4095
Holding Register
Data Communications Module, 2nd Edition, 2/03
C–5
Using the D2–DCM with MODBUS
DL250–1 Memory Type
QTY1
(Dec.)
PLC Range
(Octal)
MODBUS
Address Range
For Discrete Data Types .... Convert PLC Addr. to Dec.
+
Start of Range
MODBUS
Data Type
+ Data Type
Inputs (X)
512
X0
–
X777
2048
–
2560
Input
Special Relays (SP)
512
SP0
SP320
–
–
SP137
SP717
3072
3280
–
–
3167
3535
Input
Outputs (Y)
512
Y0
–
Y777
2048
–
2560
Coil
Control Relays (CR)
1024
C0
–
C1777
3072
–
4095
Coil
Timer Contacts (T)
256
T0
–
T377
6144
–
6399
Coil
Counter Contacts (CT)
128
CT0
–
CT177
6400
–
6527
Coil
Stage Status Bits (S)
1024
S0
–
S1777
5120
–
6143
Coil
For Word Data Types ....
Convert PLC Addr. to Dec.
Timer Current Values (V)
256
V0
–
V377
Counter Current Values (V)
128
V1000
–
V1177
V Memory, user data (V)
3072
4096
V Memory, system (V)
320
+
Data Type
0
–
255
Input Register
512
–
639
Input Register
V1400 – V7377
V10000 – V17777
768
4096
–
–
3839
8192
Holding Register
V700
V7400
448 – 768
3840 – 3735
Holding Register
–
–
V777
V7777
C–5
Data Communications Module, 2nd Edition, 2/03
C–6
Using the D2–DCM with MODBUS
Example 1: V2100
Find the MODBUS address for User V
location V2100.
1. Find V memory in the table.
2. Convert V2100 into decimal (1089).
3. Use the MODBUS data type from the table.
PLC Address (Dec.) + Data Type
V2100 = 1088 decimal
1088 + Hold. Reg. = Holding Reg. 1089
Example 2: Y20
Find the MODBUS address for output Y20.
PLC Addr. (Dec) + Start Addr. + Data Type
1. Find Y outputs in the table.
Y20 = 16 decimal
2. Convert Y20 into decimal (16).
16 + 2049 + Coil = Coil 2065
3. Add the starting address for the range
(2049).
4. Use the MODBUS data type from the table.
Example 3: T10
Current Value
Find the MODBUS address to obtain the
current value from Timer T10.
1. Find Timer Current Values in the table.
2. Convert T10 into decimal (8).
3. Use the MODBUS data type from the table.
Example 4: C54
Find the MODBUS address for Control Relay PLC Addr. (Dec) + Start Addr. +Data Type
C54.
C54 = 44 decimal
1. Find Control Relays in the table.
44 + 3073 + Coil = Coil 3117
2. Convert C54 into decimal (44).
3. Add the starting address for the range
(3072).
4. Use the MODBUS data type from the table.
Data Communications Module, 2nd Edition, 2/03
PLC Address (Dec.) + Data Type
TA10 = 8 decimal
8 + Input Reg. = Input Reg. 8
C–7
C–7
Using the D2–DCM with MODBUS
If the Host Software Some host software packages do not allow you to specify the MODBUS data type and
Requires an Address address. Instead, you specify an address only. This method requires another step to
determine the address, but it is not difficult. Basically, MODBUS also separates the data
ONLY
types by address ranges as well. This means an address alone can actually describe the type
of data and location. This is often referred to as “adding the offset”. One important thing to
remember here is that two different addressing modes may be available in your host software
package. These are:
D 484 Mode
D 584/984 Mode
We recommend that you use the 584/984 addressing mode if the host software allows
you to choose. This is because the 584/984 mode allows access to a higher number of
memory locations within each data type. If your software only supports 484 mode, then there
may be some PLC memory locations that will be unavailable. The actual equation used to
calculate the address depends on the type of PLC data you are using. The PLC memory
types are split into two categories for this purpose.
D Discrete – X, GX, SP, Y, CR, S, T, C (contacts)
D Word – V, Timer current value, Counter current value
In either case, you basically convert the PLC octal address to decimal and add the
appropriate MODBUS starting address (as required). The following tables show the exact
range used for each group of data.
Discrete Data Types
Memory Type
PLC Range
(Octal)
Address
(484 Mode)
Address
(584/984 Mode)
Data Type
GX0–GX1746
1001 – 1999
10001–10999
Input
GX1747 – GX3777
–––
11000–12048
Input
X0 – X1777
–––
12049 – 13072
Input
Special Relays (SP)
SP0– SP777
–––
13073 – 13584
Input
Global Outputs (GY)
GY0– GY3777
1 – 2048
1 – 2048
Output
Outputs (Y)
Y0 – Y1777
2049 – 3072
2049 – 3072
Output
Control Relays (CR)
C0 – C3777
3073 – 5120
3073 – 5120
Output
T0 – T377
6145 – 6400
6145 – 6400
Output
CT0 – CT377
6401 – 6656
6401 – 6656
Output
S0 – S1777
5121 – 6144
5121 – 6144
Output
Global Inputs (GX)
Inputs (X)
Timer Contacts (T)
Counter Contacts (CT)
Stage Status Bits (S)
Data Communications Module, 2nd Edition, 2/03
C–8
Using the D2–DCM with MODBUS
Word Data Types
Registers
PLC Range
(Octal)
Input/Holding
(484 Mode)*
Input/Holding
(584/984 Mode)*
V Memory (Timers)
V0 – V377
3001/4001
30001/40001
V Memory (Counters)
V1000 – V1177
3513/4513
30513/40513
V Memory (Data Words)
V1200 – V1377
3641/4641
30641/40641
V1400 – V1746
3769/4769
30769/40769
V1747 – V1777
–––
31000/41000
V2000 – V7377
–––
41025
V10000 – V17777
–––
44097
* MODBUS: Function 04 (New Feature)
The DL05/06, DL250–1/260, DL350 and DL450 will support function 04 read input register
(Address 30001). To use function 04, put the number ’4’ into the most significant position
(4xxx). Four digits must be entered for the instruction to work properly with this mode.
LD
LD
K101
K4128
The Maximum constant possible is 4128. This
is due to the 128 maximum number of Bytes
that the RX/WX instruction can allow. The
value of 4 in the most significant position of the
word will cause the RX to use function 04
(30001 range).
LDA
O4000
RX
Y0
1. Refer to your PLC user manual for the correct memory mapping size of your PLC. Some of
the addresses shown above might not pertain to your particular CPU.
2. For an automated MODBUS/Koyo address conversion utility, download the file
modbus_conversion.xls from the www.automationdirect.com website.
Data Communications Module, 2nd Edition, 2/03
C–9
Using the D2–DCM with MODBUS
C–9
Example 1: V2100
584/984 Mode
Find the MODBUS address for User V
location V2100.
1. Find V memory in the table.
2. Convert V2100 into decimal (1088).
3. Add the MODBUS starting address for the
mode (40001).
PLC Address (Dec.) + Mode Address
Example 2: Y20
584/984 Mode
Find the MODBUS address for output Y20.
PLC Addr. (Dec) + Start Address + Mode
1. Find Y outputs in the table.
Y20 = 16 decimal
2. Convert Y20 into decimal (16).
16 + 2048 + 1 = 2065
3. Add the starting address for the range
(2048).
4. Add the MODBUS address for the mode
(1).
Example 3: T10
Current Value
484 Mode
Find the MODBUS address to obtain the
current value from Timer T10.
1. Find Timer Current Values in the table.
2. Convert T10 into decimal (8).
3. Add the MODBUS starting address for the
mode (3001).
Example 4: C54
584/984 Mode
Find the MODBUS address for Control Relay PLC Addr. (Dec) + Start Address + Mode
C54.
C54 = 44 decimal
1. Find Control Relays in the table.
44 + 3072 + 1 = 3117
2. Convert C54 into decimal (44).
3. Add the starting address for the range
(3072).
4. Add the MODBUS address for the mode
(1).
V2100 = 1088 decimal
1088 + 40001 = 41089
PLC Address (Dec.) + Mode Address
TA10 = 8 decimal
8 + 3001 = 3009
Data Communications Module, 2nd Edition, 2/03
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement