Description of Function Code 12 (0x0C) in MODBUS Spec. V1.1a

S

Thread Starter

Steve Grundon

Hello all,
I am new to the MODBUS protocol, yet Section 6.10 (regarding function code 0x0C) of the MODBUS Application Protocol Specification V1.1a (acquired from modbus.org) would appear to directly contradict Section 6.8 (regarding function code 0x08).

Within Section 6.8, the diagnostic sub-function 0x04 allows the client/master to force the server/slave into "Listen Only Mode", which (apparently) can only be disabled via the "Restart Communications Option" (i.e., function code 0x08, sub-function 0x01) -- all other "MODBUS messages addressed to it or broadcast are monitored, but no actions will be taken and no responses sent".

However, Section 6.10 deals with the Comm Event Log and explicitly defines events for "Currently in Listen Only Mode". The example given defines a list of two events:

Event 1 (0x00) -- Communication Restart, and
Event 0 (0x20) -- Entered Listen Only Mode (sic?).

Event 0 is the most recent event.

I do not understand how an event list that ends in an "Entered Listen Only Mode" event or "Currently in Listen Only Mode" event can EVER be returned?

>From Section 6.8, if you have entered the "Listen Only Mode", then you will get zero responses back from the server/slave -- even the "Restart Communications Option" (i.e., function code 0x08, sub-function 0x01) does not result in a response.

Furthermore, the event log in the example makes it appear that the event log is reset when a "Restart Communications Option" (i.e., function code 0x08, sub-function 0x01) request is received. If this were the case, how could ANY "Entered Listen Only Mode" events (or events with the "Currently in Listen Only Mode" bit set to 1) EVER be returned?

If "Restart Communications Option" requests do not reset the event log, where did the events for receiving and responding to the "Restart Communications Option" request go?

Also, the example uses 0x20 for "Entered Listen Only Mode", yet 0x04 is later defined for this event. Which is correct? Additionally, where did the event for receiving the "Enter Listen Only Mode" request message go? Shouldn't the event list contain an "0x80" event in the middle of this list?

Cheers and thanks in advance.
Steve Grundon
RailSCADA Software Development
Foxboro Transportation
Invensys Rail Systems Australia
 
T

Timmy Brolin

Page 21, section 6.8.1. (01 Restart communications option)
"A request data field contents of FF00 hex causes the port's communications event log to be cleared also. Contents of 0000 leave the log as it was prior to the restart."
 
S

Steve Grundon

Ack! Thanks Timmy, that clears up at least one of my questions -- I'd missed that bit of 6.8.1.

I now understand how you can get those events into the (middle of the) log, but I still cannot see where the (supposedly) missing events have gone, nor how a log ending in the "listen only" event can ever be returned.

Cheers.

--
Steve Grundon
RailSCADA Software Development
Foxboro Transportation
Invensys Rail Systems Australia
 
Top