三菱PLC的流水灯程序编写
有粉丝私信说:“就是有八个灯接在PLC的Y0-Y7上,现在的控制要求是:按下启动按钮后灯从Y0到Y7间隔一秒依次点亮一个。当灯亮到Y7的时候在从Y7到Y0间隔一秒依次点亮一个。要求不断循环以上动作。直到按下停止按钮”这样一个控制要求。
方法有许多种可以完成,下面我们介绍两种比较简单的编程。逻辑很清楚,按照顺序依次输出Y0~Y7,然后从Y7~Y0。循环这个过程即可。
方法一,利用内部时钟信号M8013一秒周期时间进行计数C0,根据C0中数据输出对应的Y即可,过程全部完成后计数器清零重新开始。
梯形图1
方法二,利用循环移位指令进行,在1~7秒进行左循环依次点亮Y0~Y7,然后在7~13秒进行右循环依次点亮Y7~Y0,这里我们以K4Y0组合的方式进行移位。
梯形图2
下面我们分别对两个程序进行模拟仿真,过程如下:
视频加载中...
当然除了上面的结构还有其他的编程方式来完成,可以下方评论进行分享。
用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控制循环次数
相关问答
s7300彩灯循环移位指令?
s7300彩灯的循环移位指令有如下移位指令一共有四个循环右移、循环左移、右移、左移循环移位指令(左、右)八个位是循环移动的也就是说循环左移1位就是向左...
跑马灯编程怎么编?
要编写一个跑马灯程序,你可以使用循环和延迟来实现。首先,你需要定义一个字符串,其中包含你想要在跑马灯上显示的文本。然后,使用一个无限循环来不断输出字符...
三菱FX1S的PLC,梯形图怎么编写D寄存器数据转移?
FX1S的PLC没有数据移位指令,但你可以自己做框里是移位的次数,要注意移位太多会1秒无法完成,实际变成2秒一次或更多了FX1S的PLC没有数据移位指令,但你可以自...
求PLC高手帮我编个转盘控制程序?
可以这样处理,每个工位完成后给个信号给分割器开始是依次启动,结束是依次结束,用移位再加一个允许标志分割器到位,给每个工位一个允许标志逻辑控制可以这样处...
PLC中寄存器移位的SHRB指令怎么使用的?
SHRB:移位寄存器指令,其中:EN:为使能端;DATA:需要保存的数据位(bit);S_BIT:移位寄存器的最低位N:移位寄存器的长度(bits)你程序中的意思就...SHRB:移位寄.....
plc中的左移位指令是什么?
PLC中的左移位指令(SHL)是一种位移指令,用于将一个数据类型的操作数的二进制位向左移动指定的位数。例如,将一个32位的整数左移3位,可以使用SHL指令,操作...
交通灯的模拟控制实验步骤?
关断电源,通过USB接口将CP1HPLC和计算机相连,把并按以下步骤连线:1、输入接线区域的XCOM端子和输出接线区域的GND端子相连;2、输出接线区域的+24V端子和...
西门子PLC移位与循环指令,怎样应用?
右移字节(SRB)和左移字节(SLB)指令将输入数值(IN)根据移位计数(N)向右或向左移动,并将结果载入输出字节(OUT)。移位指令对每个移出位补0。如果移位数...右移...
plc移位寄存器工作原理?
分别提供独立的时钟信号给移位寄存器和存储寄存器,移位寄存器具有直接清零功能和串行输入输出功能以及级联应用.(采用标准引脚。)移位寄存器和存储寄存器均为...
三菱PLC如何用一个按钮控制灯的亮灭?
如何用三菱PLC实现一个开关控制一个灯的亮或者灭,可以有两种方法。第一,可以用带自锁功能的按钮开关。这个控制最简单,而且不需要PlC。第二,可以用复位按钮...