I am implementing a Modbus Master server using Modbus Protocol Specification presenting in http://modbus.org/specs.php. There are some questions i have about function Read File Record (function code - 0x14).
According to response table the value of field "Response data Length" should fit the range from 0x07 to 0xF5. However, by my calculations, the least size of one sub-response is 0x04 (4) bytes (1 byte for File Response length + 1 byte for Reference Type + 2 bytes for 1 register of data) and the most size is 0xFA (251) bytes (253 max PDU length - 1 byte for Function code - 1 Byte for Response Data length).
The questions are: what is the reason to put such constraint for "Response data Length" field (from 0x07 to 0xF5) and how it was calculated.
Besides i would like to know, why the "Sub-Request File Response length" field has the same constraint as the "Response data Length" field? According to these constraint the least value for "Response data Length" field should be: 0x07 + 0x01 byte for "Sub-Request File Response length" field = 0x08 bytes, shouldn't it? Is there a mistake in the specification, or am I just misunderstanding something?
I appreciate your attention and assistance.
I am looking forward to having your reply on email email@example.com .