The DL3500-DH+ Modbus Slave module facilitates communication between a Modbus Master and an
Allen-Bradley DH+ network. It provides for serial communications to Modbus with RS232C, RS232 or
RS422/RS485 interface capabilities. Interface cable drawings are located in section 3. Communication between
Modbus and the DL3500-DH+ can only be initiated from a Modbus Master (not from the DH+).
The Modbus serial port on the DL3500-DH+ is transparent to Modbus and does not require an address. The DH+
network side of the DL3500 unit is an active station on the DH+ and requires its own DH+ address that must be
different than the DH+ station address(es) that the Modbus Master needs to communicate with.
A Modbus Master can read and write to any SLC on DH+ that can handle PLC5 message commands without the
need for any programming in the SLC, however the PLC addresses used must not be “protected" and the full range
of addresses that the Modbus Master requires to read from or write to must have been previously created in the
SLC's data Table. Modbus read and write bit/coil commands are used with A-B SLC Binary (B) files and Modbus
read and write word/register commands are used with A-B SLC’s Integer (N) files.
The DL3500-DH+ firmware module is compatible with the following Modbus commands: -.
Modbus command 15 (Force Multiple coils) is not available in slave mode.
Modbus protocol uses the Broadcast command (i.e. commands 05, 06 and 16 with a station address of 00) to write
to all slave devices on a Modbus network simultaneously, no response is expected by the Master. Allen-Bradley
DH+ protocol does not support Broadcast. A-B SLC’s are not capable of responding to a single "Broadcast"
command over the DH+ network. DL3500s can be configured to ignore or to execute Broadcasts. Broadcasting is
accomplished by splitting the command into separate messages for retransmission one at a time to each DH+ station
within pre-configured range of stations. Because of the time taken to send out multiple messages over the DH+,
Broadcasts commands are normally restricted to an absolute minimum range of DH+ stations.
A SLC or other device at DH+ station address 00 cannot be addressed by Modbus read or write commands as 00 is
normally the Broadcast command. DH+ station 00 may be used as the DH+ station address for the DL3500.
NOTES:
1. Restrict the DH+ stations receiving a Modbus broadcast to prevent writing to unintended DH+ destinations.
2. Valid Modbus Slave addresses of stations on DH+ are 1 to 77 octal (i.e. Slave station addresses 1 to 63 dec.).
The DL3500 module receives a Modbus query on its asynchronous serial port, converts it into the appropriate DH+
message and sends it out on the DH+ network. The DH+ response is received, converted into the corresponding
Modbus response and sent back to the Modbus Master. Modbus protocol does not allow messages to be buffered so
the DL3500 processes one message at a time. The DL3500 unit will respond to the Modbus interface with the
appropriate Modbus exception codes in the event of detectable errors.
The following shows the maximum number of coils/registers that can be sent or received in a single Modbus
message. The limits are because of the different structure of Modbus and A-B DH+ protocols, and also due to the
internal memory structure of the DL3500. These values have only a limited relationship to the Modbus/DH+
address mapping ranges configured in the DL3500.
• The max. number of coils that can be read in a single transaction is 1600. (Normal Modbus allows 2000)
• The max. number of registers that can be read in a single transaction is 100. (Normal Modbus allows 125)
• The max. number of registers that can be written in a single transaction is 100. (Normal Modbus allows 100)
CAUTIONS :
1. Ensure that your communications program design prevents self-optimising Modbus Master communications
programs (in some MMIs and Operator Interfaces) from requesting data in packets larger than the above limits.
2. Ensure that the Modbus program does not generate Modbus commands with addresses that can bridge across
more than one of the address range entries configured in the DL3500.
3. Any of the above conditions could cause indeterminate errors.
The DL3500 unit is transparent to valid Modbus commands addressed to station numbers corresponding to active
stations on DH+. The DL3500 will only accept commands to DH+ station addresses 1 to 63 decimal. Modbus
commands using address 0 are broadcast commands and are handled differently by the DL3500.
After formatting and converting the Modbus message to DH+ protocol the command is sent out to the addressed
DH+ (slave) device. If the station is inactive the query is disregarded. Each addressed slave station must be a
unique address on Modbus and on the DH+ network (i.e. do not duplicate an address used on the Modbus network
with a station address on the DH+). If duplicate addresses exist then the situation will arise where two or more
stations could accept the query resulting in multiple responses which would cause communications errors and
perhaps writing to unintended destinations.
NOTE :
Special consideration should be given to the Modbus and DH+ addressing to avoid duplication of network
addresses. Confusion could arise because A-B uses an "octal" addressing scheme for DH+ network
stations and Modbus uses "decimal". Ensure use of a common numbering scheme (see section 1.6 for
cross-references).
1.7.1 DEFINITION OF MODBUS SLAVE PARAMETER SCREEN
Modicon Start Address : Specifies the starting address of a range of Modbus addresses that will be mapped to
A-B. Valid entries are 00000 to 09999, 10000 to 19999, 30001 to 39999 and 40001 to
49999.
Modicon End Address : Specifies the end address of a range of Modbus addresses that will be converted to A-B.
The range of entries is shown above.
A-B Starting Address : Specifies the A-B PLC starting file number for the Modbus data. Valid entries are
001:000 to 999 : 999 (Sometimes files less than 8 are reserved) (ensure that data length
does not exceed file boundary). NOTE: N7 and B3 are valid files!!
Floating Point Checkbox : Used to Specify if the data is Modbus Floating point and to be written into Floating Point
Files
Coils/discretes :
The bit address range of an A-B Binary file is 1000 words or 16,000 bits (i.e. 0 - 15,999 decimal). This
means that one A-B file is more than sufficient to hold the largest Modbus coil address possible.
An A-B binary file/bit address starts at bit 0 and the first “legal” Modbus coil address starts at 1, which
means that normally the first Modbus coil address 00001 (or 10001) will correspond to bit 0 in A-B word
0. If a Modbus address of 00000 (or 10000) is entered in the Starting Address field it causes the first (legal)
Modbus coil addresses i.e. bit 1 to correspond to an A-B file/word bit 1. This technique makes it easy to
compare and match the Modbus and A-B memory maps, and easier to bit search the A-B program.
When a Modbus coil /bit address is defined in the Start Address field, i.e. 0XXXX or 1XXXX, then the
first A-B Starting Address that can be used is Binary file 3 word 000 (B3:0).
Registers/words :
The word address range of an A-B Integer file is 0 - 999 i.e., only 1000 words (registers). Therefore if a
Modbus address range greater than 1000 registers is required, it is necessary to use more than one A-B
Integer (N) file, which will require multiple configuration parameter entries. The first A-B address that can
be used for 3xxxx and 4xxxx register/word transfers is an A-B Integer file at file/word address N7:0.
Address Ranges :
The Modicon Address Range (i.e., Start Address less End Address), and the A-B Start Address
selected, must not overflow the maximum A-B file address limit. This means that if A-B Starting
Address of word 250 is used then the maximum register range for mapping must be 1000 minus
250, i.e. 750.
1.7.2 MODICON TO AB ADDRESS MAPPING EXAMPLES
Example 1 Integer Files
Mapping Modicon registers 40001 to 40010 to A-B file N7:0 to N7:9
Mapping Modicon registers 30011 to 30070 to A-B file N12:21 to N12:80
Example 2 Binary Files
Mapping Modicon coils 00001 to 00010 to A-B file B3/48 (binary file B3, bit 48) to B3/57
Mapping Modicon coil 00020 to A-B file B3/98
Mapping Modicon coils 10001 to 10010 to A-B file B3/32 to B3/41
NOTE : When mapping a Modicon coil to an A-B PLC bit that does not start at bit 0 of a word, an offset to bit 0 must be added.
Example 3 Floating Point Files
Mapping Modicon registers 40001 to 40002 to A-B file F8:0
Mapping Modicon registers 30001 to 30010 to A-B file F8:5 to F8:9
A-B Floating Point (F) values are 32 bits in length and require two Modbus registers for each floating
point value.
MAPPING NOTES :
1. The A-B file corresponding to Modbus Coil addresses should have been previously
configured in the PLC as a Binary (B) file and its size configured for the largest coil address.
2. The A-B file corresponding to Modbus Register addresses should have been previously
configured in the PLC as an Integer (N) file or a Floating Point (F) file and its size configured
for the largest register address.
3. Leading zeros are not necessary when using the DL32 “configure /open file”
1.7.3 ADDRESS MAPPING LIMITATIONS AND PRACTICES
Modbus protocol generally permits a maximum of about 125 registers or 2000 coils to be read in a single
transaction (the maximum number is dependent on the Modbus driver). When specifying multiple address
translation ranges within the same type of Modbus address (either Oxxxx, 1xxxx, 3xxxx or 4xxxx)
it is essential to
establish a buffer region of at least 125 registers or 2000 coils between each address type’s range. Failure to do this
may allow a self-optimising MMI interface program to write (or read) data to/from two different areas of the
Allen-Bradley SLC with undesired and indeterminate results.
Below are some examples that define a similar A-B word address to the Modbus start address. Using this technique
for mapping allows for easier comparison between the Modbus and A-B addresses. For example a Modbus start
address of 40001 can be represented in A-B PLC-5 file format by using A-B integer file N 40:001. Address mapping using this technique is recommended for a user’s convenience only, as it provides a very useful method for
record-keeping, cross-reference and recognition. This technique is not mandatory and any Modbus address can be
written to any A-B file.
NOTE:
The (Binary File) and (Integer or Floating Point File) text after the A-B File:Word address does
not appear on the configuration screen and is provided here for reference only.
When considering use of the above technique note that the first available open A-B file address for a PLC-5
controller is file 7. Modbus address 0xxxx cannot be displayed similarly in A-B format as A-B output file 0 can be
used, but not recommend for readability.
For reference the Output file is ‘0’ and the Input file is ‘1’. In this
case for easy recognition use an A-B Binary file for Modbus output coils such as 9, 99, 999 or any other convenient
file number is easily recognisable.
DL3500 firmware permits the entry of 00000 and 10000 values in the Modicon Start Address field even though
strictly speaking these are not legal Modbus addresses. This feature allows a programmer to align an A-B Binary
file bit 1 with the first legal Modbus Bit / Coil address 1. For example mapping Modicon Start Address 00000 to AB
Start Address (B) 003:000, or Modicon Start Address 10000 to A-B Start Address (B) 010:000 aligns Modbus bit
1 with A-B bit 1. The "B" for Binary file is implied but not displayed.
NOTES:
1. Enough space must have been configured and be available in the A-B file to contain the full
range of Modbus addresses specified or it will cause over-writing existing A-B files and data.
2. Do not transmit Modbus messages to the DL3500 to read or write more than 1600 coils or
100 registers in a single Modbus read or write command (see section 1.4 above).
3. Ensure that all A-B addresses specified have been created in the destination PLC on DH+.
4. Set all unused Modbus to A-B addresses to zero.
The DL3500-DH+ will communicate with Modicon PLCs and other devices via Modbus Plus when it is connected
to one of the four Modbus ports of a NW-BM85-000 Modbus Plus/Modbus Network Bridge Mux (see DL3500
users guide for cable drawings)..
If a Modicon PLC (or other device) on Modbus Plus requires to communicate with a single A-B PLC on DH+ then
the selected Bridge Mux Port connected to the DL3500 can be configured as SLAVE in which case it must have the
same Modbus station number as the target PLC-5's station address on DH+.
If a Modicon PLC (or other device) on Modbus Plus requires to communicate with multiple A-B PLCs on DH+ then
the selected Bridge/Mux Port connected to the DL3500 should be set for NETWORK (slave) in which case the
station number routing of the destination A-B PLC must be programmed into the appropriate Modicon PLC Ladder
Logic Master Function Blocks (or command string) for the Modbus Plus network.
Ensure that the serial communications parameters for the Bridge Mux Modbus port are the same as the DL3500’s.