S
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
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