杜志民,白培瑞,韓 旭
(1.山東科技大學(xué) 電子信息工程學(xué)院,山東 青島 266590;2.中國(guó)石油大學(xué)(華東) 海洋與空間信息學(xué)院,山東 青島 266580)
在油田開(kāi)采過(guò)程中,為了保持油田高產(chǎn)穩(wěn)產(chǎn),必須對(duì)油田進(jìn)行注水驅(qū)油操作,在信息化高速發(fā)展的現(xiàn)代,傳統(tǒng)的油田注水工藝暴露出注水效率不高、控制手段落后等缺點(diǎn)。并且在油田注水管理領(lǐng)域中,每個(gè)區(qū)塊井組的注水井?dāng)?shù)量較多,待采集的數(shù)據(jù)量較大,需要經(jīng)常轉(zhuǎn)存數(shù)據(jù),處理過(guò)程較為復(fù)雜[1],對(duì)集中管理也提出了較大的挑戰(zhàn)[2-3]。因此,對(duì)智能化油田注水系統(tǒng)的研究成為當(dāng)下的研究熱點(diǎn)。
本系統(tǒng)使用STM32單片機(jī)作為核心處理器,由RS485總線實(shí)現(xiàn)儀器通信,通過(guò)GPRS模塊將獲取的數(shù)據(jù)實(shí)時(shí)傳送至服務(wù)器端,并在數(shù)據(jù)庫(kù)中保存。本文構(gòu)成了STM32單片機(jī)+GPRS網(wǎng)絡(luò)+服務(wù)器端的實(shí)時(shí)監(jiān)控系統(tǒng),系統(tǒng)可靠性高,運(yùn)行穩(wěn)健且更易擴(kuò)展。同時(shí),設(shè)計(jì)人機(jī)交互界面友好的客戶端實(shí)時(shí)采集注水井?dāng)?shù)據(jù),遠(yuǎn)程控制注水設(shè)備,使系統(tǒng)管理更加簡(jiǎn)捷方便。通過(guò)平臺(tái)的設(shè)計(jì)使學(xué)生得到控制系統(tǒng)設(shè)計(jì)和軟件編程等綜合能力的訓(xùn)練,將專業(yè)學(xué)習(xí)內(nèi)容與實(shí)際應(yīng)用無(wú)縫對(duì)接[4]。
整個(gè)實(shí)訓(xùn)平臺(tái)主要包括三個(gè)部分:地面設(shè)備、遠(yuǎn)程服務(wù)器、上位機(jī)監(jiān)控軟件。地面設(shè)備包括:STM32單片機(jī)、井口端設(shè)備。上位機(jī)監(jiān)控軟件包括:本地服務(wù)器軟件、本地客戶端軟件以及本地?cái)?shù)據(jù)庫(kù)。整個(gè)系統(tǒng)采用如圖1所示的結(jié)構(gòu)。
平臺(tái)以STM32單片機(jī)為處理器對(duì)井口端設(shè)備進(jìn)行數(shù)據(jù)采集、儀器控制,使用GPRS進(jìn)行遠(yuǎn)程通信;研發(fā)基于B/S架構(gòu)的油田實(shí)時(shí)數(shù)據(jù)管理和設(shè)備控制系統(tǒng),系統(tǒng)采用軟件開(kāi)發(fā)方式實(shí)現(xiàn),云服務(wù)器通過(guò)TCP/IP協(xié)議獲取油田的生產(chǎn)數(shù)據(jù),并保存到云服務(wù)器MySQL數(shù)據(jù)庫(kù);上位機(jī)軟件輪詢采集油井的各項(xiàng)參數(shù),并存儲(chǔ)到本地MySQL數(shù)據(jù)庫(kù),使得油田管理部門快速準(zhǔn)確地了解油田現(xiàn)狀,從而方便、快速地做出各項(xiàng)方案和決策。
硬件系統(tǒng)主要由主控單片機(jī)模塊、GPRS模塊、通訊接口模塊、電源模塊等模塊組成。
地面設(shè)備主控芯片采用STM32F103[5]系列單片機(jī),其內(nèi)核是ARM32位的Cortex-M3處理器。該系列芯片最高擁有72 MHz工作頻率,64或128 K字節(jié)閃存,自帶USB接口、CAN接口、7個(gè)定時(shí)器、2個(gè)ADC和多達(dá)9個(gè)的通信接口。同時(shí),提供了卓越的計(jì)算性能和先進(jìn)的中斷系統(tǒng)響應(yīng),從而保證了系統(tǒng)的實(shí)時(shí)性,在工業(yè)控制領(lǐng)域應(yīng)用廣泛。
主控芯片電路如圖2所示,包括復(fù)位電路以及外部振蕩電路。單片機(jī)3、4引腳接32.768 kHz RTC晶振用于計(jì)時(shí)。5、6引腳接8MHz晶振,經(jīng)PLL倍頻產(chǎn)生72 MHz系統(tǒng)時(shí)鐘,達(dá)到系統(tǒng)要求的數(shù)據(jù)處理能力。16、17引腳接RXD2和TXD2,用于和GPRS模塊進(jìn)行數(shù)據(jù)傳輸。29、30引腳接RXD3和TXD3,與RS485模塊連接,用于和井口端設(shè)備通信。46、49引腳作為燒錄引腳,用于下載程序。
GPRS是在GSM系統(tǒng)基礎(chǔ)上引入新的部件而構(gòu)成的無(wú)線數(shù)據(jù)傳輸系統(tǒng),最高可以達(dá)到171.2 kb/s,系統(tǒng)傳輸數(shù)據(jù)大小不到1 kb完全符合傳輸要求。它采用分組交換技術(shù),能兼容 GSM 網(wǎng)絡(luò)[7-8]并在網(wǎng)絡(luò)上更加有效的傳輸高速數(shù)據(jù)和信令。允許用戶在端到端分組轉(zhuǎn)移模式下發(fā)送和接收數(shù)據(jù),不需要利用電路交換模式的網(wǎng)絡(luò)資源,從而提供了一種高效、低成本的無(wú)線分組數(shù)據(jù)業(yè)務(wù)。
USR-GM3是一款高度集成的通用異步收發(fā)傳輸器通信轉(zhuǎn)GPRS通信模塊,可以透明的雙向傳輸網(wǎng)絡(luò)到串口的數(shù)據(jù)。本模塊與市面上的GPRS模塊不同,不需要理解復(fù)雜的AT指令和協(xié)議,插卡即可使用,無(wú)需內(nèi)置SIM卡。網(wǎng)絡(luò)透?jìng)髂J饺鐖D3所示,數(shù)據(jù)由UART2串口傳送至GM3模塊,經(jīng)GPRS網(wǎng)絡(luò)[9]采用TCP/IP協(xié)議傳送至云服務(wù)器,并由計(jì)算機(jī)經(jīng)監(jiān)聽(tīng)云服務(wù)器獲取設(shè)備數(shù)據(jù)。
圖3 網(wǎng)絡(luò)透?jìng)髂J?/p>
工程使用RS485標(biāo)準(zhǔn)進(jìn)行單片機(jī)與設(shè)備之間的通信,RS485[10]是一個(gè)定義平衡數(shù)字多點(diǎn)系統(tǒng)中的驅(qū)動(dòng)器和接收器的電氣特性的標(biāo)準(zhǔn),該標(biāo)準(zhǔn)由電信行業(yè)協(xié)會(huì)和電子工業(yè)聯(lián)盟定義。使用該標(biāo)準(zhǔn)的數(shù)字通信網(wǎng)絡(luò)能在遠(yuǎn)距離條件下以及電子噪聲大的環(huán)境下有效傳輸信號(hào)。RS-485使得廉價(jià)本地網(wǎng)絡(luò)以及多支路通信鏈路的配置成為可能,因此使用MAX485來(lái)實(shí)現(xiàn)RS485通信[11]。通訊接口電路圖如圖4所示。
圖4 串口通信模塊
電源部分采用德州儀器(TI)生產(chǎn)的LM2596芯片,它內(nèi)含固定頻率振蕩器(150 kHz)和基準(zhǔn)穩(wěn)壓器(1.23 V),并具有完善的保護(hù)電路、電流限制、熱關(guān)電路等。在芯片輸入端接入0.1 μF的濾波電容,可以減少輸入端收到的干擾,構(gòu)成高效穩(wěn)壓電路,很好地滿足硬件系統(tǒng)的要求。硬件電路外部使用24 V供電,5 V輸出電壓,主要用于對(duì)通訊模塊供電,以及通過(guò)輸出降壓開(kāi)關(guān)型集成穩(wěn)壓芯片產(chǎn)生3.8 V電壓對(duì)GPRS模塊供電;3 V輸出電壓主要用于對(duì)STM32F103電路和flash供電。
Flash使用W25Q40芯片用于存儲(chǔ)配置信息(設(shè)備號(hào)、設(shè)備系數(shù)、服務(wù)器IP地址);保存沒(méi)有及時(shí)上傳至云服務(wù)器的數(shù)據(jù)。
軟件系統(tǒng)設(shè)計(jì)包括硬件系統(tǒng)的軟件設(shè)計(jì)以及上位機(jī)軟件設(shè)計(jì)。
單片機(jī)軟件程序以keil uvision5為開(kāi)發(fā)平臺(tái)采用C語(yǔ)言進(jìn)行編程。硬件系統(tǒng)正常工作主要有兩個(gè)狀態(tài),如圖5所示,圖5(a)表示主程序狀態(tài),圖5(b)表示中斷處理狀態(tài)。
圖5 程序流程圖
1)主程序運(yùn)行狀態(tài):初始化后,GPRS模塊從NTP服務(wù)器獲取UTC,處理后存入單片機(jī)RTC寄存器。由TIM3定時(shí)器定時(shí)查詢并讀取井口端設(shè)備信息。在數(shù)據(jù)上傳前,檢測(cè)GPRS模塊TCP連接是否正常,連接正常通過(guò)GPRS將數(shù)據(jù)發(fā)送至云服務(wù)器,否則將數(shù)據(jù)存入flash芯片中。當(dāng)檢測(cè)到TCP連接正常后,flash芯片中存儲(chǔ)的數(shù)據(jù)在定時(shí)器定時(shí)查詢空閑狀態(tài)中通過(guò)GPRS將數(shù)據(jù)發(fā)送至云服務(wù)器。
2)中斷處理狀態(tài),當(dāng)收到來(lái)自上位機(jī)的指令,主程序暫停運(yùn)行,進(jìn)入中斷處理并發(fā)送控制指令到井口端設(shè)備后主程序繼續(xù)執(zhí)行。
上位機(jī)軟件系統(tǒng)使用Windows系統(tǒng)以.NET作為開(kāi)發(fā)環(huán)境,采用C#語(yǔ)言編寫,包括云服務(wù)器軟件、本地服務(wù)器軟件和本地客戶端軟件。SuperSocket是基于.NET輕量級(jí)的開(kāi)發(fā)框架,支持各種協(xié)議,內(nèi)置的協(xié)議解析工具把實(shí)現(xiàn)通信協(xié)議這種復(fù)雜的工作變得簡(jiǎn)單,因此,使用SuperSocket完成TCP/IP通信。
3.2.1 云服務(wù)器軟件
遠(yuǎn)程服務(wù)器軟件在接收到信息后,判斷收到信息的來(lái)源。如果是來(lái)自GPRS模塊就將數(shù)據(jù)解析并保存至云服務(wù)器數(shù)據(jù)庫(kù);如果是來(lái)自本地客戶端的控制指令,就將控制指令發(fā)送至單片機(jī)的GPRS接收模塊;如果是來(lái)自本地服務(wù)器的查詢指令,根據(jù)查詢信息從數(shù)據(jù)庫(kù)中獲取信息發(fā)送至客戶端。遠(yuǎn)程服務(wù)器軟件界面如圖6所示。
圖6 遠(yuǎn)程服務(wù)器軟件界面
3.2.2 MySQL數(shù)據(jù)庫(kù)
系統(tǒng)使用數(shù)據(jù)庫(kù)[12-13]管理工具Navicat對(duì)數(shù)據(jù)庫(kù)MySQL進(jìn)行開(kāi)發(fā)。Navicat是一套快速、可靠并且價(jià)格相當(dāng)便宜的數(shù)據(jù)庫(kù)管理工具,專為簡(jiǎn)化數(shù)據(jù)庫(kù)的管理及降低系統(tǒng)管理成本而設(shè),其直覺(jué)化的用戶界面使使用者以安全并且簡(jiǎn)單的方式創(chuàng)建,訪問(wèn)并用信息。遠(yuǎn)程服務(wù)器和上位機(jī)監(jiān)控軟件使用的數(shù)據(jù)庫(kù)結(jié)構(gòu)相同,都是用于對(duì)數(shù)據(jù)、設(shè)備信息和用戶信息的儲(chǔ)存。索引是對(duì)數(shù)據(jù)庫(kù)表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu),使用索引可快速訪問(wèn)數(shù)據(jù)庫(kù)表中的特定信息,因此為了減少數(shù)據(jù)查詢時(shí)間,為列表中的設(shè)備號(hào)以及上傳時(shí)間建立索引。
3.2.3 本地服務(wù)器和本地客戶端
本地服務(wù)器主要用于顯示選中設(shè)備的重要信息,并將列表中所有在線的設(shè)備信息保存到本地?cái)?shù)據(jù)庫(kù)中。
本地客戶端從本地MySQL數(shù)據(jù)庫(kù)中讀取設(shè)備詳細(xì)信息(實(shí)時(shí)信息、歷史信息、歷史流量等),并在遠(yuǎn)程操控界面對(duì)井口端設(shè)備進(jìn)行閥門開(kāi)閉,流量設(shè)定等控制操作。本地服務(wù)器主界面如圖7所示,本地客戶端主界面見(jiàn)圖8。
圖7 本地服務(wù)器主界面
圖8 設(shè)定結(jié)果顯示
開(kāi)發(fā)板使用AltiumDesigner軟件設(shè)計(jì),直徑大小為70 mm,方便安裝在井口端設(shè)備上,4個(gè)定位孔便于固定。
試驗(yàn)在中國(guó)石油大學(xué)(華東)教學(xué)科研基地進(jìn)行測(cè)試,將開(kāi)發(fā)板連接到油田注水仿真設(shè)備,打開(kāi)運(yùn)行在Windows系統(tǒng)上的上位機(jī)軟件以及發(fā)布在阿里云服務(wù)器上的云服務(wù)器軟件和數(shù)據(jù)庫(kù)。由于注水井?dāng)?shù)據(jù)一般都是大量重復(fù)性數(shù)據(jù),為了節(jié)約系統(tǒng)資源同時(shí)又保證實(shí)時(shí)數(shù)據(jù)的傳遞,因此將STM32單片機(jī)上傳到云服務(wù)器上的時(shí)間間隔設(shè)置為3 s一次。
1)圖9為客戶端顯示井口端設(shè)備放大后的歷史信息,可以看出數(shù)據(jù)能夠準(zhǔn)確顯示數(shù)據(jù),且遠(yuǎn)程數(shù)據(jù)傳輸穩(wěn)定。并且從圖7可以看出采集時(shí)間與當(dāng)前時(shí)間一致,在數(shù)據(jù)傳輸方面具有較高的實(shí)時(shí)性。
圖9 客戶端歷史數(shù)據(jù)界面
2)在遠(yuǎn)程操控界面將注水開(kāi)度設(shè)為100以及將設(shè)定流量設(shè)定為600(方/每天)后,設(shè)備反饋的結(jié)果如圖8所示,注水流量已被設(shè)定為600(方/每天),可以看出對(duì)井口端設(shè)備的控制符合工業(yè)要求。
3)為了測(cè)試MySQL數(shù)據(jù)庫(kù)中數(shù)據(jù)的容量對(duì)上位機(jī)的影響將開(kāi)發(fā)板上電3個(gè)月,此時(shí)數(shù)據(jù)庫(kù)中的數(shù)據(jù)達(dá)到了258萬(wàn)條,在通信條件良好的情況下,下發(fā)控制指令,系統(tǒng)響應(yīng)時(shí)間依然保持在1s以內(nèi)。其實(shí)時(shí)性、穩(wěn)定性得到保證。
本文設(shè)計(jì)了一個(gè)油田注水硬件控制和遠(yuǎn)程監(jiān)控系統(tǒng),主要介紹了此系統(tǒng)的硬件和軟件設(shè)計(jì),并給出了設(shè)計(jì)的效果圖。本系統(tǒng)將操作人員從繁瑣的人工操作過(guò)程中解脫出來(lái),實(shí)現(xiàn)油田注水遠(yuǎn)程監(jiān)控、高效運(yùn)行的同時(shí),極大改善了操作維護(hù)人員的工作環(huán)境。
通過(guò)上位機(jī)測(cè)試驗(yàn)證了系統(tǒng)的通訊功能,系統(tǒng)的穩(wěn)定性、實(shí)時(shí)性達(dá)到了實(shí)際應(yīng)用的要求。實(shí)現(xiàn)了集云數(shù)據(jù)采集、存儲(chǔ)、顯示及設(shè)備硬件控制于一體的實(shí)訓(xùn)平臺(tái)設(shè)計(jì)。