Наверное можно. Если знать как. Я не знаю
Наверное можно. Если знать как. Я не знаю
var
Tmr_1s:ton;
end_var
Tmr_1s(In:=not(Tmr_1s.Q),Pt:=t#1s);
if Tmr_1s.Q then
Your_program;
end_if
Спасибо! И эта конструкция будет перезапускаться автоматом каждую секунду?
Нет. Эта конструкция будет перезапускаться автоматом не чаще чем раз в секунду+1 цикл
ОК. Спасибо.
Я вообще не юзаю все эти таймеры, для всего хватает только функции TIME(), если например нужно делать что-то периодически, просто в нужный момент загоняю в определённую переменную текущее значение TIME(), и потом проверяю разность TIME() - <Переменная>. При этом саму функцию TIME() можно не вызывать по сто раз за цикл, а в начале каждого цикла присваивать её значение какой-то переменной, и потом работать уже с этой переменной. ИМХО, без этих таймеров оптимальнее.
P. S. Кстати когда TIME() переходит через границу диапазона (раз в 49 суток вроде), то разность его с предыдущим значением (которое было запомнено до переполнения диапазона) не станет "космической", и всё равно будет верной. Опять же за счёт этого переполнения диапазона в результате вычитания. Проверено.
Последний раз редактировалось Boris_K; 13.03.2014 в 16:54.