PDA

Просмотр полной версии : Безостановочный счетчик в ПЛК150



Yury Evgenev
13.10.2013, 19:17
Здравствуйте!

Нужно считать некоторые импульсы, причем после сброса питания ПЛК считать нужно с того места, на котором остановились до выключения.
Я так понимаю, нужно делать через счетчик CTU объявленный в локальном блоке как VAR RETAIN?
или есть ещё какие-то методы?



VAR RETAIN
CTUcounter:CTU
END VAR

CTUcounter(CU:= signal.Q, RESET:=CTUProduct.Q, PV:= 1000);
counterVarToArchive:=CTUProduct.CV;
Просто попробовал сделать - всё равно счетчик обнуляет при выключении:(

Sergey666
13.10.2013, 20:09
Var_retain

Count_imp : dword;
end_var
Var

Rtrig_in :r_trig;
In :Bool
End_var

Rtrig_in(Clk:=In);
if Rtrig_in.Q then
Count_imp:=Count_imp+1;
end_if

Может так попроще будет??? И наглядней и для ума зарядка.

Yury Evgenev
13.10.2013, 20:18
В принципе, как вариант. Просто думал использовать стандартные функции. Было интересно всё же сохранить состояние счетчика CTU.
Кстати, кто знает сохранность Retain переменных зависит от какой-то там батарейки или они на флэш записываются?

petera
13.10.2013, 23:25
В принципе, как вариант. Просто думал использовать стандартные функции. Было интересно всё же сохранить состояние счетчика CTU.
Кстати, кто знает сохранность Retain переменных зависит от какой-то там батарейки или они на флэш записываются?
Сохраняются на флеш, но только если аккумулятор в ПЛК живой. тогда в ретайн будут последние данные:rolleyes:
А если не живой, то данные будут на тот момент времени, когда аккумулятор еще был исправен