PDA

Просмотр полной версии : Retain-переменные



Newcomer
26.04.2016, 13:41
Добрый день.

Сетевые переменные являются по умолчанию Retain-переменныи и должны сохраняться при выключении питания.

У меня они почему-то не сохраняются. Загружаю программу в ПЛК, задаю с ИП320 значения сетевых переменных, вижу в отладчике, что сетевые переменные принимают нужные значения. Выключаю ПЛК, включаю ПЛК и вижу в отладчике, что сетевые переменные обнулились.
Работаю с обновленным ПЛК110.

В чем может быть причина ?

lara197a
26.04.2016, 13:58
что за ПЛК?
каково состояние аккумулятора?
как организована программа?

Newcomer
26.04.2016, 14:02
что за ПЛК?
каково состояние аккумулятора?
как организована программа?

ПЛК110[М02]

В этом ПЛК аккумулятор не предусмотрен.

В программе нет обнуления сетеывых переменных.

Значения сетеыых переменных задаются с панели ИП320.

capzap
26.04.2016, 14:04
Вы же до недавнего времени изучали бибку работы с файлами, отсюда вопрос, не читаете ли Вы файл с ретайн-переменными из своей программы?

lara197a
26.04.2016, 14:04
кто мастер?

Newcomer
26.04.2016, 14:09
кто мастер?

Master - панель.

Newcomer
26.04.2016, 14:10
Вы же до недавнего времени изучали бибку работы с файлами, отсюда вопрос, не читаете ли Вы файл с ретайн-переменными из своей программы?

Нет не читаю.

lara197a
26.04.2016, 14:15
в м02 стоит батарейка.
остальное тоже самое.
должно сохранять, если только из панели после включения
сразу нули не записываете.
попробуйте после отключения питания отключить связь с панелью и потом подать питание на плк

Newcomer
26.04.2016, 14:31
должно сохранять, если только из панели после включения сразу нули не записываете.

Нет, не записываю.


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

Не помогло.

Может, уважаемый В.Филоненко что-то подскажет.

melky
26.04.2016, 14:41
Переменные прописаны в конфигураторе ? тогда при восстановлении связи должны прилетать значения панели по идее.

ПЛК не сохраняет переменные, пока команды не придет системы, надо ждать по времени а не выключать и сразу включать.

Newcomer
26.04.2016, 14:47
Переменные прописаны в конфигураторе ? тогда при восстановлении связи должны прилетать значения панели по идее.

ПЛК не сохраняет переменные, пока команды не придет системы, надо ждать по времени а не выключать и сразу включать.

А сколько ждать ? В реальной обстановке напряжение может пропасть на короткое время и что тогда.

melky
26.04.2016, 15:35
Ничего, подключать ПЛК на ИБП

amn
26.04.2016, 15:35
Подстелить соломки и самому записать в файл то, что надо сохранить.

Newcomer
26.04.2016, 15:56
Так механизм Retain есть или нет ?

amn
26.04.2016, 16:30
Отключите контроллер и подождите минут 20. Потом включите и сразу увидите есть или нет. Переменные ретайн сохраняются в последний момент перед отключением, когда разрядится аккумулятор. Если аккумулятор дохлый, то они не успеют записаться. А надо ли рисковать, если данные важные?

Валенок
26.04.2016, 16:44
Так механизм Retain есть или нет ?
Ретайн - есть. Но у вас он сетевой, а значит вы зависите от внешних мозгов мастера и его настроения.
См. #13

Newcomer
26.04.2016, 16:45
Отключите контроллер и подождите минут 20. Потом включите и сразу увидите есть или нет. Переменные ретайн сохраняются в последний момент перед отключением, когда разрядится аккумулятор. Если аккумулятор дохлый, то они не успеют записаться. А надо ли рисковать, если данные важные?

У меня новый ПЛК110 и там нет аккумулятора. Там память для Retain другая, ей аккумулятор не нужен.

Newcomer
26.04.2016, 17:18
Может программа должна быть записана во Flash ПЛК чтобы сохранялись переменные Retain.

Newcomer
26.04.2016, 17:24
Ретайн - есть. Но у вас он сетевой, а значит вы зависите от внешних мозгов мастера и его настроения.
См. #13

Сделал не сетевую Retain-переменную. Записал в нее не нулевое значение. Выключил ПЛК, включил ПЛК, Retain-переменная обнулилась.

Newcomer
26.04.2016, 17:25
Владислав Филоненко, караул, помогите. ;)

Newcomer
26.04.2016, 18:00
Подстелить соломки и самому записать в файл то, что надо сохранить.

Может использовать Модуль «Архиватор» (Archiver), если с Retain ничего не получится.

amn
27.04.2016, 01:16
Проще в файл сохранять. http://www.owen.ru/forum/showthread.php?t=23895&p=206746&viewfull=1#post206746

Newcomer
27.04.2016, 11:01
Техподдержка фирмы "ОВЕН" по теме что-то может ответить ?

Евгений Дударев
29.04.2016, 14:10
В новом ПЛК110 М02, действительно, нет аккумулятора. Сохранением retain переменных занимается специальный конденсатор, ресурс которого превышает эксплуатационный срок самого контроллера ( в старых ПЛК110 и ПЛК100,150,154, 160 сохранением энергонезависимых переменных занимался аккумулятор, который имеет ресурс ( приблизительно) 500 циклов заряда-разряда, после чего сохранение retain не происходит). Значение часов реально времени хранится при помощи батарейки.
Переменные расположенные в области памяти ввода-вывода являются энергонезависимыми. Если ИП320 (master), и пользователь производит запись, например, регистра в ПЛК ( slave - устройство), то в slave-области ввода-вывода ПЛК ( Codesys -> Конфигурация ПЛК) в соответствующем регистре будет отображено полученное значение от мастера сети (ИП320). Далее, после сброса питания ( и панели и ПЛК) , при наличии проекта в ПЛК, на ИП320 отобразится последнее записанное в ПЛК значение, тем самым подтверждая факт, что slave-область ввода-вывода энергонезависима.
Приложил пример проекта : ИП320 (мастер) по команде пользователя ( нажимаете Set, устанавливаете указатель ввода на соответствующее поле, вводите необходимое значение для записи в плк, нажимаете ENT) посылает регистр данных в ПЛК ( слейв). Также на панели идет параллельный опрос этого же регистра из плк. Если проект находится в контроллере, то после сброса питания на ИП320 отобразится последнее записанное значение.

Oak
10.05.2016, 15:36
Уважаемая поддержка! Можно также подробно и про работу ретаин памяти для плк100 под мастер плк.
вот здесь описание проблемы:
http://www.owen.ru/forum/showthread.php?t=24027

Prevan
14.08.2023, 06:48
Добрый день!
При выключении и повторном включении питания ПЛК110 и панели ИПП120 не сохраняются уставки, заданные в ИПП120.
ИПП120 является мастером - ПЛК110 слэйв.

Первоначальное значение переменных задано в ПЛК100 в разделе "Global_Variables". Пример записи для одной из переменных ниже:

VAR_GLOBAL RETAIN PERSISTENT

SP_Tin AT %QW7.11.0: INT := 20; (* Уставка температуры приточного воздуха *)
END_VAR

Значение SP_Tin по задумке должно задаваться и считываться с панели ИПП120.
При включении питания ПЛК110 и панели ИПП120 значение SP_Tin = 0, т.е. первоначально заданное значение указанное в VAR_GLOBAL RETAIN PERSISTENT = "20" не сохраняется.
При задании значения SP_Tin с панели ИПП120, в ПЛК110 значение меняется, можно выставить желаемые 20 градусов.

Но при выключении и включении питания ПЛК110 и панели ИПП120 значение SP_Tin, как и значения других уставок сбрасывается в 0.

Подскажите, в чём может быть проблема?

1exan
14.08.2023, 06:53
Если адрес %QW7.11.0 относится к области Slave конфигурации ПЛК, то попробуйте убрать RETAIN PERSISTENT.
Начальное значение в таком случае будет присвоено по команде "Сброс" меню отладки кодесиса.

Sulfur
15.08.2023, 12:55
Prevan

VAR_GLOBAL RETAIN PERSISTENT

SP_Tin AT %QW7.11.0: INT := 20; (* Уставка температуры приточного воздуха *)
END_VAR
Явная адресация зло. Объявите переменную сразу в Конфигурации ПЛК (ваше объявление пока закомментируйте). При таком способе значения обнуляются только в момент обновления проекта.
69609
Можно дополнительно сделать стартовую (при включении ПЛК) проверку на нулевые значения, при обнаружении которых выставляются некие базовые значения.