[西门子] TIA博图软件SCL程序编写和LAD程序编写对照案例(一)

[复制链接]
查看89 | 回复0 | 2024-4-5 13:00:33 | 显示全部楼层 |阅读模式

案例:
ABCD彩灯控制系统
设计彩灯顺序控制系统。控制要求:有四个灯A、B、C、D按下启动I0.0
A先亮1秒灭1秒,接着B亮1秒灭1秒,接着C亮1秒灭1秒,接着D亮1秒灭1秒,然后A、B、C、D同时亮2秒灭2秒。如此循环不断。。。。直到按下停止I0.1,待整个过程结束停止。
SCL流程写法:
REGION 启动OR停止
#R_TRIG_Instance(CLK := #启动);
IF #R_TRIG_Instance.Q AND #流程 = 0 THEN
#流程 := 1;
#停止标志 := 0;
#停止 := 0;
END_IF;
#R_TRIG_Instance_1(CLK := #停止);
IF #R_TRIG_Instance_1.Q THEN
#停止标志 := 1;
#启动 := 0;
END_IF;
END_REGION
REGION A先亮1秒灭1秒
IF #流程 = 1 THEN
#A := 1;
END_IF;
#T0(IN := #流程 = 1,
PT := T#1S);
IF #T0.Q THEN
#A := 0;
END_IF;
#T1(IN := #T0.Q,
PT := T#1S);
IF #T1.Q THEN
#流程 := 2;
END_IF;
END_REGION
REGION 接着B亮1秒灭1秒
IF #流程 = 2 THEN
#B := 1;
END_IF;
#T2(IN := #流程 = 2,
PT := T#1S);
IF #T2.Q THEN
#B := 0;
END_IF;
#T3(IN := #T2.Q,
PT := T#1S);
IF #T3.Q THEN
#流程 := 3;
END_IF;
END_REGION
REGION 接着C亮1秒灭1秒
IF #流程 = 3 THEN
#C := 1;
END_IF;
#T4(IN := #流程 = 3,
PT := T#1S);
IF #T4.Q THEN
#C := 0;
END_IF;
#T5(IN := #T4.Q,
PT := T#1S);
IF #T5.Q THEN
#流程 := 4;
END_IF;
END_REGION
REGION 接着D亮1秒灭1秒
IF #流程 = 4 THEN
#D := 1;
END_IF;
#T6(IN := #流程 = 4,
PT := T#1S);
IF #T6.Q THEN
#D := 0;
END_IF;
#T7(IN := #T6.Q,
PT := T#1S);
IF #T7.Q THEN
#流程 := 5;
END_IF;
END_REGION
REGION A、B、C、D同时亮2秒灭2秒
IF #流程 = 5 THEN
#D := #A := #B := #C := 1;
END_IF;
#T8(IN := #流程 = 5,
PT := T#2S);
IF #T8.Q THEN
#D := #A := #B := #C := 0;
END_IF;
#T9(IN := #T8.Q,
PT := T#2S);
IF #T9.Q THEN
#流程 := 6;
END_IF;
END_REGION
REGION 循环OR停止
IF #流程 = 6 AND #停止标志 THEN
#流程 := 0;

END_IF;
IF #流程 = 6 AND NOT #停止标志 THEN
#流程 := 1;
END_IF;
END_REGION
SCL比较指令写法:
#R_TRIG_Instance(CLK:=#启动);
IF #R_TRIG_Instance.Q THEN
#启动标志 := 1;
#停止 := 0;
END_IF;
#T0(IN:= #启动标志,
PT:=T#12S);
#A := (T#0S < #T0.ET AND #T0.ET <= T#1S) OR (T#8S< #T0.ET AND #T0.ET <= T#10S);
#B:= (T#2S< #T0.ET AND #T0.ET <= T#3S) OR (T#8S< #T0.ET AND #T0.ET <= T#10S);
#C := (T#4S < #T0.ET AND #T0.ET <= T#5S) OR (T#8S < #T0.ET AND #T0.ET <= T#10S);
#D := (T#6S < #T0.ET AND #T0.ET <= T#7S) OR (T#8S < #T0.ET AND #T0.ET <= T#10S);
#R_TRIG_Instance_1(CLK:=#停止);
IF #R_TRIG_Instance_1.Q THEN
#停止标志 := 1;
#启动 := 0;
END_IF;
IF #T0.Q AND NOT #停止标志 THEN
RESET_TIMER(#T0);
END_IF;
IF #T0.Q AND #停止标志 THEN
#启动标志 := 0;
#停止标志 := 0;
END_IF;
梯形图LAD写法:












免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则