用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控制循环次数
PLC控制彩灯项目,超详细案例讲解,快来收藏
导读:本案例主要让读者练习西门子S7-200SMART系列PLC位逻辑指令、定时器、移位指令、子程序的结构等。
控制示意图
如图3-1所示为彩灯控制示意图。
图3-1 彩灯控制
控制要求描述
现有L1-L8共8盏彩灯,要求按下开始按钮,霓虹灯L1-L8以正序每隔1S轮流点亮,当L8亮后,停2S;然后,反向逆序间隔1S轮流点亮,当L1再亮后,停5S,重复上述过程。按下停止按钮,彩灯停止工作。
I/O分配
根据控制要求描述对需要用到的I/O进行分配,如图3-2所示:
图3-2 I/O分配表
【相关指令解读】:此案例主要用到移位指令和其它指令配合,这里主要解读移位指令。
循环左移字节(图3-2):循环移位指令将输入值 IN 的位值循环左移位,位置循环移位计数 N,然后将结果装载到分配给 OUT 的存储单元中。 循环移位操作为循环操作。
图3-2:循环左移字节
举例说明1:程序如图3-3,利用系统时钟SM0.1第一个扫描周期给QB0字节中赋值为1,此时QB0中最低位(Q0.0)为 1。当按下I0.0按钮后,QB0字节中的数据左移一位,Q0.1变为1。
图3-3
举例说明2:程序如图3-4,利用系统时钟SM0.1第一个扫描周期给QB0字节中赋值为1,此时QB0中最低位(Q0.0)为 1。当按下I0.0按钮后,QB0字节中的数据左移二位,Q0.2变为1。
图3-4
循环右移字节: 如图3-5,循环移位指令将输入值 IN 的位值循环右移,位置循环移位计数 N,然后将结果装载到分配给 OUT 的存储单元中。 循环移位操作为循环操作。
图3-5:循环右移字节
举例说明1:程序如图3-6,利用系统时钟SM0.1第一个扫描周期给QB0字节中赋值为1,此时QB0中最低位(Q0.0)为 1。当按下I0.0按钮后,QB0字节中的数据右移一位,Q0.7变为1。
图3-6
举例说明2:程序如图3-7,利用系统时钟SM0.1第一个扫描周期给QB0字节中赋值为1,此时QB0中最低位(Q0.0)为 1。当按下I0.0按钮后,QB0字节中的数据右移二位,Q0.6变为1。
图3-7
程序控制程序
(1)主程序,对数据初始化,调用相关子程序。M1.0接通代表左移位开始,左移开始之前,将1赋值给QB0。M1.2接通代表右移开始,将128给到QB0, Q0.7为1。程序如图3-8所示
图3-8主程序
(2)循环子程序主要控制灯是启停和循环。按下启动按钮,左移开始标志位M1.0自锁,总共移7位,定时时间为7秒,左移完成断开M1.0延时2秒接通右移标志位M1.2。右移完成延时5秒接通M1.0左移开始标志位,形成循环。程序如图3-9所示
图3-9循环程序
(3)左移程序,利用移位指令和系统时钟配合。程序如图3-10所示
图3-10左移程序
(4)右移子程序程序,利用移位指令和系统时钟配合。程序如图26-6所示
本案例采用子程序的结构编程,并且结合循环指令、定时器指令等编写彩灯循环案例。希望大家能在此文章中汲取西门子200SMART PLC编程相关知识及理念。
(来源:技成培训网,作者:郭彪,留言处大家可以补充文章解释不对或欠缺的部分)
相关问答
plc怎么使一个小灯亮8秒,然后亮一秒暗一秒一直循环?
连续亮灯。不考虑人眼的反应速度,该题目毫无意义,这个问题的本质就是人为制造一个单光子源,然后问人眼能不能看到,以及看到什么情形?灯打开时间无穷小,既...
PLC编程一个控制4个指示灯循环闪烁程序,要求,每隔一秒反复闪烁?
这个很简单。我用的是西门子的,就用西门子举例吧,常亮的直接输出,闪烁的用时钟M0,有8个不同的闪烁频率,你选一个就行了去当另外两个指示灯。并联输出。如果没...
三菱plc计数器怎么控制小灯闪烁?
要控制三菱PLC的计数器使小灯闪烁,首先需要使用PLC编程软件编写一个程序。首先,创建一个计数器并将其与小灯输出连接。接下来,编写一个循环程序,使计数器在...
博途软件中如何使灯闪烁?
3.将背景色红色和同样宽度为“2”的边框分配给第二个圆。4.为绿色LED创建一个类型为“外观”(Appearance)的新动画。5.将该动画链接到PLC变量“ON_O...
西门子plc200控制八盏灯顺序亮灭?
可以通过西门子plc200控制八盏灯实现顺序亮灭。西门子plc200是一种工业控制器,可以编程控制设备的操作。通过编写plc程序,控制每盏灯的亮灭顺序和时间,可以...
现代途胜小灯,仪表灯,室内顶灯不亮,为什么?小灯继电器在哪?-...
您好检查一下小灯保险如果没烧的话那就是仪表里面的灯泡烧坏了希望可以帮到您【汽车有问题,问汽车大师。4S店专业技师,10分钟解决。】有用(0)回复你好可...
四点式隔离开关怎么使用请知道的朋友说一下_一起装修网
###我们将L和M接到了一个PLC的L和M上了,DC24V的小灯亮了6奇胜防水隔离开关需要多少钱一个如意系列10A带开关三级扁脚插座EV15/10U¥12如意系列10A二三级带...
HPMFPM436PLC6,进行网络连接打印机时无法连接,怎么处理?-...
打印机无法打印的原因:在大多数打印机上,“OnLine”按钮旁边都有一个指示联机状态的小灯,正常情况该联机指示灯应处于常亮状态。如果该指示灯不亮或处于闪烁状...
隔离开关符号是什么啊,起什么作用的
###我们将L和M接到了一个PLC的L和M上了,DC24V的小灯亮了6西门子熔断器式隔离开关的价格表谁有1.西门子熔断器式隔离开关,额定电压:380(V)KV|额定电流:600...
智能家居布线要注意什么-设计本有问必答
智能家居布线一切都在房子装修前,面对有“智能化”需求的业主,装修公司一般会先带业主看样板间,跟业主交流后,明确需求,形成设计图。强电弱电、监...