Просмотр полной версии : Сохранение переменной в памяти
Всем привет)
Возник небольшой вопрос, но т.к. нет прямого доступа до ПЛК (до среды) не могу проверить сам. Гугл не помог, поиск по сайту тоже (или просто я слишком быстро сдался)
Вообщем есть переменная, к примеру так:
VAR
x1 : INT:=0;
END_VAR
где-то в программе я меняю её значение
x1 := 20;
Как мне сохранить это значение при отключении питания?
Понятное дело не определять её с 0-вым значением. Но как загрузить в неё значение 20 из памяти при включении?
Извиняюсь если вопрос глупый. Модель - плк73. Заранее спасибо)
Ок. Почитал про Reatin переменные. Вот что сказано:
Эти перемененные сохраняют свои значения, даже при аварийном отключении питания (равносильно RESET на контроллере)
Значит ли это что как только я объявляю/меняю_значение переменной - она сразу пишется в память? И не вредно ли это для памяти - если менять придется до 1 раза в день или чаще. Сколько проживет так контроллер?
Хотелось бы иметь возможность самому говорить когда сохранять - а когда нет. Если так возможно - подскажите как это реализовать.
Блин извиняюсь - тема закрыта.
Вот нашел ответ с этого форума:
То есть изменять значение переменных, объявленных как Retain Вы можете сколько угодно раз. Но запишутся их значения в ЕЕПРОМ только в момент пропадания питания.
Прошу прощения - тему можно удалить - или оставить для других крабиков.
Поправлю.
Много возился и разбирался с ними.
Retain записывается когда уже пропало питание, записывается от аккумулятора.
ТОесть здесь важную роль играет аккумулятор и он должен быть хорошим, но на практике 2 из 10 плк у меня были с плохими.
приборист
14.06.2014, 13:29
То есть изменять значение переменных, объявленных как Retain Вы можете сколько угодно раз. Но запишутся их значения в ЕЕПРОМ только в момент пропадания питания.
В свое время почитав много тем про RETAIN, увидел совет - читать из переменных RETAIN при включении ПЛК (флаг power и переменная start:bool:=false;)
И записываем в эти переменные по пропаданию питания (флаг power)
Даже есть примеры по этому делу.
Я все проекты сейчас именно так и делаю, но наталкиваясь на такие темы, и увидев высказывание:
Менять значение переменных, объявленных как Retain Вы можете сколько угодно раз. Но запишутся их значения в ЕЕПРОМ только в момент пропадания питания.
У меня складывается ощущение, что я делаю бесполезную работу :)
Итак, как правильно сохранять значения?
1. Переменная RETAIN - в неё пишем и из неё читаем при пропадании питания (power из statistic)
2. Просто переменные RETAIN
3. Запись переменных в файл, при изменении их значений (SysLiFile, но беря во внимание что способ не подойдет, при слишком частом изменении параметров - протрем флэш)
ты прав. на счет бесполезной работы )
пункт два и не парься )
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot