Просмотр полной версии : ПЛК при пропадании питания
SergeyNG
14.02.2008, 10:04
Существует ли возможность сразу отключить работу ПЛК при пропадании питания и не тратить ресурс аккумулятора? Пробовал функции библиотеки SysLibPlcCtrl.lib, но она не поддерживается.
Малышев Олег
14.02.2008, 10:52
Используйте модуль статистика - там есть признак питания. Перезагрузить можно вызвав вечный цикл. Сработает охранный таймер
тоже интересует этот вопрос. при тестировании часто не требуется, чтобы после отключения питания тратился ресурс аккумулятора.
Малышев Олег
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
спасибо, теперь все понятно :)
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
не будет работоспособен, если его выполнение будет в первом же скане.
Спасибо за ответы.
Небольшое уточнение. Значение Power Status обновляется только после первого скана выполнение программы. Поэтому код
WHILE NOT pwr DO ; END_WHILE
не будет работоспособен, если его выполнение будет в первом же скане.
проверено на практике - работоспособность подтверждаю :)
проверено на практике - работоспособность подтверждаю :)Интересно, как ты проверял.
По моим наблюдениям, обращения к периферии имеют особенности. Вот в этой теме (http://www.owen.ru/forum/showthread.php?p=98035&posted=1#post98035) (смотреть сообщение № 22) рассказано о том, как инициализируется таймер, используемый для аппаратного генератора. Он-то как раз инициализируется после прохождения первого цикла. Спасибо коллеге SergeyNG за подсказку, мне это помогло.
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot