257 bytes.
The maximum packet size is determined by the "Message Length" field that is an 8 bit value between 24 and 255. This length includes the Startcode, but does not include the checksum.
Adding a 2-byte checksum to the 255 maximum for the "Message Length" field gives you 257 bytes. You will never see a megabyte long packet.
See E1.20-2010 section 6.2.3 for details.
Any individual packet will be 257 bytes max, but responders can generate an arbitrary number of ACK-Overflow responses to return data of any size by breaking it into smaller chunks. Due to practical constraints, responders should limit ACK-Overflow sequences to a few packets, I typically say 5 or 6 maximum. That's because any error in the ACK-Overflow sequence (lost or corrupt packet) effectively requires the controller to start over from the beginning.
From the responder's point of view, it only has to implement ACK-Overflow if it needs it. Most responders don't need to use the feature.
Controllers on the other hand need to aware that responders may generate long ACK-Overflow sequences.
|