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