PDA

Просмотр полной версии : перезапуск программы после снятия питания с плк?



Мак
15.11.2010, 09:56
друзья, подскажите как сделать так, чтобы при выключении питания и включении питания снова, программа не оставалась на том шаге на котором пропало напряжение , а обнулялась как при первом включении.
заранее благодарен. спасибо.!! программа написана ня языке Ld
контроллер плк-100.220-рм

Филоненко Владислав
15.11.2010, 13:42
10 минут ПЛК работает и без питания. Он не выключается :)
Анализируйте переменную Power из модуля статистики

Мак
16.11.2010, 10:12
10 минут ПЛК работает и без питания. Он не выключается :)
Анализируйте переменную Power из модуля статистики

если можно поконкретнее, а то я только учусь :) буду благодарен . Заранее спасибо.

Elka
16.11.2010, 11:21
кроме контроллеров плк63, если я правильно понимаю. и модуля статистики для них тоже нет. или я ошибаюсь?

Филоненко Владислав
16.11.2010, 13:08
да, вы все точно описали

Мак
16.11.2010, 14:30
друзья , а как это реализовать в плк 100 ?

Flomaster
17.11.2010, 02:26
На закладке "PLC configuration" щелкнуть правой кнопкой мыши на корневом элементе (PLC100) и добавить модуль Statistic.
Добавленный модуль содержит 6 элементов, один из которых и есть индикатор питания.

Мак
17.11.2010, 09:12
На закладке "PLC configuration" щелкнуть правой кнопкой мыши на корневом элементе (PLC100) и добавить модуль Statistic.
Добавленный модуль содержит 6 элементов, один из которых и есть индикатор питания.

Это выглядит так? А как управлять с помощью этого элемента?:confused: :confused: :confused:

Николаев Андрей
17.11.2010, 09:14
В модуле статистика отслеживаете значение переменной Power. 1- есть питание, 0 - нет.

А дальше программно запускаете\останавливаете\переводите в нужное состояние свою программу по значению данной переменной.

Мак
17.11.2010, 09:38
В модуле статистика отслеживаете значение переменной Power. 1- есть питание, 0 - нет.

А дальше программно запускаете\останавливаете\переводите в нужное состояние свою программу по значению данной переменной.

Принцип понятен, но вот проблема в чем: у меня панель и ПЛК запитаны с одного источника питания. При отключении питания, панель и ПЛК отключаются и выключаются все исполнительные механизмы, а при включении питания нужно, чтоб все исполнительные мехинизмы остались выключенными . Счас происходит , что при включении питания все включается. И насос (например) остается включенным так как програмно мы его включили до отключения питания. Я так понимаю, что программно можно управлять питанием ПЛК ,но когда я подам питание на ПЛК и панель, нужно чтоб управление происходило сразу без вкл исполнительных механизмов.
Зранее огромно Благодарен. Спасибо.

swerder
17.11.2010, 11:08
настройте безопасное состояние выходов контроллера

Мак
17.11.2010, 16:26
настройте безопасное состояние выходов контроллера

Будьте добры,если можно поподробнее описать, а то я новичок :) :) :) :)
Спасибо:) :)

swerder
17.11.2010, 16:31
и так на каждом модуле вывода

Мак
18.11.2010, 10:55
и так на каждом модуле вывода

исходя из картинки там настройки по умолчанию, и я так понимаю что они ничего не меняют. Может я не так понял? Извиняюсь заранее за вопрос. :) управлять статистиком тоже не удолось:(((

Terrano1992
18.11.2010, 12:20
управлять статистиком тоже не удолось
Им не надо управлять.
Читаете из Statistics бит Power и, если он принял значение False (питание пропало, работаем на аккумуляторе) - производите в своей программе любые действия, какие сочтете необходимыми. В том числе можете сами переключить выходы ПЛК в состояние, обеспечивающее безопасный "аварийный стоп" оборудования.
Power принял значение True - программа выполняет действия по обратному запуску установки в работу (полностью автоматическому, либо под контролем оператора). Вот и все...

безопасное состояние выходов контроллера
Если не ошибаюсь, оно тут не поможет. С ПЛК100 еще по этой части не разбирался, а у других производителей "Safe State" - это состояние, которое выходы принимают с момента включения питания (по умолчанию - "False", но каждый выход независимо от других можно настроить на "True") и сохраняют до тех пор, пока центральный процессор не начнет выполнять рабочую программу. Ну и в случае зависания ЦП они опять переходят в это же состояние, по аппаратному watchdog'у.
Так что в нашем случае переход в "Safe State" вполне может и не произойти - внешнее питание исчезло, но микропроцессор ПЛК еще несколько минут продолжает нормально работать от аккумулятора. Как на самом деле - пусть лучше ОВЕН ответит.

swerder
18.11.2010, 15:24
Так что в нашем случае переход в "Safe State" вполне может и не произойти - внешнее питание исчезло, но микропроцессор ПЛК еще несколько минут продолжает нормально работать от аккумулятора. Как на самом деле - пусть лучше ОВЕН ответит.
когда внешнее питание исчезло, все выходы выключаются, когда питание восстановилось, они принимают состояние которое было в момент отключения, но если аккум разрядится, то и контроллер потом начнет стартовать с 0. вот тут этот сэйф мод и поможет.

Мак
19.11.2010, 12:17
когда внешнее питание исчезло, все выходы выключаются, когда питание восстановилось, они принимают состояние которое было в момент отключения, но если аккум разрядится, то и контроллер потом начнет стартовать с 0. вот тут этот сэйф мод и поможет.

А можкт самый простой вариант будет просто вытащить батарейку и все , контроллер будет всегда запускаться с 0 ?

swerder
19.11.2010, 15:34
можно и батарейку вытащить, только переменные сохраняться не будут
еще вариант по сигналу пропадения питания вводить плк в бесконечный цикл, от вроде как должен по вачдогу перезагрузиться, только не знаю как в этом случае с сохранением переменных

Алексей Дмитриев
20.11.2010, 12:45
Вообще-то для этой цели и существует кнопочка подачи напряжения управления на исполнительные механизмы. Реализуется только при помощи реле с самоподхватом. После пропадания питания, реле отваливается и включается только кнопкой подачи напряжения управления.:p
Могу больше сказать - по немецким диновским стандартам безопасности надо для этих целей использовать специализированные реле или контроллеры безопасности оранжевого цвета.

Мак
21.11.2010, 21:07
можно и батарейку вытащить, только переменные сохраняться не будут
еще вариант по сигналу пропадения питания вводить плк в бесконечный цикл, от вроде как должен по вачдогу перезагрузиться, только не знаю как в этом случае с сохранением переменных

переменные сохраняться не будут, но после подачи питания прога начнет работу с первого цикла, правильно я понимаю?? то есть все выключится и не включится когда питание подадим.

botanik
13.02.2011, 13:09
Модуль Statistic не работает! контроллер ПЛК 150 ИМ. Все переменные модуля ничего не показывают! переменная Power = false всегда, хотя питание подключено. Подскажите в чём дело?

Николаев Андрей
13.02.2011, 18:02
Для начала перейдите в конфигурацию ПЛК и из меню дополнительно дайте команду - Стандартная конфигурация

botanik
14.02.2011, 19:20
скачал новый таргет , модуль Статистик заработал.
таргет 2.10, прошивка 2.10.8
теперь проблема - не могу поймать задний фронт Power.

пишу :
var retain
pit_off : int;
end_var

IF %IX9.3 = FALSE THEN pit_off:=1; END_IF

(по идее при выкл питания pit_off должна в 1 прыгнуть, но этого не происходит, %IX9.3 всегда true)

Николаев Андрей
14.02.2011, 19:46
Еще раз.
1. Удалите все таргеты для Вашего ПЛК.
2. Поставьте нужную версию.
3. Откройте Ваш проект.
4. Перейдите в ресурс настройки целевой платформы (Target settings).
5. В меню выбора контроллера выберете Ваш ПЛК. Нажмите Ок.
6. Перейдите в Конфигурацию ПЛК (PLC Configuration). Из меню дополнительно сделайте команду стандартная конфигурация.
Теперь работаем...

Пропадание питания лучше отслеживать с помощью тригера

Herzog
29.06.2011, 12:48
Еще раз.
1. Удалите...
...стандартная конфигурация.
Теперь работаем...Не помогает - горит фиксировано, что питание есть, даже если его нет.
Нет флага работы от аккумулятора.

Что делать?

С уважением,
Herzog

Николаев Андрей
29.06.2011, 17:13
А еще какие-нибудь светодиоды горят?

Herzog
30.06.2011, 08:51
А еще какие-нибудь светодиоды горят?Все гаснут примерно через секунду после выключения питания

Есть еще вопросы связанные с сохранением данных при выключении питания:
- сейчас я держу все данные в ОЗУ. При выключении питания те переменные, которые мне важны (это около 4к) переписываются в такой же набор переменных расположенных в Retain. При включении Retain восстанавливаются в ОЗУ, где я с ними и работаю. Правильно ли это? - ведь если запись в retain процессором происходит только в момент подозрительного нарушения работы (пропадания питания), то я могу объявить важные переменные исключительно как Retain, а многочисленная перезапись при нормальном питании не будет расходовать ресурс Flash-ки.
- что означает число перезаписей Flash? если я одну переменную пишу 100 тысяч раз, то убиваю всю Flash или только единственную ячейку памяти, в которую происходит запись? Объем 4к переменных записанный "скопом" есть однократная запись или 4к записей в ресурсе Flash?

С уважением,
Herzog

Николаев Андрей
30.06.2011, 09:13
Так все гаснут или питание горит?
Flash записывается равномерно - не в одно место.
запись в Retain только после отключения питания.
Пришлите более подробное описание проблемы на plc@owen.ru
Название контроллера полное, и, если можно, лог гипертермнала

Herzog
30.06.2011, 09:52
Так все гаснут или питание горит?Все

Flash записывается равномерно - не в одно место.
запись в Retain только после отключения питания.А конкретно мой пример - запись 4к переменных означает трату ресурса в 4к перезаписей?
Т.е. пять-шесть пропаданий питания и Flash в моем случае перестанет работать?!

С уважением,
Harzog

Николаев Андрей
30.06.2011, 09:54
Не перестанет. даже после 50-60 не пропадет

Дмитрий Артюховский
30.06.2011, 09:59
за 5-6 пропаданий питания вы уменьшите ресурс 1 ячейки, попавшей под раздачу на 1 раз... т.е вы перепишите 20 - 24к ячеек из 3 мб по 1 разу.. совсем не страшно

... фишка в другом, при записи флеша расходуется энергия аккумулятора, несколько выключений подряд, без времени на зарядку (а она не быстрая) - и на запись не хватит энергии -> данные потеряны, блок в который программа пыталась писать, с некоторой вероятностью, помечен как сбойный и исключен из дальнейшей работы....

Herzog
30.06.2011, 11:21
за 5-6 пропаданий питания вы уменьшите ресурс 1 ячейки, попавшей под раздачу на 1 раз... т.е вы перепишите 20 - 24к ячеек из 3 мб по 1 разу.. совсем не страшноЗначит нужно ставить внешний аккумулятор.
Очередной вопрос к его емкости - каково потребление PLC в спящем режиме?

P.S. Риторический вопрос в пустоту - а разве сложно было поставить нормальную флэшку с числом перезаписей, уходящим за горизонт?

С уважением,
Herzog

Вова
30.06.2011, 11:32
нормальную флэшку с числом перезаписей, уходящим за горизонт?
Например какую?

Herzog
30.06.2011, 14:40
Например какую?Что-нибудь из FRAM - типа FM25256 с неограниченным количеством циклов записи-чтения.

С уважением,
Herzog

Вова
30.06.2011, 15:13
Что-нибудь из FRAM - типа FM25256 с неограниченным количеством циклов записи-чтения.

С уважением,
Herzog
Да, читал про этот тип памяти, выглядит почти панацеей. А вы лично использовали такую память, есть статистика по надёжности?