Просмотр полной версии : 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.
Вы же до недавнего времени изучали бибку работы с файлами, отсюда вопрос, не читаете ли Вы файл с ретайн-переменными из своей программы?
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
должно сохранять, если только из панели после включения сразу нули не записываете.
Нет, не записываю.
попробуйте после отключения питания отключить связь с панелью и потом подать питание на плк
Не помогло.
Может, уважаемый В.Филоненко что-то подскажет.
Переменные прописаны в конфигураторе ? тогда при восстановлении связи должны прилетать значения панели по идее.
ПЛК не сохраняет переменные, пока команды не придет системы, надо ждать по времени а не выключать и сразу включать.
Newcomer
26.04.2016, 14:47
Переменные прописаны в конфигураторе ? тогда при восстановлении связи должны прилетать значения панели по идее.
ПЛК не сохраняет переменные, пока команды не придет системы, надо ждать по времени а не выключать и сразу включать.
А сколько ждать ? В реальной обстановке напряжение может пропасть на короткое время и что тогда.
Ничего, подключать ПЛК на ИБП
Подстелить соломки и самому записать в файл то, что надо сохранить.
Newcomer
26.04.2016, 15:56
Так механизм Retain есть или нет ?
Отключите контроллер и подождите минут 20. Потом включите и сразу увидите есть или нет. Переменные ретайн сохраняются в последний момент перед отключением, когда разрядится аккумулятор. Если аккумулятор дохлый, то они не успеют записаться. А надо ли рисковать, если данные важные?
Так механизм 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 ничего не получится.
Проще в файл сохранять. 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 отобразится последнее записанное значение.
Уважаемая поддержка! Можно также подробно и про работу ретаин памяти для плк100 под мастер плк.
вот здесь описание проблемы:
http://www.owen.ru/forum/showthread.php?t=24027
Добрый день!
При выключении и повторном включении питания ПЛК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.
Подскажите, в чём может быть проблема?
Если адрес %QW7.11.0 относится к области Slave конфигурации ПЛК, то попробуйте убрать RETAIN PERSISTENT.
Начальное значение в таком случае будет присвоено по команде "Сброс" меню отладки кодесиса.
Prevan
VAR_GLOBAL RETAIN PERSISTENT
SP_Tin AT %QW7.11.0: INT := 20; (* Уставка температуры приточного воздуха *)
END_VAR
Явная адресация зло. Объявите переменную сразу в Конфигурации ПЛК (ваше объявление пока закомментируйте). При таком способе значения обнуляются только в момент обновления проекта.
69609
Можно дополнительно сделать стартовую (при включении ПЛК) проверку на нулевые значения, при обнаружении которых выставляются некие базовые значения.
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot