西门子模块6ES7223-1PM22-0XA8支持验货
西门子模块6ES7223-1PM22-0XA8支持验货
一、前言
在煤矿矿车刷洗系统中,要求实现“无人值守,少人看守”的要求,为适应这一要
求,我们为山东某煤矿企业开发了此系统。
二、工艺要求
用电磁阀控制喷枪的开启和关闭来达到喷淋降尘的目的,对电磁阀要求能够通过PLC输出点以及RS485通讯并行控制,以达到双机冗余的效果;喷淋的启停时间、间隔时间、中断时间可以任意修改;系统要求具备假期中断功能以备领导视察时使用;此外,还应具备密码等级切换、时钟修改等功能。系统共分为手动、自动、停用三种状态。
1.手动
可以强制关闭和开启任意阀门、泵
2.自动
系统切换到自动状态后,要求先判断当前时间是否允许运行:当前时间是否在运行时间内、中断时间及假期中断时间外。如果当前时间满足运行条件,则先启动泵,泵启动之后判断当前时间是否处于1#喷枪中断时间内,如果在中断时间内,1#电磁阀不运行,接着判断2#喷枪的中断时间;如果当前时间处于1#喷枪的中断时间之外,则启动1#电磁阀。1#喷枪运行时间到,关闭1#电磁阀,然后判断并决定是否启动2#,一直到后一个电磁阀,后一个喷枪运行时间到后,判断泵延时时间及喷枪中断时间,这两个时间都满足后开始下一循环。
3.停用
整套系统停止,手动/自动均不起作用。
三、硬件配置
触摸屏: MT506L 1台
PLC: Kinco-K306EX 1个
PLC扩展模块 依据喷枪的个数而定。
Plt485:支持RS485通讯的中间继电器,数量6~24个,该项目中采用了6个
四、编程思路
利用PLC的Port1口同触摸屏通讯,利用Port0的自由口通讯协议同Plt-485模块通讯来控制电磁阀,电磁阀同时还可以通过PLC输出点来控制(此功能已经预留)。
1.时钟功能,
由于对电磁阀的控制是通过诸多时间要素来限定,并且这些时间要能在触摸屏画面上读
写,因此要求屏和PLC的时间要一致,所以就用到了PLC的内部时钟功能,将PLC的内部时钟显示到屏并以此作为当前时间来同各种时间参数做比较判断。
如上,使用READ_RTC指令读取PLC内部时钟放在VB寄存器,由于在屏的组态中只能使用VW寄存器,所以用B_To_I指令将时间参数由字节型转换为整数型,则时间与寄存器的对应关系如下:
VB10:星期
VB11:秒 VW100
VB12:分钟 VW102
VB13:小时 VW104
VB14:日 VW106
VB15:月 VW108
VB16:年 VW110
现在,我们就可以利用VW100~VW110做为判断条件与设定的各种时间进行比较了。
同时,为了避免PLC长时间工作后内部时钟可能造成的误差,在触摸屏画面中单独做了一个时钟修正功能,以随时校准时间。
在触摸屏输入校准的时间,然后点击修改,通过PLC程序中的SET_RTC指令则成功更新系统的当前时间。
2.自由口通讯
Kinco-K306EX 本体集成了2个串口,这两个串口默认使用Modbus RTU协议,当使
用自由通讯指令时,自由口通讯被激活。在这里我们使用Port0做自由口通讯,自由通讯的参数定义如下:
SMB86:自由通讯接受状态字节
SMB87:自由通讯接受控制字节
SMB88-SMW94:自由通讯控制字
然后定义自由通讯时要发送的数据(以2#站为例):
VB0:B#16#8 发送8个字节
VB1:B#16#02 2号站
VW2:16#06 RS485模块默认
VW4:16#08 个继电器,09为第二个继电器
VB6:B#16#01 打开,00为关闭
VB7:B#16#98 RS485模块默认
VB8:B#16#3B RS485模块默认
将数据设置完毕之后,就可以在需要的时候通过XMT指令将这些数据发送出去来控制RS485模块的继电器动作。
实际使用时是通过RS485通讯来驱动电磁阀工作的,而通过PLC输出点的控制方式已预留接线以备通讯故障时使用,这两种控制方式在程序中是并行的,所以我们就考虑使用PLC的输出点来触发自由通讯的数据发送指令,相应的PLC输出点在高、低电平变换瞬间发送数据控制Plt485继电器的开启与关闭。
3.对时间的判断
在自动程序中有较多的时间判断,需要比较系统的当前时间(既PLC内部时间)与各种
设定时间。以运行时间为例,运行时间的设定包括4个参数:小时_起始、分钟_起始、小时_结束、分钟_结束,只有当前时间在起始时间和结束时间之内时才允许自动运行,那么对这个时间的判断可分三种情况:
A. 小时_起始 < 实际的小时 < 小时_结束
B. 小时_起始<= 实际的小时 < 小时_结束
并且 分钟_起始 < 实际的分钟
C. 小时_起始<= 实际的时 <= 小时_结束
并且 分钟_起始 < 实际的分钟 < 分钟_结束
上述三种条件只要成立一个,即可认为允许运行,对其它时间的判断也大致如此。
五、触摸屏画面中的几个名词
运行时间: 当前时间在此范围内系统允许自动运行
中断A: 当前时间在此范围内系统不允许自动运行
中断B: 当前时间在此范围内系统不允许自动运行
中断C: 当前时间在此范围内系统不允许自动运行
假期中断: 当前时间在此范围内系统不允许自动运行
程序循环间隔:后一个电磁阀关闭到个电磁阀开启之间的间隔时间
泵延时时间: 后一个电磁阀关闭后泵延时停止的时间间隔
1#中断: 当前时间在此范围内,1#电磁阀不允许开启
六、总结
该项目利用了Kinco-K306EX的双串口、时钟、中断、自由口通讯等诸多功能,充分展示了Kinco PLC丰富的指令,顺利实现了Kinco PLC在煤矿矿产刷洗系统中的应用。
1 引言
现代化的工厂中,PLC系统作为工业控制的基础设备已经非常普及。在很多工厂应用中,需要对现场采集过来的脉冲信号进行计数。如果使用专用脉冲计数模块,可以采集到高速脉冲信号。但是脉冲模块价格昂贵,在一些采集低速脉冲信号的场合其实可以使用普通的开关量输入模块代替脉冲计数模块。这样可以降低系统成套费用和系统的复杂程度,也提高了系统的可维护性。如果使用普通开关量输入模块代替脉冲计数模块,就存在一个问题:普通开关量输入模块采集脉冲信号的速度的极限是多少?存在哪些制约条件?以下将以AB公司的ControlLogix 1756系列PLC系统为基础,就这个问题谈一些分析。
2 模块响应速度的制约
开关量输入模块要检测到一个脉冲信号,必须能完整地采集到脉冲产生的整个过程,如图1所示,开关量输入模块检测脉冲信号的过程可以分解为三个过程。
图1 开关量模块检测脉冲信号过程
从图1可以看出,开关量输入模块能检测到的脉冲信号至少必须满足以下条件:
(1) 脉冲宽度 t1>T1;
(2) 脉冲周期 t0>T1+T3;
(3) 脉冲间隔 t2>T3。
以AB公司1756-IB16D开关量输入模块为例,其ON时间 = 1,2,or3ms;其OFF时间=4,5,13,or22ms。其不同的ON/OFF时间可以由系统进行配置。在配置快的ON/OFF时间的条件下,可以计算出,1756-IB16D开关量输入模块快可以检测出脉冲宽度为1ms,脉冲周期为5ms的脉冲。如果脉冲宽度增加几个毫秒,脉冲周期就相应增加几个毫秒。结论如下:理想的情况下,1756-IB16D开关量输入模块可以分辨速度低于200个/秒、脉冲宽度大于1ms的脉冲信号。
3 PLC系统扫描时间的制约
PLC的工作原理是分时扫描,PLC的一个完整扫描周期包括全部I/O更新一次的时间和PLC程序执行一次的时间。PLC系统的扫描时间和系统网络情况、远程站的数量以及PLC的CPU模块信号有关。如果现场开关量输入模块检测出的脉冲信号在一个PLC扫描周期内大于1个,PLC系统将不能正确反映现场脉冲的数量。
PLC系统对开关量输入模块检测信号判断的详细分析如图2。
图2 PLC系统对开关量输入模块检测信号的判断
PLC系统通过扫描更新I/O信息,假设在时刻0、t1、t2、t3,PLC系统扫描到信号源处,由图2可以看出:
(1) 对于脉冲信号1,PLC系统没有检测到任何脉冲信号。可以得到结论:如果脉冲信号脉冲周期T1<PLC扫描周期T,PLC系统将不能检测出正确的脉冲数量。
(2) 对于脉冲信号2, PLC系统同样没有检测到任何脉冲信号。这是因为脉冲信号2的脉冲宽度T0<PLC扫描周期T, 脉冲信号的变化有可能发生在一个PLC扫描周期T之内。
(3) 对于脉冲信号3,脉冲信号的脉冲宽度T0>PLC扫描周期T,脉冲周期T1-脉冲宽度T0<PLC扫描周期T,PLC系统未能检测到个信号的消失,此时,PLC系统仍然未能检测出正确的脉冲数量。
(4) 对于脉冲信号4,脉冲信号脉冲周期T1>PLC扫描周期T,脉冲周期T1-脉冲宽度T0>PLC扫描周期T,PLC系统能检测出正确的脉冲数量。
对于一个使用AB公司的ControlLogix 1756-L55系列的CPU模块,远程I/O通讯模块选用ControlNet模块1756-CNBR,系统I/O总点数为2000点,远程I/O站数量为6个的中型系统来讲,一个PLC扫描周期约为40~70ms。因此对于本系统来讲,能可靠检测的脉冲信号脉冲宽度应大于70ms,个脉冲信号结束至第二个脉冲信号发出的小时间间隔应大于70ms。
4 结束语
,如果使用普通开关量输入模块代替脉冲计数模块,对脉冲输入信号的制约条件主要是PLC系统的系统扫描时间。对于AB公司的PLC系统来讲,对于脉冲宽度>70ms,个脉冲信号结束至第二个脉冲信号发出的小时间间隔大于70ms的脉冲信号是可以可靠接收的。对于其他品牌的PLC系统来讲,其基本工作方式与AB公司的PLC系统是一致的,因此,这个结论也同样适用。对于不满足上述条件的脉冲信号,就必须考虑专用脉冲计数模块了。