发表于:2018/10/27 18:21:37
#0楼
接触S7-1200的时间不是很长,但人个感觉TIA PROTAL中的SCL编程语言还不错,下面是我写的一个传送带的启停程序:
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
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编辑过]