Просмотр полной версии : Retain в ПЛК100
Тему жевали уже не раз, но вопрос возник.
В ПЛК100 2011 года тихо умер аккумулятор. Ну и ладно, там не много на него возложено, в норм. работе вообще ничего. Но когда идут сбои - возникают записи в журнал, а журнал как раз в области RETAIN. И вдруг стало интересно заглянуть в тот журнал. А фигушки! Ничего там нет.
Исследуем. Ага, записи появляются. Рубим питание, включаем - все с чистого листа.
Помнится мне, что когда я расспрашивал, говорили, будто область RETAIN и не хранится в ОЗУ, подпитанном аккумом. Якобьі при вьіключении питания система впихивает RETAIN в файл, а на время записи аккум и нужен. Верно или нет?
Если верно, то умерший аккум явно портит картину. Окей, подумал я по-американски, заменим аккум на новенький. Заменил на внешнее питание, 3,3 В через диод, чтобьі не конфликтовать с подзарядом (4,2 В). Ну, теперь у нас питание пропадает, а на месте аккума стоит 3,3 В, как у волка на морозе. Должно помочь?
Не помогло. RETAIN не сохраняются.
Что не так, знатоки?
Попутно вот еще что. В другом применении я ловлю сигнал пропадания питания (из модуля STATISTIC). По нему организовую свой "RETAIN" - прописьіваю кое-что в файл. Так вот, попутно обнаружил, что и єта штука перестала работать.
То есть, как-то похоже, что система не видит (и мне через STATISTIC не показьівает) собьітие "ПРОПАЛО ПИТАНИЕ". Может она давит аккум до сметри, а когда тот издает последний пук - вот тогда и сигнал вьірататьівается? Я-то следил бьі за сетевьім питанием, и уже по его отключке подсуетился бьі. Но как поступили разработчики, не знает никто, я уверен. Даже ОВЕН. Только на пользователей и надеюсь.
Хотя может и не в том причина, что сигнала не появляется...
А в чем?
(Кста, ток от моего внешнего "аккума" жрется просто конский - 60 мА. И так все время, никакого засьіпания процессора нет. Ужос, что с бедньім аккумом творят)
приборист
03.03.2016, 22:43
ПЛК100 вообще себя интресно ведет.
2 ПЛК, одна прога. По пропаданию питания - пишу в файл (размер 4 байта).
Один ПЛК сохраняет, другой нет :)
На втором закатил переменную в Ретейн - сохраняет.
Взял еще два ПЛК100 - в файл сохранили.
Но батарейку не мучаю - через секунду отправляю в бесконечное плавание :)
Но батарейку не мучаю - через секунду отправляю в бесконечное плавание :)Не понял. Так без аккумулятора разве работает вся єта мотня с RETAIN?
Я когда-то тоже удалял аккум, а потом показалось, что он таки нужен. То ли RETAIN не работал, то ли сигнал с модуля статистики не появлялся без аккума - не вспомню сейчас.
приборист
03.03.2016, 23:01
Не понял. Так без аккумулятора разве работает вся єта мотня с RETAIN?
Я когда-то тоже удалял аккум, а потом показалось, что он таки нужен. То ли RETAIN не работал, то ли сигнал с модуля статистики не появлялся без аккума - не вспомню сейчас.
Может выразился не так.
Аккум на месте, просто в код при выключении добавил отправку в бесконечный цикл.
Чтобы ПЛК выключался сразу и не высаживал аккум (Владислав Филоненко рекомендовал в какой то теме).
Чтобы ПЛК выключался сразу и не высаживал аккум (Владислав Филоненко рекомендовал в какой то теме).Наверное, я тоже читал его совет. И именно так и делаю. Но! Вот сейчас, работает та программа, которая должна ловить из модуля статистики сигнал и входить в бесконечньій цикл - а при вьіключении питания я вижу 60 мА, которьіе тянутся из моего "аккумулятора". То есть, не срабатьівает весь механизм, связанньій с ловлей собьітия "НЕТ ПИТАНИЯ"...
А нужно что-то придумать. Или мож знатоки откроют какую-нить таину. Но без ритейна плохо.
Без аккумулятора ничего не будет сохраняться после отключения питания. Поэтому он для этого и нужен. Может 3.3 В маловато будет, где-то на форуме видел, что надо 3.7. RETAIN сохраняется в самый последний момент перед отключением и если аккумулятор дохлый, то может не успеть сохраниться.
Без аккумулятора ничего не будет сохраняться после отключения питания. Поэтому он для этого и нуженНу да, я понял, что неправильно понял слова прибориста.
Может 3.3 В маловато будет, где-то на форуме видел, что надо 3.7Да вряд ли. Хотя надо будет проверить, ок.
RETAIN сохраняется в самый последний момент перед отключением и если аккумулятор дохлый, то может не успеть сохраниться.Перед отключением чего? Есть сетевое питание, есть то, что назьівают Backup. Рассматривал только что файл log.txt - там идут парочкой сообщения о том, что произошел переход на Backup power, а потом - что Backup power тоже отключен. Так что известно о момента записи ритейнов в файл?
Ну, куплю аккум, в крайнем случае. Но как-то не верится, что нельзя его сьімитировать блоком питания...
Перед отключением чего?Перед отключением чего?
Есть подозрение, что перед тем как полностью разрядится аккумулятор. Вывод сделан по причине того, что если отключить питание ПЛК и включить его до того, как разрядится аккумулятор, то ПЛК продолжает работать, как будто его и не отключали. А вот если подождать минут 15, и после этого включить ПЛК, то RETAIN сохранится (может быть:)).
Если так, то боль-мень становится ясно. Мой внешний аккумулятор не отключается и потому ритейн не сохраняется. Если я его отключаю резко, то ПЛК не успевает записать файл. Ща попробую запитать от мощного блока питания, которьій просто медленно умрет...
То есть, такая точка зрения позволяет надеяться, что новьій аккум поможет сохранить ритейньі. Но меня мучает то, что сигнал из блока статистики тоже перестал работать. Он-то должен точно не по аккумулятору вьірабатьіваться! Хотя х.з... Жаль, что нам приходится гадать тут на кофейной гуще. Разработчик мог бьі поставить точки над "і".
Сигнал из модуля статистики у меня нормально срабатывал при отключении питания. И я нужные мне данные записывал в файл, после чего отключал аккумулятор с помощью бесконечного цикла. RETAINу не доверяю.
Да и у меня тоже. И я так точно писал свои данньіе в файл - по той же причине недоверия к организации хранения ритейнов. А потом расслабился, стал юзать и ритейн.
Ну ладно, забудем про ритейн. Я легко перетащу все в область, которую запишу в файл самостоятельно. Пользователи продукции ОВЕН - они ж такие, неприхотливьіе, да.
Но сейчас-то у меня и с модулем статистики непорядок, вот ведь что.
Ладно, будем считать, что имитация аккума блоком питания - ересь. Куплю аккум и буду пробовать снова получить сигнал из статистики. ПОтому как он, аккум, даже плохой - почему-то нужен. Без него и статистика не работает.
Спасибо за участие!
Евгений Дударев
04.03.2016, 10:22
Если работаете с плк100 и хотите сохранять "стандартные" retain-переменные, то необходим аккумулятор, который после пропадания питания займется сохранением retain.
Если хотите не зависеть от аккумулятора, но желание сохранять переменные (вести журнал аварий, другое) есть, то используем библиотеку SysLibFile. Однако есть нюанс: без аккумулятора, Вы не сможете отследить пропадание питание из модуля статистики, поэтому сохранять retain -переменные имеет смысл либо по изменению, либо по таймеру, либо по событию.
Совершенно справедливо. Именно так я и делаю, отлавливая пропадание питания. Сохранять переменніе по изменению не представляется возможньім - слишком бьістро износится память.
А вот про нюанс - как раз и интересно, зачем так сделано. Зачем разработчики вовлекли в систему генерации сигнала єтот ужасньій и недолговечньій аккумулятор.
Конечно, вопрос в воздух. ПЛК100 уже никто не будет усовершенствовать. Да он и так хорош, нужно только притерпеться к нюансам :)
либо по таймеру, либо по событию.
По событию но не чаще чем таймер. Без потерь изменений. Почти
ready:=ready or есть_изменения;
tof(in:=not tof.q and ready, pt :=..); //макс потеря за pt
if tof.in then
пишем;
ready:=false;
end_if
Вот и у меня такая же проблема, правда с ПЛК150:
Звонит заказчик, сообщает что контроллер после каждого отключения питания забывает время, настройки и программу (массив с переключениями на режимы). Хранятся настройки и массив с программой в Global retain, как они могли выпасть и обнулится ума не приложу.
Предполагаю что флешь полетела. Подозрительно что это произошло одновременно на двух одинаковых камерах, с одинаковой программой.
Но если предположить что флешь жива, а сдохли только батарейки, из за которых не происходит перезаписи ретайна, поможет ли принудительная перезагрузка(нажатие кнопки ресет на ПЛК) без отключения питания, как думаете?
При включении ПЛК читает ретаин переменные. Если файлик с ними попорчен в момент отключения при дохлых батареях, то они будут обнулены. Поэтому лучше самостоятельно сохранять важные данные и не надеяться на ретаин.
Спасибо за совет, наверное так и буду делать в будущем, а большие данные типа таблиц вообще хранить в панели и по объему ограничен так не буду.
Филоненко Владислав
06.07.2016, 09:11
При включении ПЛК читает ретаин переменные. Если файлик с ними попорчен в момент отключения при дохлых батареях, то они будут обнулены. Поэтому лучше самостоятельно сохранять важные данные и не надеяться на ретаин.
Но если при самостоятельной записи тоже выключится питание - результат будет аналогичен :)
Аккумулятор поменять не сложно.
Дмитрий Артюховский
06.07.2016, 12:19
3 - 4 выключения подряд и все равно какой аккумулятор, а заряжается он несколько часов до исходного состояния... чуть помогает не забывать ставить минимальное время до отключения и предусмотреть программную собаку по флагу "power"
Но если при самостоятельной записи тоже выключится питание - результат будет аналогичен :)...
Сравните вероятности этих событий.
..Аккумулятор поменять не сложно.
Несколько строчек кода - еще проще
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot