<< Click to Display Table of Contents >>
Maximum Limit for the Size of Blocks Supported by the Modbus Protocol |
This topic presents the maximum limits for block sizes supported by the Modbus protocol, in its current version 1.1b of the implementation. Please check this specification at protocol's official website.
Notice that, due to Superblock Reading and Automatic Block Partition features, present in this Driver's current version, users hardly need to consider these limits in their applications, as this Driver already performs all optimizations automatically during communication.
However, as there are devices that do not support default limits established by this protocol, users may need to know these limits, and most of all they must know how to evaluate device's limits, in case they are forced to perform a manual grouping. For more information, please check topic Superblock Reading (Grouping). In these cases, information on this topic can be very helpful.
The Modbus protocol defines a simple data unit called PDU, or Protocol Data Unit, which is kept unchanged through several protocol modes and through several communication layers.
A full communication frame, including a PDU and other additional header fields, is called ADU, or Application Data Unit.
Limits supported by the Modbus protocol
According to this protocol's specification, a full Modbus frame, or ADU, can have a PDU with a maximum size of 253 bytes.
Thus, depending on the data type or Modbus function used in communication, this protocol imposes the limits for block Elements at each communication described on the next table.
Limits for Block Elements
Modbus Function |
Description |
Limit |
---|---|---|
03, 04 |
Reading multiple 16-bit registers |
125 registers (250 bytes) |
16 |
Writing multiple 16-bit registers (Holding Registers) |
123 registers (247 bytes) |
01, 02 |
Reading multiple bits |
2000 bits (250 bytes) |
15 |
Writing multiple bits |
1968 bits (247 bytes) |
20 |
Reading file registers |
124 registers (248 bytes) |
21 |
Writing file registers |
122 registers (244 bytes) |
For more information, please check the protocol's official website.
The article KB-23112: I/O Block's ideal size with Modbus driver in Elipse Knowledgebase presents a summary of questions relative to Tag grouping and block resizing in this Driver, discussed here and on other topics.