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:
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.
Click to enlarge
Figure 2: Using a FieldServer with an appropriate configuration solves this problem whether you are using RS232 otr RS485.
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.
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.
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.
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.
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.
Click to enlarge