Read Device Identification: Conformity Level


Thread Starter

Ivo Bauer

This question is about "Read Device Identification" function (0x2B / 0x0E).

Modbus client request contains a field named "Read Device ID code" that is used to define the type of access level requested by the client.

Modbus server response contains the same named field that was recopied by the server from the client request, followed by a field named "Conformity level" which specifies the type of access level that is actually supported by the server.

All of the above is clear to me. What is not entirely clear to me is the following quote from the Modbus Application Protocol V1.1b specification:

"If the server device is asked for a description level ( readDevice Code )higher that its conformity level , It must respond in accordance with its actual conformity level."

I wonder what is the expected (i.e. conforming to the specification) behavior of a Modbus server that receives a client request with "Read Device ID code" higher than its "Conformity level"?

Possible answers are:

1) Issue a Modbus Exception Response. Tell the client that the requested access level is not supported by the server. In that case, what value should the Modbus Exception Code be set to?

2) Ignore the requested Read Device ID code and respond as if the client asked for the same access level as the conformity level. This raises another questions:

2a) What to respond if a client asked for stream access to regular/extended ID, but only basic ID is supported?

2b) What to respond if a client asked for an individual access, but only a stream access is supported?

3) Something else. Please advise.

I am unable to test it myself as I do not have access to any Modbus server device that supports this function. That is why I am asking here.

Your reply would be greatly appreciated.

Best regards

Frank O'Gorman

Hello Ivo

The quote from the specification doesn't make any sense! However, the flowchart in the specification shows a 02 exception response being sent if the Object ID in the request is invalid, and a 03 exception response being sent if the Read Device ID Code is invalid. I think this covers all the cases in your query.

Frank O'Gorman
Wingpath Software Development

Lynn August Linse

If you are interested in conformance, you should contact the and ask. They may be able to talk to the people who wrote/manage the conformance test tools and explain what the test tool would expect.

As a side comment, at least in the solar energy space (meters, inverters, weather-stations) I normally see vendors using the function 17 (0x11) Reprot Slave ID returning a free-form string of vendor/model/serial-number, instead of the Read Device Identification.