Цитата:
Сообщение от Arsie
Мы работаем по старому, в котором макс размер PDU для TCP равен 260 байтов.
|
260 это размер ADU для TCP. PDU по стандарту 253
RS232 / RS485 ADU = 253 bytes + Server address (1 byte) + CRC (2 bytes) = 256bytes.
TCP MODBUS ADU = 253 bytes + MBAP (7 bytes) = 260 bytes.
Цитата:
Ага, увидел неувиденное - сам лоджик сделал большой пакет. Подрежем, т.к. не принципиально. В аппендиксе b3 действительно указано 123 регистра. Причина ограничения непонятна, т.к. все служебные поля позволяют до 128.
|
Подрезать надо.
А причина тут просто в арифметике
Код:
16 (0x10) Write Multiple registers
Function code 1 Byte 0x10
Starting Address 2 Bytes 0x0000 to 0xFFFF
Quantity of Registers 2 Bytes 0x0001 to 0x007B
Byte Count 1 Byte 2 x N*
Registers Value N* x 2 Bytes value
Под Registers Value остается 253-6=247 байт и 124 регистра никак не воткнуть.