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