PDA

Просмотр полной версии : ПЛК при пропадании питания



SergeyNG
14.02.2008, 10:04
Существует ли возможность сразу отключить работу ПЛК при пропадании питания и не тратить ресурс аккумулятора? Пробовал функции библиотеки SysLibPlcCtrl.lib, но она не поддерживается.

Малышев Олег
14.02.2008, 10:52
Используйте модуль статистика - там есть признак питания. Перезагрузить можно вызвав вечный цикл. Сработает охранный таймер

Serp
14.02.2008, 18:23
тоже интересует этот вопрос. при тестировании часто не требуется, чтобы после отключения питания тратился ресурс аккумулятора.

Малышев Олег
15.02.2008, 08:19
1) Добавьте охранный таймер - нужное Вам значение в PLC_Configuration - корень - Module Parameters - Max Cycle Legth или , если используете задачи, в конфигураторе задач - Watchdog )
2) Добавляете модуль статистика выбираете четвертую переменную - Power Status и привязывете к IEC адресу переменную pwr
3) в основном цикле плк вызываете следующий код WHILE NOT pwr DO ; END_WHILE
При пропадании питания значение переменной pwr будет равна false. ПЛК впадет в "вечный" цикл и охранный таймер сработает. При перезагрузке от батарейного питания ядро ПЛК не загрузится и соотетственно аккумулятор не будет разряжаться для поддержки питания ARM, RAM и Ethernet

Serp
15.02.2008, 08:43
спасибо, теперь все понятно :)

SergeyNG
16.02.2008, 10:31
В случае использования такого способа сохрание переменных Retain гарантируется?

Филоненко Владислав
16.02.2008, 11:38
Да.
Переменные записываются 2 раза.
Первый при пропадании внешнего питания.
Второй при выключении встроенного аккумулятора.
Т.о. состояние Retain на момент выкл. питания будет сохранено. Однако все данные, к-е Вы положите в retain переменные ПОСЛЕ выключения внешнего питания, если сделать бесконечный цикл, будут потеряны.

SergeyNG
16.02.2008, 19:41
А на что вообще, кроме продолжительности работы после отключения питания, влияет заряд аккумулятора?
Предположим, что аккумулятора вообще нет. В этом случае свои функции по сохранению переменных контроллер выполнять будет? Успеет ли на заряде емкостей источника питания.
Я к чему. Пользователи когда-то столкнутся с тем, что аккумулятор потеряет свою емкость, и есть вопрос по сохранению работоспособности контроллера.

Филоненко Владислав
16.02.2008, 21:17
1. При отсутствии аккумулятора записи данных не будет. К сожалению, за мощный процессор и много памяти надо чем-то платить.
2. Деградация аккумулятора. Процесс неизбежный, но не надо драматизировать. На запись данных уйдёт 1 секунда, т.е. ~150 мА*ч/120 мА*сек=0,8% емкости аккумулятора. До такой степени аккумулятор деградирует не скоро.
Как не скоро?
Пусть каждый год аккумулятор теряет 20 % емкости (очень пессимистично), тогда до 5 % емкости (с 6-ти кратным запасом на неблагоприятные условия эксплуатации) от деградирует за (log по основанию 0.8) от (0.05) лет, т.е. за 13 лет.
К этому времени или эмир сдохнет, или ишак или аккумулятор поменяют. Он совсем не эксклюзивный.

SergeyNG
19.02.2008, 04:50
1) Добавьте охранный таймер - нужное Вам значение в PLC_Configuration - корень - Module Parameters - Max Cycle Legth или , если используете задачи, в конфигураторе задач - Watchdog )
2) Добавляете модуль статистика выбираете четвертую переменную - Power Status и привязывете к IEC адресу переменную pwr
3) в основном цикле плк вызываете следующий код WHILE NOT pwr DO ; END_WHILE
При пропадании питания значение переменной pwr будет равна false. ПЛК впадет в "вечный" цикл и охранный таймер сработает. При перезагрузке от батарейного питания ядро ПЛК не загрузится и соотетственно аккумулятор не будет разряжаться для поддержки питания ARM, RAM и Ethernet
Небольшое уточнение. Значение Power Status обновляется только после первого скана выполнение программы. Поэтому код
WHILE NOT pwr DO ; END_WHILE
не будет работоспособен, если его выполнение будет в первом же скане.

Спасибо за ответы.

Serp
19.02.2008, 08:00
Небольшое уточнение. Значение Power Status обновляется только после первого скана выполнение программы. Поэтому код
WHILE NOT pwr DO ; END_WHILE
не будет работоспособен, если его выполнение будет в первом же скане.


проверено на практике - работоспособность подтверждаю :)

drvlas
11.12.2012, 22:02
проверено на практике - работоспособность подтверждаю :)Интересно, как ты проверял.
По моим наблюдениям, обращения к периферии имеют особенности. Вот в этой теме (http://www.owen.ru/forum/showthread.php?p=98035&posted=1#post98035) (смотреть сообщение № 22) рассказано о том, как инициализируется таймер, используемый для аппаратного генератора. Он-то как раз инициализируется после прохождения первого цикла. Спасибо коллеге SergeyNG за подсказку, мне это помогло.