Modbus TCP: Handling Station ID 0 Requests
Many Modbus TCP clients send polls with the Station / Device address (ID) set to zero.
FieldServers cannot be configured as station zero so they cannot respond. There is a work around. Set the FieldServer Node_ID parameter to a value of 239. When Modbus TCP messages are received, the FieldServer looks at the one byte station number. If it is zero, it changes the byte to 239 and then passes the message for processing by the driver. Thus if the server node is configured as 239 the FieldServer can respond correctly.
One example of a Modbus Client that sends requests to station zero is the EZ Touch Panel HMI from EZAutomation.net
Modbus Integration Gateways and Tools
If you are integrating Modbus TCP or Modbus RTU into BACnet, EtherNet/IP, or other industrial protocols, see our Modbus integration solutions here: Modbus Integration Gateways and Tools .
FAQ: Modbus TCP Station ID 0
Why do some Modbus TCP clients use Station ID 0?
Some Modbus TCP client implementations default to sending requests with a station/unit identifier of 0, even when the target device expects a non-zero station ID.
Can a FieldServer be configured as Station ID 0?
No. FieldServers cannot be configured as station zero, so they will not respond to requests addressed to 0 unless a workaround is used.
What is the FieldServer workaround for Station ID 0 requests?
Set the FieldServer Node_ID to 239. When Modbus TCP messages are received, if the one-byte station number is 0, the FieldServer changes it to 239 and then processes the request.
What must the FieldServer server node be set to for this to work?
The server node must also be configured as 239 so the translated requests are handled correctly.
Do you have an example of a client that sends Station ID 0?
Yes. One example is the EZ Touch Panel HMI from EZAutomation.net.