Knowledge Base / Protocols / Modbus

I have a ProSoft Modbus Master solution and would like to know, is the Slave Status List the best place to monitor for communications health of the network?

Search KB


The Slave Status list is merely a 'scratchpad' area the Modbus Master firmware uses to keep track of its current poll state with respect to a particular Slave.  The Slave Status List is not the best place to monitor the health of communications between a ProSoft/ProLinx Modbus Master and the Slaves on the Modbus Serial network. 

Using the Command Error List is the best way to know if communications to a Slave are working correctly or not.  You can use the Command Error Pointer for inRAx solutions or the Data Map for ProLinx solutions to have the Command Error List placed in the User Read Data area.  As each command is executed, the firmware places a value into this list for each command.  If the value is zero, the slave responded appropriately to the Master command and communications appear to be working normally.  If the value is non-zero, this indicates a problem with the communication and the non-zero value can give cues as to what the problem might be.

Logic can then be written to monitor the Read Data area used for the Command Error List and alarm on non-zero values, either on a per-command or per-slave basis.  Since occasional command failures are not uncommon on a Modbus serial network, it is usually a good idea to include a 5-15 second proving timer in the alarm logic to prevent 'nuisance' alarms.