公司新闻
西门子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编程总览:每个程序段编程明细:
其他新闻
- 【内容上新】TIA Portal 常见问题收集整理 2024-11-26
- 【技术知识】Zui新版本4.4 给 S7-1200带来了哪些不同? 2024-11-26
- 【技术知识】当无法分配 F 目标地址时应该检查哪些方面? 2024-11-26
- 伺服电机的特性曲线介绍 2024-11-26
- 西门子软件手册下载、问题查询等保姆级教程 2024-11-26
- 西门子产品CAx文件的快速下载 —— 2D/3D图纸、电气接线图、EPLAN文件 2024-11-26
- 标准化编程之库的介绍(上) —— 像搭积木一样编程组态 2024-11-26
- 标准化编程之库的介绍(下) —— 像搭积木一样编程组态 2024-11-26
- 西门子SIMATIC ET 200系列IO模块介绍 2024-11-26
- TIA 博途软件的兼容性大全(上) 2024-11-26
- TIA 博途软件的兼容性大全(下) 2024-11-26
- 如何设置仅能监视、不可编辑的项目? ——TIA 博途的用户管理 2024-11-26
- 无需安装博途,也可下载程序——SIMATIC 模块调试与维护工具 2024-11-26
- 西门子S7-1500冗余系统介绍 2024-11-26
- 西门子标准化测试工具——Test Suite 2024-11-26