摘 要PLC系統(tǒng)得到廣泛的運(yùn)用,傳統(tǒng)上位機(jī)系統(tǒng)采集的歷史曲線的記錄是以秒級(jí)為單位,或采用專用的高速采集系統(tǒng)進(jìn)行采集和儲(chǔ)存。本文闡述利用OMRON的間接尋址保存故障發(fā)生時(shí)的數(shù)據(jù)的記錄的一種運(yùn)用。
【關(guān)鍵詞】PLC 間接尋址 故障 記錄
在非常多的場(chǎng)合,需要記錄故障發(fā)生時(shí)刻的相關(guān)數(shù)據(jù)的變化值是怎么變化的,不僅需要發(fā)生故障后的數(shù)據(jù)值,而且需要故障前的數(shù)據(jù)的變化值,但傳統(tǒng)上位機(jī)系統(tǒng)采集的歷史曲線的記錄都是以秒級(jí)為單位,達(dá)不到細(xì)致分析故障發(fā)生時(shí)的數(shù)據(jù)變化的要求,需采用專用的高速采集系統(tǒng)進(jìn)行采集和儲(chǔ)存增加了成本。本例運(yùn)用現(xiàn)有的PLC系統(tǒng),以0.2S采集頻率進(jìn)行采集數(shù)據(jù)和保存,滿足了分析故障的要求,節(jié)約了成本。
1 概述
PLC系統(tǒng)在各行各業(yè)得到廣泛,我們經(jīng)常碰到需要分析數(shù)據(jù),此時(shí)運(yùn)用的方法是采用上位機(jī)進(jìn)行歷史曲線的記錄和保存,需要分析數(shù)據(jù)時(shí)再調(diào)出來(lái),這些平時(shí)都滿足了監(jiān)控的需求,但若發(fā)生故障時(shí)分析故障的原因和這一時(shí)刻數(shù)據(jù)的變化,由于上位機(jī)的組態(tài)軟件的因素,其采集的頻率是以秒為單位的,這時(shí)數(shù)據(jù)如壓力變化到多低,如何變化的,由于精確度不夠而無(wú)法細(xì)致判斷原因所在。
本例通過(guò)判斷工藝水在發(fā)生故障時(shí),采集發(fā)生故障時(shí)是由哪個(gè)因素引起的,將壓力記錄保存到PLC內(nèi)存中,故障發(fā)生前18S的數(shù)據(jù)記錄以及故障發(fā)生后80S的數(shù)據(jù)到PLC中。通過(guò)間接尋址的功能,保存了10次故障記錄,循環(huán)記錄。
2 OMRON間接尋址介紹
本例采用的PLC系統(tǒng)為CS1J-H CPU42。
OMRON的間接尋址同樣也可以分為存儲(chǔ)器尋址和寄存器尋址,比較方便的是它不需要你有匯編的技巧,像SIEMENS可以用STL編寫(xiě)但不能用LAD,而OMRON可以使用LAD編寫(xiě),以下介紹下存儲(chǔ)器間接尋址。
支持存儲(chǔ)器尋址的主要有DM和E,下面主要介紹的是DM。在DM區(qū)中不僅可以存儲(chǔ)數(shù)據(jù)還可以存儲(chǔ)地址,但這里地址并不是各存儲(chǔ)單元的絕對(duì)地址,而是DM區(qū)自己的一個(gè)順序地址。比如說(shuō)DM0里存放的數(shù)據(jù)是4在普通編程時(shí)它里面所指的就是常數(shù)4而使用間接尋址時(shí)(@DM或者*DM)它指的就是DM4。
MOV #4 DO<--運(yùn)算后D0為4;MOV #4 D0,MOV #FFFF @D0<--運(yùn)算結(jié)果為D0為4,D4為FFFF。@后面的存儲(chǔ)器它里面的值其實(shí)是指D區(qū)的存儲(chǔ)器編號(hào),1就是D1,2就是D2等等。在這里值得注意的是@D0和*D0的區(qū)別,前者為2進(jìn)制的尋址后者為BCD的尋址。舉個(gè)例子,MOV #10 D0,MOV #FFFF @D0這里的意思是把FFFF放到D16里;MOV #10 D0,MOV #FFFF *D0這里的意思是吧FFFF放到D10里,注意不要混淆哦。如果你做的是MOV #A D0,MOV #FFFF *DO這樣將不能正確尋址。
3 系統(tǒng)說(shuō)明
3.1 功能需求的提出
長(zhǎng)飛拉伸塔的工藝水系統(tǒng)采用二用一備的水泵控制,有應(yīng)急補(bǔ)水、應(yīng)急排水系統(tǒng)、壓差開(kāi)關(guān)動(dòng)作、控制泵的切換。工藝水系統(tǒng)對(duì)壓力的波動(dòng)非常敏感,波動(dòng)太大了會(huì)照成廢品,工藝水系統(tǒng)有監(jiān)控系統(tǒng)IFIX,能記錄工藝水各個(gè)設(shè)備的監(jiān)視和設(shè)備報(bào)警和記錄、供水壓力的數(shù)據(jù)歷史曲線的監(jiān)控和記錄,監(jiān)控系統(tǒng)采集的頻率為秒,第一動(dòng)作是何原因引起系統(tǒng)的切換,通過(guò)監(jiān)控系統(tǒng)報(bào)警保存的信息查找無(wú)法判斷引起故障發(fā)生的第一原因,供水壓力最低下降到了多少,其歷史記錄的曲線的精度不夠。平時(shí)沒(méi)必要關(guān)心故障發(fā)生,但發(fā)生了故障后同樣的故障不能出現(xiàn)第二次,找到故障原因完善系統(tǒng)是根本。
根據(jù)長(zhǎng)飛的要求研制開(kāi)發(fā)了本程序,利用PLC的掃描時(shí)間快,可保存第一引起切換的點(diǎn)號(hào),以0.2S采樣頻率進(jìn)行采集供水壓力數(shù)據(jù),比上位機(jī)的采樣速度快了5倍且采樣精確。若需分析再將相關(guān)的數(shù)據(jù)從OMRON PLC DM數(shù)據(jù)區(qū)中讀入到EXCEL中,形成圖表進(jìn)行分析。該程序多次分析了故障原因,對(duì)完善工藝水系統(tǒng)提供了幫助,滿足了現(xiàn)場(chǎng)的實(shí)際要求。
記錄包括故障觸發(fā)時(shí)刻的年月,日時(shí),分秒,觸發(fā)點(diǎn)的點(diǎn)號(hào),故障發(fā)生前18S共計(jì)90個(gè)數(shù)據(jù),后80秒共計(jì)400個(gè)數(shù)據(jù),合計(jì)一次故障記錄共占用了DM區(qū)500個(gè)字,同時(shí)便于在DM區(qū)查找。0-9 記錄為觸發(fā)的年月,觸發(fā)的日時(shí),觸發(fā)的分秒,觸發(fā)點(diǎn),10-99 為故障發(fā)生前18S共計(jì)90個(gè)數(shù)據(jù)壓力記錄,100-499為故障發(fā)生后80秒共計(jì)400個(gè)數(shù)據(jù)壓力記錄。
本例中DM7988~ DM7999為指針和記錄內(nèi)容,OMRON DM8000~ DM12999為10次故障記錄區(qū)域。
3.2 相關(guān)指令和指針說(shuō)明
(1)取時(shí)間A353為年月 ,A352為日時(shí),A351為分秒;
(2)指針的描述見(jiàn)表1;
(3)注意:間接尋址必須給出初始化,同時(shí)指針?lè)秶薅ǎ荒艹霈F(xiàn)超出范圍,否則會(huì)引起內(nèi)存混亂不可預(yù)見(jiàn)的錯(cuò)誤。大家要注意該區(qū)域只能用于數(shù)據(jù)的采集保存,不要用于其他;以下為本例間接尋址時(shí)的初始化。
' 初始化
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
初始化第一次上電,和次數(shù)>10次指針都進(jìn)行了復(fù)位。
(4)在這里最主要的是前18S的記錄如何得到同時(shí)又和后面的故障記錄連在一起,在本例中用到了XFER(070)的功能塊。
塊傳送指令XFER(70)/@ XFER(70)的功能是將從S開(kāi)始的N個(gè)連續(xù)通道中的數(shù)據(jù)傳送至從D開(kāi)始的N個(gè)連續(xù)通道中。S、D和N的取值范圍為IR、HR、AR、LR、TC、DM和*DM,其中N還可以從SR或立即數(shù)取值,要求N必須是BCD嗎數(shù)據(jù),S、D可以為同一數(shù)據(jù)區(qū)。
下面為故障發(fā)生前18S共計(jì)90個(gè)數(shù)據(jù)的程序。下面程序?yàn)椴杉收锨?8S數(shù)據(jù)。
LD P_0_2s
ANDNOT 工藝水故障
OUT 工藝水故障前數(shù)據(jù)
@LD 工藝水故障前數(shù)據(jù)
MOV(021) D7989 @D7993
XFER(070) &89 @D7994 @D7995 '說(shuō)明:所有記錄向前移動(dòng)一個(gè)
該段指令的運(yùn)用建立了一個(gè)先進(jìn)先出隊(duì)列,保存18S故障前的壓力記錄。靈活運(yùn)用該指令可求平均的溫度、壓力等值和其他的功能,采用0.2S的觸發(fā)頻率是正好可以滿足塊移動(dòng)所占用的時(shí)間,若采樣的時(shí)間太快,XFER移動(dòng)數(shù)據(jù)指令還沒(méi)完成,下一個(gè)觸發(fā)到來(lái)會(huì)造成數(shù)據(jù)準(zhǔn)確度,大家在實(shí)際運(yùn)用看提高采樣頻率最高多少,這與CPU的掃描周期有關(guān)。在SIEMENS PLC 1200中該指令為MOVE-BLK 功能塊。
3.3 故障發(fā)生后的數(shù)據(jù)記錄
' 故障發(fā)生時(shí)間
@LD 工藝水故障
MOV(021) A353 @D7990
MOV(021) A352 @D7991
MOV(021) A351 @D7992
MOV(021) D7998 @D7999
' 數(shù)據(jù)采集--> 2 故障?。?!
LD 工藝水故障
@AND P_0_2s
MOV(021) D7989 @D7996
++(590) D7996
++(590) D7997
AND>(320) D7997 &400
RSET 工藝水故障
工藝水故障當(dāng)為1時(shí),一直進(jìn)行記錄,記錄400個(gè)點(diǎn)共計(jì)80秒后工藝水故障復(fù)位為0。
3.4 記錄結(jié)束后的相關(guān)指針的變化
工藝水故障復(fù)位為0后允許下一次的記錄,同時(shí)相關(guān)指針的指到下一次的記錄區(qū)域。
+(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的時(shí)間和上位監(jiān)控的時(shí)間需同步一下,否則記錄的時(shí)間會(huì)有偏差。
4 結(jié)論
本文詳細(xì)介紹了在OMRON PLC中循環(huán)保存10次故障記錄的程序,對(duì)OMRON的間接尋址的指令給出了詳細(xì)的運(yùn)用,在其他的PLC中進(jìn)行使用對(duì)應(yīng)轉(zhuǎn)換一下指令即可。若只循環(huán)記錄一次故障稍修改一下可記錄更長(zhǎng)的時(shí)間的數(shù)據(jù)。本程序開(kāi)發(fā)后已運(yùn)用在現(xiàn)場(chǎng)工藝水的壓力監(jiān)控有近2年多,它可細(xì)致分析引起壓力波動(dòng)產(chǎn)生的原因,完全滿足了現(xiàn)場(chǎng)的監(jiān)控要求;其后廠家其他相關(guān)工藝水設(shè)備的程序中都加入了該程序部分,配合上位機(jī)實(shí)時(shí)監(jiān)控能夠更好查找和分析故障原因。在碰到重要參數(shù)需要進(jìn)行監(jiān)控時(shí)大家可參考上述程序的思路,本文不足之處歡迎大家探討指正。
參考文獻(xiàn)
[1]王衛(wèi)兵,高俊山等。可編程序控制器原理及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2002.
[2]徐世許,宮淑貞,彭濤.可編程序控制器應(yīng)用指南[M].北京:電子工業(yè)出版社,2007.
[3]公利濱.歐姆龍PLC培訓(xùn)教程[M].北京:中國(guó)電力出版社,2012.
[4]OMRON SYSMAC CS/SJ Series Programming Consoles Operation Manual,2005.
[5]http://www.fa.omron.com.cn
作者簡(jiǎn)介
汪金榮(1966-),男,湖北省武漢市人。大學(xué)本科學(xué)歷?,F(xiàn)為武鋼自動(dòng)化有限責(zé)任公司工程師,從事自動(dòng)化領(lǐng)域及通訊技術(shù)。
作者單位
武漢鋼鐵工程技術(shù)集團(tuán)自動(dòng)化有限責(zé)任公司 湖北省武漢市 430080