用S7-1200 PLC实现循环彩灯的控制,含源程序
在S7-1200型PLC的实际编程工作中,无论是经验设计法还是顺序控制设计法对于要求比较复杂的任务都会产生大量的程序段,可读性差。本实例通过常见的循环彩灯控制为例,了解学习S7-1200型PLC程序块的应用。
相关知识:移动操作相关指令
(1) 移动值MOVE指令
MOVE指令用于将IN输入端的源操作数(数值或地址中的数据)赋值给输出端OUT1指定的地址中,指令执行后源操作数保持不变。该指令支持的数据类型为除Bool型数据之外的所有数据类型。
如下图程序段是PLC上电后将Q0口数值清零,一般用于系统的上电复位。
如果输入 IN 数据类型的位长度超出输出 OUT1 数据类型的位长度,则源值的高位会丢失。如果输入 IN 数据类型的位长度低于输出 OUT1 数据类型的位长度,则目标值的高位会被改写为 0。
小提示: 移动指令MOVE一般用于批量给输出寄存器Q赋值,或者在输入信号较多的情况下批量读取输入寄存器I中的数据。
例1:控制Q1.0~Q1.7上连接的8位彩灯隔一跳一点亮
再加一个按位操作的程序进行对比
例2:读取一位拨码开关输入的数值并保存在辅助寄存器M中
再加一个按位操作的程序进行对比
通过以上对比可以看出,在一些特定情况下使用MOVE指令可以可以大量简化程序步骤。
任务布置
选用5个点动按键S0~S4给PLC的输入信号,作为花样功能选择键,8个发光二极管LED0~LED7作为PLC的输出信号,编写程序实现8个发光二极管闪烁花样的切换显示。
按下按键S1,发光二极管点亮1个,并向右循环移动点亮,每秒移动1位;
按下按键S2,发光二极管点亮2个,并向右循环移动点亮,每秒移动1位;
按下按键S3,发光二极管点亮3个,并向右循环移动点亮,每秒移动1位;
按下按键S4,发光二极管点亮4个,并向右循环移动点亮,每秒移动1位;
按下按键S5,发光二极管点亮5个,并向右循环移动点亮,每秒移动1位;
任务实施
(1) 任务分析
1)在实际应用中压力传感器是将水的压力值转换成电压信号输入给PLC、单片机等控制系统,这个输入信号是模拟量。在模块中用可调电位器来模拟了压力传感器,电位器输出的电压范围是0~5V,对应的压力量程为0~0.1MPa。S7-1200PLC集成了两路模拟信号输入,传感器将电压信号输入PLC后会经过A/D转换成范围0~27648的数字量保存在IW64中。所以在本任务中要设法将地址IW64中采集的数字信号值还原成以Pa为单位的压力值。
2)系统要求有手动和自动两种工作模式,不同工作模式由点动按键ME进行切换,因此在梯形图程序编写时采用手动单步运行程序和自动连续运行程序两个函数块进行调用,具体转换条件如下图所示。
(2)I/O地址分配表
该系统共有5个输入,3个输出,资源分配如下表。
按照I/O分配表设置PLC变量,在Portal V13 软件中设置PLC变量表如下图所示
(3)硬件接线图 按照任务控制要求和I/O地址分配表画出硬件接线图并插接导线。
此处就略过不再详细解释了
(4)梯形图程序
重点难点详解:该任务有自动连续运行和手动单步运行两种工作模式,并由点动按键ME作为切换条件,设置以下4个函数功能块:
完整梯形图参考程序
OB1中的程序
FC1 上电初始化
FC4 300ms脉冲信号
FC3跑马灯循环
FC4控制循环次数
「西门子案例」S7-1200PLC 可变延时跑马灯案例
关注“PLC发烧友”,一起涨知识!
一、动作描述:
1.六个指示灯组成跑马灯系统,外加两个按钮控制跑马灯的开始和停止;
2.按开始按钮,跑马灯分四个阶段:第一阶段,指示灯从右至左逐个点亮;第二阶段,指示灯从左至右逐个点亮;第三阶段,指示灯从右至左依次点亮;第四阶段,指示灯从左至右依次熄灭。
3.指示灯点亮的时间可以通过形式参数指定。
4.按下停止按钮,指示灯全都熄灭,跑马灯停止。
二、硬件设备:
1.西门子PLC :S7-1214C DC/DC/DC
2.指示灯6个,按钮2个
三、软件:
1.西门子plc编程软件:TIA 博途V16
四、I/O分配:
输入点
注释
输出点
注释
I0.0
开始
Q0.0
指示灯1
I0.1
停止
Q0.1
指示灯2
Q0.2
指示灯3
Q0.3
指示灯4
Q0.4
指示灯5
Q0.5
指示灯6
五、程序编写及思路:
为便于后期修改,我们把跑马灯程序做成一个FB块,并定义形式参数,如图:
并建立了一些中间变量,来完成程序逻辑:
接下来我们开始写程序:
根据工艺要求,我们把程序分成几个阶段,用变量“步骤”数组元素来表示。
取“开始”上升沿,开始第一步:
在程序的第一步开始后,赋初始值给将要移动的辅助变量:
赋初始值后,开始左移,做一个定时器,移位完成触发计时,计时完成复位:
判断移位已经完成,复位当前步骤,置位下一个步骤:
进入第二阶段,同样开始赋初识值:
重复之前的移位动作,这次改为右移:
同样判断移位完成,复位当前步骤,置位下一个步骤:
接下来还是赋初识值,这次需要另一个辅助移动变量来做运算
第三阶段开始,需要依次点亮,就需要用到辅助灯组来做XOR异或运算:
同样是判断移位完成,复位当前步骤,置位下一个步骤,然后继续辅初识值:
以同样的方式做XOR异或运行,实现依次熄灭:
判断移位完成,复位当前步骤,并置位第一阶段步骤,实现循环:
如果按停止按钮,则复位所有步骤和移位辅助位:
移动辅助位对应到指示灯Output形式参数:
然后在main主程序调用此FB块,并赋实际参数:
程序完成!
来源:PLC发烧友,作者:技成培训网-张志强。 “PLC发烧友”公众号后台回复:“跑马灯”,即可免费获取! 留言处大家可以补充文章解释不对或欠缺的部分,这样下一个看到的人会学到更多,你知道的正是大家需要的。。。
相关问答
怎么用PLC做个跑马灯程序,叙述尽量详细?
要用PLC做一个跑马灯程序,首先需要连接好PLC和LED灯,然后在PLC编程软件中创建一个新的程序。在程序中,使用循环指令控制LED的亮灭顺序,可以使用计数器来控制...
三菱fx3ga跑马灯程序怎么写?
要编写三菱FX3GA跑马灯程序,您可以按照以下步骤进行:1.首先,确定您要使用的跑马灯的输入和输出点。在三菱FX3GAPLC中,您可以使用X、Y、M、S等寄存器作为输...
请三菱PLC编程高手编一个跑马灯程序?
循环移位,然后把这几个位,赋值和清零,就行循环移位,然后把这几个位,赋值和清零,就行
顺开逆停跑马灯移位指令?
动。当按下停止按钮,停止信号灯亮...用按钮控制6台电机的启动和停止,要求当按下启动按钮,启动信号灯亮,而后每隔2s启动一台电机,直到6台电机全部启动。当按...
PLC编程提高效率和准确率的方法?
系统判断该提问价值不高,回答后预期流量较低!!呵呵,这种问题判断价值不高?那什么问题判断价值高??是零基础如何快速学会PLC,还是本人精通S7-1200,多久能...既...
三星s8跑马灯颜色怎么设置?-ZOL问答
第六步:接下来你就可以在【侧屏闪光风格】界面中找到效果、颜色、透明度、宽度这四个选项了,接下来你就可以自定义一款属于自己的跑马灯了。有用(0)回复ra00...
想学plc,没学历怎么办?
你好,我是自动化专业毕业生,熟悉PLC控制,也从事过相关工作,下面结合我的一些经历给你几点建议吧,希望对你有用。PLC的学习最好有电路基础,我们要知道PLC最...
求三菱FX2N编程高手PLC梯形图,8盏流水灯,启动时,灯1亮一灭后灭?
x0为启动按钮,x1为停止按钮。y0~y7为8盏灯。程序在按下启动按钮后,灯1先亮,1秒(T0延时)后灭,1秒后(T1延时)灯2亮,依次循环。当按下x1后,循环结束。...此时...
PLC怎么接受数字量信号?
模拟量转数字量是因为转换之后才能得到真实的过程值。移位指令么,跑马灯最直观。其他举两个例子,有严格先后顺序的控制逻辑,把1从头移到尾,每一步骤的完成...