Issue
What should be considered when analyzing the performance of a Modbus TCP/IP implementation?
Environment
Modbus TCP/IP implementation
Cause
Check the performance level of Modbus TCP/IP implementation for possible improvement.
Resolution
Determining if a Netcontroller will handle the load of a specific Modbus TCP/IP implementation must take into account many different factors. A lot depends upon the 3rd party device, the network utilization of the IP network, the number of devices/points being polled and the speed/polling rate of the devices on the RS485 network. The Modbus TCP/IP xdriver behaves as a client and polls for information in a round robin basis. The more data it has to poll the longer it will take.
The organization of the Modbus Addresses is also important.
For example:
- If 12 registers are at consecutive address locations i.e. 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, then 1 data packet is required to retrieve all this information.
- If only a few registers are at consecutive locations i.e. 1, 2, 3, 8, 21, 22, 23, 30, 40, 65, 66, 67 then 6 data packets are required to retrieve this information.
- If the registers are all in separate locations i.e. 1, 5, 10, 20, 30, 40, 50, 60, 70, 80 then 10 data packets, one for each address is required.
The third example would take 10 times longer than the 1st to poll the address information. If address locations in the 3rd party device cannot be altered then it may be more efficient to create additional xdriver points to effectively 'fill the gaps' so as to reduce the number of data packets.
It is recommended to carry out a bench test with the devices in order to analyze the configuration. This would allow for adjustments of the requests or adding additional hardware to poll the amount of required information.
Field Example:
Using a Modbus TCP/IP xdriver to poll a number of Powerlogic metering devices. Considering 30 EGX's/ECC's involved, plus two Powerlink 3000 panels, using 33 IP addresses. Each EGX/ECC has from 10-20 Modbus devices attached on the RS485 side. Each metering device will be polled for about 12 registers. In this example, we would be polling about 4000-5000 register points via Modbus TCP/IP with a NetController2.
In this particular scenario, it was determined that 2 Netcontroller IIs would be needed to handle the amount of polling required at the expected performance level.