Report by Exception


Thread Starter


I have found many articles on the web discussing the use of Report by exception with modbus. However, most of them make reference to the use of other software to enable the functionality (MDBUS or ISaGRAF). My question: Does the Modbus Protocol "Directly" support "Report by Exception"? If so, HOW do you implement it?

Matt Rollins

Report by exception (as I understand the definition) is not a function of the communication protocol. Any comm protocol that can send an unsolicited (non-polled) message can be used in an RBE scheme. RBE is directly a function of the comm processor in the PLC (or similar device) and the HMI. The HMI has to be set up to not poll the RBE points and the PLC checks the value of the points with each scan. The value of the points is compared to previous values and if the value changed, the updated value is sent to the HMI. This has to be handled at the PLC level either in the PLC code or as a function of the comm processor that the PLC uses. TI had this type of comm embedded in it's PLC's a long time ago. The HMI (Tistar or PCS) would send down an RBE list to the PLC and the PLC handled the RBE messaging.

Tommy France

Modbus Protocol is a Master-slave protocol. In order to to report by exception the device must be capable of operating in both the master and the slave mode. There aren't many devices that do this, however if you are using a Modicon PLC, a built in function called XMIT will allow the slave device to become a master, issue a communication comment, and then resort back to a slave device to accept unsolicited messages from another master device. More information can be found on this function on the "": website.

Tommy France

Lewis Bodden

MODBUS is a MASTER/SLAVE Protocol. The Master request something from a SLAVE and the SLAVE responds. If a SLAVE were to send a message without getting a request (this would be an attempt to Report By Exception - RBE) it could step on another response from another SLAVE or the MASTER may see it as a response from another SLAVE. With that said, there are variations of the MODBUS Protocol that may accommodate RBE. It would not be appropriate to call it a MODBUS Protocol as such. It could use the message structure and the function codes detailed in the MODBUS Protocol, but would require more functions to work and would not be standard.

The AB DATA HIGHWAY Protocol is a token passing or floating MASTER protocol (sometimes call peer-to-peer). It supports RBE. Each node takes a turn and acts as a MASTER. Each node has an address. All this is built into the Protocol and requires no extra programming. The MODBUS MASTER does not have an address. The MODBUS Protocol does not allow for a MASTER address for routing in that all responses go to the one and only MASTER.

The TI TIWAY can communication by sending a list of addresses to the PLC and the PLC will send the values when it is requested. The request is a short function designed to reduce the communications time. TI TIWAY is a MASTER/SLAVE Protocol and the SLAVE sends nothing until requested by the MASTER. There is a scheme to change the MASTER to a different node.

The XMIT function was not meant to be used when the PLC is a MODBUS SLAVE. It would cause problems as mentioned above. Through Programming it would be possible to design a network that would float the MASTER but you would need to allow for message collision avoidance and coordinate when messages are sent. To make it work, you would have to have control over every device on the network.

To answer you questions:

The MODBUS Protocol does not "Directly" support "Report by Exception". It can be manipulated to "Report by Exception".

HOW to implement it?

Don't. Find another Protocol.

If you absolutely have to use MODBUS, plan on spending a lot of money to buy the technology or have someone develop it. And plan on spending a lot of time testing. It's not simple.

If you would like to discuss this more let me know.

See; "":

Lewis Bodden

[email protected]

Jerry Miille

The Modbus protocol specification does not support report by exception. There are several implementations that use Modbus protocol message FORMAT to implement a Report By Exception capability. Changes have to be made to both the master and the slave side to accomplish this and once this is done, it is no longer Modbus protocol.

Simply said, once you bend the rules, it is no longer Modbus.

Jerry Miille

Lynn August Linse

At the moment the spec doesn't, but there is actually a fairly simple definition of how it would work with things like the XMIT block etc. So I'm hoping to push a formal definition of how this would work in Modbus.Org so that we all can make use of this in a consistent & sane manner. Since we make Modbus/TCP to Modbus/RTU bridges, this ability will be super nice as Modbus/TCP allows us to act as both MB client & MB server concurrently.

Even after this is done, you'll still need the following to be true:
1) a pt-to-pt Master-Slave pair with the slave at a fixed address (ie: Master knows slave is address N and any message received from slave NOT
starting with address N is related to report-by-exception)
2) Master must know what to do with this - worst case it discards it, but likely you'll need to wait for new master tools to support this

But no magic here - we'll need to formally define how this works and then get tools on both ends which support it.

Best Regards

Lynn August Linse, alist (at) linse (dot) org
IA Firmware Specialist, Digi Int'l (
26741 Portola Pkwy, Suite 1E #242
Foothill Ranch CA 92610-1743 USA
Ph/Fx: 949-916-1524 (voice message usually)