Показано с 1 по 6 из 6

Тема: Сохранение переменной в памяти

  1. #1

    По умолчанию Сохранение переменной в памяти

    Всем привет)
    Возник небольшой вопрос, но т.к. нет прямого доступа до ПЛК (до среды) не могу проверить сам. Гугл не помог, поиск по сайту тоже (или просто я слишком быстро сдался)

    Вообщем есть переменная, к примеру так:

    VAR
    x1 : INT:=0;
    END_VAR

    где-то в программе я меняю её значение
    x1 := 20;

    Как мне сохранить это значение при отключении питания?
    Понятное дело не определять её с 0-вым значением. Но как загрузить в неё значение 20 из памяти при включении?

    Извиняюсь если вопрос глупый. Модель - плк73. Заранее спасибо)

  2. #2

    По умолчанию

    Ок. Почитал про Reatin переменные. Вот что сказано:
    Эти перемененные сохраняют свои значения, даже при аварийном отключении питания (равносильно RESET на контроллере)

    Значит ли это что как только я объявляю/меняю_значение переменной - она сразу пишется в память? И не вредно ли это для памяти - если менять придется до 1 раза в день или чаще. Сколько проживет так контроллер?

    Хотелось бы иметь возможность самому говорить когда сохранять - а когда нет. Если так возможно - подскажите как это реализовать.

  3. #3

    По умолчанию

    Блин извиняюсь - тема закрыта.

    Вот нашел ответ с этого форума:
    То есть изменять значение переменных, объявленных как Retain Вы можете сколько угодно раз. Но запишутся их значения в ЕЕПРОМ только в момент пропадания питания.

    Прошу прощения - тему можно удалить - или оставить для других крабиков.

  4. #4
    Пользователь
    Регистрация
    24.07.2012
    Адрес
    Россия
    Сообщений
    1,492

    По умолчанию

    Поправлю.
    Много возился и разбирался с ними.
    Retain записывается когда уже пропало питание, записывается от аккумулятора.
    ТОесть здесь важную роль играет аккумулятор и он должен быть хорошим, но на практике 2 из 10 плк у меня были с плохими.

  5. #5
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    884

    По умолчанию

    Цитата Сообщение от fzr125 Посмотреть сообщение
    То есть изменять значение переменных, объявленных как Retain Вы можете сколько угодно раз. Но запишутся их значения в ЕЕПРОМ только в момент пропадания питания.
    В свое время почитав много тем про RETAIN, увидел совет - читать из переменных RETAIN при включении ПЛК (флаг power и переменная start:bool:=false
    И записываем в эти переменные по пропаданию питания (флаг power)
    Даже есть примеры по этому делу.

    Я все проекты сейчас именно так и делаю, но наталкиваясь на такие темы, и увидев высказывание:
    Менять значение переменных, объявленных как Retain Вы можете сколько угодно раз. Но запишутся их значения в ЕЕПРОМ только в момент пропадания питания.
    У меня складывается ощущение, что я делаю бесполезную работу

    Итак, как правильно сохранять значения?
    1. Переменная RETAIN - в неё пишем и из неё читаем при пропадании питания (power из statistic)
    2. Просто переменные RETAIN
    3. Запись переменных в файл, при изменении их значений (SysLiFile, но беря во внимание что способ не подойдет, при слишком частом изменении параметров - протрем флэш)

  6. #6

    По умолчанию

    ты прав. на счет бесполезной работы )
    пункт два и не парься )

Похожие темы

  1. Уничтожение переменной
    от Киналь в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 16.01.2012, 12:11
  2. сохранение ин. в файлах
    от vvu2011 в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 12.10.2010, 14:52
  3. самозапуск переменной
    от smokin в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 17.12.2009, 15:35

Ваши права

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