Detecting Identical Slave address set in the Slaves on MODBUS NETWORK


Thread Starter


Is there is a way to detect the slave address set in the slave device via modbus. This is required to for my application detect if the identical address is set in the slave by mistake.

I understand the modbus protocol is master/slave concept and of request based. The frame send from the master to the slave is with the slave ID. I want to know if there is any method to detect the slave addresses set in the device which is of course on the modbus network. Something like a scanning concept by which the address can be read.
According to the Modbus protocol, each slave MUST have a unique address, or there will be collisions on the bus. The master has no way of determining that there is a duplicate address, except perhaps that there will be an address that never responds with a valid message (as 2 devices are responding but corrupting each other's messages).

That said, most, if not all Modbus masters should let you view the incoming data stream. If a specific slave address is polled and there is no data returning on the bus, then either the address is not assigned to any device or the device is not functioning. If a specific address is polled and the data returned is consistently garbled or otherwise corrupt, then there are either 2 slaves with the same address, or there is 1 slave that is malfunctioning. I do not know of a master that can do this autonomously however. Even if it could, the result is ambiguous, as there could be a single slave device on the bus that is simply returning corrupt messages, or any number of other situations that would lead you in the wrong direction.