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