PDA

Просмотр полной версии : ПЛК100.Запись Retain



mkhm
12.12.2012, 17:37
1. Возможно ли программно иницировать запись переменных RETAIN? (Для сохранения перед перезагрузкой по Watchdog)

2. Разве не правильно было бы автосохранение Retain переменных в том числе и при событии по Watchdog (перед перезагрузкой)?

petera
12.12.2012, 17:51
1. Возможно ли программно иницировать запись переменных RETAIN? (Для сохранения перед перезагрузкой по Watchdog)

2. Разве не правильно было бы автосохранение Retain переменных в том числе и при событии по Watchdog (перед перезагрузкой)?
А зачем? Ведь ПЛК не выключается. Разве RETAIN до и после перезагрузки будут отличатся?

mkhm
12.12.2012, 18:14
А зачем? Ведь ПЛК не выключается. Разве RETAIN до и после перезагрузки будут отличатся? У меня на данный момент - да(прошивку недавно обновил на ПЛК100R,CS 2.3.9.32,библиотеки брал свежие) Причем для экспериментов взял Ваш пример с ST
IF ST1 THEN
CTU1(
LOAD:=ST1 ,
PV:=Time1 ,
CV=>Time1 );
ST1:=FALSE;
END_IF
BL1(ENABLE:=1 , TIMELOW:=t#0.5s , TIMEHIGH:=t#0.5s );
CTU1(LOAD:=0, CU:=BL1.OUT , CV=>Time1 );


WHILE(RESTART=TRUE) DO ;
END_WHILE;

Time1 ,видимо, обновляется из Retain.bin при загрузке, перед перезагрузкой не записывается.
Из форума - запись при пропадании питания, и через 10 мин после. Очень бы хотелось: уж если вынуждены перезагружать, то иметь возможность сохранить retain

Гарчев Евгений
14.12.2012, 18:28
Если необходимо запоминать значение переменной перед перезагрузкой, то создайте файл и пишите ее в файл, перезагружайте контроллер и читайте из файла (библиотека - SysLibFile.lib).