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