加入收藏 在线留言 联系我们
关注微信
手机扫一扫 立刻联系商家
全国服务热线15915421161
公司新闻
西门子S7-1200 CPU程序案例
发布时间: 2024-04-29 14:50 更新时间: 2024-11-26 07:00
案例:交通红绿灯设计交通红绿灯PLC控制系统,控制要求:1)东西向:绿灯亮5秒,绿灯闪3次(灭0.5秒亮0.5秒),黄灯亮2秒,红灯亮10秒。2)南北向:红灯亮10秒,绿灯亮5秒,绿灯闪3次,黄灯亮2秒。3)按下启动正常运行,按下停止等待整个过程停止后双向黄灯闪烁(灭0.5秒亮0.5秒)。案例运行图:案例程序:第一种写法:SCL编程语言利用流程方式编写(流程:项目程序执行步骤)1.变量采用FB块编写,变量建立在FB的背景块Static选项下2.程序//启动 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;//东西绿灯亮5sIF #流程 = 1 THEN#南北红灯 := #东西绿灯 := 1;END_IF;#T0(IN:=#流程 = 1,PT:=T#5S);IF #T0.Q THEN#流程 := 2;END_IF;//东西绿灯闪3次IF #流程 = 2 THEN#东西绿灯 :=0;END_IF;#T1(IN:=#流程 = 2,PT:=T#0.5S);IF #T1.Q THEN#东西绿灯 := 1;END_IF;#T2(IN:=#T1.Q,PT:=T#0.5S);IF #T2.Q THENRESET_TIMER(#T1);#东西绿灯闪3次 += 1;END_IF;IF #东西绿灯闪3次>=3 THEN#流程 := 3;#东西绿灯 := 0;#东西绿灯闪3次 := 0;END_IF;//东西黄灯亮2sIF #流程 = 3 THEN#东西黄灯 := 1;END_IF;#T3(IN:=#流程 = 3,PT:=T#2S);IF #T3.Q THEN#东西黄灯 :=0;#南北红灯 := 0;#流程 := 4;END_IF;//南北绿灯亮5sIF #流程 = 4 THEN#东西红灯 := #南北绿灯 := 1;END_IF;#T4(IN := #流程 = 4,PT := T#5S);IF #T4.Q THEN#流程 := 5;END_IF;//南北绿灯闪3次IF #流程 = 5 THEN#南北绿灯 := 0;END_IF;#T5(IN := #流程 = 5,PT := T#0.5S);IF #T5.Q THEN#南北绿灯 := 1;END_IF;#T6(IN := #T5.Q,PT := T#0.5S);IF #T6.Q THENRESET_TIMER(#T5);#南北绿灯闪3次 += 1;END_IF;IF #南北绿灯闪3次 >= 3 THEN#流程 := 6;#南北绿灯 := 0;#南北绿灯闪3次 := 0;END_IF;//南北黄灯亮2sIF #流程 = 6 THEN#南北黄灯 := 1;END_IF;#T7(IN := #流程 = 6,PT := T#2S);IF #T7.Q THEN#南北黄灯 := 0;#东西红灯 := 0;#流程 := 7;END_IF;//循环 OR 停止IF #流程 = 7  AND NOT #停止标志 THEN#流程 := 1;END_IF;IF #流程 = 7 AND #停止标志 THEN#流程 := 0;END_IF;//双向黄灯闪烁IF #流程 = 0 AND #停止标志 THEN#东西黄灯 := #南北黄灯 := 0;END_IF;#T8(IN:=#流程 = 0 AND #停止标志,PT:=T#0.5S);IF #T8.Q THEN#东西黄灯 := #南北黄灯 := 1;END_IF;#T9(IN:=#T8.Q,PT:=T#0.5S);IF #T9.Q THENRESET_TIMER(#T8);END_IF;第二种写法:SCL编程语言利用比较指令方式编写1.变量采用FB块编写,变量建立在FB的背景块Static选项下2.程序#R_TRIG_Instance(CLK:=#启动);IF #R_TRIG_Instance.Q THEN#启动标志 := 1;#双黄闪标志 :=#停止:= 0;END_IF;#R_TRIG_Instance_1(CLK:=#停止);IF #R_TRIG_Instance_1.Q THEN#停止标志 := 1;#启动 := 0;END_IF;#T0(IN:=#启动标志,PT:=T#20S);#南北红灯 := T#0S < #T0.ET AND #T0.ET <= T#10S;#东西红灯 := T#10S < #T0.ET AND #T0.ET <= T#20S;#东西绿灯 := (T#0S < #T0.ET AND #T0.ET <= T#5S)OR(T#5.5S < #T0.ET AND #T0.ET <= T#6S) OR(T#6.5S < #T0.ET AND #T0.ET <= T#7S) OR(T#7.5S < #T0.ET AND #T0.ET <= T#8S);#南北绿灯 := (T#10S < #T0.ET AND #T0.ET <= T#15S) OR(T#15.5S < #T0.ET AND #T0.ET <= T#16S) OR(T#16.5S < #T0.ET AND #T0.ET <= T#17S) OR(T#17.5S < #T0.ET AND #T0.ET <= T#18S);#东西黄灯 := (T#8S < #T0.ET AND #T0.ET <= T#10S) OR (T#0.5S < #T1.ET AND #T1.ET <= T#1S);#南北黄灯 := (T#18S < #T0.ET AND #T0.ET <= T#20S)OR (T#0.5S < #T1.ET AND #T1.ET <= T#1S);IF #T0.Q AND NOT #停止标志 THENRESET_TIMER(#T0);END_IF;IF #T0.Q AND #停止标志 THEN#启动标志 := 0;#双黄闪标志 := 1;#停止标志 := 0;END_IF;#T1(IN:=#双黄闪标志,PT:=T#1S);IF #T1.Q THENRESET_TIMER(#T1);END_IF;第三种写法:LAD(梯形图)编程语言采用流程方式编写1.变量利用FC块编写,变量建立在DB数据块中。2.程序:LAD编程总览:每个程序段编程明细:

联系方式

  • 电  话:15903418770
  • 联系人:张经理
  • 手  机:15915421161
  • 微  信:15915421161