Modbus - Multiple Masters of one slave

Modbus Integration Solutions

Chipkin has Modbus solutions for almost every situation. We are experts in Modbus RTU/TCP communication and carry a wide variety of Modbus products:

https://cdn.chipkin.com/assets/uploads/2019/Aug/modbus_14-15-27-02.png


We are frequently asked how you deal with a situation where you have more than one client for a slave(s). The Modbus spec does not support this but we have a solution.

The essence of the solution is to use a multi-port FieldServer. Connect each client to its own port and the slave(s) to their own ports. Each client will see a single virtual slave(s) on its network. This not only solves the problem but is extremely efficient. Of course, the FieldServer needs to be correctly configured.

In a situation like this, we exploit the FieldServer technology known as 'Port Expansion'.

Figure 1: Normally it is not possible to connect two clients to the same slave. There are two primary reasons:

  • 1) If you are using RS232 then there can only be two devices on the cable segment.
  • 2) If you are using RS485 then the 2nd client will not know to process the poll from the 1st client. It will cause errors.

https://cdn.chipkin.com/articles/wp-content/uploads/2008/10/pex12-300x132.jpg
 
Click to enlarge

Figure 2: Using a FieldServer with an appropriate configuration solves this problem whether you are using RS232 otr RS485.

https://cdn.chipkin.com/articles/wp-content/uploads/2008/10/pex21-300x132.jpg
 
Click to enlarge

Figure 3: Each client is on its own port. Thus each client does not see poll messages from the other client. In this example client#1 sends a poll to the FieldServer. The is directed a specific slave address. When the poll arrives at the FieldServer, the FieldServer checks the address against its configuration. If there is no match then an exception response is sent. If there is a match the FieldServer determines the port that the matching slave is configured on. The poll message is then relayed to the slave port.

https://cdn.chipkin.com/articles/wp-content/uploads/2008/10/pex31-300x132.jpg
 
Click to enlarge

Figure 4: The slave responds. The FieldServer relays the response to client#1. The FieldServer also extracts the data from the response and stores in a temporary location (FieldServer calls that a cache block). The duration/expiry of the storage is configurable.

https://cdn.chipkin.com/articles/wp-content/uploads/2008/10/pex42-300x145.jpg
 
Click to enlarge

Figure 5: If any client requests the same data (client#1 or #2) and the data hasn't expired then the FieldServer responds with data from the temporary storage.

https://cdn.chipkin.com/articles/wp-content/uploads/2008/10/pex51-300x145.jpg
 
Click to enlarge

Figure 6: If any client requests different data or if the temporary data has expired then the match and relay process is repeated requesting the new data.

https://cdn.chipkin.com/articles/wp-content/uploads/2008/10/pex61-300x132.jpg
 
Click to enlarge

Figure 7: The slave responds, the response is relayed to the client doing the polling (Client#2 in this case) and the data is stored temporarily so that it is available to the other client.

https://cdn.chipkin.com/articles/wp-content/uploads/2008/10/pex71-300x145.jpg
 
Click to enlarge

Contact Us

Contact us via phone (+1 866-383-1657) or leave a detailed message below for sales, support, or any other needs

*Required Field
*Required Field
I'd like to receive the newsletter. *Check email for confirmation.
*Required Field
8:00am - 12:00pm 12:00pm - 5:00pm
Message Sent Successfully