Вот. Жизненно.
Позволю сформулировать свои вопросы развернуто.
Возникла потребность в сохранении значений некоторых переменных в энергонезависимой памяти ПЛК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.