題目: 地磁監(jiān)測系統(tǒng)控制中心平臺
姓 名: 孫鵬 學(xué)號: 20121003920
院(系): 自動化學(xué)院 專業(yè): 測控技術(shù)與儀器
指導(dǎo)教師: 葛健
2019 年7月
摘 要
Labview是一款程序開發(fā)環(huán)境,由美國國家儀器(NI)公司研制開發(fā)的,類似于C和BASIC開發(fā)環(huán)境,但是Labview與其他計算機語言的顯著區(qū)別是:其他計算機語言都是采用基于文本的語言產(chǎn)生代碼,而Labview使用的是圖形化編輯語言G編寫程序,產(chǎn)生的程序是框圖的形式。Labview是一種用圖標代替文本行創(chuàng)建應(yīng)用程序的圖形化編程語言。傳統(tǒng)文本編程語言根據(jù)語句和指令的先后順序決定程序執(zhí)行順序,而Labview采用數(shù)據(jù)流編程方式,程序框圖中節(jié)點之間的數(shù)據(jù)流向決定了VI及函數(shù)的執(zhí)行順序。VI指虛擬儀器,是Labview的程序模塊。Labview提供很多外觀與傳統(tǒng)儀器類似的控件,可用來方便地創(chuàng)建用戶界面。用戶界面在Labview中被稱為前面板。使用圖標和連線,可以通過編程對前面板上的對象進行控制。這就是圖形化源代碼,又稱G代碼。Labview的圖形化源代碼在某種程度上類似于流程圖,因此又被稱作程序框圖代碼。
關(guān)鍵詞:虛擬儀器,Labview,VI
目 錄
第一章 課程設(shè)計目的與任務(wù) 4
第二章 課程要求 4
第三章 設(shè)計分析 4
第四章 設(shè)計流程 5
4.1 下位機程序代碼 5
4.2 上位機程序框圖 6
4.2.1串口配置 6
4.2.2數(shù)據(jù)采集 6
4.2.3啟動開關(guān) 7
4.2.4 包頭包尾判斷 7
4.2.5 提取串口信息 7
4.2.6 數(shù)據(jù)處理 8
4.2.7 數(shù)據(jù)顯示 9
4.2.8 數(shù)據(jù)存儲 9
4.3 前面板及效果圖 9
4.3.1 ardunio芯片發(fā)送數(shù)據(jù) 9
4.3.2 前面板初始狀態(tài) 10
4.3.3 前面板數(shù)據(jù)開始采集 10
4.3.4前面板數(shù)據(jù)連續(xù)采集 11
第五章 問題分析 12
第六章 小組分工 12
第七章 心得體會 12
致 謝 13
參考文獻 14
第一章 課程設(shè)計目的與任務(wù)
掌握虛擬儀器的概念和系統(tǒng)組成,虛擬儀器系統(tǒng)的基本設(shè)計思想;認識虛擬儀器的軟件開發(fā)工具LabVIEW及圖形化編程語言;掌握虛擬儀器軟件的設(shè)計方法,能夠運用LabVIEW進行數(shù)據(jù)操作、結(jié)構(gòu)控制、文件讀寫、信號處理、數(shù)學(xué)分析、波形分析等。
計算機和儀器的密切結(jié)合是目前儀器發(fā)展的一個重要方向。虛擬儀器以通用的計算機硬件及操作系統(tǒng)為依托,實現(xiàn)各種儀器功能。通過本課程設(shè)計,使學(xué)生了解智能儀器的分類、組成、特點以及智能儀器的發(fā)展方向及新技術(shù);掌握虛擬儀器的數(shù)據(jù)采集技術(shù)、人機對話接口技術(shù)以及典型數(shù)據(jù)處理算法。能夠熟練運用所學(xué)知識進行智能儀器的設(shè)計和開發(fā)。
第二章 課程要求
1、利用Labview控制前端地磁監(jiān)測儀(利用單片機模擬)進行地磁總場F,分量(X、Y、Z)的采集與串口傳輸。
2、根據(jù)采集數(shù)據(jù)計算地磁場磁偏角和磁傾角、分量的校正(總場數(shù)據(jù)校正分量數(shù)據(jù))。
3、能夠?qū)崟r顯示當前地磁要素(總場、分量、磁偏角和磁傾角)曲線,并能進行數(shù)據(jù)的本地txt文件存儲。
4、上位機控制下位機功能,就是上位機發(fā)送一個信息給下位機,下位機點亮一個燈,開始傳輸數(shù)據(jù),同時停止傳輸數(shù)據(jù)是一樣的,也要有標志。
5、磁場總場值f應(yīng)圍繞49600進行微調(diào)。
6、波特率必須達到115200。
7、存儲的文件數(shù)據(jù)要附上采集的時間,并且注意存儲的格式(如空格,各數(shù)據(jù)之間的區(qū)分等)。
第三章 設(shè)計分析
1、利用ardunio串口發(fā)送功能向電腦發(fā)送地磁總場F,分量(X、Y、Z)數(shù)據(jù),并可以接受上位機控制,每發(fā)送一組數(shù)據(jù),ardunio開發(fā)板上led燈閃亮一次。
2、寫LabVIEW上位機程序,上位機既可以發(fā)送命令,又可以接受ardunio上傳的數(shù)據(jù)。根據(jù)采集數(shù)據(jù)計算地磁場磁偏角和磁傾角、分量的校正(總場數(shù)據(jù)校正分量數(shù)據(jù))。并用示波器顯示出來。
3、將當前地磁要素(總場、分量、磁偏角和磁傾角)和當前時間存儲在txt文件中。
第四章 設(shè)計流程
4.1 下位機程序代碼
因為ardunio集成串口發(fā)送功能,故可以用簡單程序完成串口接受發(fā)的功能。
程序如下所示:
char led = 13; //定義LED燈為引腳13
uint8_t i=0;
static uint16_t cichang[10][4]= //定義十組數(shù)據(jù)
{48107,27903,28103,27905,
48018,25120,30502,28126,
47980,28146,25167,29846,
48048,27103,26480,29892,
48012,25109,28045,31023,
48023,27203,29892,27735,
48045,28103,26309,30204,
48092,28023,27012,29103,
48108,27974,28123,28133,
47977,28034,27988,2789,
};
void setup()
{
Serial.begin(9600); //打開串口
pinMode(led, OUTPUT); //LED引腳定義為輸出
}
void loop()
{
if(Serial.read()=='#') //當單片機接收到“#”后,開始發(fā)送一組數(shù)據(jù)
{
digitalWrite(led, HIGH); //LED閃亮一次表示一組數(shù)據(jù)發(fā)送完成
for(uint8_t j=0;j<4;j++)
Serial.print(cichang[i][j]);
digitalWrite(led, LOW);
++i;
if(i>=10) //依次發(fā)送十組數(shù)據(jù)
i=0;
}
}
4.2 上位機程序框圖
4.2.1串口配置
配置串口文件寫入?yún)^(qū)域和波特率。

圖4-1 配置串口程序圖
4.2.2數(shù)據(jù)采集
用一個條件語句表示是否啟動串口發(fā)送程序,既數(shù)據(jù)采集是否開始。

圖4-2 數(shù)據(jù)開始采集程序
4.2.3啟動開關(guān)
啟動是否接受串口的數(shù)據(jù)。

圖4-3數(shù)據(jù)開始采集程序
4.2.4包頭包尾判斷
只有LabVIEW檢測到包頭包尾才處理數(shù)據(jù),否則丟失數(shù)據(jù)。

圖4-4包頭包尾判斷程序
4.2.5 提取串口信息
將下位機發(fā)送的數(shù)據(jù)經(jīng)過處理得到地磁總場F,分量(X、Y、Z)數(shù)據(jù)。

圖4-5提取串口信息程序
4.2.6數(shù)據(jù)處理
將處理后的數(shù)據(jù)格式化后放入虛擬式示波器顯示。

圖4-6數(shù)據(jù)處理程序
4.2.7數(shù)據(jù)顯示
將處理后的數(shù)據(jù)格式化后放入虛擬式示波器顯示。

圖4-7數(shù)據(jù)顯示程序
4.2.8數(shù)據(jù)存儲
將得到的地磁要素(總場、分量、磁偏角和磁傾角)和當前時間儲存在txt文件中。

圖4-8數(shù)據(jù)存儲程序
4.3前面板及效果圖
4.3.1 ardunio芯片發(fā)送數(shù)據(jù)

圖4-9ardunio實物圖
4.3.2 前面板初始狀態(tài)

圖4-10前面板效果圖
4.3.3前面板數(shù)據(jù)開始采集

圖4-11 開始采集效果圖
4.3.3 前面板數(shù)據(jù)連續(xù)采集

圖4-12 連續(xù)采集效果圖
第五章 問題分析
1、開始時沒有注意包頭包圍問題,導(dǎo)致labview收集的數(shù)據(jù)移位,收集的數(shù)據(jù)完全沒有任何意義。
2、在葛老師的指點下,我們將數(shù)據(jù)的采集模式改為當ardunio接收到labview 的命令后不停的向上位機發(fā)送數(shù)據(jù)。
3、為解決數(shù)據(jù)掉包的問題,我們選擇將采集的數(shù)據(jù)連續(xù)發(fā)送兩次,而VISA讀入的緩沖區(qū)為數(shù)據(jù)區(qū)的兩倍,這樣可以解決數(shù)據(jù)掉包問題。
4、為了將采集的數(shù)據(jù)無間隔的接收,ardunio每隔50ms發(fā)送數(shù)據(jù)一次,這樣可以避免第一次數(shù)據(jù)無緣無故突變?yōu)?.
5、采用條件結(jié)構(gòu),可以實現(xiàn)波形圖表和文本格式顯示,即可實現(xiàn)暫停的功能。
6、文本寫入的方式與格式會影響最后數(shù)據(jù)的儲存,這點需要注意。
第六章 小組分工
由李文柏負責(zé)上位機的程序,吳斌負責(zé)下位機的程序編寫,孫鵬負責(zé)程序的整合調(diào)理、布局,大家一起進行程序的調(diào)試,問題分析及解決問題,進行優(yōu)化。最后大家一起商量、討論繪制PPT,撰寫報告。
第七章 心得體會
通過一周的labview學(xué)習(xí),讓我掌握了LabVIEW的VISA接口程序,讓我從不懂到略微懂在到熟悉的過程。其中遇到很大問題,也有想放棄的想法,很感謝團隊的吳斌和李文伯給予我物質(zhì)和精神上的資助,讓我有毅力堅持下去,努力解決我所遇到的問題。
在這里我還是很感謝曹炳與徐姝同學(xué)給予的幫助,讓我們走出困境,雖然花費很長時間,但我覺得我從中學(xué)到了知識,這是值得的。
致 謝
課程設(shè)計終于順利完成,首先在此感謝我們的指導(dǎo)老師葛健老師給予我們的幫助,對我們提起的要求,引導(dǎo)我們分析問題與解決問題;還有在做設(shè)計的過程中,也遇到了很多新的問題,解決這些問題得益于徐姝團隊和曹炳團隊對我們的慷慨幫助,此次課程設(shè)計才能夠順利完成;最后感謝我的團隊,與我的隊友們團結(jié)協(xié)作,并肩作戰(zhàn),給與我莫大的幫助和無限的能量,問題才能得以解決,取得課程設(shè)計的圓滿成功。
參考文獻
[1]牛群峰,王莉,胡紅生,吳才章.Labview虛擬儀器系統(tǒng)開發(fā)與實踐[M].北京:中國電力出版社.
[2]張凱,郭棟.labview虛擬儀器工程設(shè)計與開發(fā)[M].北京:國防工業(yè)出版社
[3]楊高科.labview虛擬儀器項目開發(fā)與管理[M].北京:機械工業(yè)出版社
[4]李江全,任玲,廖結(jié)安,溫寶琴.labview虛擬儀器從入門到測控應(yīng)用130例[M].北京:電子工業(yè)出版社