Добрый день. Подскажите как решить задачу. Делаю дома управление светом. Необходимо чтобы при нажатии на выключатель кнопку 1 раз свет включался, 2 раз выключался. Так же на один выключатель который будет в коридоре сделать выключение всех групп света.
Код HTML:
FUNCTION_BLOCK prim1
VAR_INPUT
in: BOOL; (*кнопка*)
off:BOOL; (*на этот вход подается выход off_all для отключения всех групп освещения*)
END_VAR
VAR_OUTPUT
Q: BOOL; (*лампочка*)
off_all:BOOL; (*выход для выключения всех лампочек*)
END_VAR
VAR
step: BYTE;
R_TRIG1: R_TRIG;
TON1: TON;
pt: TIME := t#3s;
END_VAR
----------------------------
TON1(IN:=in , PT:=pt , Q=> , ET=> ); (*таймер для отключения всего освещения*)
R_TRIG1(CLK:=in , Q=> );(*нужен для включения/выключения лампочки в коридоре*)
CASE step OF
0: (*шаг включение лампочки*)
IF R_TRIG1.Q THEN
Q:=TRUE;
step:=1;
END_IF
1: (*шаг отключения лампочки*)
IF R_TRIG1.Q THEN
Q:=FALSE;
step:=0;
END_IF
END_CASE
(*для отключения всего освещения*)
off_all:=TON1.Q;(*если кнопку держали 3 секунды отключаем все группы освещения*)
IF off THEN (*пришел сигнал на оключение всех групп освещения*)
Q:=FALSE;
step:=0;
END_IF