水電機(jī)組是電力網(wǎng)絡(luò)中的重要元件,保證大型水電機(jī)組的正常運(yùn)行,對其運(yùn)行狀態(tài)進(jìn)行監(jiān)測,及時(shí)發(fā)現(xiàn)故障征兆,做到“事前檢修”是工程界夢寐以求的理想,也是大型電站機(jī)組檢修的發(fā)展方向。實(shí)時(shí)狀態(tài)監(jiān)測可以減少機(jī)組停機(jī)時(shí)間,提高利用率。
這里所說的狀態(tài)監(jiān)測實(shí)際上是對水輪機(jī)組眾多參數(shù)進(jìn)行的實(shí)時(shí)在線監(jiān)測。水輪機(jī)組的參數(shù)較多,為了分析方便,對部分參數(shù)還需要進(jìn)行高速采樣。這樣,一個(gè)監(jiān)測系統(tǒng)通常要由分布在不同現(xiàn)場位置的多個(gè)采集節(jié)點(diǎn)組成。各節(jié)點(diǎn)將大量的采集數(shù)據(jù)傳送到上位機(jī),由上位機(jī)從多角度評估機(jī)組的運(yùn)行狀態(tài)。采用全數(shù)字化通信的現(xiàn)場總線整合整個(gè)監(jiān)測系統(tǒng)可以實(shí)現(xiàn)徹底的分散控制,抵抗各種干擾因素,簡化系統(tǒng)的結(jié)構(gòu),提高數(shù)據(jù)傳輸效率。于是,本文設(shè)計(jì)實(shí)現(xiàn)了一種基于lonworks現(xiàn)場總線的水輪機(jī)組狀態(tài)監(jiān)測系統(tǒng)。
1 lonworks現(xiàn)場總線的技術(shù)特點(diǎn)
lonworks總線是美國echelon公司推出的一種現(xiàn)場總線技術(shù)。具有開放性、高速性和互操作性;采用面向?qū)ο蟮脑O(shè)計(jì)方法,使網(wǎng)絡(luò)通信的設(shè)計(jì)簡化為參數(shù)設(shè)置,降低了開發(fā)難度;支持多種傳輸介質(zhì),網(wǎng)絡(luò)容量可達(dá)32000個(gè)節(jié)點(diǎn),網(wǎng)絡(luò)通信速率可達(dá)1.25mbps/130m,直接通信距離可達(dá)2700m/78kbps;其網(wǎng)絡(luò)采取了配置1500v直流隔離變壓器進(jìn)行隔離等適合于工業(yè)現(xiàn)場環(huán)境的措施,具有很強(qiáng)的抗干擾、抗振動(dòng)能力,適合于水電廠等較惡劣的工業(yè)環(huán)境。
在水輪機(jī)組狀態(tài)監(jiān)測系統(tǒng)中,有幾十個(gè)現(xiàn)場數(shù)據(jù)采集節(jié)點(diǎn),它們通過現(xiàn)場總線將采樣結(jié)果傳送到距離較遠(yuǎn)的上位機(jī),并且數(shù)據(jù)通信頻繁。考慮到lonworks總線技術(shù)具有強(qiáng)大的強(qiáng)信能力,以lon總線來組成系統(tǒng)的實(shí)時(shí)數(shù)據(jù)通信網(wǎng)絡(luò),極大地簡化了系統(tǒng)的通信軟、硬件設(shè)計(jì),使數(shù)據(jù)的傳輸與通訊變得十分便捷。
2 系統(tǒng)構(gòu)成
基于lonworks現(xiàn)場總線的水輪機(jī)組狀態(tài)監(jiān)測系統(tǒng)由上位監(jiān)控機(jī)和多個(gè)現(xiàn)場監(jiān)測單元組成。
每個(gè)現(xiàn)場監(jiān)測單元監(jiān)測三個(gè)現(xiàn)場數(shù)據(jù)采集節(jié)點(diǎn),現(xiàn)場數(shù)據(jù)采集節(jié)點(diǎn)的現(xiàn)場監(jiān)測單元主要負(fù)責(zé)對現(xiàn)場數(shù)據(jù)進(jìn)行采集、存儲(chǔ)和傳送。現(xiàn)場監(jiān)測包括壓力監(jiān)測;溫度監(jiān)測;水位及油位等液位監(jiān)測;水流量監(jiān)測;機(jī)組振動(dòng)擺度監(jiān)測、機(jī)組電氣監(jiān)測、機(jī)組轉(zhuǎn)速及導(dǎo)葉開度監(jiān)測、效率監(jiān)測;水淪機(jī)氣蝕監(jiān)測;發(fā)電機(jī)氣隙監(jiān)測;發(fā)電機(jī)絕緣監(jiān)測;尾水管真空監(jiān)測等。
各個(gè)現(xiàn)場采集節(jié)點(diǎn)通過lonworks總線組成一個(gè)現(xiàn)場監(jiān)測網(wǎng)絡(luò)。用開發(fā)的lonworks-ethernet互連適配器把lon總線上采集節(jié)點(diǎn)發(fā)送的數(shù)據(jù)轉(zhuǎn)換為udp格式,利用速度較高的工業(yè)以太網(wǎng)將其發(fā)送到上位同,再把上位下達(dá)的命令轉(zhuǎn)換為lontalk協(xié)議的形式發(fā)給各個(gè)現(xiàn)場節(jié)點(diǎn),從而實(shí)現(xiàn)上位機(jī)和底層各個(gè)現(xiàn)場節(jié)點(diǎn)之間的通信。與以短訓(xùn)班采用昂貴的lon總線適配器的方法相比,這種方法既提高了數(shù)據(jù)的傳輸速度又節(jié)省了方法費(fèi)用。上位機(jī)將現(xiàn)場節(jié)點(diǎn)傳送上來的各種監(jiān)測數(shù)據(jù)存進(jìn)ms-sqlserver2000數(shù)據(jù)庫,提供人機(jī)交互的界面,并完成實(shí)時(shí)數(shù)據(jù)的圖形化、格式化顯示,同時(shí)用傅立葉變、換(ft)和小波變換(wt)對數(shù)據(jù)進(jìn)行分析。
2.1 現(xiàn)場節(jié)點(diǎn)設(shè)計(jì)
現(xiàn)場節(jié)點(diǎn)既要接收上位機(jī)發(fā)出的采集命令,命令標(biāo)準(zhǔn)傳感器采集現(xiàn)場信號(hào);又要把采集到的現(xiàn)場信號(hào)通過lon總線送到上位機(jī),由上位機(jī)進(jìn)行處理。
2.1.1 節(jié)點(diǎn)組成
節(jié)點(diǎn)由神經(jīng)元芯片neuron 3150、lonworks雙絞線、網(wǎng)絡(luò)收發(fā)器、程序程序器、數(shù)據(jù)存儲(chǔ)器、十二位a/d轉(zhuǎn)換芯片ad1674等組成。其中,3150神經(jīng)元芯片選用toshiba公司生產(chǎn)的tmpn3150;flash rom選用at29c512;數(shù)據(jù)存儲(chǔ)器(ram)選用issi公司的is61c256;neuron 3150芯片與lon總線的網(wǎng)絡(luò)介質(zhì)接口選用echelon公司的自由拓?fù)湫褪瞻l(fā)器ftt 10a,它是一種變壓器耦合收發(fā)器,可提供一個(gè)與雙絞線的無及性接口,且支持網(wǎng)絡(luò)的自由拓?fù)浣Y(jié)構(gòu);網(wǎng)絡(luò)通訊介質(zhì)采用最常用的雙絞線;a/d轉(zhuǎn)換芯片采用性價(jià)比較高的ad1674芯片,其轉(zhuǎn)換精度為1/2lsb,轉(zhuǎn)換速率為100ksps,具備三態(tài)輸出緩沖區(qū)。
2.1.2 存儲(chǔ)空間分配
neuron 3150芯片片內(nèi)存儲(chǔ)器的地址范圍為e800h~ffffh,包含2kb的ram(e800~efff)、0.5kb的eeprom(f000~f1ff)、2.5kb的保留空間(f200~fbff)和1kb的用于存儲(chǔ)器映像i/o的空間(fc00~ffff)。外部擴(kuò)展存儲(chǔ)器的地址由neuron3150的地址引腳和控制引腳來確定:給flash rom分配的地址空間為0000~7fff,其中,0000~3fff的16kb空間用于系統(tǒng)固件(firmware),系統(tǒng)固件實(shí)現(xiàn)了lontalk協(xié)議,4000~7fff的16kb空間用于用戶程序代碼;給ram分配的地址空間為8000~e7ff的24kb地址空間;將e000~e7ff的2kb地址空間分配為外部設(shè)備的內(nèi)存映像i/o的空間。
2.1.3 a/d轉(zhuǎn)換接口方案
本文在設(shè)計(jì)時(shí)曾考慮過使用neuron芯片為a/d轉(zhuǎn)換電路提供串行i/o及并行i/o接口方式。然而串行i/o方式速度太慢;并行i/o方式實(shí)現(xiàn)起來需要占用neuron芯片全部11個(gè)i/o接口,同時(shí)還要編程實(shí)現(xiàn)neuron芯片的握手/令牌傳遞算法,開發(fā)費(fèi)用和難度比較高。因此本文將節(jié)點(diǎn)保留的e000~e7ff的2kb地址空間分配給a/d轉(zhuǎn)換芯片,作為ad1674的端口地址,采用內(nèi)存映像的方法直接讀取ad1674的數(shù)據(jù)。對于本設(shè)計(jì)而言,ad1674轉(zhuǎn)換數(shù)據(jù)的高8位地址為e002h,低4位數(shù)據(jù)地址為e003h。由于實(shí)現(xiàn)軟件沒有使用neuron c的內(nèi)嵌函數(shù),因此執(zhí)行速度得到大幅度的提升,實(shí)驗(yàn)證明,對同樣采用ad1674轉(zhuǎn)換芯片的節(jié)點(diǎn)而言,采用這種方法設(shè)計(jì)的節(jié)點(diǎn),采集速度超過了其它兩種方法設(shè)計(jì)的采集節(jié)點(diǎn)的采集速度,而且節(jié)省了neuron芯片的全部11個(gè)i/o引腳。
3 系統(tǒng)通信程序的設(shè)計(jì)
3.1 現(xiàn)場節(jié)點(diǎn)通信程序
現(xiàn)場節(jié)點(diǎn)向上位機(jī)發(fā)送的數(shù)據(jù)首先發(fā)送到lonworks-ethernet互連適配器,該適配器實(shí)際上是一個(gè)特殊的lonworks節(jié)點(diǎn),它把接收到的lon總線上的數(shù)據(jù)用udp封裝,然后通過以太網(wǎng)發(fā)送到上位機(jī)。
lonworks網(wǎng)絡(luò)的節(jié)點(diǎn)之間的通信方式主要有兩種方式:網(wǎng)絡(luò)變量和顯式消息。使用網(wǎng)絡(luò)變量不必考慮消息的打包、發(fā)送以及接收問題,可以大大簡化編程,縮短應(yīng)用開發(fā)周期,但每個(gè)周期變量的數(shù)據(jù)長度一經(jīng)確定就不能改變,且最多只有31字節(jié)。而顯式消息的數(shù)據(jù)長度則是靈活可變的,最長可以是228字節(jié),但實(shí)現(xiàn)方法更為復(fù)雜。鑒于水輪機(jī)組狀態(tài)監(jiān)測系統(tǒng)對數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性要求較高,同時(shí)需要提高足球場采集數(shù)據(jù)的上傳速度,因此希望每一次傳送的報(bào)文包含盡量多的數(shù)據(jù),因而在設(shè)計(jì)中采用顯示消息的方式實(shí)現(xiàn)與上位機(jī)的通信,每個(gè)顯式消息報(bào)文攜帶134個(gè)字節(jié)的數(shù)據(jù),其中的128個(gè)字節(jié)為傳送的數(shù)據(jù),另外6個(gè)字節(jié)為附加信息。
顯示報(bào)文的初始化和發(fā)送部分的實(shí)現(xiàn)程序如下:
初始化節(jié)點(diǎn)地址
#include<addrdefs.h> 所需頭文件
#include<access.h>
#include<msg_addr.h>
domain_struct mydomain; //定義域結(jié)構(gòu)
mydomain=*(access_domain(0));//讀節(jié)點(diǎn)域表
mydomain.subnet=0; //設(shè)置節(jié)點(diǎn)子網(wǎng)號(hào)
mydomain.node=5; //設(shè)置節(jié)點(diǎn)號(hào)
update_damain(&mydomain,0); //寫節(jié)點(diǎn)域表
發(fā)送數(shù)據(jù)報(bào)文
msg_tag test_out; //聲明報(bào)文標(biāo)簽
msg_out.tag=test_out; //傳遞報(bào)文標(biāo)簽
msg_out.dest_addr.snode.node=0; //定義目的地址節(jié)點(diǎn)號(hào)
msg_out.dest_addr.snode.subnet=0; //定義目的地址子網(wǎng)號(hào)
msg_out.code=0x0c; //定義報(bào)文碼
msg_out.service=ackd; //定義報(bào)文服務(wù)類型
msg_out.dest_addr.snode.type=1; //定義目的節(jié)點(diǎn)類型
memcpy(msg_out.data,a0,nlength);//填充報(bào)文內(nèi)容
msg_send();//發(fā)送報(bào)文
在初始化程序中,用數(shù)據(jù)結(jié)構(gòu)domain_struct定義節(jié)點(diǎn)的子網(wǎng)號(hào)、節(jié)點(diǎn)號(hào),即設(shè)置節(jié)點(diǎn)在lon總線上的地址。在發(fā)送程序中利用msg_out結(jié)構(gòu)構(gòu)造報(bào)文,其中,目的地址指向適配器。顯示報(bào)文的接收程序與發(fā)送部分類似,不再多述。
3.2 上位機(jī)通信程序
上位機(jī)與現(xiàn)場節(jié)點(diǎn)通訊的數(shù)據(jù)通過適配器轉(zhuǎn)發(fā),適配器的ip必須事先指定。上位機(jī)利用msg_out變量(如前所述)創(chuàng)建顯示報(bào)文,將目標(biāo)節(jié)點(diǎn)的地址、需要改變的參數(shù)或要下達(dá)的命令填充到該變量中,然后用udp封裝該變量,通過以太網(wǎng)發(fā)往適配器;適配器解析上位機(jī)發(fā)來的數(shù)據(jù)包,得到顯示報(bào)文,將該顯示報(bào)文直接向相應(yīng)的節(jié)點(diǎn)發(fā)送。同樣,適配器也將現(xiàn)場節(jié)點(diǎn)發(fā)來的顯示報(bào)文通過udp封裝后發(fā)往上位機(jī),上位機(jī)解包后根據(jù)節(jié)點(diǎn)等信息將數(shù)據(jù)存入相應(yīng)的數(shù)據(jù)庫,等待后后續(xù)的信號(hào)處理模塊和故障診斷模塊調(diào)用。
4 故障診斷
系統(tǒng)采用連續(xù)小波變換對采集的信號(hào)進(jìn)行處理,通過變換結(jié)果進(jìn)行故障診斷。下面以采集到的水輪機(jī)的主軸上導(dǎo)y軸方向徑向擺度信號(hào)的數(shù)據(jù)為例說明通過小波變換進(jìn)行故障診斷的結(jié)果。
選用消息矩為4的雙正交樣條小波,在[1:1:48]的尺度上對時(shí)域信號(hào)進(jìn)行連續(xù)小波變換。周期性出現(xiàn)的四條模極大值曲線,且總是第三條斜率較小,而正常情況下三維圖中將出現(xiàn)平穩(wěn)的錐全,這說明這些點(diǎn)的奇異性較強(qiáng)。事實(shí)上這正是由于水輪機(jī)主軸滑動(dòng)摩擦造成的。通過設(shè)置閾值算法得到小波的模極大值曲線,兩條模極大值曲線的相交點(diǎn)即可以精確地指向故障點(diǎn)。
本文結(jié)合水輪發(fā)電機(jī)組狀態(tài)監(jiān)測的實(shí)際需要,研究開發(fā)了一種基于lonworks現(xiàn)場總線技術(shù)的水輪發(fā)電機(jī)組狀態(tài)監(jiān)測系統(tǒng),完成了現(xiàn)場數(shù)據(jù)采集節(jié)點(diǎn)的軟硬件開發(fā),設(shè)計(jì)了系統(tǒng)數(shù)據(jù)通訊的報(bào)文協(xié)議和通信軟件。系統(tǒng)上位機(jī)軟件利用ms-sqlserver2000數(shù)據(jù)庫進(jìn)行數(shù)據(jù)存儲(chǔ),通過小波變換初步實(shí)現(xiàn)了故障診斷。