【西门子案例】S7-1200PLC 可变延时跑马灯案例
1一、动作描述:1.六个指示灯组成跑马灯系统,外加两个按钮控制跑马灯的开始和停止;2.按开始按钮,跑马灯分四个阶段:第一阶段,指示灯从右至左逐个点亮;第二阶段,指示灯从左至右逐个点亮;第三阶段,指示灯从右至左依次点亮;第四阶段,指示灯从左至右依次熄灭。3.指示灯点亮的时间可以通过形式参数指定。4.按下停止按钮,指示灯全都熄灭,跑马灯停止。
2二、硬件设备:1.西门子PLC :S7-1214C DC/DC/DC2.指示灯6个,按钮2个3三、软件:1.西门子plc编程软件:TIA 博途V164四、I/O分配:输入点注释输出点注释I0.0开始Q0.0指示灯1I0.1停止Q0.1指示灯2Q0.2指示灯3Q0.3指示灯4Q0.4指示灯5Q0.5指示灯65五、程序编写及思路:为便于后期修改,我们把跑马灯程序做成一个FB块,并定义形式参数,如图:
并建立了一些中间变量,来完成程序逻辑:
接下来我们开始写程序:根据工艺要求,我们把程序分成几个阶段,用变量“步骤”数组元素来表示。取“开始”上升沿,开始第一步:
在程序的第一步开始后,赋初始值给将要移动的辅助变量:
赋初始值后,开始左移,做一个定时器,移位完成触发计时,计时完成复位:
判断移位已经完成,复位当前步骤,置位下一个步骤:
进入第二阶段,同样开始赋初识值:
重复之前的移位动作,这次改为右移:
同样判断移位完成,复位当前步骤,置位下一个步骤:
接下来还是赋初识值,这次需要另一个辅助移动变量来做运算
第三阶段开始,需要依次点亮,就需要用到辅助灯组来做XOR异或运算:
同样是判断移位完成,复位当前步骤,置位下一个步骤,然后继续辅初识值:
以同样的方式做XOR异或运行,实现依次熄灭:
判断移位完成,复位当前步骤,并置位第一阶段步骤,实现循环:
如果按停止按钮,则复位所有步骤和移位辅助位:
移动辅助位对应到指示灯Output形式参数:
然后在main主程序调用此FB块,并赋实际参数:
程序完成!来源:PLC发烧友,作者:技成-张志强。 文章源程序可提供免费下载,“PLC发烧友”公众号后台回复:“跑马灯”,即可免费获取!留言处大家可以补充文章解释不对或欠缺的部分,这样下一个看到的人会学到更多,你知道的正是大家需要的。。。