koyodza (31.10.2011 13:38 - 13:53, просмотров: 630) ответил Лeoнид Ивaнoвич на Т.е. надо понимать, что у мастера Modbus таймаут приема ответа конфигурируемый, и он обычно больше 3.5T?
таймаут приёма ответа мастером обычно сотни мсек (ну десятки в крайнем случае) про игнорирование байтов выше F8 я прямых указаний не находил, но пришёл к такому исходя из необходимости в некоторых случаях посылать лидирующие FF, ну и прямого запрета на использование этих адресов, пытаясь понять логику разработчиков стандарта.
Таймаут конца пакета нужно отрабатывать не слишком долго. Перед ответом задержка должна быть больше. Из скорости обмена лучше не вычислять, а задавать в отдельном регистре. Если у Вас 485, то кроме задержки перед ответом (десятки мсек) желательна ещё задержка после переключения на передачу (у меня там 1-2 мсек) и после передачи последнего байта перед отключением передачи (чтобы байт ушёл полностью), там в зависимости от скорости обмена, обычно ставлю на длительность 1-2 байта. Я все эти вещи делаю конфигурируемыми, хотя в процессе эксплуатации их никто и не трогает