《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 一種基于ARM-Linux的分布式管道泄漏監(jiān)測(cè)系統(tǒng)
一種基于ARM-Linux的分布式管道泄漏監(jiān)測(cè)系統(tǒng)
來(lái)源:電子技術(shù)應(yīng)用2011年第10期
陳世利, 譚皓予, 李 健,王偉魁
(天津大學(xué) 精密測(cè)試技術(shù)及儀器國(guó)家重點(diǎn)實(shí)驗(yàn)室,天津300072)
摘要: 針對(duì)中國(guó)輸油管道現(xiàn)場(chǎng)具體情況,設(shè)計(jì)一套基于嵌入式ARM-Linux和LabVIEW的分布式管道泄漏監(jiān)測(cè)系統(tǒng),包括遠(yuǎn)程測(cè)控終端(RTU)、監(jiān)測(cè)PC以及工業(yè)局域網(wǎng)。詳細(xì)論述了系統(tǒng)架構(gòu)、硬件組成、軟件流程等。通過(guò)實(shí)際開(kāi)發(fā)與應(yīng)用,證明此設(shè)計(jì)完全適用于輸油管道特殊現(xiàn)場(chǎng),不僅降低了成本與功耗,還提高了效率,為長(zhǎng)距離石油管道運(yùn)輸系統(tǒng)正常良好地運(yùn)行提供了有力的技術(shù)支持。
中圖分類(lèi)號(hào): TP368
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)010-0073-04
A distributed pipeline leakage detection system based on ARM-Linux
Chen Shili, Tan Haoyu, Li Jian,Wang Weikui
State Key Laboratory of Measuring Technology and Instruments, Tianjin University, Tianjin 300072, China
Abstract: Focused on recent development of oil pipeline in China, a distributed pipeline leak detection system has been designed based on embedded ARM-Linux and Labview. It contains remote terminal units, monitoring PC and industrial LAN. This article gives many details about system structure, composition of hardware, software processes and so on. By rigorous test and successful application, it is proved that this new design meets the special need of oil pipiline, not only reduces engergy cost and investment expense, but also increases efficiency of the whole system. Futhermore, it provides strong support of the operation of long-distance oil transportation which has strict requirements of stability and sustainability.
Key words : ARM; Linux; LabVIEW; distributed; leakage detection


 輸油管道泄漏監(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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。