新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于VC++的數(shù)據(jù)監(jiān)視系統(tǒng)

基于VC++的數(shù)據(jù)監(jiān)視系統(tǒng)

作者: 時間:2012-01-07 來源:網絡 收藏

引言 目前主要的監(jiān)視系統(tǒng)軟件大多是由組態(tài)軟件或VB實現(xiàn)的。組態(tài)軟件將功能模塊化,對于較小的系統(tǒng)有一些多余的功能是用不上的,導致了資源的浪費。而VB功能有限,運行效率不高。隨著Windows操作系統(tǒng)的普及和其強大的功能,越來越多的程序支持Windows操作系統(tǒng)。由于VC是微軟的產品,用它來編寫Windows程序有強大的程序接口和豐富的開發(fā)資源的支持,加之VC嚴謹?shù)膬却婀芾?,在堆棧上良好的分配處理,生成代碼的體積小,穩(wěn)定性高的優(yōu)點,所以就成為目前程序的主流開發(fā)工具。本文主要介紹如何用編寫監(jiān)控程序,本程序用在基于凌陽單片機的數(shù)據(jù)采集及無線傳輸系統(tǒng)中監(jiān)視現(xiàn)場采集的數(shù)據(jù)。

1 .系統(tǒng)筐架及各部分的功能

本系統(tǒng)分兩大部分:數(shù)據(jù)采集及發(fā)送部分,數(shù)據(jù)接收部分。如圖1所示:

圖1 系統(tǒng)框圖

其中:數(shù)據(jù)采集部分采集外界電壓值并將電壓的模擬值轉換成數(shù)字值。

無線傳輸模塊負責收發(fā)轉換后的數(shù)字值。

顯示模塊將數(shù)字值經過處理后顯示出測量的電壓值。

數(shù)據(jù)監(jiān)視部分將接收模塊接收到的數(shù)據(jù)經過處理后顯示出測量的電壓值。

2 .數(shù)據(jù)監(jiān)視程序的設計

要實現(xiàn)數(shù)據(jù)監(jiān)視的功能要解決三個問題:

1.上位機(PC機)如何接收數(shù)據(jù)。

2.接收到數(shù)據(jù)后如何處理使顯示在屏幕上的數(shù)據(jù)更加直觀。

3.由于有測量誤差,如何用軟件的方法減少誤差。

2.1 接收數(shù)據(jù)

在無線接收模塊接收到遠處的數(shù)據(jù)后將數(shù)據(jù)發(fā)送到上位機的串口。 6.0提供的MSComm控件通過串行端口發(fā)送和接收數(shù)據(jù),為應用程序提供串行通信功能。當串口接收緩沖區(qū)中有字符時,可以利用 MSComm 控件的 OnComm 事件捕獲并處理這些數(shù)據(jù)。在編程過程中,可以在OnComm事件處理函數(shù)中加入自己的處理代碼處理得到的數(shù)據(jù)。

2.2 處理數(shù)據(jù)

從串口接收到的數(shù)據(jù)是16位2進制碼。直接顯示不直觀,需要將其轉化為電壓值。

2.2.1.原始數(shù)據(jù)的格式

因為本系統(tǒng)采集兩路數(shù)據(jù),為了分辨電壓值是哪一路的,我們將16位2進制碼的最高位(第15位)設置為路數(shù)識別位,0代表第一路1代表第二路。第14位到10位數(shù)據(jù)無用為0,第9位到0位為電壓數(shù)據(jù)。結構如圖2所示:

圖2 原始數(shù)據(jù)結構

2.2.2 數(shù)據(jù)的處理

假設接收的16位數(shù)據(jù)為X

先判斷是哪一路電壓的數(shù)據(jù):若X ≥32768(2進制數(shù)1000000000000000對應的10進制數(shù))說明數(shù)據(jù)來自第2路。將X減去32768得到真實的電壓數(shù)據(jù)Y,再通過公式運算得到測量電壓值:公式為:V=Y*6.6/1024 (此公式是根據(jù)電壓采集模塊而定的這里就不再詳述了)。若X< 32768說明數(shù)據(jù)來自第1路,直接用上述公式得出電壓值V。

2.3 顯示電壓值

程序將兩路數(shù)據(jù)分別顯示在兩個文本框中。如圖3所示:

圖3 程序界面圖

左邊顯示第1路右邊顯示第2路,先收到的數(shù)據(jù)顯示在文本框的最上面后收到的數(shù)據(jù)依次排在下面,點擊“清空”鍵時文本框清空。

2.4 減少誤差

由于電壓采集模塊本身有一定的阻值,電壓測量值總是小于實際的值我們用軟件的方法將2.2.2中得到的Y乘以一個固定的數(shù)(經過多次試驗將此數(shù)定為1.023)使測量值于實際值更接近。以下是實驗所得結果:

第一路A/D轉換,如表1所示。

表1 A/D1轉換對照表 單位:伏

實際電壓

4.902

4.466

3.970

3.570

2.996

2.462

1.994

1.550

1.042

顯示電壓

4.9

4.5

4.0

3.5

3.0

2.5

2.0

1.5

1.0

接收電壓

4.90

4.46

3.96

3.51

3.00

2.46

1.99

1.50

1.03

第二路A/D轉換,如表2所示。

表2 A/D2轉換對照表 單位:伏

實際電壓

4.982

4.472

4.040

3.464

2.992

2.504

1.990

1.538

0.996

顯示電壓

5.0

4.5

4.0

3.5

3.0

2.5

2.0

1.5

1.0

接收電壓

4.98

4.47

4.03

3.47

2.99

2.50

1.98

1.53

0.99

2.5 程序框圖

如圖4所示

圖4 程序框圖

3.結束語

本文結合實際應用介紹了基于VC++的監(jiān)視程序的設計過程。設計的程序具有接受數(shù)據(jù),顯示數(shù)據(jù),糾正誤差等功能。并且結構簡單,運行效率高,占系統(tǒng)資源少,體現(xiàn)了VC的優(yōu)越性。在誤差矯正的功能上還可以針對A/D轉換帶來的誤差設計一種算法使顯示的電壓值更為精確,這將在下一步的工作中的繼續(xù)研究。

本文作者創(chuàng)新點:不同于大多數(shù)監(jiān)視軟件使用組態(tài)軟件或VB實現(xiàn),本文使用VC++編寫監(jiān)視程序。

參考文獻

1 羅亞非等編著.凌陽16位單片機應用基礎.北京:北京航空航天大學出版社,2005.

2 陳偉,陳法國,王世勛.無線數(shù)據(jù)通信技術在TPMS中的應用.武漢理工大學報,2005,27 (5):241~244

3 PTR8000.pdf.訊通科技.www.freqchina.com

4 nRF905.pdf.訊通科技.www.freqchina.com

5 丁立波,江小華,張河.基于無線數(shù)字傳輸技術的數(shù)據(jù)采集系統(tǒng)設計.無線發(fā)送/接收IC芯片及其數(shù)據(jù)通訊技術選編(2):168~171

6 施運梅,劉梅彥,楊根興.網絡資源管理研究[J].微計算機信息 2006(1);109—11


評論


相關推薦

技術專區(qū)

關閉