基于嵌入式云技術(shù)的油井液位遠(yuǎn)程測(cè)試系統(tǒng)
摘要:針時(shí)油井液位遠(yuǎn)程測(cè)試系統(tǒng)中現(xiàn)場(chǎng)嵌入式設(shè)備計(jì)算資源不足和不能滿足遠(yuǎn)程實(shí)時(shí)監(jiān)控的問(wèn)題,本文基于云計(jì)算技術(shù),設(shè)計(jì)和實(shí)現(xiàn)了一套嵌入式云測(cè)試系統(tǒng)?;趤嗰R遜公司的Eucalyptus(桉樹)云平臺(tái)實(shí)現(xiàn)了云測(cè)試監(jiān)控中心的功能。測(cè)控現(xiàn)場(chǎng)端采用STM32F103微處理器和S3C 2440A微處理器實(shí)現(xiàn)了測(cè)控節(jié)點(diǎn)和嵌入式測(cè)控服務(wù)器的硬件開發(fā),嵌入式測(cè)控服務(wù)器在嵌入式Linux操作系統(tǒng)的支撐下,通過(guò)KVM、QEMU實(shí)現(xiàn)了測(cè)試設(shè)備的虛擬化,測(cè)控節(jié)點(diǎn)和測(cè)控服務(wù)器之間采用Modbus通信協(xié)議。系統(tǒng)實(shí)現(xiàn)了實(shí)時(shí)測(cè)試和遠(yuǎn)程實(shí)時(shí)測(cè)控的功能,測(cè)試結(jié)果表明,能滿足實(shí)際應(yīng)用的需求。
本文引用地址:http://www.ex-cimer.com/article/201610/308982.htm在油井開采過(guò)程中,為了解油井的產(chǎn)油能力,掌握生產(chǎn)動(dòng)態(tài),測(cè)量油井的液位是一項(xiàng)經(jīng)常性的工作。因此,對(duì)此測(cè)量液位的實(shí)時(shí)監(jiān)控以及能快速的測(cè)取、分析數(shù)據(jù)和存儲(chǔ)數(shù)據(jù)就顯得尤為重要。
然而針對(duì)油井的動(dòng)態(tài)液位測(cè)量必須進(jìn)行人工手持發(fā)生裝置、傳感器和測(cè)距儀等到油井現(xiàn)場(chǎng)去測(cè)試,并且對(duì)于測(cè)距儀的計(jì)算能力,以及存儲(chǔ)資源的不足,選用現(xiàn)在越來(lái)越成熟的云計(jì)算技術(shù)來(lái)解決。云計(jì)算通過(guò)網(wǎng)絡(luò)訪問(wèn)非本地的計(jì)算服務(wù)(包括數(shù)據(jù)處理、存儲(chǔ)、和信息服務(wù)等)的技術(shù),其計(jì)算設(shè)施不在本地而在網(wǎng)絡(luò)中,用戶不需要關(guān)心他們所處的具體位置。嵌入式云計(jì)算具備通用化構(gòu)件、虛擬化管理特征,也可以更加有效地降低構(gòu)件成本,提高資源利用率,同時(shí)顯著提高了系統(tǒng)的整體可靠性。傳統(tǒng)的本地油井測(cè)量測(cè)試存在很多問(wèn)題,如測(cè)試工具費(fèi)用昂貴;并且由于本地測(cè)試環(huán)境的限制,難以獲得超大規(guī)模的計(jì)算能力;測(cè)試環(huán)境難以部署,測(cè)試資源準(zhǔn)備繁瑣、測(cè)試積累比較匱乏等一系列問(wèn)題,這些都制約了測(cè)試工作的進(jìn)展。而云測(cè)試是基于云計(jì)算的一種新型測(cè)試方案。
為此,文中設(shè)計(jì)開發(fā)出一種基于開放式控制標(biāo)準(zhǔn)、具備完善通訊聯(lián)網(wǎng)能力的嵌入式云測(cè)試系統(tǒng),應(yīng)用于油井動(dòng)態(tài)液面測(cè)量中。云計(jì)算平臺(tái)采用亞馬遜公司的開源項(xiàng)目Eucalyptus(桉樹)云,實(shí)現(xiàn)了云測(cè)試監(jiān)控中心的功能?,F(xiàn)場(chǎng)嵌入式測(cè)控服務(wù)器的終端節(jié)點(diǎn)作為云測(cè)試平臺(tái)中的NC節(jié)點(diǎn)?,F(xiàn)場(chǎng)測(cè)控服務(wù)器的網(wǎng)絡(luò)接口采用無(wú)線WiFi技術(shù)或TCP/IP技術(shù)可與Internet/Intranet無(wú)縫集成,達(dá)到了“任何時(shí)間、任何地點(diǎn)”的測(cè)試系統(tǒng)。
其在嵌入式Linux系統(tǒng)的支撐下,通過(guò)移植KVM、QEMU虛擬機(jī),實(shí)現(xiàn)了測(cè)試設(shè)備的虛擬化,測(cè)控節(jié)點(diǎn)和測(cè)控服務(wù)器之間采用Modbus通信協(xié)議。系統(tǒng)實(shí)現(xiàn)了實(shí)時(shí)測(cè)試和遠(yuǎn)程實(shí)時(shí)測(cè)控的功能,能有效地提高采油井的測(cè)試效率,節(jié)省人力物力財(cái)力,更節(jié)省了寶貴的時(shí)間。
1 系統(tǒng)體系結(jié)構(gòu)
本文設(shè)計(jì)的嵌入式云測(cè)試系統(tǒng)是由云測(cè)試監(jiān)控中心和現(xiàn)場(chǎng)測(cè)控兩部分構(gòu)成,現(xiàn)場(chǎng)測(cè)控設(shè)備由嵌入式測(cè)控節(jié)點(diǎn)與嵌入式云服務(wù)器構(gòu)成。測(cè)控的總體結(jié)構(gòu)如圖1所示。
本文基于亞馬遜公司的Eucalyptus(桉樹)云平臺(tái)實(shí)現(xiàn)了云測(cè)試監(jiān)控中心的功能。Eucalyptus是用于完成對(duì)各種虛擬設(shè)備、虛擬機(jī)實(shí)例的全局性監(jiān)控,對(duì)整個(gè)集群的計(jì)算資源、存儲(chǔ)資源、網(wǎng)絡(luò)資源進(jìn)行動(dòng)態(tài)配置。在云測(cè)試監(jiān)控中心,當(dāng)有遠(yuǎn)程客戶端的請(qǐng)求命令時(shí),其可以為應(yīng)用對(duì)象提供訪問(wèn)服務(wù),實(shí)現(xiàn)有效的遠(yuǎn)程控制與管理。網(wǎng)絡(luò)化測(cè)控服務(wù)器作為云測(cè)試平臺(tái)中重要的NC節(jié)點(diǎn)。其中,現(xiàn)場(chǎng)嵌入式測(cè)控節(jié)點(diǎn)完成數(shù)據(jù)采集和控制開關(guān)等工作;對(duì)于現(xiàn)場(chǎng)嵌入式測(cè)控服務(wù)器,實(shí)現(xiàn)設(shè)備的虛擬化,為遠(yuǎn)程使用現(xiàn)場(chǎng)設(shè)備提供條件。
2 嵌入式測(cè)控服務(wù)器和測(cè)控節(jié)點(diǎn)硬件結(jié)構(gòu)
現(xiàn)場(chǎng)嵌入式測(cè)控服務(wù)器和測(cè)控節(jié)點(diǎn)的系統(tǒng)硬件按功能主要分為:核心控制模塊、網(wǎng)絡(luò)通信模塊、數(shù)據(jù)分析及處理模塊和數(shù)據(jù)采集、繼電器控制模塊等。硬件結(jié)構(gòu)分別如圖2、圖3所示。
1)核心控制部分。以三星公司生產(chǎn)的S3C244OA作為主控芯片,其采用ARM920T內(nèi)核。以ARM Cortex—M3內(nèi)核的STM32增強(qiáng)型系列芯片STM 32F103VET6微處理器。
2)信號(hào)調(diào)理電路。主要是對(duì)微音器采集到的聲音信號(hào)進(jìn)行調(diào)理,而設(shè)計(jì)的調(diào)理電路。其目的就是將聲音信號(hào)模擬量經(jīng)過(guò)簡(jiǎn)單的信號(hào)調(diào)理送入到16位高分辨率的4路模擬量串行輸入A/D轉(zhuǎn)換器件ADS8341,將轉(zhuǎn)換之后的數(shù)字量送入主控制器。
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è)模塊都可以建立嵌入式測(cè)控服務(wù)器與該云測(cè)試系統(tǒng)網(wǎng)絡(luò)之間的數(shù)據(jù)通信。
4)外圍接口電路。包括:電源電路、時(shí)鐘電路、復(fù)位電路、JTAG接口電路、NandFlash/NorFlash選擇電路、串口電路、以太網(wǎng)接口。
現(xiàn)場(chǎng)測(cè)控完成了對(duì)聲音和壓力信號(hào)的數(shù)據(jù)采集、信號(hào)調(diào)理和繼電器等控制工作。聲音信號(hào)、壓力信號(hào)采集模塊與繼電器驅(qū)動(dòng)模塊是實(shí)現(xiàn)測(cè)控的基本模塊。串口RS485模塊是測(cè)控節(jié)點(diǎn)與嵌入式測(cè)控服務(wù)器實(shí)現(xiàn)交互的主要通信接口。
3 軟件設(shè)計(jì)
本文采用的是嵌入式Linux操作系統(tǒng)。Bootloader移植的是U-boot-1.1.6.tar.gz,Linux內(nèi)核版本為2.6.25.8.。
3.1 虛擬化技術(shù)
3.1.1 KVM虛擬機(jī)技術(shù)
KVM(Kernel-based Virtual Machine)是一種基于Linux內(nèi)核的虛擬機(jī),它是一種全新的開源的虛擬機(jī)技術(shù)。在KVM模型中,每一個(gè)虛擬機(jī)都是一個(gè)由Linux調(diào)度程序管理的標(biāo)準(zhǔn)進(jìn)程。一個(gè)普通的Linux進(jìn)程有兩種運(yùn)行模式:內(nèi)核和用戶。而KVM增加了第3種模式:客戶模式(有自己的內(nèi)核和用戶模式。)KVM由2個(gè)部分組成:一個(gè)是管理虛擬硬件的設(shè)備驅(qū)動(dòng),該驅(qū)動(dòng)使用字符串設(shè)備/dev/kvm做為管理接口;另一個(gè)是模擬硬件的用戶空間組件,這是一個(gè)需要做修改的qemu進(jìn)程。
3.1.2 移植KVM到ARM架構(gòu)平臺(tái)
本文采用KVM虛擬化方案,來(lái)實(shí)現(xiàn)在ARM處理器硬件架構(gòu)平臺(tái)上的虛擬化,即設(shè)備的虛擬化,為遠(yuǎn)程使用現(xiàn)場(chǎng)設(shè)備提供條件。在KVM中,通過(guò)打開設(shè)備節(jié)點(diǎn)“/dev/kvm”就可以創(chuàng)建一個(gè)虛擬機(jī)。這里需要對(duì)載有KVM模塊的Linux內(nèi)核進(jìn)行修改,使之能夠支持ARM架構(gòu)。盡管KVM提供了可以被所有用戶空間仿真器使用的通用接口,然而QEMU是唯一的可以執(zhí)行這些數(shù)據(jù)的工具。
3.1.3 編譯QEMU
QEMU擁有支持ARM主機(jī)與客戶環(huán)境的仿真技術(shù),在QEMU仿真環(huán)境下忽略了試圖使KVM有效的操作,因此需要對(duì)QEMU進(jìn)行修改以使KVM能夠運(yùn)行。QEMU是一個(gè)用戶級(jí)與系統(tǒng)級(jí)的仿真器,它在KVM上下文環(huán)境中被當(dāng)作用戶空間的應(yīng)用程序運(yùn)行,它與用戶操作系統(tǒng)相互配合,向內(nèi)核模塊發(fā)送消息并對(duì)I/O和其它設(shè)備進(jìn)行仿真,通過(guò)編輯QEMU的配置和運(yùn)行時(shí)的參數(shù)可以使QEMU能夠支持KVM。在交叉編譯時(shí),除了需要關(guān)注交叉編譯的設(shè)置外,還需要修改內(nèi)核和設(shè)置KVM參數(shù)。
3.1.4 創(chuàng)建并運(yùn)行虛擬機(jī)
Eucalyptus實(shí)現(xiàn)基本的簡(jiǎn)單的虛擬機(jī)管理功能,它的主要目標(biāo)是將基本的虛擬化管理API化。簡(jiǎn)單易用,擴(kuò)展方便。用戶可以通過(guò)euca 200ls工具制作鏡像,上傳之后可以通過(guò)命令行運(yùn)行實(shí)例。查看實(shí)例運(yùn)行情況,停止,重啟自己的實(shí)例。也可以通過(guò)web界面查看已上傳鏡像,并禁止自己上傳的鏡像,修改自己的資料。也可以作為用戶存儲(chǔ)文件和數(shù)據(jù)的地方。創(chuàng)建的鏡像和運(yùn)行的虛擬機(jī),如圖4所示。
圖4中的方框部分顯示出,虛擬機(jī)的內(nèi)核編號(hào)、鏡像編號(hào)、IP地址和運(yùn)行實(shí)例,并且成功運(yùn)行登入進(jìn)虛擬機(jī)實(shí)例。
3.2 數(shù)據(jù)采集與測(cè)深計(jì)算
數(shù)據(jù)采集是測(cè)控系統(tǒng)的基礎(chǔ),是由以STM32F103微處理器為核心的現(xiàn)場(chǎng)測(cè)控節(jié)點(diǎn)完成,將采集到的聲音信號(hào)發(fā)送給現(xiàn)場(chǎng)嵌入式測(cè)控服務(wù)器,其采用ModBus協(xié)議進(jìn)行通信。云測(cè)試監(jiān)控中心將聲音信號(hào)數(shù)據(jù)通過(guò)去野值、接箍波提取、液面回波提取、FFT變換等一系列程序處理后,最終得到油井液位的深度。
3.3 ModBus通訊協(xié)議和協(xié)議棧移植
本文選用完全符合工業(yè)標(biāo)準(zhǔn)的Modbus通訊協(xié)議。Mod bus通訊協(xié)議,讀保持寄存器(0x03)、讀輸入寄存器(0x04)等15個(gè)常用功能碼,完全能滿足工業(yè)應(yīng)用要求。
Modbus協(xié)議支持Modbus RTU/ASCII/TCP 3種傳輸方式,其移植可以基于串口或網(wǎng)口來(lái)完成,從而實(shí)現(xiàn)MobusRTU/ASCII或Mobus TCP幀的處理,這點(diǎn)與協(xié)議棧具體應(yīng)用場(chǎng)景、使用的處理器平臺(tái)、硬件接口密切相關(guān)。本文采用ModBus RTU傳輸方式進(jìn)行現(xiàn)場(chǎng)嵌入式測(cè)控設(shè)備之間的通訊。ModBus主機(jī)協(xié)議中Commun層和從機(jī)協(xié)議中Port層,都是將Modbus的物理層鏈路與具體平臺(tái)的硬件驅(qū)動(dòng)聯(lián)系起來(lái),該層本質(zhì)上完成不同鏈路上數(shù)據(jù)幀的接收工作。Modbus中的各個(gè)功能碼操作函數(shù)都是平臺(tái)無(wú)關(guān)的,應(yīng)用程序通過(guò)解析數(shù)據(jù)幀中的功能碼查找函數(shù)指針,并最終執(zhí)行功能碼函數(shù)。Mbm.c和mb.c文件為用戶應(yīng)用程序提供了調(diào)用接口,對(duì)Modbus不同的傳輸方式(RTU、ASCII、TCP)進(jìn)行了統(tǒng)一的管理。
Modbus RTU屬于Modbus數(shù)據(jù)幀在串行鏈路上的傳輸模式?;赗TU的Modbus主要移植步驟如下:
1)232/485接口驅(qū)動(dòng)。在主機(jī)協(xié)議的Commun層和從機(jī)協(xié)議port層portserial.c中完成串口相關(guān)函數(shù)的編寫,包括串口初始化、數(shù)據(jù)發(fā)送、數(shù)據(jù)接收、中斷處理等。
2)定時(shí)器功能。在主機(jī)協(xié)議的mbm.c中,采用線程進(jìn)行定時(shí)器;在從機(jī)協(xié)議的port層porttimer.c中完成定時(shí)器相關(guān)函數(shù)的編寫,包括定時(shí)器的初始化、定時(shí)器的使能與禁止、超時(shí)中斷函數(shù)等。
現(xiàn)場(chǎng)測(cè)控系統(tǒng)采用Modbus RTU數(shù)據(jù)幀進(jìn)行傳輸,設(shè)計(jì)中利用操作系統(tǒng)提供的多任務(wù)環(huán)境,創(chuàng)建Modbus RTU服務(wù)任務(wù)來(lái)管理和響應(yīng)數(shù)據(jù)幀。
根據(jù)實(shí)際需要,用戶可以刪減不必要的功能碼或增加自定義功能碼,協(xié)議的可裁剪性與擴(kuò)展性非常好。本設(shè)計(jì)中使用到的功能碼與Modbus地址間的對(duì)應(yīng)關(guān)系如表1所示。在程序中可以根據(jù)表1所對(duì)應(yīng)的功能碼來(lái)讀寫數(shù)據(jù)。
4 系統(tǒng)測(cè)試
采用本文提出的方法,設(shè)計(jì)出的這套云測(cè)試系統(tǒng)。在華北油田進(jìn)行了30多口井次試驗(yàn),其中包括多種井況,得到聲速、時(shí)間和深度,聲速的范圍335~343 m/s,深度的誤差范圍1.0~3.0 m,通過(guò)瀏覽器遠(yuǎn)程訪問(wèn)本節(jié)點(diǎn),啟動(dòng)數(shù)據(jù)采集,得到的結(jié)果如表2所示。
現(xiàn)場(chǎng)試驗(yàn)結(jié)果表明,通過(guò)得到的聲音信號(hào)波形與油井動(dòng)態(tài)液面的深度測(cè)量值,其誤差較小,滿足實(shí)際應(yīng)用需求。
5 結(jié)束語(yǔ)
文中基于云測(cè)試技術(shù),設(shè)計(jì)實(shí)現(xiàn)了一套網(wǎng)絡(luò)化嵌入式云測(cè)控系統(tǒng),在開源Linux系統(tǒng)的支撐下,通過(guò)網(wǎng)絡(luò)化傳感器和虛擬化等技術(shù)實(shí)現(xiàn)了遠(yuǎn)程數(shù)據(jù)的采集、實(shí)時(shí)測(cè)試和遠(yuǎn)程實(shí)時(shí)監(jiān)控;對(duì)采集到的聲音信號(hào)進(jìn)行濾波、測(cè)深算法很好的消除了由現(xiàn)場(chǎng)惡劣環(huán)境帶來(lái)的噪聲并得到了相應(yīng)的接箍波和液面回波的波形曲線,在華北油田試驗(yàn)結(jié)果得到的波形也比較理想。在現(xiàn)場(chǎng)網(wǎng)絡(luò)化嵌入式測(cè)控系統(tǒng)中,系統(tǒng)提供了多接口,實(shí)現(xiàn)了智能測(cè)控節(jié)點(diǎn)的遠(yuǎn)程維護(hù)。以S3C2440A為核心的主控制器,作為現(xiàn)場(chǎng)嵌入式測(cè)控服務(wù)器,通過(guò)RS485硬件接口,采用ModBus通訊協(xié)議,分別監(jiān)控多個(gè)以STM32F103為核心主控制器的現(xiàn)場(chǎng)嵌入式測(cè)控節(jié)點(diǎn);在Linux操作系統(tǒng)的支撐下,通過(guò)KVM,QEMU完成了設(shè)備的虛擬化,為遠(yuǎn)程使用現(xiàn)場(chǎng)設(shè)備提供條件;在Linux和μC/OS-II操作系統(tǒng)上,分別移植符合工業(yè)標(biāo)準(zhǔn)的Modbus主機(jī)協(xié)議棧和從機(jī)協(xié)議棧,并基于多線程、多任務(wù)環(huán)境實(shí)現(xiàn)了對(duì)Modbus RTU數(shù)據(jù)幀的響應(yīng)和處理,實(shí)現(xiàn)系統(tǒng)終端設(shè)備的多通道、智能化、網(wǎng)絡(luò)化控制。
實(shí)際運(yùn)行結(jié)果表明,該智能云測(cè)控節(jié)點(diǎn)穩(wěn)定可靠,性價(jià)比高,通用性與適應(yīng)性強(qiáng)。該嵌入式云測(cè)試系統(tǒng)及相關(guān)技術(shù)還可適用于其他網(wǎng)絡(luò)化測(cè)控系統(tǒng),在云測(cè)試發(fā)展的各個(gè)熱點(diǎn)領(lǐng)域有著廣泛的應(yīng)用前景。
評(píng)論