ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
21 июля
45060 Топик полностью
rezident (26.11.2005 01:25, просмотров: 1) ответил slog2 на При длине данных до 2-х байт ASCII быстрее. А в других случаях-
Немного поправлю. http://www.modbus.org/docs/Modbus_over_serial_line_V1.pdf
В спецификации ModBus v1.0 указано, что для ModBus RTU пауза тишины в 3,5 символа, которая предшествует началу пакета и завершает пакет по длительности соответствует (3,5*11)/baud только до скорости 19200 включительно. На скоростях передачи свыше 19200 используется фиксированная пауза тишины длительностью 1,75 миллисекунды. Поэтому на больших скоростях передачи отношение длительности паузы тишины к времени передачи собственно самого пакета может быть непропорционально большим, особенно когда пакеты короткие. Пример "критического" случая. 1 байт пользовательских данных на скорости 115200. ASCII: Start(1char)+Address(2x1chars)+Function(2x1chars)+UserData(2x1char)+LRC(2x1char)+CR(1char)+LF(1char) итого 11 символов, что составит 11*10/115200=0,95мс RTU: Address(1char)+Function(1char)+UserData(1char)+CRC16(2chars) итого 5 символов, что составит 5*11/115200=0,477мс , но не забудем еще и паузу тишины приплюсовать - получим 2,2мс. Это более чем вдвое!!! дольше, по сравнению с передачей в формате ASCII. Для самого длинного пакета в 252 байта пользовательских данных на той же скорости получаются такие цифры ASCII: 44,5 мс RTU: 26,19 мс опять же это не в двое дольше, а лишь на 70%. Как и сообщал предыдущий оратор :) На всякий случай даю ссылку на спецификацию ModBus.