PDA

Просмотр полной версии : Watchdog



Toshix
25.11.2019, 17:24
Добрый день! Подскажите пожалуйста, есть и возможность узнать в каком месте программы на ПЛК110 м02 сработал watchdog

Федор Назаров
27.11.2019, 11:51
Добрый день! Подскажите пожалуйста, есть и возможность узнать в каком месте программы на ПЛК110 м02 сработал watchdog

К сожалению, прямого инструмента нет, только если прогонять программу по шагам , возможно на каком-то шаге программа зациклилась.

Toshix
27.11.2019, 14:12
В этом и проблема, по шагам зацикливаний в программе нет. Максимум используется четыре цикла фор со счетом от 0 до 4. Контроллер штатно работает в течении полутора-двух месяцев, а потом происходит перезапуск контроллера по WatchDog. Вот и не получается определить где зарылась проблема.

Трофимов Артем
27.11.2019, 14:35
приложите проект, посмотрим

Toshix
27.11.2019, 14:55
Файл с проектом во вложении

Пантелеев Дмитрий
27.11.2019, 15:26
Обновите прошивку до версии 1.0.6. https://owen.ru/product/codesys_v2/service_po

Toshix
28.11.2019, 14:44
Сегодня обновил контроллер до версии 1.0.6. До этого стояла версия 0.3.64, посмотрим как будет работать...

Toshix
28.11.2019, 16:18
После обновления ПО контроллера решил покопаться в логе контроллера и посмотреть есть ли какие нибудь закономерности перезапусков контроллера и вот что удалось найти:
Контроллер был смонтирован на объект в начале мая 2019 года, были проведены испытания и объект успешно был передан в эксплуатацию. В конце июня происходит первый перезапуск контроллера по WatchDog, все естественно переполошились, принялись искать проблему в программе - ничего конкретного не нашли. Следующий перезапуск произошел в августе, потом в октябре и далее в ноябре.
Достали файл из контроллера Debug.txt выгрузили от туда время перезапусков по WatchDog и увидели вот какую зависимость - срабатывание WatchDog происходит ровно через 49,7(примерно 50) дней. 50 дней это 4294967295 мс. А данное количество мс это как раз максимальное значение которое можно положить в переменную DWORD.
Назревает вопрос к разработчикам данного контроллера не может ли происходить срабатывание WatchDog при переполнении регистра .ulLow в структуре SysTime64 где ведется отсчет реального времени работы контроллера?

Toshix
28.11.2019, 16:56
Смущает что в коде нет переменных которые циклически накапливают данные. Повторюсь, что максимум используется четыре цикла FOR в которых счет идет максимум до 4-х. и используется это для перестановки значений в массивах. Смущает еще одно обстоятельство - данная программа была "залита" в мае месяце, до этого контроллер стоял на другом объекте и с другим ПО - а проблемы были те же.

Toshix
28.11.2019, 17:46
Вы смотрите не тот FB, это старая версия она закомментирована и не выполняется в проекте. Этот блок реализован в FB Kask, посмотрите - там таймеры уже вынесены за кейсы, а условия переходом между кейсами это срабатывание таймеров и дискретные сигналы с насосов, вроде не должно быть проблем.45845

Toshix
29.11.2019, 11:37
Я ни в коем случае не предлагал и тем более не просил Вас проверять мой код! Насчет мусора в других местах согласен, не без этого, все приходит с опытом. Насчет таймеров, если бы Вы подробнее рассказали при каких обстоятельствах такое может произойти для меня это был бы бесценный опыт!

Пантелеев Дмитрий
29.11.2019, 11:44
Toshix, не беспокойтесь. С прошивкой 1.0.6 Ваша проблема перезагрузки ПЛК решена.

Toshix
29.11.2019, 12:02
Спасибо! Буду очень этому рад!

Samel
18.05.2022, 12:32
Тоже столкнулся с проблемой перезагрузки раз в 50 дней. В чем причина?