June 2007
 
www.moxa.com  
  MGate Column


  Handling multiple requests between serial and Ethernet protocols


The original Modbus protocol has some inherent limitations since it was designed for serial communication. Most Modbus devices communicate over the RS-232 or RS-485 serial standard, although the RS-422 standard is also widely recognized. The RS-232 standard is designed for easy data exchange and communication between two devices. It supports hardware flow control to prevent data loss. The RS-485 standard supports multi-drop communication, where up to 32 nodes can communicate over the same bus. However, only one node may transmit data at a time.

A basic understanding of serial communication makes it easy to see why Modbus serial protocols support only one request at time. With RS-232, only one device can be connected, so there is no need to support multiple requests. With RS-485, the master device cannot send multiple requests because responses from multiple slaves could collide on the serial bus.

One of the major changes introduced with the Modbus TCP protocol is the ability to support multiple requests. Ethernet is designed in such a way that multiple requests pose no problem. Every response from every node is easily identified and can be handled individually by the master device.

The following is specified in the Modbus TCP standard:

“On TCP/MODBUS, several requests can be sent without waiting for a confirmation to the same server. The MODBUS/TCP to MODBUS serial line gateway is in charge of ensuring compatibility between these two behaviors.”

This means that Modbus gateways cannot simply translate data between the different protocols. A Modbus gateway must also manage multiple requests in a way that is supported by Modbus serial protocols.

For Modbus TCP slaves, a special parameter is used to specify the number of multiple requests (referred to as “transactions”) supported. The following is specified in the Modbus TCP standard:

“This implementation parameter is called [NumberMaxOfClientTransaction] and must be described as one of the MODBUS client features. Depending of the device type this parameter can take a value from 1 to 16.”

This parameter means that although Modbus TCP allows multiple requests, the number of requests that a slave device supports is determined by the manufacturer.

When a Modbus gateway has just one serial connection, the serial interface dictates that only a single command can be transmitted at a time. Since the serial interface presents a bottleneck, there may not be any noticeable improvement when the gateway handles multiple requests.

When a Modbus gateway has more than one serial connection, each serial connection can be handled independently. Although requests to the same serial network must still be sent one at a time, requests to different serial networks can be sent simultaneously without fear of data collisions. There should be a noticeable improvement in the gateway’s throughput when multiple requests are supported.

SCADA software can also be a factor when it comes to supporting multiple requests. Even if the SCADA application sends only one request at a time to each slave ID, it may send requests to multiple slave IDs at the same time. Modbus gateways that support multiple requests will enjoy greater compatibility with a larger number of SCADA applications.

The MGate MB3000 supports up to 32 simultaneous requests from each Modbus TCP master, and works well with almost any SCADA software application.

 

» Back to index

Forward to a friend
  CONTACT MOXA
 
  » Technical Support  
  » Get Free Catalogs  
  » Feedback
 
 
 
  LEARN MORE ABOUT...  
 
 
   
   
 
Subscribe to Moxa's e-Newsletters