《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 一種基于ARM-Linux的分布式管道泄漏監(jiān)測系統(tǒng)
一種基于ARM-Linux的分布式管道泄漏監(jiān)測系統(tǒng)
來源:電子技術(shù)應(yīng)用2011年第10期
陳世利,, 譚皓予,, 李 健,王偉魁
(天津大學(xué) 精密測試技術(shù)及儀器國家重點實驗室,,天津300072)
摘要: 針對中國輸油管道現(xiàn)場具體情況,,設(shè)計一套基于嵌入式ARM-Linux和LabVIEW的分布式管道泄漏監(jiān)測系統(tǒng),包括遠程測控終端(RTU),、監(jiān)測PC以及工業(yè)局域網(wǎng),。詳細論述了系統(tǒng)架構(gòu)、硬件組成、軟件流程等,。通過實際開發(fā)與應(yīng)用,,證明此設(shè)計完全適用于輸油管道特殊現(xiàn)場,不僅降低了成本與功耗,,還提高了效率,,為長距離石油管道運輸系統(tǒng)正常良好地運行提供了有力的技術(shù)支持。
中圖分類號: TP368
文獻標識碼: A
文章編號: 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)測技術(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.

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