Цитата Сообщение от Serj_N Посмотреть сообщение
У меня сложилось впечатление, что в Modbus-мастере чудес заложено больше, чем во всём остальном контроллере.

Не удивлюсь уже, если возможно возникновение такой ситуации:
Мастер посылает запрос на чтение строки длиной в 200 байт и ждёт ответ. Ответ не пришел в допустимое время. Мастер посылает другой запрос чтения, на этот раз одного регистра. И тут начинает поступать ответ на предыдущий запрос. Мастер принимает его и, т.к. не проверяет адрес отвечающего (CRC хоть проверяет?), то записывает всю 200-байтовую строку в область ввода, начиная с адреса регистра, который он запросил второй командой. Затирая тем самым ячейки памяти, лежащие за этим регистром...
Оценивая свой опыт борьбы с этим чудом, совсем не удивлюсь, если так и будет. Кстати, таким образом можно ведь и содержимое системной памяти повредить (если регистр последний в модуле, а модуль последний в конфигураторе)?

Теперь опишу, как я победил проблему с постоянными перезагрузками контроллера, описанную в начале ветки.
Всё просто. Против лома нет приёма. Модуль Modbus-мастер был удалён из конфигурации контроллера. А затем в течении пяти дней была написана и отлажена библиотека, реализующая команды 3 и 16 Modbus ASCII мастера. И всё.
Вся аппаратная конфигурация осталась прежней. Абсолютно. Те же радиомодемы. Те же ведомые. Те же физические подключения.
Более того. После завершения отладки библиотеки я продолжил дорабатывать основную программу. И она выросла ещё где-то на треть. И никаких проблем. Никаких резетов по watchdog. Стреляет очередями запросов и не спотыкается.
Так что ищите суслика в своём драйвере. А то и не одного.

P.S. А для себя пришлось сделать вывод: модуль Modbus Master для ПЛК100 не существует. То что имеется на данный момент - это не продуманное и не прошедшее тестирования НЕЧТО, способное работать лишь в самых простых конфигурациях.
P.S. А про надёжность модуля Modbus Slave плохого сказать нечего. Нормально работает. Быстрее бы ему доработали конфигуратор. Очень много времени отнимает нынешний, если переменных много.
Спасибо за замечание. Такое поведение возможно, стандарт не определяет поведение мастера в таком случае. Добавим доп. проверку.