PDA

Просмотр полной версии : Мистика с таймерами.



Frayl
12.09.2012, 09:41
Добрый день. Подскажите в чем я глючу, пожалуйста. Следующий код работает только один раз. Далее ПЛК приходится сбрасывать.

shake,sh_on,sh_off:TP;

case sysstate of
0:

if IN1 then sysstate:=1; end_if;

1:
shake(in:=true, PT:=shon*3+shpause*3);
IF shake.Q THEN
clLINE:=sh_off.Q;
clSOPLO:=sh_off.Q;
clCAMERA:=sh_off.Q;
clRESET:=sh_off.Q;

sh_on(IN:=NOT sh_off.Q,PT:=shon);
sh_off(IN:=NOT sh_on.Q,PT:=shpause);
ELSE
shake.IN:=FALSE;
sh_on.IN:=FALSE;
sh_off.IN:=FALSE;
sysstate:=0;
END_IF;
END_CASE;

in1 - вход-кнопка.

capzap
12.09.2012, 10:01
Добрый день. Подскажите в чем я глючу, пожалуйста. Следующий код работает только один раз. Далее ПЛК приходится сбрасывать.

shake,sh_on,sh_off:TP;

case sysstate of
0:

if IN1 then sysstate:=1; end_if;

1:
shake(in:=true, PT:=shon*3+shpause*3);
IF shake.Q THEN
clLINE:=sh_off.Q;
clSOPLO:=sh_off.Q;
clCAMERA:=sh_off.Q;
clRESET:=sh_off.Q;

sh_on(IN:=NOT sh_off.Q,PT:=shon);
sh_off(IN:=NOT sh_on.Q,PT:=shpause);
shake(in:=false);
ELSE
sh_on.IN:=FALSE;
sh_off.IN:=FALSE;
sysstate:=0;
END_IF;
END_CASE;

in1 - вход-кнопка.

вот так попробуйте

Frayl
12.09.2012, 10:03
разобрался. (кажется, что разобрался, по крайней мере работает)
оказывается мало shake.IN:=false;
когда заменил shake.in:=false На shake(in:=false) стало работать как надо.

Frayl
12.09.2012, 10:03
хах) спасибо) значит правильно разобрался