任明強,王瑾榮
(中原油田勘探研究設計院,河南濮陽457001)
中原油田是中國重要的石油天然氣生產基地,主要勘探開發(fā)區(qū)域橫跨河南、山東兩省,油田采油區(qū)較為分散,生產數據不能及時上傳。為了油田開發(fā)的科學管理,中原油田將基于無線傳輸數據的SCADA技術用于油田勘探開發(fā)中,建立了石油勘探開發(fā)控制系統(tǒng)。該系統(tǒng)不僅數據傳輸效率高,而且結構簡單,操作方便。
石油勘探開發(fā)控制系統(tǒng)主要對溫度、壓力、流量、液位等石油生產參數進行集中測量,它是一種由控制中心PC機、無線數據傳輸模塊與子站PC機、無線數據傳輸模塊、數據采集模塊、現場儀表所組成的主從式系統(tǒng),系統(tǒng)結構如圖1所示。
控制中心是石油勘探控制總站,子站則在城市或地區(qū)的周邊。它們收集的各種生產數據通過數據采集器送入子站PC機進行處理以及參數顯示和保存,并隨時準備接受中心站的查詢和定時數據發(fā)送。每一子站與控制中心之間的遠程通信采用無線數傳全雙工通信模式。
控制中心、子站與無線數傳模塊間的通信通過異步串口完成。異步串口采用標準的串口格式,即1個起始位、8個數據位、1個停止位。傳輸速率為1 200bit/s。
無線數據傳輸模塊的工作方式有全雙工和半雙工兩種。為了能充分測試系統(tǒng)傳輸數據的可靠性,該系統(tǒng)采用全雙工模式。需要注意的是,在設置通信時,必須保證通過串行口對無線數據傳輸模塊設置相同的收發(fā)頻率。
圖1 石油勘探開發(fā)系統(tǒng)結構
圖2 無線數傳發(fā)射模塊結構
1.2.1 模塊發(fā)送過程
當收到PC機的串行口數據后,模塊先通過DTR線判斷收到的數據是命令還是發(fā)送的數據。若是命令,則執(zhí)行相應的命令;若是發(fā)送的數據,則先將其送到發(fā)送緩沖區(qū)EERAM中,并同時將模塊的狀態(tài)由接收狀態(tài)轉換成發(fā)射狀態(tài)。狀態(tài)轉換完成后,啟動發(fā)送打包程序,并將該數據包的數據送到模塊中的數據調制口,以FSK方式調制成模擬信號,與鎖相環(huán)中的振蕩信號一起送入混頻器。升頻后的射頻信號再經發(fā)射放大器、功率放大器放大后通過天線發(fā)送出去。該數據打包要遵從事先定義好的傳輸協(xié)議,這樣才可使接收雙方有章可循,而且避免其他信號干擾。
1.2.2 模塊接收過程
數據的接收過程跟發(fā)送過程基本相反。在接收狀態(tài)下,通過天線接收的射頻信號經射頻放大器后,與鎖相環(huán)中的振蕩信號一起送到混頻器。降頻后的中頻信號通過中頻濾波器、中頻放大器放大后送到調制解調器,以FSK解調后的數字信號按照協(xié)議將有效數據送到存儲器中,再經串行口送到計算機。
因為無線通信模塊要對接收的數據進行處理,且必須能夠鑒別數據的真?zhèn)危砸髠鬏敂祿碾p方建立一種有效協(xié)議,從而識別噪聲和有效數椐。因為噪聲是以隨機字節(jié)出現的,沒有明顯的結合方式,噪聲源可能產生任意字節(jié)的組合,所以在研究無線通信的過程中最好通過一種協(xié)議能有效地抑制噪聲的產生。經過比較選擇,采用了表1的數據傳輸協(xié)議格式。
表1 數據傳輸協(xié)議格式
表1中,Radom表示任意內容的字節(jié);Data表示位數據包字節(jié);Length表示數據包包含的Header字節(jié)之后的所有字節(jié)的長度;Checksum表示校驗和字節(jié)。
在無線通信系統(tǒng)中傳輸頻率也是至關重要的。為合理使用頻率,需采用國家業(yè)余頻段。由于油田系統(tǒng)要長期專用某一頻段,需申請頻譜許可證。系統(tǒng)中數據的遠距離傳輸需根據接收雙方的頻率來判斷,所以需要編寫一定的程序完成頻率設置。如寫頻時,把DTR置低;而傳送數據時,DTR置高或懸空。
由于設計采用的是無線傳輸,因此當通過串行口將數據送到無線數據傳輸模塊時,需要考慮數據的傳輸格式。通常發(fā)送的是字符或者數字,這時就需要在軟件中根據ASCII碼的規(guī)則將其轉化為十六進制數形式,以字節(jié)方式傳輸,同時也需考慮發(fā)送與接收串口之間的延遲。
串行口是常用的計算機與外部串行設備之間的數據傳輸通道,而Visual C++6.0是一種功能強大、可視化、面向對象的Windows編程開發(fā)平臺,利用其進行串行通信方便易行,應用廣泛。通常情況下,VC++中有3種實現串行通信的編程技術:a)利用控件MSComm實現串行通信,在對話框中創(chuàng)建通信控件MSComm,該方法簡單易用,但必須在對話框中使用,靈活性較差;b)多線程實現串行通信,在自定義的串行通信類中創(chuàng)建端口監(jiān)視線程,進行多線程控制,并在指定的事件發(fā)生時向相關的窗口發(fā)送通知消息,該方法實時性強,但是系統(tǒng)復雜;c)在單線程中建立自定義的通信類實現串行通信,利用VC++的MFC類庫實現。與控件方法相比,該方法靈活性強,可按不同需要定制靈活的串口通信類來實現串行通信,同時,其結構也比多線程通信簡單。結合該系統(tǒng)所采用硬件的特點,以及實際運行環(huán)境,最終選擇第三種方式完成串行口通信。在程序中利用類CserialPort實現負責串口的配置、數據傳輸的延遲處理以及讀寫,數據讀寫流程如圖3~4所示。
圖3 數據讀取示意流程
圖4 數據寫入示意流程
整個程序的編制相應分為:配置串口;配置數據傳輸模塊;讀寫串行口;通信延時處理等。在收發(fā)數據時需要先監(jiān)測串行口是否準備好。程序中為了識別操作是否正確,需設置讀寫成功標志,同時確定讀寫字節(jié)的個數。
油田勘探開發(fā)控制系統(tǒng)具有采樣數據量大、傳輸距離遠,以及環(huán)境條件差別大的特點。數據傳輸長期以來一直是人們關注的焦點。系統(tǒng)以往主要采用Modem和電話機實現遠程通信。但由于電話線具有通信速度慢,質量差的缺點,已不能滿足油田勘探開發(fā)信息傳輸的要求。使用無線數據傳輸模塊完成遠程數據通信,不僅克服了上述缺點,而且改善了該系統(tǒng)的數據傳輸性能。經最終測試,該系統(tǒng)不僅可以在條件惡劣和干擾大的環(huán)境下進行遠距離傳輸,而且數據準確率高,傳輸速度快,可根據不同需要應用于各種領域。
[1] 夏華.無線通信模塊設計與物聯(lián)網應用開發(fā)[M].北京:電子工業(yè)出版社,2010.
[2] 韋惠民,李國民,暴宇.移動通信技術[M].北京:人民郵電出版社,2006.
[3] 紀越峰.現代通信技術[M].北京:北京郵電大學出版社,2002.
[4] 王華忠.監(jiān)控與數據采集(SCADA)系統(tǒng)及其應用[M].北京:電子工業(yè)出版社,2010.
[5] 王振明.SCADA監(jiān)控與數據采集軟件系統(tǒng)的設計與開發(fā)[M].北京:機械工業(yè)出版社,2009.
[6] 周洪利.計算機高級接口技術[M].北京:清華大學出版社,2008.
[7] 張明,李訓濤.計算機測控技術[M].北京:國防工業(yè)出版社,2009.
[8] 譚浩強.C++程序設計[M].北京:清華大學出版社,2004.
[9] 劉銳寧.Visual C++項目開發(fā)案例[M].北京:清華大學出版社,2010.
[10] 于海生.計算機控制技術[M].北京:機械工業(yè)出版社,2010.