Начал изучать контроллеры ОВЕН и среду Codesys.
Моя первая задача такая: есть простейшая схема - кнопка и лампочка. Кнопка без фиксации НО, подключена к DI1. Лампочка через реле подключена к DO1.
Кнопку нажал - лампочка загорелась, второй раз нажал - потухла ну и т.д.
Вот такую программу написал на ST:
Вроде работает, но..... может быть можно как-то попроще...PROGRAM PLC_PRG
VAR
RTRIGInst: R_TRIG;
STATUS_BTN1: BOOL;
END_VAR
IF BTN1 = TRUE THEN (*Если нажали кнопку 1*)
RTRIGInst(CLK:= BTN1); (*Вызываем функцию генератора одиночного импульса по переднему фронту*)
IF RTRIGInst.Q = TRUE THEN
IF STATUS_BTN1 = TRUE THEN STATUS_BTN1 := FALSE; (*Если статус первого прожектора был "вкл", то отключаем*)
ELSE STATUS_BTN1 := TRUE; (*Иначе - включаем*)
END_IF
END_IF
ELSE RTRIGInst(CLK:= BTN1); (*Вызываем функцию генератора одиночного импульса по переднему фронту, чтобы сбросить в след. цикле*)
END_IF
IF STATUS_BTN1 = TRUE THEN RELAY1 := TRUE; (*Если статус первого прожектора "вкл", то включаем реле 1*)
ELSE RELAY1 := FALSE;
END_IF
Вообщем жду критики и замечаний.
Спасибо.