Добрый день! Подскажите пожалуйста, есть и возможность узнать в каком месте программы на ПЛК110 м02 сработал watchdog
Добрый день! Подскажите пожалуйста, есть и возможность узнать в каком месте программы на ПЛК110 м02 сработал watchdog
В этом и проблема, по шагам зацикливаний в программе нет. Максимум используется четыре цикла фор со счетом от 0 до 4. Контроллер штатно работает в течении полутора-двух месяцев, а потом происходит перезапуск контроллера по WatchDog. Вот и не получается определить где зарылась проблема.
приложите проект, посмотрим
Файл с проектом во вложении
Обновите прошивку до версии 1.0.6. https://owen.ru/product/codesys_v2/service_po
Сегодня обновил контроллер до версии 1.0.6. До этого стояла версия 0.3.64, посмотрим как будет работать...
После обновления ПО контроллера решил покопаться в логе контроллера и посмотреть есть ли какие нибудь закономерности перезапусков контроллера и вот что удалось найти:
Контроллер был смонтирован на объект в начале мая 2019 года, были проведены испытания и объект успешно был передан в эксплуатацию. В конце июня происходит первый перезапуск контроллера по WatchDog, все естественно переполошились, принялись искать проблему в программе - ничего конкретного не нашли. Следующий перезапуск произошел в августе, потом в октябре и далее в ноябре.
Достали файл из контроллера Debug.txt выгрузили от туда время перезапусков по WatchDog и увидели вот какую зависимость - срабатывание WatchDog происходит ровно через 49,7(примерно 50) дней. 50 дней это 4294967295 мс. А данное количество мс это как раз максимальное значение которое можно положить в переменную DWORD.
Назревает вопрос к разработчикам данного контроллера не может ли происходить срабатывание WatchDog при переполнении регистра .ulLow в структуре SysTime64 где ведется отсчет реального времени работы контроллера?
Последний раз редактировалось Toshix; 28.11.2019 в 16:20.
Смущает что в коде нет переменных которые циклически накапливают данные. Повторюсь, что максимум используется четыре цикла FOR в которых счет идет максимум до 4-х. и используется это для перестановки значений в массивах. Смущает еще одно обстоятельство - данная программа была "залита" в мае месяце, до этого контроллер стоял на другом объекте и с другим ПО - а проблемы были те же.
Вы смотрите не тот FB, это старая версия она закомментирована и не выполняется в проекте. Этот блок реализован в FB Kask, посмотрите - там таймеры уже вынесены за кейсы, а условия переходом между кейсами это срабатывание таймеров и дискретные сигналы с насосов, вроде не должно быть проблем.скрин.jpg