師阿香,宋 楠,黨 博,曾凡春
(1.西安石油大學(xué)光電油氣測(cè)井與檢測(cè)教育部重點(diǎn)實(shí)驗(yàn)室,陜西西安,710065;2.勝利油田采油研究院淺海所,山東東營(yíng),257000)
基于VC++的潛油電泵井下參數(shù)可視化系統(tǒng)研究
師阿香1,宋 楠1,黨 博1,曾凡春2
(1.西安石油大學(xué)光電油氣測(cè)井與檢測(cè)教育部重點(diǎn)實(shí)驗(yàn)室,陜西西安,710065;2.勝利油田采油研究院淺海所,山東東營(yíng),257000)
本文在描述潛油電泵井下數(shù)據(jù)通信實(shí)現(xiàn)原理的基礎(chǔ)上,通過VC++開發(fā)環(huán)境下的多線程技術(shù)來實(shí)現(xiàn)單片機(jī)與上位機(jī)之間的通信,并對(duì)采集的井下參數(shù)實(shí)時(shí)繪圖。
VC++;數(shù)據(jù)通信;多線程;實(shí)時(shí)繪圖
隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,自80年代中期至今多線程技術(shù)已相當(dāng)成熟,在操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)和應(yīng)用軟件中多線程的程序設(shè)計(jì)現(xiàn)已被廣泛應(yīng)用。在很多監(jiān)測(cè)系統(tǒng)中,采用多線程技術(shù)可以使數(shù)據(jù)采集與處理并行進(jìn)行,從而提高監(jiān)測(cè)系統(tǒng)效率,因此多線程使用在潛油電泵監(jiān)測(cè)系統(tǒng)中是無可厚非的。由于潛油電泵井下需要采集的物理量有溫度,壓力,振動(dòng)等,即該系統(tǒng)不但測(cè)量的參數(shù)多而且要求其測(cè)量速度快且精確度高,并且需要實(shí)時(shí)連續(xù)的數(shù)據(jù)采集,在采集的同時(shí),還必須動(dòng)態(tài)顯示信號(hào)波形,因此多線程技術(shù)成為該監(jiān)測(cè)系統(tǒng)設(shè)計(jì)不可或缺的組成。本文介紹了在Win32環(huán)境下利用 VC++多線程技術(shù),開發(fā)了一個(gè)實(shí)時(shí)性和穩(wěn)定性較強(qiáng)的潛油電泵井下參數(shù)可視化監(jiān)測(cè)系統(tǒng)。
1.1 潛油電泵井下參數(shù)的傳輸
潛油電泵試驗(yàn)的實(shí)時(shí)數(shù)據(jù)采集是一個(gè)長(zhǎng)時(shí)間數(shù)據(jù)采集的過程,系統(tǒng)進(jìn)行數(shù)據(jù)采集的同時(shí)并且在顯示設(shè)備上實(shí)時(shí)繪制出這段時(shí)間內(nèi)的信號(hào)波形。即邊采集數(shù)據(jù)邊觀測(cè)其參數(shù)的準(zhǔn)確合理性,這樣便于在試驗(yàn)過程中迅速了解潛油電泵設(shè)備的運(yùn)行狀況,從而及時(shí)做出相應(yīng)的判斷和決策,對(duì)井下工況的實(shí)時(shí)監(jiān)測(cè)具有重大意義。
作為單片機(jī)和潛油電泵設(shè)備的通信使者,串口將單片機(jī)發(fā)送出去的字節(jié)數(shù)據(jù)轉(zhuǎn)換為串行的位,在接收數(shù)據(jù)時(shí)又將串行的位轉(zhuǎn)換為字節(jié)數(shù)據(jù)。Win32提供了相關(guān)的文件I/O函數(shù)與通信函數(shù),通過對(duì)這些函數(shù)的正確使用,并根據(jù)實(shí)際情況的要求,就可以設(shè)計(jì)出我們需要的潛油電泵設(shè)備監(jiān)測(cè)應(yīng)用程序。要使用串口進(jìn)行通信,必須在使用之前向操作系統(tǒng)提出資源申請(qǐng)要求即打開串口,其后進(jìn)行配置串口、讀寫串口以及關(guān)閉串口等操作。
1.2 VC++多線程通訊的實(shí)現(xiàn)
在Win32下實(shí)現(xiàn)數(shù)據(jù)交互的方法有兩種,一種是使用ActiveX控件,這種方法使得程序編寫簡(jiǎn)單,但是靈活性欠佳。另外一種則是較為自由靈活的調(diào)用Windows的API函數(shù),這種方法可以清晰快捷的掌握串口通信的運(yùn)行機(jī)制。潛油電泵監(jiān)測(cè)系統(tǒng)
串口的操作可以有同步操作和重疊操作兩種操作方式。同步操作時(shí),API函數(shù)會(huì)出現(xiàn)阻塞現(xiàn)象直到操作完成以后才能返回(在多線程方式中,雖然不會(huì)阻塞主線程,但是仍然會(huì)阻塞監(jiān)聽線程)。然而重疊操作方式,API函數(shù)會(huì)立即返回,所有操作在后臺(tái)進(jìn)行,從而避免了線程的阻塞。
Research on the visual system of the electric submersible pump well parameters based on VC++
Shi Axiang1,Song Nan1,Dang Bo1,Zeng Fanchun2
(1.Key Laboratory of opto electronic gas logging and detection of the Ministry of education,Xi'an Shiyou University,Shaanxi Xi'an,710065; 2.Institute of shallow water in Shengli Oilfield,Shandong Dongying,257000)
This paper describes the principle of electric submersible pump downhole data communication, the development environment of VC++ multi thread technology to realize the communication between MCU and PC, to achieve the real-time drawing downhole data acquisition.
VC++; data communication; multithreading; real-time drawing
TP311
B
陜西省2012年科技統(tǒng)籌創(chuàng)新工程計(jì)劃項(xiàng)目,項(xiàng)目編號(hào):2012KTCL01-10便運(yùn)用第二種方法來實(shí)現(xiàn)與PC機(jī)的串口通信部分。