「西门子案例」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发烧友”公众号后台回复:“跑马灯”,即可免费获取! 留言处大家可以补充文章解释不对或欠缺的部分,这样下一个看到的人会学到更多,你知道的正是大家需要的。。。
用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控制循环次数
相关问答
西门子pl2300跑马灯程序详解?
1.西门子PL2300跑马灯程序是一种常见的控制程序。2.这个程序的原理是通过控制PLC(可编程逻辑控制器)的输出口,依次点亮或熄灭一组LED灯,从而实现跑马灯的效...
请三菱PLC编程高手编一个跑马灯程序?
循环移位,然后把这几个位,赋值和清零,就行循环移位,然后把这几个位,赋值和清零,就行
西门子plc三个灯循环亮每两个灯一起亮时间间隔3秒怎么编程序?
用三个计时器,第一个定时器开始亮两个灯(AB),计时到两两个(BC),同时第二个计时器开始计时,计时到两CA,同时第三个计时器开始计时,计时到清三个计时器。...用...
PLC编程才开始怎样入门提高?
随着科技的进步,社会的发展,PLC取代了传统的继电器控制盘,在工业自动控制系统担起了重要的角色,应用日益广泛。如何提高PLC编程能力,适应社会的发展需要,是PLC技...
如何提升plc编程技术?
提升plc编程技术的方法如下:一、加强基础学习,巩固基础知识要有好的设计编程能力,必须要有良好扎实的PLC基础知识,必须掌握PLC各条指令的名称、符号、适用范...
PLC怎么学?
您好,小吴帮您回答,用通俗的语言让您明白电气知识。PLC,英语单词,ProgrammableLogicController,可编程逻辑控制器。其实让我来看PLC就是一台小型的电脑...●.....
自动化学生不想学JAVA还有出路么?
第二阶段:...二学习情况挂过科,重修补考通过,拿到毕业证,学位证!三工作情况第一阶段:毕业工厂做过设备工程师,主要维修维护电子厂设备白夜班两班倒,工作...
怎么样学好51单片机?
三,必须会编程软件,较为经典的软件有Keil软件,IAR编程软件等。能够用这些软件编程调试,完成软件的编写,产生相应的执行文件。四,要学好单片机,建议要会...开发...