Наткнулся на проблему удержания линии. Разрабатываю собственное устройство с управлением по модбасу. Паузу 3,5 держу. ПЛК держит шину немного больше 3,5 слов. Не беда, я увеличил время паузы и эта проблема решена, хотя не ясно чего ПЛК вообще его держит. С СПК например такого не наблюдается.
Появилась вторая проблема. Бывает пропадает байт в середине пакета (и на СПК тоже). В терминале на компе байт есть, в буфере функционального блока нет. Решилось добавлением небольших пауз между словами. Неужели так сложно забрать байт из регистра микроконтроллера сразу, как он пришёл?
Ну и на последок, последний байт пакета никогда не появляется в буфере функционального блока библиотеки модбас, но всегда появляется первым байтом следующего запроса. То есть железо приняло этот байт, но не кинуло в буфер. Тут мне что ли надо шину держать или паузу какую выставлять?
При этом работа с модулями МВ безукоризнена. Может кто-нибудь подскажет как они этого добились?