По поводу контрольной суммы конечно интересно...
c ModBus ASCII нормально работает
http://www.terring.ru/files/TerringModbus.htmlт.е. можно сравнить посылки которые формирует утилита, с теми что идут в порт с помощью трассировки порта CSU или просто подключив его к компу на котором стоит какая- либо терминальная прога.
Цитата:
RTU пртокол всеже требует молчания в линии втечении не менее 4 тактов
почти верно, не помню как точно, но между посылками должна быть пауза на время нужное для передачи какого-то кол-ва байтов, т.е. эта пауза зависит от скорости передачи. Реально никаких задержек в CSU не нужно, если делаешь несколько шагов для одного слейва, (подряд несколько запросов с ответами) то ему без разницы, паузой для него будет время пока он передаёт данные, а когда с одного слейва переходишь к опросу другого, вызывая PMCR в контроллере, проходит как минимум один цикл в контроллере, по времени его обычно достаточно чтобы обеспечить паузу между посылками чтобы следующий слейв смог распознать посылку. Если по каким-то причинам слейв не может определить посылку, тогда да, нужно использовать в первом шаге send wait, но ни разу такого не видел.
RTU более шустрый чем ASCII, если конечно производитель не заложил в слейв слишком длинный send wait, а ASCII скорее предназначен для реализации в простых языках программирования, которые плохо дружат с разными форматами данных, все сорта бейсика например.