Цитата(andrewlekar @ Feb 12 2013, 10:26)

Проектируем новую систему и закладываем туда магистраль для подключения всяких удалённых приборов. Очевидное решение - модбас по RS485. Однако модбас уже применяем в нынешнем устройстве и как-то не особо радует. Модбас RTU совсем не завёлся потому что требует точное соблюдение времени с микросекундной точностью и непрерывных фреймов. А модбас ASCII (используем сейчас) не особо эффективно использует шину.
Порекомендуйте, что делать? Оставлять модбас ASCII? Забарывать модбас RTU? Переехать на другой протокол? Как насчёт профибас?
Зря вы так про modbus RTU, на самом деле там всего два тонких момента (я имею ввиду версию для последовательного порта RS), по версии "MODBUS over serial line specification and implementation guide V1.02" это то что во фрейме (посылке) не должно быть интервалов, между байтами, больше 1.5 char (времени отправки байта на вашей скорости) и следующий фрейм не должен идти раньше чем через 3,5 chara. Первый обычно без проблем реализуется через прерывание и выдачу буфера, а второе на таймере. Остальные времянки обговариваются/просчитываются и при скоростях больше 19200 не меняются (For baud rates greater than 19200 Bps, fixed values for the 2 timers should be used: it is recommended to use a value of 750μs for the inter-character time-out (t1.5) and a value of 1.750ms for inter-frame delay (t3.5).).
Но есть еще толстый момент, если вы (мастер) сделали запрос у слейва и есть ошибка (в передаче фрейма, в CRC или таймаут не выдержали) то в modbus нет подтверждения этих ошибок, и понять почему слейв не отвечает можно только с анализатором.