IF #start THEN
#Step_Variable := 1;
END_IF;
#Timer_1.TON(IN:=(#Step_Variable=1),
PT:=T#5S);
#Timer_2.TON(IN :=(#Step_Variable=3),
PT := T#5s);
CASE #Step_Variable OF
1:
#motor_1 := true;
IF #Timer_1.Q THEN
#Step_Variable := 2;
END_IF;
2:
#motor_2 := true;
IF #stop THEN
#Step_Variable := 3;
END_IF;
3:
#motor_2 := FALSE;
IF #Timer_2.Q THEN
#motor_1 := false;
#Step_Variable := 0;
END_IF;
END_CASE;
(*
IF #Step_Variable = 1 THEN
#motor_1 := true;
IF #Timer_1.Q THEN
#Step_Variable := 2;
END_IF;
ELSE IF #Step_Variable = 2 THEN
#motor_2 := true;
IF #stop THEN
#Step_Variable := 3;
END_IF;
ELSE IF #Step_Variable = 3 THEN
#motor_2 := FALSE;
IF #Timer_2.Q THEN
#motor_1 := false;
#Step_Variable := 0;
END_IF;
END_IF;
END_IF;
END_IF;
*)
可以发现,用CASE做顺控程序还是可以的。程序的后面部分用IF语句替代CASE语句的情况,效果也一样。
注意:把定时器放到CASE中,它的IN端口,在时间到达的时是不能切断的(大家可以分析其原因)。
朋友们如果感兴趣,可以看看我写的课程《S7-1200应用技术》。
https://mooc1-2.chaoxing.com/course/201475891.html
最后修改:2018/10/27 19:21:42