OMRON PLC间接寻址在数据记录保存的应用
2017-03-22汪金荣
摘 要PLC系統得到广泛的运用,传统上位机系统采集的历史曲线的记录是以秒级为单位,或采用专用的高速采集系统进行采集和储存。本文阐述利用OMRON的间接寻址保存故障发生时的数据的记录的一种运用。
【关键词】PLC 间接寻址 故障 记录
在非常多的场合,需要记录故障发生时刻的相关数据的变化值是怎么变化的,不仅需要发生故障后的数据值,而且需要故障前的数据的变化值,但传统上位机系统采集的历史曲线的记录都是以秒级为单位,达不到细致分析故障发生时的数据变化的要求,需采用专用的高速采集系统进行采集和储存增加了成本。本例运用现有的PLC系统,以0.2S采集频率进行采集数据和保存,满足了分析故障的要求,节约了成本。
1 概述
PLC系统在各行各业得到广泛,我们经常碰到需要分析数据,此时运用的方法是采用上位机进行历史曲线的记录和保存,需要分析数据时再调出来,这些平时都满足了监控的需求,但若发生故障时分析故障的原因和这一时刻数据的变化,由于上位机的组态软件的因素,其采集的频率是以秒为单位的,这时数据如压力变化到多低,如何变化的,由于精确度不够而无法细致判断原因所在。
本例通过判断工艺水在发生故障时,采集发生故障时是由哪个因素引起的,将压力记录保存到PLC内存中,故障发生前18S的数据记录以及故障发生后80S的数据到PLC中。通过间接寻址的功能,保存了10次故障记录,循环记录。
2 OMRON间接寻址介绍
本例采用的PLC系统为CS1J-H CPU42。
OMRON的间接寻址同样也可以分为存储器寻址和寄存器寻址,比较方便的是它不需要你有汇编的技巧,像SIEMENS可以用STL编写但不能用LAD,而OMRON可以使用LAD编写,以下介绍下存储器间接寻址。
支持存储器寻址的主要有DM和E,下面主要介绍的是DM。在DM区中不仅可以存储数据还可以存储地址,但这里地址并不是各存储单元的绝对地址,而是DM区自己的一个顺序地址。比如说DM0里存放的数据是4在普通编程时它里面所指的就是常数4而使用间接寻址时(@DM或者*DM)它指的就是DM4。
MOV #4 DO<--运算后D0为4;MOV #4 D0,MOV #FFFF @D0<--运算结果为D0为4,D4为FFFF。@后面的存储器它里面的值其实是指D区的存储器编号,1就是D1,2就是D2等等。在这里值得注意的是@D0和*D0的区别,前者为2进制的寻址后者为BCD的寻址。举个例子,MOV #10 D0,MOV #FFFF @D0这里的意思是把FFFF放到D16里;MOV #10 D0,MOV #FFFF *D0这里的意思是吧FFFF放到D10里,注意不要混淆哦。如果你做的是MOV #A D0,MOV #FFFF *DO这样将不能正确寻址。
3 系统说明
3.1 功能需求的提出
长飞拉伸塔的工艺水系统采用二用一备的水泵控制,有应急补水、应急排水系统、压差开关动作、控制泵的切换。工艺水系统对压力的波动非常敏感,波动太大了会照成废品,工艺水系统有监控系统IFIX,能记录工艺水各个设备的监视和设备报警和记录、供水压力的数据历史曲线的监控和记录,监控系统采集的频率为秒,第一动作是何原因引起系统的切换,通过监控系统报警保存的信息查找无法判断引起故障发生的第一原因,供水压力最低下降到了多少,其历史记录的曲线的精度不够。平时没必要关心故障发生,但发生了故障后同样的故障不能出现第二次,找到故障原因完善系统是根本。
根据长飞的要求研制开发了本程序,利用PLC的扫描时间快,可保存第一引起切换的点号,以0.2S采样频率进行采集供水压力数据,比上位机的采样速度快了5倍且采样精确。若需分析再将相关的数据从OMRON PLC DM数据区中读入到EXCEL中,形成图表进行分析。该程序多次分析了故障原因,对完善工艺水系统提供了帮助,满足了现场的实际要求。
记录包括故障触发时刻的年月,日时,分秒,触发点的点号,故障发生前18S共计90个数据,后80秒共计400个数据,合计一次故障记录共占用了DM区500个字,同时便于在DM区查找。0-9 记录为触发的年月,触发的日时,触发的分秒,触发点,10-99 为故障发生前18S共计90个数据压力记录,100-499为故障发生后80秒共计400个数据压力记录。
本例中DM7988~ DM7999为指针和记录内容,OMRON DM8000~ DM12999为10次故障记录区域。
3.2 相关指令和指针说明
(1)取时间A353为年月 ,A352为日时,A351为分秒;
(2)指针的描述见表1;
(3)注意:间接寻址必须给出初始化,同时指针范围要限定,不能出现超出范围,否则会引起内存混乱不可预见的错误。大家要注意该区域只能用于数据的采集保存,不要用于其他;以下为本例间接寻址时的初始化。
' 初始化
LD P_First_Cycle
OR>(320) D7998 &10
MOV(021) &8003 D7988
MOV(021) &8003 D7988
MOV(021) &8000 D7990
MOV(021) &8001 D7991
MOV(021) &8002 D7992
MOV(021) &8099 D7993
MOV(021) &8011 D7994
MOV(021) &8010 D7995
MOV(021) &8100 D7996
MOV(021) &1 D7997
MOV(021) &1 D7998
MOV(021) &8009 D7999
初始化第一次上电,和次数>10次指针都进行了复位。
(4)在这里最主要的是前18S的记录如何得到同时又和后面的故障记录连在一起,在本例中用到了XFER(070)的功能块。
块传送指令XFER(70)/@ XFER(70)的功能是将从S开始的N个连续通道中的数据传送至从D开始的N个连续通道中。S、D和N的取值范围为IR、HR、AR、LR、TC、DM和*DM,其中N还可以从SR或立即数取值,要求N必须是BCD吗数据,S、D可以为同一数据区。
下面为故障发生前18S共計90个数据的程序。下面程序为采集故障前18S数据。
LD P_0_2s
ANDNOT 工艺水故障
OUT 工艺水故障前数据
@LD 工艺水故障前数据
MOV(021) D7989 @D7993
XFER(070) &89 @D7994 @D7995 '说明:所有记录向前移动一个
该段指令的运用建立了一个先进先出队列,保存18S故障前的压力记录。灵活运用该指令可求平均的温度、压力等值和其他的功能,采用0.2S的触发频率是正好可以满足块移动所占用的时间,若采样的时间太快,XFER移动数据指令还没完成,下一个触发到来会造成数据准确度,大家在实际运用看提高采样频率最高多少,这与CPU的扫描周期有关。在SIEMENS PLC 1200中该指令为MOVE-BLK 功能块。
3.3 故障发生后的数据记录
' 故障发生时间
@LD 工艺水故障
MOV(021) A353 @D7990
MOV(021) A352 @D7991
MOV(021) A351 @D7992
MOV(021) D7998 @D7999
' 数据采集--> 2 故障!!!
LD 工艺水故障
@AND P_0_2s
MOV(021) D7989 @D7996
++(590) D7996
++(590) D7997
AND>(320) D7997 &400
RSET 工艺水故障
工艺水故障当为1时,一直进行记录,记录400个点共计80秒后工艺水故障复位为0。
3.4 记录结束后的相关指针的变化
工艺水故障复位为0后允许下一次的记录,同时相关指针的指到下一次的记录区域。
+(400) D7990 &500 D7990
+(400) D7991 &500 D7991
+(400) D7992 &500 D7992
+(400) D7993 &500 D7993
+(400) D7994 &500 D7994
+(400) D7995 &500 D7995
+(400) D7990 &100 D7996
+(400) D7990 &9 D7999
MOV(021) &1 D7997
++(590) D7998
+(400) D7988 &500 D7988
大家注意下PLC的时间和上位监控的时间需同步一下,否则记录的时间会有偏差。
4 结论
本文详细介绍了在OMRON PLC中循环保存10次故障记录的程序,对OMRON的间接寻址的指令给出了详细的运用,在其他的PLC中进行使用对应转换一下指令即可。若只循环记录一次故障稍修改一下可记录更长的时间的数据。本程序开发后已运用在现场工艺水的压力监控有近2年多,它可细致分析引起压力波动产生的原因,完全满足了现场的监控要求;其后厂家其他相关工艺水设备的程序中都加入了该程序部分,配合上位机实时监控能够更好查找和分析故障原因。在碰到重要参数需要进行监控时大家可参考上述程序的思路,本文不足之处欢迎大家探讨指正。
参考文献
[1]王卫兵,高俊山等。可编程序控制器原理及应用[M].北京:机械工业出版社,2002.
[2]徐世许,宫淑贞,彭涛.可编程序控制器应用指南[M].北京:电子工业出版社,2007.
[3]公利滨.欧姆龙PLC培训教程[M].北京:中国电力出版社,2012.
[4]OMRON SYSMAC CS/SJ Series Programming Consoles Operation Manual,2005.
[5]http://www.fa.omron.com.cn
作者简介
汪金荣(1966-),男,湖北省武汉市人。大学本科学历。现为武钢自动化有限责任公司工程师,从事自动化领域及通讯技术。
作者单位
武汉钢铁工程技术集团自动化有限责任公司 湖北省武汉市 430080