Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 42

Тема: Retain переменные

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию Retain переменные

    Доброго времени суток. Хочу уточнить как часто Retain переменные пишутся в файл retain.bin

  2. #2

    По умолчанию

    Один раз при каждом пропадании питания.

  3. #3

    По умолчанию

    Цитата Сообщение от Николаев Андрей Посмотреть сообщение
    Один раз при каждом пропадании питания.
    К сожалению это так только в течении первого года эксплуатации ПЛК Овен.
    Поэтому лучше избегать использования retain переменных

  4. #4
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    Цитата Сообщение от Сергей_О Посмотреть сообщение
    Поэтому лучше избегать использования retain переменных
    И как тогда запоминать такие данные?

  5. #5

    По умолчанию

    Цитата Сообщение от Сергей_О Посмотреть сообщение
    К сожалению это так только в течении первого года эксплуатации ПЛК Овен.
    Поэтому лучше избегать использования retain переменных
    Не совсем так.
    Retain перестает сохраняться, когда выходит из строя аккумулятор, который и позволяет записать Retain при пропадании. Аккумулятор выходит из строя при определенных условиях эксплуатации - это пром. никелевыый аккумулятор. Аккумулятор может быть заменен, либо самостоятельно, либо в СЦ ОВЕН.

    Если сохранение Retain критично, и аккумулятор может выйти из строя - с помощью SysLibFile можно формировать на Flash ПЛК свой файл и сохранять в нем данные.
    Беда толко, что если аккумулятор мертв и питание пропало - файл не запишется. По этому надо проводить перезапись значений в файле достаточно часто...

  6. #6

    По умолчанию

    Цитата Сообщение от Николаев Андрей Посмотреть сообщение
    По этому надо проводить перезапись значений в файле достаточно часто...
    что приводит к постепенной деградации этой самой флэш памяти) проще пожалуй аккум поменять

  7. #7

    По умолчанию

    да если б он ещё там был на разъёмчике каком нибудь, а то с паяльником по объектам лазить не удобно!

  8. #8
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    Цитата Сообщение от swerder Посмотреть сообщение
    что приводит к постепенной деградации этой самой флэш памяти) проще пожалуй аккум поменять
    Ну, вряд ди ресурс такой малый. Речь же не идет о сохранении поминутно?
    А есть паспортное значение числа перезаписей?

    Так значит, оформив некоторое количество переменных в виде файла, можно этот файл записывать во флэш на борту ПЛК? Это выглядит просто как вызов функции? И происходит в фоновом режиме - или процессор тормозит, пока не запишет?

  9. #9
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    В ретайне нужны только жизненно необходимые данные
    Вот. Жизненно.
    Позволю сформулировать свои вопросы развернуто.
    Возникла потребность в сохранении значений некоторых переменных в энергонезависимой памяти ПЛК100. Просмотрев форум, поэкспериментировав на железке, хочу высказать несколько мыслей с надеждой на оценку их верности — или конструктивную критику. Для меня важно, не ошибаюсь ли я.

    Итак, я думаю, что в ПЛК100 есть ОЗУ на батарейном питании (RETAIN-переменные) и ЭППЗУ, именуемое флешкой.

    Объем RETAIN-памяти — 4...16 Кбайт. О ресурсе и надежности здесь на форуме говорится много, но похоже, что есть 2 момента, которые сделали для меня эту память не интересной.
    1) При аппаратном сбросе ПЛК кнопочкой данные теряются.
    2) При "зависании" программы — тот же эффект.
    Все это — следствие того, что сохранение в RETAIN-памяти происходит явным образом в момент, когда процессор почуял недоброе. Либо это пропадание питания, либо еще что — но при нажатии грубым животным весом более 1 кг (как сказал В.Филоненко) кнопки СБРОС или при улете программы по какому-нибудь недолеченному багу процессор ничего не учует.

    ВОПРОС НОМЕР 1: Я правильно понимаю эту слабость RETAIN-памяти?

    Как я понял, в ПЛК100 из-за питания всего контроллера от аккумулятора ресурс последнего — год или два, как я понял из отзывов. Сам не проверял. А мне не нужно, чтобы ПЛК боролся за жизнь 10 минут после выключения питания. Пусть лучше только память кушает электроэнергию.

    ВОПРОС НОМЕР 2: Есть ли возможность "отучить" ПЛК пожирать аккумулятор, а просто складывать ласты и тихо отходить — сразу по выключению питания? А еще лучше — сделать при этом сохранение указанных переменных в RETAIN-памяти, как ему и предписано.

    Флешка. Тут много спорят о ее ресурсе, цифры называются в диапазоне от мизерных 10 тысяч до маловероятных 20 миллионов циклов. Но другого в ПЛК100 нет, поэтому присмотрелся, пописАл в нее, почитал из нее.
    Верно ли, что туда-сюда можно только в виде файлов? Уточните, кто знает.
    Вроде как без проблем пишутся и читаются любые переменные, структуры, массивы (пример прилагается).

    ИНОФРМАЦИЯ НОМЕР 1: см.пример.

    Может кому будет полезно в том примере вот что. Меня порадовало то, что указатель на область, запихиваемую в файл (область эту в доках называют байтовым буфером, поэтому я определяю указатели именно как указатели на байтовые переменные), вполне можно направить на что угодно. Таким образом, поставив указатель на переменную иного, чем байт типа, указав СКОКА байт хотим в файл запихнуть — пишем без проблем. И достаем так же.

    А теперь о своих страхах. Мне кажется, что использование энергонезависимой памяти в ПЛК, популярное в задачах автоматики, несколько отличается от того, что нужно в моей задаче. У меня ПЛК есть просто контроллер (практически автономного) измерительного устройства. Он:
    а) чаще всего работает совершенно автономно и никакой СКАДы над ним не нависает. Не стоит перед ним задача журналирования событий, столь распространенная в системах автоматики, как некому и сбрасывать журнал
    б) энергонезависимая память нужна моему ПЛК для 2-х вещей:
    - накопление некоторой переменной, просто как счетчик электроэнергии: растет-растет, дошел до 9 девяток и сбросился в ноль, начинает расти дальше. Его приращение происходит реально раз на несколько секунд-несколько десятков секунд, поэтому за 8-10 лет работы в 3 смены теоретически может быть 60 млн приращений. Реально так не бывает, но речь идет о миллионах, а не о десятках тысяч раз;
    - запоминание некоторых конфигурационных параметров. Это параметры, настраиваемые в процессе работы прибора, с соблюдением прав доступа и прочей лабуды, ВОПЧЕМ, важные параметры. Случай повреждения такого параметра может приравниваться к серьезной поломке прибора, причем стоимость восстановления может быть больше цены прибора. Без шуток.

    И вот я думаю.
    Можно доверить RETAIN-памяти хранение моих данных? Стремно, если через год-два начнет пропадать.
    Можно ли обойтись одной только флешкой ПЛК100? Нельзя. Нет ресурса на миллионы записей.

    Поэтому хочу использовать компромиссное решение: накапливаю переменную в RETAIN-памяти, а раз в ??? минут — сбрасываю во флешку. Вот тут-то и пригодилась бы непротиворечивая информация о ресурсе флешки — чтобы верно оценить, какой делать интервал. В году полмиллиона минут...

    ВОПРОС НОМЕР 3: Так сколько же раз допускает флешка запись?

    И хочу попросить, бесперебойники и комп верхнего уровня — не предлагайте. И кучерявые ПЛК с карточкой. Мне во всем хватает старичка ПЛК100.
    Вложения Вложения

  10. #10

    По умолчанию

    Цитата Сообщение от drvlas Посмотреть сообщение
    1) При аппаратном сбросе ПЛК кнопочкой данные теряются.
    2) При "зависании" программы — тот же эффект.
    с большой вероятностью правда
    Цитата Сообщение от drvlas Посмотреть сообщение
    ВОПРОС НОМЕР 2: Есть ли возможность "отучить" ПЛК пожирать аккумулятор, а просто складывать ласты и тихо отходить — сразу по выключению питания? А еще лучше — сделать при этом сохранение указанных переменных в RETAIN-памяти, как ему и предписано.
    возможность есть, на форуме даже решения есть. гарантии только нет, что через год-два все будет работать так же идеально как в первую неделю
    Цитата Сообщение от drvlas Посмотреть сообщение
    Поэтому хочу использовать компромиссное решение: накапливаю переменную в RETAIN-памяти, а раз в ??? минут — сбрасываю во флешку. Вот тут-то и пригодилась бы непротиворечивая информация о ресурсе флешки — чтобы верно оценить, какой делать интервал. В году полмиллиона минут...
    интервал скорее надо рассчитывать из допустимой ошибки подсчета. если за полчаса не сильно изменяется, можно раз в полчаса, если же меняется кардинально раз в минуту...

Страница 1 из 3 123 ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •