Просмотр полной версии : прерывное использование контроллера
имеется плк-100 под иногда не каждодневный техпроцесс с длительностью порядка 3-4 часов в смену (по окончании процесса ща выключается рубильником).
возникающая проблема: из-за такой неестественной для контроллера эксплуатации со временем будет деградировать аккум.
видимые пути решения:
организационный - заставить (прописать в инструкции) оператора держать включенным щит не менее 5 часов в смену;
технический - запитать плк напрямую из розетки минуя рубильник ща.
вопрос опытным и знающим: можно ли решить эту проблему программно, заставив например плк принудительно сохранять ретайн на флэш а затем вводя его в зацикливание ресетить по вачдогу?
Филоненко Владислав
13.12.2010, 18:19
Ключевые слова для поиска:
Модуль Statistic и Watchdog
вообще стоит приучать рабочих, не обесточивать оборудование имеющее электронные компоненты. особенно зимой, когда температура в цехах как правило низкая. бойтесь точки росы - ремонт приносящей:o
а еще зимой мва8 с термопарами отказывается работать - температура в шкафу ниже ноля... а рабочие выполняют указания начальника цеха, которому указано сверху, что все надо обестачивать после смены...
филоненко владислав
как ни странно, но перед тем как спросить я уже реализовал перезагрузку плк вачдогом по сигналу пропадания питания. один большой минус - ретайн переменные не сохраняются.
поэтому и вопрос в большей степени про то, как бы принудительно заставить плк сохранять ретайн?
Малышев Олег
14.12.2010, 10:17
При пропадании питания retain сохраняются. Но для записи на флеш нужно переждать некоторое время <1 секунды. Поэтому сразу при выключении питания лучше использовать следующий код. Это же даст время для подхвата АВР(что бы плк не перезагружался).
tof_power(in:=power,pt:=t#1s);
while (not tof_power.q) do ; end_while
У Вас я так понял при первом пропадании ПЛК идет в цикл для wathcdog?
Дмитрий Артюховский
14.12.2010, 10:34
сделайте кнопки "включить" + "выключить", идея как на компах. при нажатии на кнопку "включить" подаем напругу на обмотку пускателя, который сработав, блокирует кнопку "включить". все заработало....
при нажатии на кнопку "выключить" ( подключенную к входу) контроллер аккуратно сохранит свои переменные в файлик, после чего включит релюшку (с нормально замкнутыми контактами) и разблокирует пускатель и соответственно весь стенд выключиться....
есть еще одна идея, менять аккумулятор на ионистор. в этом случае заряд, необходимый для корректного выключения мы получаем за секунду работы контроллера, да и деградация практически не происходит.... ну время работы после пропадания питания будет меньше, а нужно оно большое??
При пропадании питания retain сохраняются
согласно документации через 10 минут (зависит от степени зарядки аккума) работы ПЛК от аккума. и как я понял сохраняются только тогда, когда сам контроллер решает что пора выключаться. не раньше.
У Вас я так понял при первом пропадании ПЛК идет в цикл для wathcdog?
по сигналу пропадания питания у меня вызывается действие
WHILE TRUE DO
aaa:=aaa+1;
END_WHILE
которое вызывает перезагрузку контроллера. при восстановлении питания контроллер не продолжает работу с "того места", а заново грузит ядро кодесиса, что впринципе то и нужно. но тут оказывается, что переменные не сохранились:(
при нажатии на кнопку "выключить" ( подключенную к входу) контроллер аккуратно сохранит свои переменные в файлик, после чего включит релюшку (с нормально замкнутыми контактами) и разблокирует пускатель и соответственно весь стенд выключиться....
я правильно понял, что вы предлагаете переменные использовать не типа "retain" а сохранять их вручную в файловой системе?
Малышев Олег
14.12.2010, 12:24
Еще раз - контроллер сохраняет retain 2 раза - первый раз при пропадании питания (просто дайте им записаться на флешь), второй раз при истощении акк.б.
Дмитрий Артюховский
14.12.2010, 14:40
я правильно понял, что вы предлагаете переменные использовать не типа "retain" а сохранять их вручную в файловой системе?
Да, именно так. Имею опыт эксплуатации контроллеров в таком режиме, поэтому осторожно отношусь к ретаин переменным. Типичная ситуация... устройство работает, выключается.... аккумулятор поддерживает работу, сохраняет ретайн, все хорошо но аккумулятор разряжается... потом устройство включают и выключают и опаньки сохраниться не успели.... следующее включение уже некорректно, и устройство не работает, в лучшем случае, устройство работает, но мы никогда не узнаем о попытке включения...
Кроме того, возникают проблемы связанные с инициализацией ретаин переменных, например, отлаживается проект... по каким-либо причинам откладывается в сторону, затем возвращаешь стенд на стол, загружаешь проект и начинаются "чудеса"... На самом деле, гораздо проще обойтись без ретайна, чем проверять корректность оного.
Филоненко Владислав
14.12.2010, 15:50
Волков бояться - в лес не ходить.
В зависимости от ответственности применения можно и UPS подключить, и хранить 3 копии важных данных и многое другое.
А выдержать 1-2 секунды и только после этого уходить в перезагрузку - retain успеет сохранится.
Малышев Олег спасибо за подсказку, попробовал - вроде работает
Филоненко Владислав ответственность не такая уж большая, управление процессом + счетчик А*ч
и вот снова я пришел за помощью к знающим форумчанам.
ситуация - весь день занимаюсь отладкой программы, контроллер включен, в модуле статистики время до разрядки около 588 сек. конец рабочего дня, выкл питание, контроллер сам уже перезагружается по вачдогу от цикла while do.
прихожу на следующий день - вкл и вижу твердый 0 в статистике :(
за 30-40 минут работы значение еле еле добирается до 200 сек.
соответственно возникает вопрос - почему так? проблемы с батареей (контроллер только из коробки) или его как-то галит из-за перезагрузки по вачдогу и он начинает питаться от батареи без внешнего питания пока батарея не разрядится в 0 (не отключаясь даже через 10 минут)?
Николаев Андрей
22.12.2010, 14:28
Как раз за эти 10 минут он и разряжается...
Для зарядки надо несколько часов.
так где-то же было написано, что за эти 10 минут он разряжается на треть:confused:
Edik_Ponomarenko
23.04.2014, 22:21
сделайте кнопки "включить" + "выключить", идея как на компах. при нажатии на кнопку "включить" подаем напругу на обмотку пускателя, который сработав, блокирует кнопку "включить". все заработало....
при нажатии на кнопку "выключить" ( подключенную к входу) контроллер аккуратно сохранит свои переменные в файлик, после чего включит релюшку (с нормально замкнутыми контактами) и разблокирует пускатель и соответственно весь стенд выключиться....
есть еще одна идея, менять аккумулятор на ионистор. в этом случае заряд, необходимый для корректного выключения мы получаем за секунду работы контроллера, да и деградация практически не происходит.... ну время работы после пропадания питания будет меньше, а нужно оно большое??
Посчитай зарядный ток ионистора и посмотри на схемное решение в ПЛК по аккуму. Ионистор оно не потянет без переделки, а переделывать там много прийдется.....
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot