PDA

Просмотр полной версии : запись переменной при потере питания



Kraft
23.04.2009, 09:17
Здравствуйте, подскажите как правельно реализовать механизм в программе для плк150. Задача такая: при потере питания контроллера необходимо изменить определенную переменную (RETAIN). Ну а когда связь появляется, то я уже анализируя эту переменную предпринимаю дальнейшие действия.

В задачах, поставил галочку в собитии Shutdown, в параметре "Вызываемый POU" указал программу. В ней делаю присвоение значения переменной.

Запустил, отключил питание, включил - переменная не изменена. Подскажите плиз.

Филоненко Владислав
23.04.2009, 11:48
В новой версии таргетов мы убрали неподдерживаемые типы системных событий, в т.ч. и shutdown.

Какая реакция Вам нужна? Понимать по какой причине перегрузился ПЛК (питание или другая)? Тогда Вам надо анализировать значение переменной Power и при её изменении менять значение retain переменной. Тогда при посл. загрузке Вы сможете увидеть последнее состояние питания. Или нужно что-то ещё?

Kraft
23.04.2009, 12:06
В новой версии таргетов мы убрали неподдерживаемые типы системных событий, в т.ч. и shutdown.

Какая реакция Вам нужна? Понимать по какой причине перегрузился ПЛК (питание или другая)? Тогда Вам надо анализировать значение переменной Power и при её изменении менять значение retain переменной. Тогда при посл. загрузке Вы сможете увидеть последнее состояние питания. Или нужно что-то ещё?

мне необходимо следующее:

Если ПЛК находится в режиме исполнения программы, то переменная, например sd, равна 0. Если в этот момент ПЛК уходит в ребут или теряется питание, данной переменной должна быть присвоена единичка. Так как проект бутовый, то при появлении питания, я в программе буду проверять эту переменную на равенство 1-це. Если она равна единице, то программа пойдет по другой ветке (подготовка оборудования к работе).

P.S. можно подробнее про переменную Power?
P.S.S Еще маленький вопрос. У меня несколько МДВВ, могу ли я программно проверять факт коннекта к ним? Если да, то как?

Николаев Андрей
24.04.2009, 08:12
1. Можно отслеживать появление ошибки в модуле обмена и смотреть по какому адресу она произошла. Если ошибки нет - логично предположить, что прибор нормально отвечает.
2. Переменная Power находится в модуле Statistic, который добавляется в PLC Configuration (конфигурация ПЛК). Добавление модуля и работа с ним описана в соответствующей документации (Работа PLC Configuration)

Филоненко Владислав
24.04.2009, 09:44
мне необходимо следующее:

Если ПЛК находится в режиме исполнения программы, то переменная, например sd, равна 0. Если в этот момент ПЛК уходит в ребут или теряется питание, данной переменной должна быть присвоена единичка. Так как проект бутовый, то при появлении питания, я в программе буду проверять эту переменную на равенство 1-це. Если она равна единице, то программа пойдет по другой ветке (подготовка оборудования к работе).

P.S. можно подробнее про переменную Power?
P.S.S Еще маленький вопрос. У меня несколько МДВВ, могу ли я программно проверять факт коннекта к ним? Если да, то как?

Можно анализировать содержание файлов log.txt и debug.txt, хотя это уже сложнее.