Это из вчерашней полуночной беседы.
[Валенок] сказал посмотреть как сделано в modbus.lib. Этот кусок кода чтение ответа из буфера порта и modbus.lib
Код:
rBuf: ARRAY[0..511] OF BYTE;
....
Size := DWORD_TO_WORD(SysComRead(ComHandle, ADR(rBuf), SIZEOF(rBuf), 0));
Из чего видно, что посылается запрос на чтение 512 байт ( максимальная длина ответа по modbus ascii ). Я описывал симптомы другой проблемы...
Почитайте первый пост. И важно читать ответ по частям в одном цикле или разных, результат тотже