Добрый день, всем.

Есть проект в котором используются контроллеры ПЛК73. Контроллеры связаны между собой по 485 интерфейсу и один из них является мастером, он собирает статистику со всех контроллеров и отображает оператору, также оператор может с центрального ПЛК изменить уставки на остальных контроллерах. Для передачи данных между контроллерами использовал библиотеку ModBus.lib.

В целом все работает - связь между контроллерами есть, данные передаются. И все бы хорошо, но периодически подчиненный контроллер самопроизвольно перезагружается. При перезагрузке состояние глобальных (не ретэйн) переменных сохраняется (у меня в блоке инициализации контроллера есть инкриментация ретейн переменной в случае, если глобальная переменная init=FALSE, то есть это счетчик включений, так вот этот счетчик не увеличивается). Периодичность перезагрузок различная - может через пару минут перезагрузиться, а может и пару часов нормально работать. Есть интересная особенность - если от подчиненного контроллера отключить кабель связывающий его с головным контроллером, то перезагрузки прекращаются. При этом в самой программе подчиненного ПЛК нет логики для сетевого обмена, поскольку головной ПЛК получает данные из подчиненного считывая значения параметров заданных в конфигураторе. То есть на подчиненном контроллере за отправку данных по запросу центрального ПЛК отвечает "операционная система" (если можно так сказать). При этом центральный контроллер (мастер) работает "как часы" без каких-либо проблем. Пробовал менять контроллеры местами и ситуация повторилась - контроллер который был подчиненным и перезагружался, после установки на него программы от центрального контроллера перестал перезагружаться и работал нормально, а контроллер который был мастером, после установки на него программы от подчиненного стал перезагружаться с такими же симптомами.

Что еще заметил - в режиме отладки (переход через клавиши "АЛЬТ"+"ВЫХОД"+"ВВОД") в списке ошибок вижу следующее:
Код:
Error # 0=3
Error # 1=7
Error # 2=7
Error # 3=7
Error # 4=7
Error # 5=7
Error # 6=7
Error # 7=7
Error # 8=7
Error # 9=7
Error # 10=7
Только мне не удалось найти в документации описания этих значений и причин, которые могут к ним привести.

Прошу помощи в поиске причин такого поведения.
Заранее спасибо всем, кто поделится какой-либо информацией или идеями куда копать.