PDA

Просмотр полной версии : Остановка ПЛК160



Владимир КС
09.07.2019, 08:20
Здравствуйте.
На объекте внезапно остановился контроллер ПЛК160. Проверил программу на предмет бесконечных циклов и указателей — всё в порядке. Программа — простой конечный автомат, все переходы на месте, циклов и указателей не используется вообще. По крайней мере в явном виде, не внутри библиотечных POU.
На форуме нашел сообщения, что у ПЛК160 есть такая проблема с самопроизвольной остановкой программы, но сообщения довольно старые.
Скажите, пожалуйста, на текущий момент эта проблема актуальна, или её уже исправили и мне надо дальше копать программу?
До контроллера я смогу добраться только в пятницу 12 июля.

И ещё вопрос вдогонку.
Есть циклическая задача, в настройках которой включен сторожевой таймер с чувствительностью в 1 переполнение. В инструкции на контроллер я не нашел описания того, что произойдет при переполнении сторожевого таймера. Можно прояснить этот вопрос?

capzap
09.07.2019, 08:30
модуль button добавлен?

Владимир КС
09.07.2019, 08:35
Модуль, конечно, добавлен не был, потому что в документации нет описания этой особенности работы контроллера.
То есть о необходимости модуля можно узнать только после остановки, в процессе поиска причины на форуме.

Владимир КС
11.07.2019, 12:36
Итак, по поводу самопроизвольной остановки всё понятно. Не понятно только где брать информацию об особенностях работы контроллеров. На сайте на странице контроллера в разделе документации нет ничего типа errata. Существуют ли такие документы и как бы их получить по всей линейке ПЛК1хх?

И по поводу сторожевого таймера вопрос остался. Поясню:
В настройках ПЛК есть параметр MaxCycleLength, устанавливающий максимальное разрешенное время цикла работы ПЛК. В руководстве четко и понятно написано, что переполнение приведет к перезагрузке:

п. 7.2, п.п. 3)
...Если в процессе работы ПЛК заданная величина будет превышена (при зависании программы или при выполнении бесконечного цикла), то ПЛК будет принудительно перезагружен. Т.е., параметр «MaxCycleLength» задает время ожидания сторожевого таймера («WatchDog Timer»)...
Но для каждой задачи можно установить собственный сторожевой таймер, о котором в руководстве написано:

п. 4.3
...Кроме того, для каждой задачи можно задать контроль времени выполнения («сторожевой таймер»). Возможности его использования и настройки определяются целевой платформой...
Что определено в целевой платформе, что произойдет при переполнении сторожевого таймера одной из задач?
Перезагрузка? Это затронет ни в чем неповинные задачи.
Переход на следующую задачу? Тогда где-то должен подняться флаг о срабатывании сторожевого таймера.

capzap
11.07.2019, 12:50
Вы надеетесь что задачи выполняются как на ПК в многозадачном режиме, так это не так, более чем достаточно весь код написать через PRG_PLC. И срабатывание сторожевого таймера, это результат низких навыков программиста