Здравствуйте.

Не пойму, почему так таймеры работают? Хочу померить время между началом и концом процесса.
Пишу:

TIMEdoz: TON;
d: TIME;

IF Knopka= TRUE THEN
OUT := TRUE;
TIMEdoz(IN:=TRUE,PT:=t#100s);
END_IF

IF Datchik = TRUE THEN
d:=TIMEdoz.ET;
OUT := FALSE;
TIMEdoz.IN := FALSE;
END_IF

После нажатия на кнопку и концом процесса первый раз d = 0; второй раз - d = первому времени процесса...
Если добавить перед d:=TIMEdoz.ET еще раз TIMEdoz(IN:=TRUE,PT:=t#100s) , то всё считает. Но так ведь не правильно?