用plc控制二彩灯闪烁电路,要求如下:彩灯受开关SB1控制,开关SB1接通,彩灯LD1~LD2开始顺序工作,开关SB1断开时,彩灯全熄灭。彩灯工作顺序如下循环:
1.LD1彩灯亮5秒后熄灭。
2.接着LD2彩灯亮3秒,然后闪烁三次(每一周期为亮1秒熄1秒)后熄灭。
进入再循环,不断重复(1)~(2)过程。
题意分析,这个程序遍很麻烦。所以小编打算用一种类似顺序控制的编程方法,顺序控制遍这样一步步走的程序是比较简单的:
PLC输入输出表
这个程序输入输出很少,但变化比较多,程序共有9个网络,下面一一讲解:
这3个网络就是这个程序的主干,这也是一个简单的顺序控制,这个顺序控制共有三步,分别与M0.0、M0.1、M0.2对应,每一次只有一步动作,的常开点是跳转条件。比如:I0.0与T37(5秒)将M0.1置位并将M0.0复位,而一步因为除了I0.0启动这个条件外,还有一个循环的条件,所以一步共有2个条件。
这就是根据题意要求,对3个脉冲计数,3次后给出跳转信号
这个就是一个2秒的脉冲信号,一秒高电平,一秒低电平。并且与M0.2步相对应。
这个就是M0.0步与M0.1步的计时器。一个5秒,一个3秒。
这是后的输出,Q0.1在M0.1与M0.2步都动作,只不过M0.2时为周期性亮1秒熄1秒,共3次。
这是一个停止的指令,当I0.0由1变为0时,将M0.0,M0.1,M0.2都复位。
SPPI 协议是S7-200 CPU 基本的通信方式,通过原来自身的端口(PORT0 或PORT1)就可以实现通信,是S7-200 默认的通信方式。PPI 是一种主—从协议通信,主—从站在一个令牌环网中,主站发送要求到从站,从站响应;从站不发信息,只是等待主站的要求并对要求作出响应。如果在用户程序中使能PPI 主站模式,就可以在主站程序中使用网络读写指令来读写从站信息。而从站程序没有必要使用网络读写指令。
实现PPI 通信的步骤
(1)对每一台plc,设置其系统块中的通信端口参数,对用作通信的端口(PORT0 或PORT1),*其地址(站号)和波特率。设置后把系统块下载到该PLC。具体设置如下:把CPU226端口0 设为1 ,波特率为了19.2 ,CPU 224端口0 设为2 ,波特率为了19.2 。
计数器指令包括增计数器、减计数器、增减计数器和高速计数器
增计数器
增计数指令(CTU)从当前计数值开始,在每一个(CU)输入状态从低到高时递增计数。当CXX的当前值大于等于预置值PV时,计数器位CXX置位。当复位端(R)接通或者执行复位指令后,计数器被复位。当它达到大值(32,767)后,计数器停止计数。
减计数器
减计数指令(CTD)从当前计数值开始,在每一个(CD)输入状态的低到高时递减计数。当CXX的当前值等于0时,计数器位CXX置位。当装载输入端(LD)接通时,计数器位被复位,并将计数器的当前值设为预置值PV。当计数值到0时,计数器停止计数,计数器位CXX接通。
增/减计数器
增/减计数指令(CTUD),在每一个增计数输入(CU)的低到高时增计数,在每一个减计数输入(CD)的低到高时减计数。计数器的当前值CXX保存当前计数值。在每一次计数器执行时,预置值PV与当前值作比较。当达到大值(32767)时,在增计数输入处的下一个上升沿导致当前计数值变为小值(--32768)。当达到小值(--32768)时,在减计数输入端的下一个上升沿导致当前计数值变为大值(32767)。当CXX的当前值大于等于预置值PV时,计数器位CXX置位。否则,计数器位关断。当复位端(R)接通或者执行复位指令后,计数器被复位。当达到预置值PV时,CTUD计数器停止计数。
PS:CXX代表的是计数器的名称,是常数范围时从C0到C25,由于每一个计数器只有一个当前值,所以不要多次定义同一个计数器。(具有相同标号的增计数器、增/减计数器、减计数器访问相同的当前值。)当使用复位指令复位计数器时,计数器位复位并且计数器当前值被清零。计数器标号既可以用来表示当前值,又可以用来表示计数器位。
减计数器应用
当I0.1断开时,减计数器C1的当前值从3变到0。I0.0的上升沿使C1的当前值递减。I0.1接通时装载预置值3。当计数器C1的当前值=0时,C1接通。
增减计数器实例应用
当 I0.0接通时,使用增计数,计数器数值增加,当 I0.1接通时,使用减计数,计数器数值减少,当I0.2接通时, I0.2将当前值复位为0,当当前值=4时,将增/减计数器C48接通,输出Q0.0.
高速计数器
一般来说,高速计数器被用作驱动鼓式计时器,该设备有一个安装了增量轴式编码器的轴,以恒定的速度转动。轴式编码器每圈提供一个确定的计数值和一个复位脉冲。来自轴式编码器的时钟和复位脉冲作为高速计数器的输入。高速计数器装入一组预置值中的一个值,当前计数值小于当前预置值时,希望的输出有效。www.版权所有。计数器设置成在当前值等于预置值和有复位时产生中断。随着每次当前计数值等于预置值的中断事件的出现,一个新的预置值被装入,并重新设置下一个输出状态。当出现复位中断事件时,设置一个预置值和一个输出状态,这个循环又重新开始。由于中断事件产生的速率远低于高速计数器的计数速率,用高速计数器可实现精确控制,而与plc整个扫描周期的关系不大。采用中断的方法允许在简单的状态控制中用独立的中断程序装入一个新的预置值。(同样的,也可以在一个中断服务程序中,处理所有的中断事件。)
理解不同的高速计数器
对于操作模式相同的计数器,其计数功能是相同的。计数器共有四种基本类型:带有内部方向控制的单相计数器,带有外部方向控制的单相计数器,带有两个时钟输入的双相计数器和A/B相正交计数器。注意,并不是所有计数器都能使用每一种模式。您可以使用以下类型:无复位或启动输入,有复位无启动输入或既有启动又有复位输入。
- 当激活复位输入端时,计数器清除当前值并一直保持到复位端失效。
- 当激活启动输入端时,它允许计数器计数。当启动端失效时,计数器的当前值保持为常数,并且忽略时钟事件。
- 如果在启动输入端无效的同时,复位信号被激活,则忽略复位信号,当前值保持不变。如果在复位信号被激活的同时,启动输入端被激活,当前值被清除。
在使用高速计数器之前,应该用HDEF(高速计数器定义)指令为计数器选择一种计数模式。使用初次扫描存储器位SM0.1(该位仅在一次扫描周期接通,之后断开)来调用一个包含HDEF指令的子程序。
对于高速计数器来说,我们可以使用指令向导来配置计数器。向导程序使用下列信息:计数器的类型和模式、计数器的预置值、计数器的初始值和计数的初始方向。要启动HSC指令向导,可以在命令菜单窗口中选择Tools >Instruction Wizard ,然后在向导窗口中选择HSC指令。对高速计数器编程,必须完成下列基本操作:定义计数器和模式、设置控制字节、设置初始值、 设置预置值、*并使能中断服务程序、激活高速计数器。
高速计数器有12种工作模式如下图所示
在**扫描时,调用SBR0,在**扫描,配置HSC1:SMB48=16#F8意思就是使能计数器、写初始值、写预置值、设初始方向为增计数、选择启动和复位输入高电平有效、选择4倍速模式、配置HSC1为带启动和复位输入的正交模式、SMD48=0表示清除HSC1的初始值。置HSC1的预置值为50。 当HSC1的当前值=预置值时,执行INT_0。 全局中断允许。执行HSC1,执行HSC1,清除HSC1的初始值、选择写入新的初始值和HSC1使能
6ES72111BE400XB0 | CPU 1211C AC/DC/Rly,6输入/4输出,集成2AI |
6ES72111AE400XB0 | CPU 1211C DC/DC/DC,6输入/4输出,集成2AI |
6ES72111HE400XB0 | CPU 1211C DC/DC/Rly,6输入/4输出,集成2AI |
6ES72121BE400XB0 | CPU 1212C AC/DC/Rly,8输入/6输出,集成2AI |
6ES72121AE400XB0 | CPU 1212C DC/DC/DC,8输入/6输出,集成2AI |
6ES72121HE400XB0 | CPU 1212C DC/DC/Rly,8输入/6输出,集成2AI |
6ES72141BG400XB0 | CPU 1214C AC/DC/Rly,14输入/10输出,集成2AI |
6ES72141AG400XB0 | CPU 1214C DC/DC/DC,14输入/10输出,集成2AI |
6ES72141HG400XB0 | CPU 1214C DC/DC/Rly,14输入/10输出,集成2AI |
6ES72151BG400XB0 | CPU 1215C AC/DC/Rly,14输入/10输出,集成2AI/2AO |
6ES72151AG400XB0 | CPU 1215C DC/DC/DC,14输入/10输出,集成2AI/2AO |
6ES72151HG400XB0 | CPU 1215C DC/DC/Rly,14输入/10输出,集成2AI/2AO |
6ES72171AG400XB0 | CPU 1217C DC/DC/DC,14输入/10输出,集成2AI/2AO |