劉曉軍 秦紅杰 方浩 孟敏
1. 中石化河南油田分公司采油一廠,河南南陽 474780;2. 江蘇麥赫物聯(lián)網(wǎng)科技有限公司,江蘇無錫 214603
油田信息化管理是把生產(chǎn)監(jiān)控作為重要手段,以完成數(shù)據(jù)采集、動態(tài)分析和自動化控制為目的,全面實(shí)現(xiàn)油田可視化、數(shù)字化、智能化的一種管理模式[1]。井口壓力、溫度、功圖、位移、含水率和現(xiàn)場圖像等數(shù)據(jù)采集是實(shí)現(xiàn)信息化的重要基礎(chǔ)。
一般井口各設(shè)備數(shù)據(jù)上傳過程:現(xiàn)場設(shè)備將數(shù)據(jù)送至RTU(Remote Terminal Unit)模塊,RTU負(fù)責(zé)將數(shù)據(jù)上傳到后臺服務(wù)器,并將后臺服務(wù)器發(fā)出的指令送到相應(yīng)設(shè)備。目前井口各設(shè)備與RTU之間的連接主要分有線和無線2種方式:有線方式主要使用RS485總線;無線方式則是利用ZigBee網(wǎng)絡(luò)。本文介紹微波原油含水率檢測儀的ZigBee網(wǎng)絡(luò)通信實(shí)現(xiàn)方法。
ZigBee是采用IEEE802.15.4的無線通信標(biāo)準(zhǔn)[2],是一種適用于短距離和低速率下小數(shù)據(jù)量傳輸?shù)臒o線通信技術(shù),有低功耗、低成本、低復(fù)雜度和容納節(jié)點(diǎn)多(一個網(wǎng)絡(luò)理論上可支持65,536個)等優(yōu)點(diǎn)[3-4]。缺點(diǎn)主要有:無線頻率容易受到干擾;各個ZigBee廠商協(xié)議棧太多或版本不兼容,造成各種ZigBee模塊不能互相通信。
針對油井來說,采集的數(shù)據(jù)基本在20 m范圍之內(nèi),并且空曠,部分功耗小的設(shè)備可用電池供電,適合采用ZigBee網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸。
本文介紹的原油含水率檢測儀能夠測量原油中0%~100%含水率。其主要特點(diǎn)是采用微波在線測量方式,根據(jù)原油與水介電常數(shù)的巨大差異,對比微波速度變化測算出原油含水率[5]。
圖1為PCS系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖。中心控制室與現(xiàn)場各種儀表設(shè)備的通信通過因特網(wǎng)實(shí)現(xiàn),服務(wù)器和現(xiàn)場RTU配合工作,達(dá)到操作員與現(xiàn)場設(shè)備的數(shù)據(jù)透明傳輸、實(shí)時控制的功能。歷史數(shù)據(jù)存儲于服務(wù)器上,供用戶隨時調(diào)閱查詢。圖1中的通信模塊用于連接到2G/4G通信基站。
微波原油含水率檢測儀中實(shí)現(xiàn)信號上傳的主要硬件為MCU(Micro controller Unit)和ZigBee模塊。其中,MCU選用意法半導(dǎo)體STM32F103C8T6芯片,基于ARM Cortex-M3內(nèi)核,性能強(qiáng)大;ZigBee模塊采用廈門四信通信科技有限公司的F8913D,其遵循中石化四化標(biāo)準(zhǔn)通信協(xié)議規(guī)范SZ9-GRM V3.01,具備中繼路由和終端設(shè)備功能,最長報文可達(dá)300 Bytes。MCU和F8913D的接線連接如圖2所示。
F8913D和MCU有3個引腳相連:RST是模塊復(fù)位腳,為防止F8913D死機(jī),需要在程序中檢測通信回應(yīng)報文,當(dāng)檢測到3次無應(yīng)答報文時,則控制此信號進(jìn)行模塊復(fù)位;RX是通信接收,TTL電平,連接到UART1_TX;TX是通信發(fā)送,TTL電平,連接到UART1_RX。串口通信波特率設(shè)置為9600,起始位1,數(shù)據(jù)位8,停止位1,校驗位無。
ZigBee網(wǎng)絡(luò)通信中有3個重要參數(shù):網(wǎng)絡(luò)號、信道號和地址。每個網(wǎng)絡(luò)都有唯一的標(biāo)識符PAN ID(網(wǎng)絡(luò)號),因此,F(xiàn)8913D必須與RTU的協(xié)調(diào)器信道號一致。首先確定網(wǎng)絡(luò)號和信道號,根據(jù)中石化四化標(biāo)準(zhǔn)通信協(xié)議SZ9-GRM V3.01規(guī)定確認(rèn)這2個參數(shù):將油井名稱做CRC16校驗,以校驗碼為網(wǎng)絡(luò)ID號,信道號為ID號對16取余再加11。網(wǎng)絡(luò)號和信道號設(shè)置到RTU協(xié)調(diào)器和檢測儀中保存,地址按RTU規(guī)定設(shè)置。
RTU和原油含水率檢測儀之間的數(shù)據(jù)通信過程如圖3所示。
RTU接收到常規(guī)數(shù)據(jù)后,發(fā)送常規(guī)應(yīng)答,結(jié)束本次通信,儀表進(jìn)入休眠。休眠時間在應(yīng)答數(shù)據(jù)中體現(xiàn),若RTU沒有應(yīng)答,儀表不做重發(fā)處理。本含水儀不休眠,按RTU給的休眠時間定時發(fā)送數(shù)據(jù)即可。
MCU對F8913D的命令設(shè)置是通過AT命令實(shí)現(xiàn)的,根據(jù)節(jié)點(diǎn)類型和通信協(xié)議確定使用表1所示命令。
其中,1至10號命令是在使用模塊前由USB-TTL線通過串口設(shè)置到ZigBee模塊中,11、12號命令在儀表啟動后根據(jù)存儲的參數(shù)進(jìn)行設(shè)置[6]。
表1 AT命令使用表
(1)初始化程序。程序啟動時按參數(shù)中網(wǎng)絡(luò)號和信道號對ZigBee模塊進(jìn)行設(shè)置;
(2)檢測和處理主程序。在主程序中一旦檢測到網(wǎng)絡(luò)號或信道號參數(shù)改變,需要重新對ZigBee模塊進(jìn)行設(shè)置。圖4顯示了信道號改變處理流程,網(wǎng)絡(luò)號處理與此類似;
圖中AT命令操作部分流程邏輯采用不同標(biāo)記狀態(tài)來控制,減少等待時間占用MCU。串口接收發(fā)送用中斷,使用定時器返回判斷等待時間,在主程序大循環(huán)中,根據(jù)標(biāo)記來查看串口緩沖區(qū)數(shù)據(jù),確定本次AT命令是否返回正確;
(3)定時發(fā)送數(shù)據(jù)報文程序。MCU按休眠時間間隔周期,通過F8913D模塊向RTU發(fā)送數(shù)據(jù)報文。
微波原油含水率檢測儀發(fā)送報文:
00 01 A0 12 30 12 00 01 00 00 0014 00 FF 00 FE 00 FD 00 FF 01 00 03 EC 04 EE 03 EC 04 EE
斜體部分為幀頭數(shù)據(jù)報文,后面為數(shù)據(jù)內(nèi)容,解析方式如表2和表3所示。
用戶實(shí)際使用分鐘含水率,每次發(fā)送報文后收到“OK”回復(fù);若3次接收不到,則認(rèn)為ZigBee模塊死機(jī),重新啟動模塊。
軟件使用Keil MDK5編制,成功實(shí)現(xiàn)微波原油含水率檢測儀與RTU通信,將數(shù)據(jù)上傳到服務(wù)器,并在油田PCS系統(tǒng)顯示。目前設(shè)備在現(xiàn)場正常運(yùn)行超過2年,充分驗證了本方案的實(shí)用性和可靠性。先進(jìn)的原油含水率測量方法與低成本、高可靠的數(shù)據(jù)通訊方式有機(jī)結(jié)合,為油田無人化監(jiān)測提供了成功且有益的嘗試,為今后各類石油儀表傳感器智能化探索了道路。
表3 數(shù)據(jù)內(nèi)容報文解釋