PDA

Просмотр полной версии : Reset сбрасывает retain-таймеры :( ?



Валенок
01.04.2009, 22:37
Прочел почти все вопросы-ответы по подобным темам.
На словах все хорошо. А на деле ?

Мои действия :

(ПЛК100-220-Р-L)
Скачал прошивку 2.05 и таржет 2.05
Вышел из Codesys
Зашел в InstallTarget
Снес старый таржет
Поставил скаченный таржет
Вышел из InstallTarget
Перепрошил ПЛК с форматированием
Зашел в Codesys
Забил простейший код:

VAR RETAIN PERSISTENT
t : TON;
END_VAR
-----------------------
t( IN := TRUE, pt := T#60m );
IF t.Q THEN
t( IN := FALSE );
END_IF

Поставил Simulation
Логин
Ok
Разлогин
Подключил контроллер
Снял Simulation
Логин
Reset original
Разлогин
Логин
Run
Create boot
Ok
Еще раз Create boot
Ok
Разлогин
Выключил питание контроллера
Подождал около 15мин.
Включил питание контроллера
Логин (New program и Downloadов не было)

Смотрю на t.ET - Ну и сколько должно быть ?
5-15сек или 15-16мин ?

У меня первое. А ведь должно быть второе. Retain не retain ?

PS
С другими переменными (не таймеры), объявлеными в том же разделе, все нормально.

" ...Для примера, такие "сохраняемые и постоянные" переменные можно применить для таймера продолжающего выдержку времени после аварии питания..." - из Codesysного хелпа на который тут уже ссылались.

Валенок
01.04.2009, 23:07
Нужно ровно через час чего-то включить.
А во время ожидания может пропасть питание на 15-20мин.
Ну и чего ? Папандос ?
Свой TON из syslibtime мастерить ?

Филоненко Владислав
02.04.2009, 10:17
Т.е. Вы ожидаете, что ПЛК работает без питания? Типа вечный двигатель?
retain сохраняется в момент выключения питания, а не при reset ПЛК.

Валенок
02.04.2009, 14:59
Уважаемый Владислав. Вы второй пост почитайте.

Я ожидаю что при включении TOF с задержкой в 60 минут,
работе в течении 15 минут, пропадании питания на 40 минут и
включении питания - выход Q TOF'а был TRUE еще в течении 5 минут.

И это нормальное ожидание после прочитанного :
" ...Для примера, такие "сохраняемые и постоянные" переменные можно применить для таймера продолжающего выдержку времени после аварии питания..." - из Codesysного хелпа


А чо, значение RETAIN-переменной типа WORD (без инициализации в разделе объявлений ) при отсутствии элпитания в течении 15мин у Вас типа пропадает ? У меня сохраняется. Наверно вечный двигатель все-таки есть.
И при Resetе (кнопкой конроллера) сохраняется. Точно - вечный двигатель есть.

Таймеры значит все-таки НЕ ЭНЕРГОЗАВИСИМЫЕ (батарейку не имею ввиду).

Таймеры типа системные часики используют. Или все-таки нет ?

Филоненко Владислав
02.04.2009, 16:06
С чего бы это? Таймеры TON и иже с ними работают на основе внутреннего времени с момента старта. Стандартное поведение всех таймеров такого типа на всех ПЛК на основе CoDeSys
Если хочется такого поведения, как Вы описываете - используйте время из библиотеки SysLibTime и в ретайн сохраняйте время старта. Придётся сделать свой собственный ФБ.