文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)010-0073-04
輸油管道泄漏監(jiān)測(cè)技術(shù)是當(dāng)今石油化工領(lǐng)域科研工作者研究的熱門(mén)課題[1]。目前,輸油管道現(xiàn)場(chǎng)應(yīng)用的泄漏監(jiān)測(cè)系統(tǒng)存在各種問(wèn)題。首先,現(xiàn)場(chǎng)很多站點(diǎn)正在使用太陽(yáng)能閥室設(shè)計(jì),而廣泛使用于全國(guó)各地輸油管道監(jiān)測(cè)系統(tǒng)中的基于PC的采集傳輸設(shè)備,因其高功耗、高成本的缺點(diǎn)不適合在太陽(yáng)能閥室中應(yīng)用。其次,許多現(xiàn)場(chǎng)管道為分布式網(wǎng)絡(luò)布局,一個(gè)站點(diǎn)可能安置了多個(gè)測(cè)量節(jié)點(diǎn),并且在主站有多個(gè)監(jiān)控PC獲得現(xiàn)場(chǎng)數(shù)據(jù)進(jìn)行監(jiān)測(cè),很多監(jiān)測(cè)系統(tǒng)的多通道采集和多用戶處理能力達(dá)不到滿意要求。再次,由于一些現(xiàn)場(chǎng)會(huì)使用電話線撥號(hào)網(wǎng)絡(luò)或微波無(wú)線網(wǎng)絡(luò),帶寬和穩(wěn)定性無(wú)法達(dá)到正常網(wǎng)絡(luò)環(huán)境要求,很多現(xiàn)場(chǎng)設(shè)備因經(jīng)常出現(xiàn)數(shù)據(jù)丟失的情況而不能對(duì)泄漏發(fā)生做出及時(shí)判斷定位。所以針對(duì)這種情況需要應(yīng)用一些專(zhuān)門(mén)機(jī)制來(lái)保證網(wǎng)絡(luò)通信的實(shí)時(shí)性和完整性,為輸油管道泄漏監(jiān)測(cè)與定位提供準(zhǔn)確的數(shù)據(jù)來(lái)源。為解決上述泄漏監(jiān)測(cè)系統(tǒng)的問(wèn)題,設(shè)計(jì)了一套基于ARM的分布式管道泄漏監(jiān)測(cè)系統(tǒng)。
在當(dāng)今嵌入式應(yīng)用領(lǐng)域,ARM由于性?xún)r(jià)比、功耗、可靠性在同類(lèi)產(chǎn)品中非常突出,尤其是結(jié)合開(kāi)源的嵌入式Linux操作系統(tǒng)以后,得到了越來(lái)越多設(shè)計(jì)者的青睞[2]。在本輸油管道泄漏監(jiān)測(cè)設(shè)計(jì)中,遠(yuǎn)程測(cè)控終端(RTU)采用ARM和嵌入式Linux的方案,監(jiān)控PC采用LabVIEW圖形編程方案,所有節(jié)點(diǎn)通過(guò)基于TCP/IP協(xié)議的局域網(wǎng)進(jìn)行通信。
1 系統(tǒng)概述
管道泄漏檢測(cè)系統(tǒng)采用分布式網(wǎng)絡(luò)結(jié)構(gòu),由多個(gè)主站監(jiān)測(cè)PC和多個(gè)從站遠(yuǎn)程測(cè)控終端(RTU)組成。圖1是分布式管道泄漏監(jiān)測(cè)系統(tǒng)結(jié)構(gòu)示意圖。
系統(tǒng)基于負(fù)壓波原理,通過(guò)安裝在各個(gè)管道測(cè)量節(jié)點(diǎn)的壓力變送器測(cè)得壓力變化情況,并通過(guò)從站RTU將各個(gè)節(jié)點(diǎn)信號(hào)數(shù)據(jù)傳送給主站監(jiān)測(cè)PC。當(dāng)管道網(wǎng)絡(luò)中某段發(fā)生破裂時(shí), 主站監(jiān)測(cè)PC能立即接收到管段內(nèi)輸送介質(zhì)泄漏瞬間所產(chǎn)生的泄漏信號(hào), 通過(guò)比較數(shù)據(jù)庫(kù)中的模型來(lái)確定管道是否發(fā)生泄漏,利用管道兩端節(jié)點(diǎn)RTU傳送信號(hào)的時(shí)差確定泄漏位置。多個(gè)主站監(jiān)測(cè)PC可同時(shí)監(jiān)測(cè)整個(gè)管道網(wǎng)絡(luò)的狀態(tài)。
2 系統(tǒng)硬件組成原理
2.1 RTU硬件組成原理
S3C2440是SAMSUNG公司生產(chǎn)的一款基于ARM920T內(nèi)核的32位RISC微處理器,其具有低功耗、高速的處理計(jì)算能力,負(fù)責(zé)控制整個(gè)RTU。以太網(wǎng)控制器通過(guò)隔離器高速、穩(wěn)定地將系統(tǒng)接入局域網(wǎng)。GPS校時(shí)模塊把導(dǎo)航信息通過(guò)UART總線傳送至S3C2440芯片,利用秒脈沖中斷實(shí)現(xiàn)RTU自動(dòng)高精度時(shí)鐘同步。由于S3C2440已經(jīng)集成了SD模塊,直接外接SD物理層接口實(shí)現(xiàn)本地?cái)?shù)據(jù)儲(chǔ)存功能。
根據(jù)系統(tǒng)要求設(shè)計(jì)的RTU系統(tǒng)框圖如圖2所示。
2.2 A/D模塊硬件設(shè)計(jì)
RTU工作時(shí),首先由信號(hào)調(diào)理單元電路獲取壓力變送器采集到的電流信號(hào),經(jīng)由光電隔離芯片和數(shù)字濾波器得到適合于模/數(shù)轉(zhuǎn)換器(ADC)的輸出。模/數(shù)轉(zhuǎn)換器(ADC)采用一款內(nèi)置序列器的4通道、200 kS/s、12 bit AD7923芯片。AD7923芯片由AD780芯片提供2.5 V參考電壓。該A/D模塊通過(guò)SPI總線將轉(zhuǎn)換后的數(shù)字信號(hào)傳送給ARM核心控制模塊進(jìn)一步處理。A/D模塊接口電路如圖3所示。
3 系統(tǒng)軟件設(shè)計(jì)
軟件總體設(shè)計(jì)包括RTU服務(wù)器程序、A/D模塊驅(qū)動(dòng)程序和監(jiān)控PC的LabVIEW客戶端程序設(shè)計(jì)。RTU選用代碼開(kāi)放、快速高效且易于移植的分時(shí)Linux作為嵌入式操作系統(tǒng),在其基礎(chǔ)之上開(kāi)發(fā)應(yīng)用程序和驅(qū)動(dòng)程序。RTU服務(wù)器程序負(fù)責(zé)從A/D模塊獲得數(shù)據(jù),并通過(guò)網(wǎng)絡(luò)接口與監(jiān)控PC進(jìn)行數(shù)據(jù)交互,完成壓力信號(hào)的采集、存儲(chǔ)和通信等一系列功能。其中,A/D模塊的驅(qū)動(dòng)程序作為應(yīng)用程序與AD7923芯片溝通的橋梁,將SPI總線傳來(lái)的數(shù)據(jù)通過(guò)特定接口傳遞到用戶空間。監(jiān)控PC的LabVIEW客戶端程序接收到RTU服務(wù)器的數(shù)據(jù),在處理和分析判斷后決定是否報(bào)警和泄漏定位。LabVIEW客戶端還需有實(shí)時(shí)顯示和本地存儲(chǔ)功能,以供現(xiàn)場(chǎng)人員在線監(jiān)測(cè)和后續(xù)數(shù)據(jù)分析。
3.1 A/D模塊驅(qū)動(dòng)程序
A/D模塊驅(qū)動(dòng)程序主要實(shí)現(xiàn)配置模塊和接收A/D轉(zhuǎn)換數(shù)據(jù)功能。由于AD7923芯片與S3C2440芯片通過(guò)SPI總線通信,實(shí)際相當(dāng)于通過(guò)SPI總線接口來(lái)間接驅(qū)動(dòng)AD7923芯片。AD7923驅(qū)動(dòng)模塊為字符型設(shè)備,其主要驅(qū)動(dòng)接口函數(shù)如下:
AD7923_open( ):該函數(shù)對(duì)設(shè)備進(jìn)行初始化,是其他接口函數(shù)執(zhí)行的前提。它首先申請(qǐng)I/O內(nèi)存區(qū)域,將S3C2440芯片中SPI總線相關(guān)的寄存器硬件地址映射成Linux內(nèi)核的虛擬地址。映射成功后可以直接訪問(wèn)虛擬地址讀寫(xiě)SPI寄存器。然后,它對(duì)SPI各個(gè)寄存器進(jìn)行初始化配置。
AD7923_ioctl( ):用戶空間的應(yīng)用程序通過(guò)此函數(shù)配置設(shè)備的功能。函數(shù)的主要工作是解析用戶空間傳過(guò)來(lái)的配置命令(cmd),并將其轉(zhuǎn)換成符合AD7923芯片控制寄存器格式的2 B配置數(shù)據(jù)。
AD7923_read( ):該函數(shù)將配置數(shù)據(jù)發(fā)送給AD7923芯片。同時(shí),AD7923芯片將上次發(fā)送配置數(shù)據(jù)后得到的A/D轉(zhuǎn)換結(jié)果傳回給該函數(shù),再通過(guò)函數(shù)返回給用戶空間的應(yīng)用程序。
驅(qū)動(dòng)程序編譯完畢之后,將其動(dòng)態(tài)加載到內(nèi)核之中,并以設(shè)備文件的形式保存。這樣,RTU服務(wù)器程序可以直接通過(guò)打開(kāi)、讀寫(xiě)設(shè)備文件的方式與A/D模塊進(jìn)行通信。
3.2 RTU軟件設(shè)計(jì)
應(yīng)用程序總體結(jié)構(gòu)如圖4所示。
管道泄漏監(jiān)測(cè)系統(tǒng)各節(jié)點(diǎn)通過(guò)基于TCP/IP協(xié)議的以太網(wǎng)進(jìn)行通信。RTU作為服務(wù)器,需要同時(shí)處理多個(gè)監(jiān)測(cè)PC客戶端的請(qǐng)求,所以提前創(chuàng)建線程池為客戶端的登錄作資源預(yù)分配。同時(shí),需要獨(dú)立的線程實(shí)現(xiàn)SD卡存儲(chǔ)與管理、GPS同步校時(shí)等功能。
在數(shù)據(jù)采集主線程中,系統(tǒng)壓力信號(hào)采樣時(shí)間間隔一般為50 ms,由于聲波在液體中的傳播速度高達(dá)每秒上千米,如果采集時(shí)間間隔精度不夠高,將直接造成泄漏點(diǎn)位置計(jì)算的誤差過(guò)大。所以使用捕獲SIGNAL信號(hào)軟中斷的方法,設(shè)置精度為微秒的定時(shí)函數(shù),實(shí)現(xiàn)50 ms精確定時(shí),完全保證定位泄漏點(diǎn)的準(zhǔn)確度。
為了保證網(wǎng)絡(luò)通信的實(shí)時(shí)性和完整性,同時(shí)也針對(duì)分布式網(wǎng)絡(luò)結(jié)構(gòu),RTU使用了打包時(shí)間標(biāo)識(shí)、消費(fèi)者/生產(chǎn)者模型和心搏包等方案。當(dāng)一個(gè)客戶端連接入服務(wù)器時(shí),服務(wù)器獲取客戶端信息并判斷客戶端是否為已注冊(cè)客戶端,如果已注冊(cè)并且首次連接則為其數(shù)據(jù)緩沖隊(duì)列分配內(nèi)存空間,拒絕未注冊(cè)的客戶端。RTU采用消費(fèi)者/生產(chǎn)者模型,將數(shù)據(jù)緩沖區(qū)設(shè)計(jì)為先進(jìn)先出的隊(duì)列,大大提高整個(gè)數(shù)據(jù)通信流程的效率。建立數(shù)據(jù)緩沖隊(duì)列線程作為生產(chǎn)者,已連接成功的客戶端處理線程和SD卡存儲(chǔ)線程作為消費(fèi)者。時(shí)間標(biāo)識(shí)可以使監(jiān)控PC獲得采集數(shù)據(jù)的絕對(duì)時(shí)間,對(duì)網(wǎng)絡(luò)通信的實(shí)時(shí)性起到重要作用。數(shù)據(jù)采集主線程在中斷20次后得到1 s的采樣數(shù)據(jù),與時(shí)間標(biāo)識(shí)一并打包分別插入生產(chǎn)者線程中的各個(gè)已連接客戶端緩沖隊(duì)列,客戶端處理線程負(fù)責(zé)將緩沖隊(duì)列中的數(shù)據(jù)發(fā)送至各個(gè)客戶端。同時(shí),打包的數(shù)據(jù)也通過(guò)SD卡存儲(chǔ)線程寫(xiě)入SD卡。服務(wù)器生產(chǎn)/消費(fèi)模型圖如圖5所示。
為保持服務(wù)器與客戶端的實(shí)時(shí)連接性,客戶端需每秒向服務(wù)器發(fā)送心搏包。服務(wù)器收到心搏包后將對(duì)應(yīng)的緩沖隊(duì)列中已有全部數(shù)據(jù)發(fā)送給客戶端并清空隊(duì)列。服務(wù)器一旦未收到數(shù)據(jù)而超時(shí),將自動(dòng)關(guān)閉與某個(gè)客戶端的連接,但它不會(huì)釋放生產(chǎn)者線程中對(duì)應(yīng)的緩沖隊(duì)列??蛻舳丝赡芤?yàn)槟承┊惓G闆r(如設(shè)備掉電、強(qiáng)制退出、網(wǎng)絡(luò)異常或人為誤操作等)暫時(shí)終止傳輸。為保證采集數(shù)據(jù)的完整性,需要在與客戶端被動(dòng)斷開(kāi)時(shí)仍能把這段時(shí)間所采集的數(shù)據(jù)保存在緩沖隊(duì)列中,待網(wǎng)絡(luò)重新連接成功后將緩沖隊(duì)列中累積的全部數(shù)據(jù)發(fā)送給客戶端。服務(wù)器只有在接收到對(duì)方客戶端斷開(kāi)連接請(qǐng)求時(shí)才會(huì)釋放其緩沖隊(duì)列。
客戶端在接收到指定時(shí)間的數(shù)據(jù)之后會(huì)進(jìn)行一次完整性檢查,確定這段時(shí)間沒(méi)有數(shù)據(jù)丟失。由于網(wǎng)絡(luò)環(huán)境不一定理想以及緩沖隊(duì)列所分配內(nèi)存有限,服務(wù)器不可能完全保證采集數(shù)據(jù)都發(fā)送到客戶端??蛻舳藱z查到某些段時(shí)間有數(shù)據(jù)丟失,向服務(wù)器申請(qǐng)重傳已丟失的數(shù)據(jù)。服務(wù)器接收到重傳申請(qǐng),臨時(shí)建立新的線程處理這些申請(qǐng)并重新發(fā)送數(shù)據(jù)到客戶端。
3.3 監(jiān)測(cè)PC軟件設(shè)計(jì)
監(jiān)測(cè)PC軟件在LabVIEW平臺(tái)下開(kāi)發(fā)。監(jiān)測(cè)PC的LabVIEW程序框圖如圖6所示。
為了實(shí)現(xiàn)客戶端數(shù)據(jù)通信的實(shí)時(shí)性和完整性,數(shù)據(jù)通信模塊每秒鐘向服務(wù)器發(fā)送脈搏包用以請(qǐng)求數(shù)據(jù)接收和保持與服務(wù)器實(shí)時(shí)連接,將各個(gè)RTU服務(wù)器發(fā)送的數(shù)據(jù)傳入數(shù)據(jù)處理模塊。數(shù)據(jù)處理模塊檢查到某個(gè)RTU服務(wù)器的數(shù)據(jù)有丟失,發(fā)送時(shí)間標(biāo)識(shí)包請(qǐng)求服務(wù)器重新發(fā)送已丟失的數(shù)據(jù)。實(shí)時(shí)、完整的數(shù)據(jù)傳到壓力分析模塊作數(shù)據(jù)處理,用以判斷管道是否發(fā)生泄露以及泄露的具體位置。
4 管道泄漏監(jiān)測(cè)實(shí)驗(yàn)
為了驗(yàn)證分布式管道泄漏監(jiān)測(cè)系統(tǒng)的實(shí)際性能,在新疆塔里木油田東輪線搭建了整個(gè)監(jiān)測(cè)系統(tǒng)平臺(tái),組織了放油實(shí)驗(yàn)。主站監(jiān)測(cè)PC接收輪西站和東一聯(lián)站RTU傳送的數(shù)據(jù),得出監(jiān)測(cè)結(jié)果。輪西站放油前后數(shù)據(jù)如圖7所示,東一聯(lián)站放油前后數(shù)據(jù)如圖8所示。
由上兩圖得知,放油后,16:59:10,輪西站壓力由0.281 MPa下降到0.276 MPa,16:59:59,東一聯(lián)站由0.307 MPa下降到0.302 MPa。系統(tǒng)結(jié)合這兩個(gè)下降進(jìn)行分析,泄漏發(fā)生在距東一聯(lián)站62.81 km,而實(shí)際放油點(diǎn)在62.64 km處,誤差0.17 km。為保證實(shí)驗(yàn)數(shù)據(jù)準(zhǔn)確性,共做了多次實(shí)驗(yàn)。實(shí)驗(yàn)數(shù)據(jù)如表1,定位結(jié)果均值為63.06 km,最大定位誤差為0.65 km。由實(shí)驗(yàn)結(jié)果可以看出,主站監(jiān)測(cè)PC能夠準(zhǔn)確地監(jiān)測(cè)管道壓力變化,做出及時(shí)的泄漏預(yù)警與定位。
本文設(shè)計(jì)了一個(gè)分布式管道泄漏監(jiān)測(cè)系統(tǒng),由于遠(yuǎn)程測(cè)控終端(RTU)采用了嵌入式ARM-Linux解決方案,其低功耗、低成本等特點(diǎn)非常適用于現(xiàn)場(chǎng)多測(cè)量節(jié)點(diǎn)的太陽(yáng)能閥室設(shè)計(jì)。文中提及的一系列網(wǎng)絡(luò)機(jī)制,保證了信號(hào)采集時(shí)數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性和完整性,為避免現(xiàn)場(chǎng)因網(wǎng)絡(luò)不穩(wěn)定和異常造成傳輸誤差提供了有力支持。該系統(tǒng)已經(jīng)在輸油管道現(xiàn)場(chǎng)進(jìn)行了網(wǎng)絡(luò)傳輸和泄漏監(jiān)測(cè)實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果充分地證明了分布式管道泄漏監(jiān)測(cè)系統(tǒng)的準(zhǔn)確性和可靠性。
參考文獻(xiàn)
[1] 張 宇,陳世利,李 健. 基于動(dòng)態(tài)壓力變送器的輸油管道泄漏檢測(cè)與定位系統(tǒng)[J]. 傳感技術(shù)學(xué)報(bào),2009,22(9):1347-1351.
[2] 陳 璞,劉文波.基于ARM和嵌入式Linux的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計(jì)[J].測(cè)控技術(shù), 2007,26(9):54-56.
[3] Li Jian, Zhang Yu, Jin Shijiu. Pipeline leakage monitor system based on virtual instrument[C]. In: The 2009 IEEE Intl Conf. on Mechatronics and Automation, Changchun, China,2009.
[4] CORBET J, RUBINI A,HARTMAN G K. Linux device driver 3rd[M]. Oreilly & Associates Inc,2005.
[5] 艾 紅,王洪濤.基于ARM的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)[J].電子技術(shù)應(yīng)用,2008,34(9):66-69.
[6] 劉貴杰,王 強(qiáng),梅 寧. 海底油氣管道檢測(cè)數(shù)據(jù)采集系統(tǒng)研究 [J].儀器儀表學(xué)報(bào),2006,27(6):1379-1380.