基于嵌入式云技術(shù)的油井液位遠程測試系統
摘要:針時(shí)油井液位遠程測試系統中現場(chǎng)嵌入式設備計算資源不足和不能滿(mǎn)足遠程實(shí)時(shí)監控的問(wèn)題,本文基于云計算技術(shù),設計和實(shí)現了一套嵌入式云測試系統?;趤嗰R遜公司的Eucalyptus(桉樹(shù))云平臺實(shí)現了云測試監控中心的功能。測控現場(chǎng)端采用STM32F103微處理器和S3C 2440A微處理器實(shí)現了測控節點(diǎn)和嵌入式測控服務(wù)器的硬件開(kāi)發(fā),嵌入式測控服務(wù)器在嵌入式Linux操作系統的支撐下,通過(guò)KVM、QEMU實(shí)現了測試設備的虛擬化,測控節點(diǎn)和測控服務(wù)器之間采用Modbus通信協(xié)議。系統實(shí)現了實(shí)時(shí)測試和遠程實(shí)時(shí)測控的功能,測試結果表明,能滿(mǎn)足實(shí)際應用的需求。
本文引用地址:http://dyxdggzs.com/article/201610/308982.htm在油井開(kāi)采過(guò)程中,為了解油井的產(chǎn)油能力,掌握生產(chǎn)動(dòng)態(tài),測量油井的液位是一項經(jīng)常性的工作。因此,對此測量液位的實(shí)時(shí)監控以及能快速的測取、分析數據和存儲數據就顯得尤為重要。
然而針對油井的動(dòng)態(tài)液位測量必須進(jìn)行人工手持發(fā)生裝置、傳感器和測距儀等到油井現場(chǎng)去測試,并且對于測距儀的計算能力,以及存儲資源的不足,選用現在越來(lái)越成熟的云計算技術(shù)來(lái)解決。云計算通過(guò)網(wǎng)絡(luò )訪(fǎng)問(wèn)非本地的計算服務(wù)(包括數據處理、存儲、和信息服務(wù)等)的技術(shù),其計算設施不在本地而在網(wǎng)絡(luò )中,用戶(hù)不需要關(guān)心他們所處的具體位置。嵌入式云計算具備通用化構件、虛擬化管理特征,也可以更加有效地降低構件成本,提高資源利用率,同時(shí)顯著(zhù)提高了系統的整體可靠性。傳統的本地油井測量測試存在很多問(wèn)題,如測試工具費用昂貴;并且由于本地測試環(huán)境的限制,難以獲得超大規模的計算能力;測試環(huán)境難以部署,測試資源準備繁瑣、測試積累比較匱乏等一系列問(wèn)題,這些都制約了測試工作的進(jìn)展。而云測試是基于云計算的一種新型測試方案。
為此,文中設計開(kāi)發(fā)出一種基于開(kāi)放式控制標準、具備完善通訊聯(lián)網(wǎng)能力的嵌入式云測試系統,應用于油井動(dòng)態(tài)液面測量中。云計算平臺采用亞馬遜公司的開(kāi)源項目Eucalyptus(桉樹(shù))云,實(shí)現了云測試監控中心的功能?,F場(chǎng)嵌入式測控服務(wù)器的終端節點(diǎn)作為云測試平臺中的NC節點(diǎn)?,F場(chǎng)測控服務(wù)器的網(wǎng)絡(luò )接口采用無(wú)線(xiàn)WiFi技術(shù)或TCP/IP技術(shù)可與Internet/Intranet無(wú)縫集成,達到了“任何時(shí)間、任何地點(diǎn)”的測試系統。
其在嵌入式Linux系統的支撐下,通過(guò)移植KVM、QEMU虛擬機,實(shí)現了測試設備的虛擬化,測控節點(diǎn)和測控服務(wù)器之間采用Modbus通信協(xié)議。系統實(shí)現了實(shí)時(shí)測試和遠程實(shí)時(shí)測控的功能,能有效地提高采油井的測試效率,節省人力物力財力,更節省了寶貴的時(shí)間。
1 系統體系結構
本文設計的嵌入式云測試系統是由云測試監控中心和現場(chǎng)測控兩部分構成,現場(chǎng)測控設備由嵌入式測控節點(diǎn)與嵌入式云服務(wù)器構成。測控的總體結構如圖1所示。

本文基于亞馬遜公司的Eucalyptus(桉樹(shù))云平臺實(shí)現了云測試監控中心的功能。Eucalyptus是用于完成對各種虛擬設備、虛擬機實(shí)例的全局性監控,對整個(gè)集群的計算資源、存儲資源、網(wǎng)絡(luò )資源進(jìn)行動(dòng)態(tài)配置。在云測試監控中心,當有遠程客戶(hù)端的請求命令時(shí),其可以為應用對象提供訪(fǎng)問(wèn)服務(wù),實(shí)現有效的遠程控制與管理。網(wǎng)絡(luò )化測控服務(wù)器作為云測試平臺中重要的NC節點(diǎn)。其中,現場(chǎng)嵌入式測控節點(diǎn)完成數據采集和控制開(kāi)關(guān)等工作;對于現場(chǎng)嵌入式測控服務(wù)器,實(shí)現設備的虛擬化,為遠程使用現場(chǎng)設備提供條件。
2 嵌入式測控服務(wù)器和測控節點(diǎn)硬件結構
現場(chǎng)嵌入式測控服務(wù)器和測控節點(diǎn)的系統硬件按功能主要分為:核心控制模塊、網(wǎng)絡(luò )通信模塊、數據分析及處理模塊和數據采集、繼電器控制模塊等。硬件結構分別如圖2、圖3所示。


1)核心控制部分。以三星公司生產(chǎn)的S3C244OA作為主控芯片,其采用ARM920T內核。以ARM Cortex—M3內核的STM32增強型系列芯片STM 32F103VET6微處理器。
2)信號調理電路。主要是對微音器采集到的聲音信號進(jìn)行調理,而設計的調理電路。其目的就是將聲音信號模擬量經(jīng)過(guò)簡(jiǎn)單的信號調理送入到16位高分辨率的4路模擬量串行輸入A/D轉換器件ADS8341,將轉換之后的數字量送入主控制器。
3)網(wǎng)絡(luò )部分。包括以太網(wǎng)接口及WIFI網(wǎng)絡(luò )模塊。外接的以太網(wǎng)模塊采用的是DM9000E 100M網(wǎng)絡(luò )傳輸模塊;WIFI網(wǎng)絡(luò )模塊采用的是基于SPI接口marvell 88w8686 wifi網(wǎng)絡(luò )傳輸模塊;通過(guò)其中任何一個(gè)模塊都可以建立嵌入式測控服務(wù)器與該云測試系統網(wǎng)絡(luò )之間的數據通信。
4)外圍接口電路。包括:電源電路、時(shí)鐘電路、復位電路、JTAG接口電路、NandFlash/NorFlash選擇電路、串口電路、以太網(wǎng)接口。
現場(chǎng)測控完成了對聲音和壓力信號的數據采集、信號調理和繼電器等控制工作。聲音信號、壓力信號采集模塊與繼電器驅動(dòng)模塊是實(shí)現測控的基本模塊。串口RS485模塊是測控節點(diǎn)與嵌入式測控服務(wù)器實(shí)現交互的主要通信接口。
3 軟件設計
本文采用的是嵌入式Linux操作系統。Bootloader移植的是U-boot-1.1.6.tar.gz,Linux內核版本為2.6.25.8.。
3.1 虛擬化技術(shù)
3.1.1 KVM虛擬機技術(shù)
KVM(Kernel-based Virtual Machine)是一種基于Linux內核的虛擬機,它是一種全新的開(kāi)源的虛擬機技術(shù)。在KVM模型中,每一個(gè)虛擬機都是一個(gè)由Linux調度程序管理的標準進(jìn)程。一個(gè)普通的Linux進(jìn)程有兩種運行模式:內核和用戶(hù)。而KVM增加了第3種模式:客戶(hù)模式(有自己的內核和用戶(hù)模式。)KVM由2個(gè)部分組成:一個(gè)是管理虛擬硬件的設備驅動(dòng),該驅動(dòng)使用字符串設備/dev/kvm做為管理接口;另一個(gè)是模擬硬件的用戶(hù)空間組件,這是一個(gè)需要做修改的qemu進(jìn)程。
3.1.2 移植KVM到ARM架構平臺
本文采用KVM虛擬化方案,來(lái)實(shí)現在A(yíng)RM處理器硬件架構平臺上的虛擬化,即設備的虛擬化,為遠程使用現場(chǎng)設備提供條件。在KVM中,通過(guò)打開(kāi)設備節點(diǎn)“/dev/kvm”就可以創(chuàng )建一個(gè)虛擬機。這里需要對載有KVM模塊的Linux內核進(jìn)行修改,使之能夠支持ARM架構。盡管KVM提供了可以被所有用戶(hù)空間仿真器使用的通用接口,然而QEMU是唯一的可以執行這些數據的工具。
3.1.3 編譯QEMU
QEMU擁有支持ARM主機與客戶(hù)環(huán)境的仿真技術(shù),在QEMU仿真環(huán)境下忽略了試圖使KVM有效的操作,因此需要對QEMU進(jìn)行修改以使KVM能夠運行。QEMU是一個(gè)用戶(hù)級與系統級的仿真器,它在KVM上下文環(huán)境中被當作用戶(hù)空間的應用程序運行,它與用戶(hù)操作系統相互配合,向內核模塊發(fā)送消息并對I/O和其它設備進(jìn)行仿真,通過(guò)編輯QEMU的配置和運行時(shí)的參數可以使QEMU能夠支持KVM。在交叉編譯時(shí),除了需要關(guān)注交叉編譯的設置外,還需要修改內核和設置KVM參數。
3.1.4 創(chuàng )建并運行虛擬機
Eucalyptus實(shí)現基本的簡(jiǎn)單的虛擬機管理功能,它的主要目標是將基本的虛擬化管理API化。簡(jiǎn)單易用,擴展方便。用戶(hù)可以通過(guò)euca 200ls工具制作鏡像,上傳之后可以通過(guò)命令行運行實(shí)例。查看實(shí)例運行情況,停止,重啟自己的實(shí)例。也可以通過(guò)web界面查看已上傳鏡像,并禁止自己上傳的鏡像,修改自己的資料。也可以作為用戶(hù)存儲文件和數據的地方。創(chuàng )建的鏡像和運行的虛擬機,如圖4所示。

圖4中的方框部分顯示出,虛擬機的內核編號、鏡像編號、IP地址和運行實(shí)例,并且成功運行登入進(jìn)虛擬機實(shí)例。
3.2 數據采集與測深計算
數據采集是測控系統的基礎,是由以STM32F103微處理器為核心的現場(chǎng)測控節點(diǎn)完成,將采集到的聲音信號發(fā)送給現場(chǎng)嵌入式測控服務(wù)器,其采用ModBus協(xié)議進(jìn)行通信。云測試監控中心將聲音信號數據通過(guò)去野值、接箍波提取、液面回波提取、FFT變換等一系列程序處理后,最終得到油井液位的深度。
3.3 ModBus通訊協(xié)議和協(xié)議棧移植
本文選用完全符合工業(yè)標準的Modbus通訊協(xié)議。Mod bus通訊協(xié)議,讀保持寄存器(0x03)、讀輸入寄存器(0x04)等15個(gè)常用功能碼,完全能滿(mǎn)足工業(yè)應用要求。
Modbus協(xié)議支持Modbus RTU/ASCII/TCP 3種傳輸方式,其移植可以基于串口或網(wǎng)口來(lái)完成,從而實(shí)現MobusRTU/ASCII或Mobus TCP幀的處理,這點(diǎn)與協(xié)議棧具體應用場(chǎng)景、使用的處理器平臺、硬件接口密切相關(guān)。本文采用ModBus RTU傳輸方式進(jìn)行現場(chǎng)嵌入式測控設備之間的通訊。ModBus主機協(xié)議中Commun層和從機協(xié)議中Port層,都是將Modbus的物理層鏈路與具體平臺的硬件驅動(dòng)聯(lián)系起來(lái),該層本質(zhì)上完成不同鏈路上數據幀的接收工作。Modbus中的各個(gè)功能碼操作函數都是平臺無(wú)關(guān)的,應用程序通過(guò)解析數據幀中的功能碼查找函數指針,并最終執行功能碼函數。Mbm.c和mb.c文件為用戶(hù)應用程序提供了調用接口,對Modbus不同的傳輸方式(RTU、ASCII、TCP)進(jìn)行了統一的管理。
Modbus RTU屬于Modbus數據幀在串行鏈路上的傳輸模式?;赗TU的Modbus主要移植步驟如下:
1)232/485接口驅動(dòng)。在主機協(xié)議的Commun層和從機協(xié)議port層portserial.c中完成串口相關(guān)函數的編寫(xiě),包括串口初始化、數據發(fā)送、數據接收、中斷處理等。
2)定時(shí)器功能。在主機協(xié)議的mbm.c中,采用線(xiàn)程進(jìn)行定時(shí)器;在從機協(xié)議的port層porttimer.c中完成定時(shí)器相關(guān)函數的編寫(xiě),包括定時(shí)器的初始化、定時(shí)器的使能與禁止、超時(shí)中斷函數等。
現場(chǎng)測控系統采用Modbus RTU數據幀進(jìn)行傳輸,設計中利用操作系統提供的多任務(wù)環(huán)境,創(chuàng )建Modbus RTU服務(wù)任務(wù)來(lái)管理和響應數據幀。
根據實(shí)際需要,用戶(hù)可以刪減不必要的功能碼或增加自定義功能碼,協(xié)議的可裁剪性與擴展性非常好。本設計中使用到的功能碼與Modbus地址間的對應關(guān)系如表1所示。在程序中可以根據表1所對應的功能碼來(lái)讀寫(xiě)數據。

4 系統測試
采用本文提出的方法,設計出的這套云測試系統。在華北油田進(jìn)行了30多口井次試驗,其中包括多種井況,得到聲速、時(shí)間和深度,聲速的范圍335~343 m/s,深度的誤差范圍1.0~3.0 m,通過(guò)瀏覽器遠程訪(fǎng)問(wèn)本節點(diǎn),啟動(dòng)數據采集,得到的結果如表2所示。

現場(chǎng)試驗結果表明,通過(guò)得到的聲音信號波形與油井動(dòng)態(tài)液面的深度測量值,其誤差較小,滿(mǎn)足實(shí)際應用需求。
5 結束語(yǔ)
文中基于云測試技術(shù),設計實(shí)現了一套網(wǎng)絡(luò )化嵌入式云測控系統,在開(kāi)源Linux系統的支撐下,通過(guò)網(wǎng)絡(luò )化傳感器和虛擬化等技術(shù)實(shí)現了遠程數據的采集、實(shí)時(shí)測試和遠程實(shí)時(shí)監控;對采集到的聲音信號進(jìn)行濾波、測深算法很好的消除了由現場(chǎng)惡劣環(huán)境帶來(lái)的噪聲并得到了相應的接箍波和液面回波的波形曲線(xiàn),在華北油田試驗結果得到的波形也比較理想。在現場(chǎng)網(wǎng)絡(luò )化嵌入式測控系統中,系統提供了多接口,實(shí)現了智能測控節點(diǎn)的遠程維護。以S3C2440A為核心的主控制器,作為現場(chǎng)嵌入式測控服務(wù)器,通過(guò)RS485硬件接口,采用ModBus通訊協(xié)議,分別監控多個(gè)以STM32F103為核心主控制器的現場(chǎng)嵌入式測控節點(diǎn);在Linux操作系統的支撐下,通過(guò)KVM,QEMU完成了設備的虛擬化,為遠程使用現場(chǎng)設備提供條件;在Linux和μC/OS-II操作系統上,分別移植符合工業(yè)標準的Modbus主機協(xié)議棧和從機協(xié)議棧,并基于多線(xiàn)程、多任務(wù)環(huán)境實(shí)現了對Modbus RTU數據幀的響應和處理,實(shí)現系統終端設備的多通道、智能化、網(wǎng)絡(luò )化控制。
實(shí)際運行結果表明,該智能云測控節點(diǎn)穩定可靠,性?xún)r(jià)比高,通用性與適應性強。該嵌入式云測試系統及相關(guān)技術(shù)還可適用于其他網(wǎng)絡(luò )化測控系統,在云測試發(fā)展的各個(gè)熱點(diǎn)領(lǐng)域有著(zhù)廣泛的應用前景。
評論