PROGRAM PLC_PRG
VAR
t : TIME;
timing : TIME := t#10s; (* время_например*)
w : BOOL; (*концевик конца цикла*)
a: BOOL; (*определися_таки*)
in_w: (blue:=1, white:=2, red:=3, hite:=4); (* исходная_позиция*) (* отработка*)(* продолжать_дальше*)(* прервать_процесс*)
Start: BOOL; (* Старт программы*)
i_1: REAL;(* Для прверки переходов*)
i_2: REAL;(* Для прверки переходов*)
i_3: REAL;(* Для прверки переходов*)
i_4: REAL;(* Для прверки переходов*)
END_VAR
CASE in_w OF
blue: (* исходная_позиция*)
IF Start THEN (* Старт программы*)
t := TIME();
in_w := white;
END_IF
i_1:=i_1+1;
white: (* отработка*)
IF w THEN (*концевик конца цикла*)
in_w := red;
ELSIF TIME() - t > timing THEN
i_2:=i_2+1;
in_w := SEL(a, blue, hite);
END_IF
red: (* продолжать_дальше*)
i_3:=i_3+1;
;
hite: (* прервать_процесс*)
i_4:=i_4+1;
;
END_CASE
Вот что получилось, вроде работает.
Может кто поможет, а как привязать эти переменные к физическим вх.\вых.(M,D,X,Y,Q) .
Я пока испытываю в эмуляторе.