For function codes where the request and response are of fixed length, the function code alone is sufficient.
For function codes carrying a variable amount of data in the request or response, the data portion will be preceded by a byte count.
When MODBUS is carried over TCP/IP, additional length information is carried in the prefix to allow the recipient to recognize message boundaries even if the message had to be split into multiple packets for transmission.
The existence of explicit and implicit length rules, and use of a CRC-32 error check code (on Ethernet) results in an infinitesimal chance of undetected corruption to a request or response message.2.
Today there are no PLC devices which take advantage of that.It is perfectly acceptable, and very common, to regard all four tables as overlaying one another, if this is the most natural interpretation on the target machine in question.For each of the primary tables, the protocol allows individual selection of 65536 data items, and the operations of read or write of those items are designed to span multiple consecutive data items up to a data size limit which is dependent on the transaction function code.Developers familiar with MODBUS may wonder why the connection-oriented TCP/IP protocol is used rather than the datagram-oriented UDP.The main reason is to keep control of an individual ‘transaction’ by enclosing it in a connection which can be identified, supervised, and canceled without requiring specific action on the part of the client and server applications.