版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 編號: </p><p><b> 畢業(yè)設(shè)計說明書</b></p><p> 題 目: 數(shù)控機(jī)床現(xiàn)場溫度實(shí)時 </p><p> 多點(diǎn)采集測量與實(shí)現(xiàn) </p><p> 院 (系): &
2、lt;/p><p> 專 業(yè): </p><p> 學(xué)生姓名: </p><p> 學(xué) 號: </p><p> 指導(dǎo)教師: </p><p&g
3、t; 職 稱: 教授 </p><p> 題目類型:□ 理論研究 □ 實(shí)驗(yàn)研究 工程設(shè)計 □ 工程技術(shù)研究 □ 軟件開發(fā)</p><p> 2013年5月 20日</p><p><b> 摘 要</b></p><p> 溫度是機(jī)械加工中最基本的參數(shù)之一,
4、在生產(chǎn)過程中常需要對溫度進(jìn)行檢測和監(jiān)控。數(shù)控機(jī)床加工中,常需要對數(shù)控機(jī)床進(jìn)行熱誤差計算并實(shí)現(xiàn)熱誤差補(bǔ)償,通過熱誤差補(bǔ)償技術(shù)來達(dá)到提高數(shù)控機(jī)床加工精度的目的。因此,研究一種基于串行通信的多路溫度采集和實(shí)時監(jiān)控系統(tǒng),對提高工業(yè)控制性能、提高數(shù)控機(jī)床的加工精度以及提高生產(chǎn)效率有著重要的意義。</p><p> 本文設(shè)計了一種數(shù)控機(jī)床多點(diǎn)溫度采集電路,可以同時對四路溫度進(jìn)行實(shí)時的采集和顯示,通過設(shè)定溫度的報警范圍對其進(jìn)
5、行預(yù)警,并且利用串口實(shí)現(xiàn)單片機(jī)和計算機(jī)的通信,使用上位機(jī)完成數(shù)據(jù)處理和溫度的顯示等。溫度的測量精度低于0.5℃。</p><p> 設(shè)計中使用STC89C52作為下位機(jī)的主控芯片,并使用LCD1602液晶屏進(jìn)行溫度的顯示,采用溫度傳感器TC1047進(jìn)行溫度采集。將溫度傳感器輸出的電壓通過RC濾波電路以及運(yùn)放OP07組成的放大電路,然后通過A/D轉(zhuǎn)換,最后將A/D轉(zhuǎn)換的數(shù)字量通過RS232串口發(fā)送到LABVIEW
6、編寫的上位機(jī)進(jìn)行數(shù)據(jù)處理和顯示。通過上位機(jī)設(shè)置溫度的采集速率以及設(shè)定報警溫度上限,將采集到的數(shù)據(jù)以TXT或XLS格式存儲到電腦中。</p><p> 硬件電路采用低成本的設(shè)計思想,軟件設(shè)計采用模塊化的設(shè)計方法,最后進(jìn)行實(shí)物的制作和調(diào)試,驗(yàn)證了設(shè)計的設(shè)計穩(wěn)定性和可行性,實(shí)現(xiàn)了設(shè)計的預(yù)期結(jié)果。</p><p> 關(guān)鍵詞:串口通信;LABVIEW;數(shù)控機(jī)床;熱誤差;多通道溫度采集 </
7、p><p><b> Abstract</b></p><p> Temperature is one of the most basic parameters in the machining and temperature detection and monitoring is commonly found in the production. In CNC ma
8、chining, thermal error of CNC machine need to be calculated, and thermal error compensation is implemented. Through the thermal error compensation techniques to achieve the purpose of the improvement of precision CNC ma
9、chining. So the study of a multi-channel temperature acquisition and real-time monitoring system based on serial communication h</p><p> This article design a multi-channel temperature acquisition circuit o
10、f CNC machine. It can acquire four channel temperature data at the same time, also the display of these data is real-time. The method also can set temperature alarming range and if the data exceed the range the system wi
11、ll warn. And using the serial port to realize the single chip microcomputer and computer communication, using upper computer to complete data processing and display of temperature, etc. Temperature measuring pre</p>
12、;<p> STC89C52 is the main control chip of the design, and LCD1602 is used to display the temperature value, and temperature sensor TC1047 is used for temperature acquisition. Temperature sensor output voltage wi
13、ll by RC filter circuit and amplifier circuit which is composed of operational amplifier OP07, and then through the A/D conversion .finally, through the RS232 serial port sent the digital quantity to upper computer for d
14、ata processing and display, and the upper computer is wrote by LABVIEW. Ca</p><p> The design of hardware circuit is based on stable, viable, low-cost design ideas. And the design of software uses modular m
15、ethod. And finally by finishing and debugging of the circuit, we verify the feasibility of the design and also we achieve to the expected results of the design.</p><p> Keywords: serial communication; LABVI
16、EW; CNC machine; thermal error; </p><p> multi-channel temperature acquisition</p><p><b> 目 錄</b></p><p><b> 引言1</b></p><p><b> 1
17、 系統(tǒng)綜述2</b></p><p> 1.1 方案論證與選擇2</p><p> 1.2 系統(tǒng)整體框圖3</p><p> 2 硬件電路設(shè)計4</p><p> 2.1 51單片機(jī)主控電路4</p><p> 2.1.1 單片機(jī)主控電路設(shè)計4</p><p>
18、; 2.1.2 C51程序語言5</p><p> 2.2 TC1047溫度采集電路5</p><p> 2.3 RC低通濾波電路6</p><p> 2.4 OP07放大電路7</p><p> 2.5 A/D轉(zhuǎn)換電路8</p><p> 2.6 LCD1602顯示電路9</p>
19、<p> 2.7 串口通信電路10</p><p> 2.8 電源穩(wěn)壓電路11</p><p> 3 下位機(jī)軟件設(shè)計12</p><p> 3.1 主程序框架12</p><p> 3.2 ADC0832驅(qū)動程序13</p><p> 3.3 LCD1602顯示驅(qū)動程序15<
20、/p><p> 3.4 串口通信程序17</p><p> 4 上位機(jī)軟件設(shè)計18</p><p> 4.1 上位機(jī)人機(jī)交互界面設(shè)計18</p><p> 4.2 上位機(jī)程序框圖設(shè)計19</p><p> 4.2.1 主程序框圖設(shè)計19</p><p> 4.3.2 LABV
21、IEW串口程序設(shè)計20</p><p> 4.3.3 串口數(shù)據(jù)幀解碼21</p><p> 4.3.4 數(shù)據(jù)處理和顯示22</p><p> 4.3.5 數(shù)據(jù)的存儲和讀取23</p><p> 4.3.6 采集速率和溫度報警24</p><p> 5 原理圖電路仿真25</p>&
22、lt;p> 6 實(shí)物的組裝調(diào)試及軟件驗(yàn)證27</p><p> 6.1 實(shí)物的制作流程27</p><p> 6.2 硬件調(diào)試及軟件驗(yàn)證28</p><p> 6.2.1 電源電路測試28</p><p> 6.2.2 LCD1602顯示測試28</p><p> 6.2.3 放大電路測試
23、29</p><p> 6.2.4 A/D轉(zhuǎn)換測試29</p><p> 6.2.5 下位機(jī)串口通信測試29</p><p> 6.2.6 上位機(jī)串口通信測試29</p><p> 6.2.7 下位機(jī)與上位機(jī)整體功能測試30</p><p> 6.3 數(shù)據(jù)測量及誤差分析30</p>
24、<p> 6.3.1 溫度傳感器標(biāo)定30</p><p> 6.3.2 數(shù)據(jù)的測量34</p><p> 6.3.3 誤差計算及分析36</p><p> 6.4 軟硬件調(diào)試綜述37</p><p><b> 7 結(jié)論38</b></p><p> 7.1 系統(tǒng)功
25、能38</p><p> 7.2 功能擴(kuò)展38</p><p> 7.3 前景展望39</p><p><b> 謝 辭40</b></p><p><b> 參考文獻(xiàn)41</b></p><p> 附錄一 電路設(shè)計原理圖42</p>
26、<p> 附錄二 電路設(shè)計PCB圖43</p><p> 附錄三 電路設(shè)計實(shí)物圖43</p><p> 附錄四 上位機(jī)實(shí)時數(shù)據(jù)采集界面圖44</p><p> 附錄五 上位機(jī)歷史數(shù)據(jù)讀取界面圖45</p><p><b> 引言</b></p><p> 隨著
27、科學(xué)技術(shù)的不斷發(fā)展,對現(xiàn)代設(shè)備精確度的要求不斷增長,信息采集(即傳感器技術(shù))、信息傳輸(通信技術(shù))和信息處理(計算機(jī)技術(shù))為信息技術(shù)的前沿尖端技術(shù),其應(yīng)用非常廣泛,已經(jīng)滲透到社會的每一個領(lǐng)域[1-3]。</p><p> 數(shù)據(jù)采集是指將溫度、壓力、流量、位移等物理量轉(zhuǎn)換成數(shù)字量后,再由計算機(jī)進(jìn)行存儲、處理、顯示或者打印的過程。在生產(chǎn)過程中應(yīng)用數(shù)據(jù)采集,可對生產(chǎn)現(xiàn)場的工藝參數(shù)進(jìn)行采集、監(jiān)視和記錄,為提高產(chǎn)品質(zhì)量、
28、降低成本提供信息和手段。</p><p> 數(shù)控機(jī)床在加工過程中,熱誤差是因溫度上升引起的加工誤差。據(jù)統(tǒng)計,在精密加工和超精密加工中,由于熱變形引起的加工誤差占總加工誤差的50%~70%[4-5]。目前,有兩類方法可以用來減小機(jī)床的熱誤差。一是通過改進(jìn)機(jī)床結(jié)構(gòu)設(shè)計方法,直接減小熱誤差,但是會大大提高成本。二是通過建立熱誤差模型進(jìn)行補(bǔ)償?shù)姆椒╗15-16]。</p><p> LABVI
29、EW軟件是NI公司開發(fā)用于測控領(lǐng)域的圖形化開發(fā)環(huán)境,它在數(shù)據(jù)采集、儀器控制、測量分析和數(shù)據(jù)顯示方面有著明顯的優(yōu)勢而得到廣泛的應(yīng)用[14]。它是一種方便的人機(jī)界面軟件,其編程的方式相比于VC等比較復(fù)雜的上位機(jī)編程軟件來說更加的簡單和有針對性。利用NI的LABVIEW軟件和數(shù)據(jù)采集卡可以實(shí)現(xiàn)數(shù)據(jù)的采集、存儲、分析處理?;蛘咄ㄟ^其它接口可以很容易地將采集到的數(shù)據(jù)發(fā)送到LABVIE編寫的上位機(jī)。</p><p> 設(shè)計
30、的主要目的和任務(wù)是,在生產(chǎn)車間中對數(shù)控機(jī)床的主要部件進(jìn)行實(shí)時多點(diǎn)溫度采集,采集硬件電路主要包括:溫度傳感器,放大濾波,A/D轉(zhuǎn)換,下位機(jī)控制,串口通信等功能;采集通道數(shù)>=4,采集溫度精度:0.5度,溫度范圍:0~40度。上位機(jī)對采集的溫度數(shù)據(jù)進(jìn)行受熱分析,并顯示溫度隨時間的變化趨勢,并對加工的熱變形誤差進(jìn)行計算和補(bǔ)償。</p><p><b> 1 系統(tǒng)綜述</b></p&
31、gt;<p> 1.1 方案論證與選擇</p><p> 設(shè)計主要是實(shí)現(xiàn)數(shù)控機(jī)床機(jī)床4路溫度的采集,正確選擇溫度傳感器和設(shè)計放大電路對整個設(shè)計起到事半功倍的作用。下面簡要分析設(shè)計硬件電路方案的選擇和上位機(jī)編寫軟件的選擇。</p><p> ?。?)溫度傳感器選擇 </p><p> 設(shè)計中溫度傳感器可以選擇數(shù)字溫度傳感和模擬溫度傳感器。設(shè)計中要求
32、采集的溫度精度為0.5℃,數(shù)字溫度傳感器相對容易實(shí)現(xiàn)對溫度的高精度測量,如數(shù)字溫度傳感器DS18B20,但進(jìn)行多路溫度采集時使用數(shù)字溫度傳感器成本高,在滿足溫度測量精度的條件下,選擇模擬溫度傳感器。模擬溫度傳感器又分為電壓輸出型溫度傳感器和電流輸出型溫度傳感器兩種。其中電流輸出型溫度傳感器,輸出電流一般都很小,如AD590電流輸出型溫度傳感器,需要將輸出電流的變化轉(zhuǎn)化電壓的變化,才能進(jìn)行電壓放大和A/D轉(zhuǎn)換等[11]。設(shè)計中選用電壓輸出
33、型溫度傳感器TC1047溫度傳感,TC1047輸出電壓每變化10mV,表示溫度變化1℃,正確設(shè)計放大電路和選擇A/D轉(zhuǎn)換芯片就可以滿中溫度測量精度為0.5℃的要求。</p><p><b> (2)濾波電路設(shè)計</b></p><p> 設(shè)計中溫度傳感器選擇的是電壓輸出型溫度傳感器,設(shè)計中要求將大于50Hz的信號給予濾除。設(shè)計中選擇使用無源RC低通濾波電路即可以滿
34、足設(shè)計要求。</p><p> ?。?)電壓放大電路的設(shè)計</p><p> 設(shè)計中可以選擇使用儀用放大器或運(yùn)算放大器組建電路進(jìn)行電壓放大。選用儀用放大器可以大大減小電路設(shè)計的復(fù)雜度,如儀用放大器AD620和AD623只需要外接一個滑動變阻器就可以實(shí)現(xiàn)放大倍數(shù)的精確調(diào)節(jié)。而使用運(yùn)算放大器電路設(shè)計復(fù)雜,精度也沒有儀用放大器的高,但儀用放大器的價格相對運(yùn)算放大器來說價格非常昂貴。設(shè)計中選擇運(yùn)
35、算放大器OP07進(jìn)行放大電路的設(shè)計,也可以滿足設(shè)計的要求,并且設(shè)計成本大大降低。</p><p> (4)A/D轉(zhuǎn)換芯片選擇</p><p> 設(shè)計中要合理選擇A/D轉(zhuǎn)換芯片的分辨率。設(shè)計放大電路的放大數(shù)5,只要A/D能分辨放大電路25mV輸出電壓的變化,就可以實(shí)現(xiàn)測量溫度精度為0.5℃的要求。設(shè)計中選用8位分辨率的A/D轉(zhuǎn)換芯片ADC0832,在參考電壓為5V時可以分辨最小20mV的
36、電壓變化,滿足設(shè)計要求。</p><p> (5)上位機(jī)編程軟件選擇</p><p> 以上主要分析了硬件電路設(shè)計方案的選擇,上位機(jī)的設(shè)計也是設(shè)計的難點(diǎn)。設(shè)計選擇使用LABVIEW作為上位機(jī)的編寫軟件,LABVIEW是圖形化編程語言,相對于其他文本編程語言來說,LABVIEW相對簡單的多,可以很容易實(shí)現(xiàn)程序的編寫和顯示界面的美化設(shè)計[10]。</p><p>
37、 1.2 系統(tǒng)整體框圖</p><p> 設(shè)計主要任務(wù)分為上位機(jī)的設(shè)計和下位機(jī)設(shè)計兩個大模塊。其中,下位機(jī)主要是硬件電路的設(shè)計和C語言程序的編寫。用電壓輸出型溫度傳感器TC1047來實(shí)現(xiàn)四路溫度的實(shí)時監(jiān)測,用液晶LCD1602顯示采集到的溫度值。將溫度傳感器輸出的電壓,通過RC濾波電路,將50HZ以上的信號給予濾除,再經(jīng)過運(yùn)算放大器OP07組建的放大電路對濾波后的電壓信號進(jìn)行放大,使用兩片ADC0832將四路放
38、大的模擬信號轉(zhuǎn)化為數(shù)字信號。主控芯片STC89C52將A/D轉(zhuǎn)換的數(shù)字量經(jīng)過基于MAX232芯片的串行通信方式,發(fā)送到用LABVIEW軟件編寫的上位機(jī),同時將數(shù)字量經(jīng)數(shù)據(jù)處理轉(zhuǎn)化為溫度值在液晶LCD1602上顯示。上位機(jī)將接收到的數(shù)據(jù)進(jìn)行處理和顯示,顯示溫度隨時間的變化曲線以及用顏色的淺深來表示溫度的高低,上位機(jī)可以設(shè)定報警溫度上限值和采集溫度的速率。上位機(jī)分為兩個面板,一個為實(shí)時數(shù)據(jù)顯示面板,另一個為歷史數(shù)據(jù)讀取顯示面板,可以實(shí)現(xiàn)實(shí)時
39、數(shù)據(jù)采集,同時也可以讀取和分析歷史數(shù)據(jù)。設(shè)計的整體框圖如圖1-1所示。</p><p> 圖1-1 數(shù)控機(jī)床測溫系統(tǒng)整體框圖</p><p><b> 2 硬件電路設(shè)計</b></p><p> 2.1 51單片機(jī)主控電路</p><p> 設(shè)計所選用的單片機(jī)型號為STC89C52,其與市場大部分51系列單片機(jī)
40、完全兼容,并且在性能方面和速度上更具有優(yōu)勢。</p><p> STC89C52是一種低功耗、高性能CMOS8位微控制器,在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。STC89系列單片機(jī)CPU主要功能是產(chǎn)生各種控制信號,控制輸入/輸出端口的數(shù)據(jù)傳輸、數(shù)據(jù)的算術(shù)運(yùn)算、邏輯運(yùn)算以及位操作處理等。STC89系列單片機(jī)幾乎包含了所有
41、數(shù)據(jù)采集和控制中所需的所有單元模塊,可稱得上是一個片上系統(tǒng)[6-10]。</p><p> 2.1.1 單片機(jī)主控電路設(shè)計</p><p> 圖2-1 單片機(jī)主控電路</p><p> 設(shè)計單片機(jī)最小系統(tǒng)原理圖如圖2-1所示。主控模塊由復(fù)位電路,晶振時鐘電路和IO電路3部分組成。復(fù)位電路設(shè)計為按鍵復(fù)位和上電復(fù)位,通過在單片機(jī)的RST腳接10uf電容接電源,10
42、K電阻接地的方式,完成上電復(fù)位,RST引腳再經(jīng)過一個200歐的電阻和一個按鍵可以實(shí)現(xiàn)按鍵復(fù)位。測溫電路設(shè)計要用到串口通信,為了得到較準(zhǔn)確的波特率,降低通信的誤碼率,晶振電路使用的是11.0592MHZ的晶振,晶振兩端分別接2個22pf電容接地,保證其時鐘電路的穩(wěn)定性。單片機(jī)引腳為訪問外部存儲器控制信號,將其接高電平,訪問內(nèi)部ROM。IO電路其引腳的功能具體如下:P0口為液晶LCD1602的并行數(shù)據(jù)總線,為了增加對LCD1602的驅(qū)動能力
43、,外加了10K排阻;P1.0~P1.2為LCD的控制口;P2.0~P2.4為ADC0832的數(shù)據(jù)輸入輸出和控制口。P3.0和P3.1分別為串口通信的數(shù)據(jù)接收和數(shù)據(jù)發(fā)送口。</p><p> 2.1.2 C51程序語言</p><p> C51是為51系列單片機(jī)設(shè)計的一種C語言,其特點(diǎn):結(jié)構(gòu)化語言,代碼緊湊;接近真實(shí)語言,程序可讀性強(qiáng);庫函數(shù)豐富,編程工作量小;機(jī)器級控制能力,功能很強(qiáng);
44、與匯編指令無關(guān),易于掌握;對于有復(fù)雜計算的程序來說,更突顯其優(yōu)勢,C51語言已成為51系列單片機(jī)程序開發(fā)的主流軟件方法。C51與標(biāo)準(zhǔn)C語言對比,其語法規(guī)則、程序結(jié)構(gòu)、編程方法大致相同,而數(shù)據(jù)類型、存儲模式及中斷處理存在著差異[13]。</p><p> 2.2 TC1047溫度采集電路</p><p> 設(shè)計采用4個溫度傳感器TC1047A來采集4路溫度,將溫度的變化轉(zhuǎn)化為電壓的變化。
45、TC1047和TC1047A是線性電壓輸出溫度傳感器,可以精確地測量從-40℃到+125℃之間的溫度。10mV/℃的輸出電壓的斜率響應(yīng)允許在溫度范圍內(nèi)對預(yù)計的溫度進(jìn)行測量。</p><p> TC1047傳感器輸出電壓的大小會隨溫度的改變而改變,溫度增大,輸出電壓會增大,溫度減小,其輸出電壓也會減小[12]。TC1047溫度傳感器輸出電壓與溫度變化成線性關(guān)系,關(guān)系表達(dá)式為:</p><p&g
46、t; 其中:為傳感器輸出電壓,單位為;測量溫度值,單位為℃。TC1047溫度傳感器輸出電壓隨溫度變化的關(guān)系曲線如圖2-2所示。</p><p> 圖2-2 TC1047輸出電壓隨溫度變化的關(guān)系曲線</p><p> 如圖2-3所示為TC1047溫度傳感器接口電路的設(shè)計,其中3號管腳用于為該芯片供電,管腳1為電源地,管腳2為電壓輸出,只要給芯片供電就可以使溫度傳感器正常工作。</
47、p><p> 圖2-3 TC1047接口原理圖</p><p> 2.3 RC低通濾波電路</p><p> 設(shè)計采用一階無源RC低通濾波電路濾除頻率為50HZ以上的干擾信號,使溫度傳感器的輸出電壓較穩(wěn)定。</p><p> 常用的濾波電路有無源濾波和有源濾波兩大類。若濾波電路元件僅由無源元件(電阻、電容、電感)組成,則稱為無源濾波電路。
48、無源濾波的主要形式有電容濾波、電感濾波和復(fù)式濾波(包括倒L型、LC濾波、LC∏型濾波和RC∏型濾波等)。若濾波電路不僅由無源元件,還由有源元件(雙極型管、單極型管、集成運(yùn)放)組成,則稱為有源濾波電路。有源濾波的主要形式是有源RC濾波,也被稱作電子濾波器。無源濾波電路的結(jié)構(gòu)簡單,易于設(shè)計,但它的通帶放大倍數(shù)及其截止頻率都隨負(fù)載而變化,因而不適用于信號處理要求高的場合。有源濾波電路的負(fù)載不影響濾波特性,因此常用于信號處理要求高的場合。濾波電
49、路還可以分為高通、低通、帶通和帶阻濾波器,是一種能使有用頻率信號通過,同時抑制無用頻率成分的電路。</p><p> 設(shè)計需要采集由溫度傳感器將溫度轉(zhuǎn)化為電壓的信號,在實(shí)際中溫度的變化頻率不可能是太高的。為了使采集到的電壓信號更加穩(wěn)定可靠,設(shè)計需要將高于50HZ以上的信號濾除掉,才能進(jìn)行電壓信號的放大。在滿足要求的前提下,為了使設(shè)計更加的簡單,采用RC無源低通濾波電路。RC低通濾波器的截止頻率計算公式為:<
50、;/p><p> 其中:為電阻的阻值,單位為;為電容值,單位為。設(shè)計中選用的電容為,電阻,所以可以計算出低通濾波器的截止頻率為:</p><p> 所以滿足截止頻率小于50HZ的要求,RC低通濾波電路原理圖設(shè)計如圖2-4所示。</p><p> 圖2-4 RC低通濾波電路</p><p> 2.4 OP07放大電路</p>
51、<p> 設(shè)計采用運(yùn)算放大器OP07作為主芯片組建電壓放大電路,放大經(jīng)過RC低通濾波器電路后的電壓信號。OP07芯片是一種低噪聲,非斬波穩(wěn)零的雙極性運(yùn)算放大器集成電路。由于OP07具有非常低的輸入失調(diào)電壓,所以O(shè)P07在很多應(yīng)用場合都不需要額外的調(diào)零。OP07同時具有輸入偏置電流低各和開環(huán)增益高的特點(diǎn)。這種低失調(diào)電壓、高開環(huán)增益的特性使得OP07特別適用于高增益的測量設(shè)備和放大傳感器輸出的信號。</p><
52、;p> 溫度傳感器TC1047在0℃到40℃的電壓輸出范圍為到,每變化一度,精度要求為0.5℃。而采用的是8位的A/D轉(zhuǎn)換,最大能分辨20mV電壓變化,放大器的放大倍數(shù)為5即可滿中要求。設(shè)計要求能實(shí)時快速地采集溫度的變化,對采集的速度有較高的要求,不能通過模擬開關(guān)來分時放大每一通道的電壓信號,而是每個通道都有各自的放大電路,這樣就可以大大提高溫度采集的速度。單通道放大電路原理圖如圖2-5所示。 </p><p
53、> 圖2-5 單通道電壓放大電路</p><p> 如上圖2-5所示為三運(yùn)放組成的差分放大電路,其中和都是組成電壓跟隨器,用于增大輸入阻抗減小輸出阻抗。的管腳3輸入溫度傳感器的輸出電壓,用于將電壓進(jìn)行差分放大。需要根據(jù)要求計算各電阻的參數(shù)值。</p><p><b> 的輸出電壓為:</b></p><p> …………………………
54、…………(2-1)</p><p> 根據(jù)運(yùn)算放大器虛短虛斷的特性可得:</p><p> ………………………………(2-2)</p><p> 其中:,,………………………………………(2-3)</p><p> 由公式(2-1)、(2-2)和(2-3)可計算出如下表達(dá)式:</p><p> …………………
55、…………(2-4)</p><p> 其中表達(dá)式(2-4)中為電阻阻值,單位為;分別為輸入輸出電壓,單位為。設(shè)表達(dá)式(2-4)中的,即為電壓放大倍數(shù),為了方便計算,取,,將和所選擇的電阻阻值代入(2-4)可得:</p><p> 解得:,電阻用一個的滑動變阻器代替,便于放大倍數(shù)的調(diào)節(jié)。</p><p> 2.5 A/D轉(zhuǎn)換電路</p><p
56、> 設(shè)計采用兩片分辨率為8位的A/D轉(zhuǎn)換芯片ADC0832將已放大的模擬電壓信號轉(zhuǎn)換為單片機(jī)可以處理的數(shù)字信號。ADC00832為8位分辨率的逐次逼近型雙通道A/D轉(zhuǎn)換芯片,其最高分辨可達(dá)256級,可以適應(yīng)一般模擬量的轉(zhuǎn)換要求。其內(nèi)部電源輸入與參考電壓復(fù)用,使得芯片的模擬電壓輸入在0~5V之間。芯片的轉(zhuǎn)換時間僅為32us,具有雙數(shù)據(jù)輸出可作為數(shù)據(jù)校驗(yàn),以減小誤差,轉(zhuǎn)換速度快且性能穩(wěn)定性強(qiáng)。獨(dú)立的芯片使能輸入,使多器件掛接和處理器
57、控制變得更加方便。</p><p> 設(shè)計要求采集4通道的模擬量,而單片ADC0832只有雙通道,所以選擇使用2片ADC0832。之所以選擇兩片ADC0832作為A/D轉(zhuǎn)換電路,而不是選擇集成有多通道的A/D轉(zhuǎn)換芯片,如ADC0834或ADC0838,而這兩個芯片在操作時更復(fù)雜,編寫軟件時會降低模擬量采集的速度,若選用常用的轉(zhuǎn)換芯片ADC0809,在頻率為500KHZ時,轉(zhuǎn)換速度才128us,速度也達(dá)不到。在設(shè)
58、計時將兩片芯片的引腳CLK、DI和DO分別對應(yīng)并聯(lián)在一起連接到單片片機(jī)的三個I/O口上,而兩芯片的片選信號CS則連接到不同的I/O口上,可以通過片選端來選擇要操作的A/D芯片。兩片ADC0832組成的A/D轉(zhuǎn)換電路原理圖如圖2-6所示。</p><p> 圖2-6 A/D轉(zhuǎn)換電路</p><p> 2.6 LCD1602顯示電路</p><p> 設(shè)計LCD1
59、602主要用于顯示采集到的4路溫度值。LCD1602是常用的液晶顯示屏,它顯示的內(nèi)容為16×2,即可以顯示兩行,每行16個字符,目前絕大多數(shù)字符液晶基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。LCD1602工作電壓為3.3V或5V,內(nèi)含復(fù)位電路,提供各種控制命令如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能。有80字節(jié)顯示數(shù)據(jù)存儲器DDRA
60、M,內(nèi)建有192個5X7點(diǎn)陣的字型的字符發(fā)生器CGROM和8個可由用戶自定義的5X7的字符發(fā)生器CGRAM。</p><p> 圖2-7 LCD1602顯示電路</p><p> LCD1602主要由控制引腳和數(shù)據(jù)引腳2個部分組成。參考圖2-7其中RS和RW兩個引腳用于控制LCD1602的寫操作類型,當(dāng)RS和RW均為0時,即都為低電平時,則此次單片機(jī)發(fā)送的8位數(shù)為對LCD1602的控制
61、命令,通過命令類型的判斷執(zhí)行相應(yīng)的LCD的配置。而當(dāng)RS為1即高電平時,則發(fā)送的8位數(shù)為需要顯示的內(nèi)容,LCD對其進(jìn)行顯示。每次的寫命令,需要將LE控制引腳置為高電平,使能此次寫,平時狀態(tài)則置為低電平。引腳1和2分別為LCD的電源和接地端,引腳15和16分別為LCD背光調(diào)節(jié)的正極和負(fù)極,分別接上電源和地。LCD的3引腳用于調(diào)整字符顯示的對比度,此部分通過外加一個10K電位器,接電源和地之間來實(shí)現(xiàn)手動的調(diào)整,一般當(dāng)對比度不夠高時,字符不會
62、顯示,而增加太多時會出現(xiàn)重影,因此合適的對比度對于顯示效果比較重要。</p><p> 2.7 串口通信電路</p><p> 設(shè)計采用MAX232芯片進(jìn)行單片與PC之間的電平轉(zhuǎn)換,實(shí)現(xiàn)單片機(jī)與PC機(jī)之間的通信。MAX232芯片是美信(MAXIM)公司專為RS-232標(biāo)準(zhǔn)串口設(shè)計的單電源電平轉(zhuǎn)換芯片,使用+5V單電源供電。由于電腦串口RS232電平是-10V,+10V,而一般的單片機(jī)應(yīng)
63、用系統(tǒng)的信號電壓是TTL電平0 V和+5V,MAAX232就是用來進(jìn)行電平轉(zhuǎn)換的,該器件包含2驅(qū)動器、2接收器和一個電壓發(fā)生器電路提供TIA/EIA-232-F電平。該器件符合TIA/EIA-232-F標(biāo)準(zhǔn),每一個接收器將TIA/EIA-232-F電平轉(zhuǎn)換成5-V TTL/CMOS電平。每一個發(fā)送器將TTL/CMOS電平轉(zhuǎn)換成TIA/EIA-232-F電平。</p><p> 圖2-8 串口通信電路</p
64、><p> 串口通信電路原理圖設(shè)計如圖2-8所示。此次設(shè)計的串口通信電路主要使用MAX232芯片來實(shí)現(xiàn)電平轉(zhuǎn)換。其中T1IN和R1OUT分別接單片機(jī)的發(fā)送引腳TXD和接收引腳RXD,MAX232外接5個1uf電容為經(jīng)典電路的接法,主要實(shí)現(xiàn)振蕩式升壓將單片機(jī)的電平變成符合計算機(jī)的電平類型。與計算機(jī)接口電路使用RS232 DB9接頭,由于不需要奇偶校驗(yàn)等,因此只需接其中3根線,即發(fā)送、接收和地線。</p>
65、<p> 2.8 電源穩(wěn)壓電路</p><p> 設(shè)計要求運(yùn)算放大器OP07需要在正負(fù)電源下工作,并且A/D的參考電壓值也需要較穩(wěn)定。為了使電路正常并且穩(wěn)定工作,選用L78××/ L79××穩(wěn)壓芯片設(shè)計穩(wěn)壓電源。L78××系列是三端正電源穩(wěn)壓芯片,它有一系列固定的固定的正電壓輸出,應(yīng)用十分廣泛。芯片內(nèi)部有電流限制、過熱保護(hù)以及安全工作區(qū)的
66、保護(hù),使它基本不會損壞。如果能夠提供足夠的散熱片,就能夠提供大于1.5A的輸出電流。雖然芯片是按照固定輸出電壓來設(shè)計的,但是接入適當(dāng)?shù)耐獠科骷螅湍塬@得各種不同的輸出電壓和輸出電流。L79××系列是三端穩(wěn)壓芯片除了輸出是負(fù)電壓之外,其余特性與L78××系列是三端穩(wěn)壓芯片基本一致。</p><p> 圖2-9 穩(wěn)壓電源電路</p><p> 電源
67、電路原理圖如圖2-9所示。選用L7812和L7912穩(wěn)壓芯片分別得到穩(wěn)定的正12V和負(fù)12V電壓。而A/D轉(zhuǎn)換芯片、溫度傳感器和單片機(jī)等都需要正5V的工作電壓,選用L7805穩(wěn)壓芯片得到穩(wěn)定的正5V電壓輸出。其中P5用于接220V交流轉(zhuǎn)12V交流的變壓器,對12V交流經(jīng)過整流后輸出直流正電壓和直流負(fù)電壓。將整流后的直流電壓經(jīng)過一個2200uF和一個0.33uF的電容后可以得到較穩(wěn)定的直流電壓。然后通過穩(wěn)壓芯片L7812和L7912就可以
68、得到穩(wěn)定的正負(fù)12V電壓,把穩(wěn)壓管輸出的正12V作為L7805的輸入,L7805就可以輸出穩(wěn)定的正5V電壓。</p><p> 3 下位機(jī)軟件設(shè)計</p><p> 下位機(jī)程序設(shè)計使用KEIL C的編譯環(huán)境,并使用C語言進(jìn)行程序的編寫,然后經(jīng)過編譯后生成.hex文件。此次設(shè)計因?yàn)橐玫酱谕ㄐ?,所以選擇使用串口下載,將代碼下載到相應(yīng)STC89C52的單片機(jī)中去。</p>
69、<p><b> 3.1 主程序框架</b></p><p> 下位機(jī)程序設(shè)計采用模塊化的設(shè)計思想,主要包括下面幾部分:</p><p> ?。?)編寫LCD1602驅(qū)動程序,實(shí)現(xiàn)對LCD1602的8字節(jié)寫命令操作函數(shù)、寫數(shù)據(jù)操作函數(shù),調(diào)用寫命令函數(shù)初始化液晶屏以及通過寫命令和寫數(shù)據(jù)這兩個函數(shù)來編寫在指定的位置顯示單個字符、在指定的位置開始顯示字符串等
70、擴(kuò)展函數(shù),便于在主程序中調(diào)用。通過在主程序中調(diào)用相應(yīng)的LCD顯示函數(shù),最終完成4路溫度值的顯示。</p><p> (2)編寫ADC0832驅(qū)動程序,實(shí)現(xiàn)對4通道模擬電壓的采集。程序中包括相應(yīng)通道的選擇和對A/D轉(zhuǎn)換結(jié)果1個字節(jié)的讀取。為了能方便在主函數(shù)中選擇轉(zhuǎn)換通道和讀取相應(yīng)通道的A/D轉(zhuǎn)換結(jié)果。將程序設(shè)計成有兩個參數(shù)變量和帶返回值的函數(shù),其中一參數(shù)變量用來選擇對那片芯片操作,另一個參數(shù)變量用來選擇轉(zhuǎn)換通道,
71、最后的返回值則為A/D的轉(zhuǎn)換結(jié)果。</p><p> ?。?)編寫串口通信程序,實(shí)現(xiàn)將A/D轉(zhuǎn)換的8位數(shù)字量通過串口發(fā)送到上位機(jī)。串口通信程序包括串口的初始化配置函數(shù),串口1個字節(jié)發(fā)送函數(shù)。其中串口的初始化配置要特別注意波特率的設(shè)置,應(yīng)該和上位機(jī)的波特率設(shè)置成一樣大小,保證串口通信更準(zhǔn)確;而串口發(fā)送則采用查詢法。在主程序中通過調(diào)用發(fā)送子函數(shù)即可以將數(shù)據(jù)發(fā)送到上位機(jī)。</p><p> ?。?/p>
72、4)編寫主程序,實(shí)現(xiàn)在主程序中調(diào)用已編寫好的子程序,即將整個下位機(jī)的的功能在主程序中實(shí)現(xiàn)。在主函數(shù)中,首先對LCD1602、ADC082和串口進(jìn)行初始化,然后在一個大循環(huán)中不停地采集A/D轉(zhuǎn)換的數(shù)據(jù),并通過處理通過串口發(fā)送到上位,同時再經(jīng)過適當(dāng)?shù)奶幚恚贚CD上顯示出溫度值。為了使接收到的數(shù)據(jù)更準(zhǔn)確,在取A/D轉(zhuǎn)換結(jié)果時,連續(xù)讀取10次,再求取平均值,而LCD溫度顯示函數(shù)則在定時器中斷調(diào)用,設(shè)置成每隔一段時間對溫度值進(jìn)行刷新一次。<
73、;/p><p> 下位機(jī)的主程序流程圖如圖3-1所示。</p><p> 圖3-1 下位機(jī)主程序流程圖</p><p> 3.2 ADC0832驅(qū)動程序</p><p> ADC0832未工作時其CS輸入端應(yīng)為高電平,此時芯片禁止讀寫,CLK、DO和DI的電平值可任意。當(dāng)要進(jìn)行A/D轉(zhuǎn)換時,必須將CS使能端置低電平并且保持低電平直到轉(zhuǎn)換完
74、全結(jié)束。使能CS之后,單片機(jī)向芯片時鐘輸入端CLK輸入時鐘脈沖,數(shù)據(jù)輸入端DI用于輸入數(shù)據(jù)進(jìn)行A/D轉(zhuǎn)換通道的選擇,數(shù)據(jù)輸出端DO用于輸出A/D轉(zhuǎn)換的結(jié)果。在第一個時鐘脈沖的下降沿之前DI必須保持高電平,表示啟動信號,在第二和第三個下降沿之前DI輸入的數(shù)據(jù)用于選擇A/D的轉(zhuǎn)換通道。ADC0832的操作時序如圖3-2所示。</p><p> 圖3-2 ADC0832的時序圖</p><p>
75、; 在進(jìn)行A/D轉(zhuǎn)換時,要用到兩片ADC0832,在進(jìn)行A/D轉(zhuǎn)換時,先選擇其中一片芯片進(jìn)行A/D轉(zhuǎn)換,讀取兩個通道的值,之后再選擇另外一個芯片進(jìn)行A/D轉(zhuǎn)換,再讀取兩個通道的值。再選擇芯片時只能使能其中的一個芯片,而另外的一個芯片的使能端必須禁止。ADC0832驅(qū)動程序流程圖如圖3-3所示。</p><p> 圖3-3 A/D轉(zhuǎn)換程序流程圖</p><p> ADC0832在讀取轉(zhuǎn)
76、換結(jié)果時,是在時鐘脈沖下串行輸出的,并且是最高位先輸出。讀取A/D轉(zhuǎn)換的部分代碼如下:</p><p> for(i=0;i<8;i++) //循環(huán)8次讀取1個字節(jié)數(shù)據(jù)</p><p><b> { </b></p><p> val=val<<1; //val用于暫存轉(zhuǎn)換結(jié)果,經(jīng)過8次左移后即為轉(zhuǎn)換結(jié)果</
77、p><p><b> CLK=1;</b></p><p> CLK=0; //數(shù)據(jù)輸出在下降沿后有效</p><p> if(DO) </p><p><b> {</b></p><p> val=val|0x01; //若輸出為1則與0x0
78、1相或</p><p><b> }</b></p><p><b> }</b></p><p> 3.3 LCD1602顯示驅(qū)動程序</p><p> LCD顯示驅(qū)動程序在進(jìn)行數(shù)據(jù)的顯示時,先要對LCD寫入初始化控制命令字,初始化成功之后,寫入數(shù)據(jù)地址控制命令,再寫入數(shù)據(jù)才能把數(shù)據(jù)顯示
79、出來。程序主要包括寫命令、寫數(shù)據(jù)、數(shù)據(jù)地址指針設(shè)定、顯示單個字符、顯示字符串等。LCD1602的寫操作時序如圖3-4所示。</p><p> 圖3-4 LCD1602寫操作時序</p><p> 根據(jù)LCD1602寫操作時序圖可知,當(dāng)RS為低電平,RW為高電平時為寫命令操作,控制命令主要是用設(shè)置LCD顯示模式、光標(biāo)的設(shè)置等,單片機(jī)將8位數(shù)據(jù)送到LCD并行數(shù)據(jù)總線上,單片機(jī)給E數(shù)據(jù)端一個
80、正脈沖信號,就可以將控制命令字寫入LCD。當(dāng)RS為高電平,RW為高電平時為寫數(shù)據(jù)操作,LCD就會將接收到的數(shù)據(jù)在液晶屏上顯示出來。在進(jìn)行數(shù)據(jù)顯示前需要先設(shè)置數(shù)據(jù)地址指針,這樣才能在想要的位置顯示出數(shù)據(jù)。LCD1602顯示驅(qū)動程序流程圖如圖3-5所示。</p><p> 圖3-5 LCD1602顯示驅(qū)動程序流程圖</p><p> 根據(jù)以上LCD寫操作時序和LCD顯示驅(qū)動程序流程圖編寫出
81、相應(yīng)的驅(qū)動函數(shù),部分顯示函數(shù)如下:</p><p> void Display_LCD_1602_dan_zi(uchar X,uchar Y,uchar Value) //在指定位置</p><p> { // 寫入一個字符,X為行,Y為列,Value為寫入的數(shù)據(jù)</p><p> LocationXY( X, Y);
82、 //確定字符顯示的位置函數(shù)</p><p> Write_com_or_dat(Value,1); //寫入數(shù)據(jù)函數(shù)</p><p><b> }</b></p><p> void Display_LCD_1602_duo_zi(uchar X,uchar Y,uchar *P)
83、//顯示字符串函</p><p> { //數(shù),P指向字符串的首地址</p><p> LocationXY( X, Y); //設(shè)定初始地址</p><p> while(*P){ Write_com_or_dat(*P,1);
84、P++;} </p><p><b> }</b></p><p> 3.4 串口通信程序</p><p> 串口通信程序主要包括串口的初始化、串口數(shù)據(jù)發(fā)送,其中串口的初始化主要是用于設(shè)置波特率。在通信中采用的串口通信波特率為9600,在程序設(shè)計中采用查詢法發(fā)送數(shù)據(jù),串口通信程序流程圖如圖3-6所示。</p><p
85、> 圖3-6 串口通信程序流程圖</p><p> 在進(jìn)行串口通信程序編寫時,編寫單字節(jié)發(fā)送函數(shù)和字符串發(fā)送函數(shù),其中部分程序代碼如下:</p><p> void Sent_Byte(uchar dat) //發(fā)送單字節(jié)函數(shù)</p><p><b> {</b></p><p> SBUF=dat;
86、 //將數(shù)據(jù)送到緩沖器</p><p> while(!TI); //判斷是否發(fā)送完</p><p> TI=0; //發(fā)送完清標(biāo)志位</p><p><b> }</b></p><p> void Sent_Date(uchar *dat) //發(fā)送一個
87、字符串函數(shù)</p><p><b> {</b></p><p> while((*dat)!= '\0') //如果字符串未結(jié)束,指針++指向下一個字符</p><p><b> {</b></p><p> Sent_Byte(*dat); //發(fā)送單字節(jié)函數(shù)</
88、p><p> dat++; //指針++</p><p><b> }</b></p><p><b> }</b></p><p> 4 上位機(jī)軟件設(shè)計</p><p> 4.1 上位機(jī)人機(jī)交互界面設(shè)計</p><p>
89、 此次設(shè)計的上位機(jī)人機(jī)交互界面主要分為兩個窗口,即實(shí)時數(shù)據(jù)窗口和歷史數(shù)據(jù)窗口,可以在使用過程中進(jìn)行切換。實(shí)時數(shù)據(jù)窗口主要是用于實(shí)現(xiàn)4路溫度數(shù)據(jù)的實(shí)時顯示、實(shí)時溫度變化曲線顯示及實(shí)時溫度強(qiáng)度圖顯示。并且可以在本界面設(shè)定串口的有關(guān)配置,如波特率、數(shù)據(jù)位、奇偶校驗(yàn)位等;另外可以設(shè)定設(shè)定溫度采集的速率、報警的溫度上限值、選擇數(shù)據(jù)的數(shù)據(jù)的存儲路徑等;同時可以開始和停止溫度的采集。除此之外,還顯示出模擬的數(shù)控機(jī)床熱變形誤差,當(dāng)采集的溫度值超過設(shè)計
90、的溫度上限時,報警指示燈就會閃爍并發(fā)出報警聲。因?yàn)閷?shí)時窗口顯示的數(shù)據(jù)是變動的,鑒于此歷史數(shù)據(jù)窗口主要是用于歷史數(shù)據(jù)的讀取方便數(shù)據(jù)的分析。在進(jìn)行數(shù)據(jù)顯示時,除了顯示溫度值外,還顯示出采集到溫度所對應(yīng)的時間。</p><p> 圖4-1 實(shí)時數(shù)據(jù)顯示界面</p><p> 人機(jī)交互界面的實(shí)時數(shù)據(jù)顯示窗口設(shè)計如圖4-1所示。實(shí)時數(shù)據(jù)顯示窗口不僅可以顯示溫度隨時的變化曲線,以及用強(qiáng)度圖表中用顏
91、色淺深來表示溫度大小。除了用數(shù)值來顯示溫度值外,還用4個類似于溫度計的柱體來直觀顯示溫度的大小。圖中開始按鈕可以用來控制數(shù)據(jù)的采集和暫停。</p><p> 4.2 上位機(jī)程序框圖設(shè)計</p><p> 4.2.1 主程序框圖設(shè)計</p><p> 主程序通過串口接收下位機(jī)發(fā)送的4路A/D轉(zhuǎn)換采集到的8位數(shù)字量,通過數(shù)據(jù)處理,計算出溫度值、熱變形誤差,同時能在
92、前面板顯示出來。另外還要實(shí)現(xiàn)報警、數(shù)據(jù)存儲和相關(guān)數(shù)據(jù)采集參數(shù)設(shè)定等功能。上位機(jī)的整體程序設(shè)計流程圖如圖4-2所示。</p><p> 圖4-2 上位主程序流程圖</p><p> 4.3.2 LABVIEW串口程序設(shè)計</p><p> 在LABVIEW程序串程序設(shè)計中,主要用到VISA配置串口、屬性節(jié)點(diǎn)、VISA讀取和簡單錯誤處理等幾部分組成,下面分別簡單介
93、紹這幾個節(jié)點(diǎn)的使用。</p><p> 圖4-3 VISA配置串口</p><p> 如圖4-3所示為VISA配置串口節(jié)點(diǎn),通過該節(jié)點(diǎn)可以很方便的對串口的參數(shù)進(jìn)行配置,如波特率、奇偶校驗(yàn)、停止位等,通過配置好相關(guān)參數(shù),即對串口進(jìn)行初始化,上位機(jī)才能與下位機(jī)通過串口通信。</p><p> 圖4-4 VISA串口數(shù)據(jù)讀取</p><p>
94、 如圖4-4所示為串口緩沖區(qū)讀取節(jié)點(diǎn),通過該節(jié)點(diǎn)可以讀取下位機(jī)發(fā)送到串口數(shù)據(jù)緩沖區(qū)里的數(shù)據(jù)。其中有一個比較重要的設(shè)置,就是VISA READ的“字節(jié)總數(shù)”這個輸入,由于在串口通信中,如果指定讀取100個串口緩沖區(qū)的字節(jié)數(shù),如果當(dāng)前緩沖區(qū)的數(shù)據(jù)量不足100個時,程序會一直停在VISA READ這個節(jié)點(diǎn)上,如果在超時的時間(默認(rèn)是10秒)內(nèi)還沒有湊足100個數(shù)據(jù)的話,程序就會報“Time out”的錯誤,如果超時時間設(shè)置得太長,有可能導(dǎo)致
95、程序很長時間停止在VISA READ這個節(jié)點(diǎn)上。解決的辦法是使用“Bytes at Port”這個串口的屬性節(jié)點(diǎn),這個屬性節(jié)點(diǎn)讀取當(dāng)前串口緩沖區(qū)有字節(jié)數(shù),然后將它的輸出連接到VISA READ的“讀取字節(jié)數(shù)”這個輸入端上即可,這樣當(dāng)前緩沖區(qū)中有多少個字節(jié)就讀回多少個,不會有任何等待,該屬性節(jié)點(diǎn)如圖4-5所示。</p><p> 圖4-5 Bytes at Port屬性節(jié)點(diǎn)</p><p>
96、; 將以上幾個節(jié)點(diǎn)正確連接起來,再結(jié)合while結(jié)構(gòu)和判斷結(jié)構(gòu)就可以實(shí)現(xiàn)對下位機(jī)發(fā)送來的數(shù)據(jù)進(jìn)行不斷的讀取。其部分程序設(shè)計如圖4-6所示。</p><p> 圖4-6 串口數(shù)據(jù)讀取部分程序</p><p> 4.3.3 串口數(shù)據(jù)幀解碼</p><p> 正位機(jī)發(fā)送來的采集到的4路數(shù)據(jù),在讀取串口的數(shù)據(jù)之后并不知道接收到的數(shù)據(jù)是屬于那一路的,需要將各路的數(shù)據(jù)區(qū)
97、分開來,再進(jìn)行數(shù)據(jù)處理和顯示。上位機(jī)程序的編寫要根據(jù)下位機(jī)發(fā)送的數(shù)據(jù)幀格式來解碼,這樣才能獲取正確的數(shù)據(jù)。下位機(jī)發(fā)送的數(shù)據(jù)幀包括3個部分,包括2個字節(jié)的數(shù)據(jù)幀頭、4個字節(jié)的數(shù)據(jù)和1個字節(jié)的數(shù)據(jù)幀尾。將讀取的字符數(shù)據(jù)轉(zhuǎn)換為字節(jié)數(shù)組,再對數(shù)組里的數(shù)據(jù)進(jìn)行數(shù)據(jù)幀解析,得出想要的數(shù)據(jù)。在程序設(shè)計中通過編寫數(shù)據(jù)幀解析子VI來供主程序調(diào)節(jié),數(shù)據(jù)幀解析程序采用公式節(jié)點(diǎn)來設(shè)計。</p><p> 公式節(jié)點(diǎn)在程序中相當(dāng)于一個數(shù)據(jù)
98、運(yùn)算子程序,可以在公式結(jié)點(diǎn)中進(jìn)行類似于C語言的編程,這樣可以大大減小程序的開發(fā)難度。公式節(jié)點(diǎn)可以進(jìn)行參數(shù)的輸入和輸出,參數(shù)的傳遞通過輸入變量和輸出變量來傳遞。在子VI中設(shè)計兩個輸入?yún)?shù)變量,其中一個參數(shù)變量是數(shù)組,另一個參數(shù)變量是數(shù)組的長度,在程序中對輸入的數(shù)據(jù)進(jìn)行數(shù)據(jù)幀解析。首先對數(shù)組的第一個元素進(jìn)行查找,在數(shù)組長度范圍內(nèi),若找到兩個連續(xù)的數(shù)據(jù)幀幀頭,并且數(shù)組的下標(biāo)加4后的數(shù)據(jù)為數(shù)據(jù)幀的幀尾,則數(shù)組幀頭和幀尾之間的四個字節(jié)即為下位機(jī)發(fā)
99、送的4路采集到的數(shù)據(jù),4個字節(jié)數(shù)據(jù)的通道分別與下位機(jī)發(fā)送時的通道相對應(yīng)。公式節(jié)點(diǎn)的程序設(shè)計如圖4-7所示。</p><p> 圖4-7 公式節(jié)點(diǎn)數(shù)據(jù)幀解碼</p><p> 4.3.4 數(shù)據(jù)處理和顯示</p><p> 將數(shù)據(jù)幀解碼得到的4路數(shù)據(jù)計算出電壓值,再通過電壓值計算出相應(yīng)的溫度值,并通過溫度值計算出熱誤差,數(shù)據(jù)處理子VI如圖4-8所示。</p&
100、gt;<p> 圖4-8 數(shù)據(jù)處理子VI</p><p> 各通道數(shù)據(jù)經(jīng)過處理之后,就可以將數(shù)據(jù)輸出到人機(jī)交互界面進(jìn)行顯示,用波形;用波形圖表用來顯示實(shí)時溫度變化曲線,用強(qiáng)度圖表中顏色的淺深來表示溫度的高低,同時在人機(jī)交互界面上顯示出各通道的溫度數(shù)值和熱變形誤差。如圖4-9所示為波形圖表和強(qiáng)度圖表。</p><p> 圖4-9 波形圖表和強(qiáng)度圖表</p>
101、<p> 波形圖表是顯示一條或多條曲線的特殊數(shù)值顯示控件,一般用于顯示以恒定速率采集到的數(shù)據(jù)。波形圖表會保留來源于此前更新的歷史數(shù)據(jù),又稱緩沖區(qū)。如需在一次更新中向每條曲線傳送多個點(diǎn),可將一個數(shù)值簇數(shù)組連接到波形圖表,每個數(shù)值代表各條曲線的單個y值點(diǎn)。在設(shè)計中需要向波形圖表傳送多條曲線的數(shù)據(jù),將這些數(shù)據(jù)捆綁為一個標(biāo)量數(shù)值簇,其中每一個數(shù)值代表各條曲線上的單個數(shù)據(jù)點(diǎn),這樣就可以在波形圖表上同時顯示多條實(shí)時溫度曲線。與波形圖表一
102、樣,強(qiáng)度圖表也有一個來源于此前更新而產(chǎn)生的歷史數(shù)據(jù),又稱緩沖區(qū)。由于強(qiáng)度圖表將顏色作為第三個維度,因此一個類似于顏色梯度控件的標(biāo)尺可定義強(qiáng)度圖表的范圍和數(shù)值到顏色的映射。在強(qiáng)度圖表上繪制一個數(shù)據(jù)塊以后,笛卡爾平面的原點(diǎn)將移動到最后一個數(shù)據(jù)塊的右邊。圖表處理新數(shù)據(jù)時,新數(shù)據(jù)出現(xiàn)在舊數(shù)據(jù)的右邊。如果圖表顯示已滿,則舊數(shù)據(jù)將從圖表的左邊界移出。</p><p> 4.3.5 數(shù)據(jù)的存儲和讀取</p>&
103、lt;p> 數(shù)據(jù)的存儲和讀取主要是通過寫入文本文件和讀取文本文件這兩個節(jié)點(diǎn)來完成。寫入文本文件節(jié)點(diǎn)如圖4-10所示,將文件路徑設(shè)計為選擇路徑輸入,在進(jìn)行數(shù)據(jù)采集時可</p><p> 圖4-10 寫入文本文件節(jié)點(diǎn)</p><p> 以在人機(jī)交互界面上選擇數(shù)據(jù)文件存儲的路徑。讀取文本文件是用于讀取存儲的歷史數(shù)</p><p> 據(jù),如圖4-11所示。&l
104、t;/p><p> 圖4-11 讀取文本文件節(jié)點(diǎn)</p><p> 設(shè)計時通過按下按鈕來讀取文件里存儲的數(shù)據(jù),并在人機(jī)交互界面的歷史數(shù)據(jù)界面上顯示出歷史數(shù)據(jù),包括歷史溫度曲線圖、歷史溫度強(qiáng)度圖和歷史時間對應(yīng)的溫度值。</p><p> 為了方便數(shù)據(jù)的分析,人機(jī)交互界面專門有一個是用來讀取歷史數(shù)據(jù)的,其程序設(shè)計如圖4-12所示。</p><p&g
105、t; 圖4-12 讀取歷史數(shù)據(jù)顯示程序</p><p> 4.3.6 采集速率和溫度報警</p><p> 在進(jìn)行數(shù)據(jù)采集時,數(shù)據(jù)采集過快或者過慢都不方便對的數(shù)據(jù)的觀察和分析,在程序設(shè)計中可以讓用戶可以在人機(jī)交互界面上設(shè)定想要的采集速率;其次就在不同的場合,溫度最高上限也不一樣,同樣在設(shè)計中出應(yīng)該考慮到用戶可以設(shè)定不同的溫度報警上限值。其中,溫度報警程序如圖4-13所示。在程序設(shè)計中
106、使用條件結(jié)構(gòu)來判斷是否執(zhí)行報警程序,將各路采集到的溫度度值與設(shè)定的溫度值進(jìn)行比較,若有其中一路溫度值超過了設(shè)定的溫度值,則條件結(jié)構(gòu)判斷為真,則執(zhí)行報警程序。在報警程序中實(shí)現(xiàn)報警聲的輸出及報警指示燈每隔200毫秒紅綠燈進(jìn)行交替閃爍,當(dāng)4路溫度值都與設(shè)定的溫度值低時,則條件結(jié)構(gòu)判斷為假,則報警程序不執(zhí)行,這樣就可以實(shí)現(xiàn)報警功能。</p><p> 圖4-13 溫度報警程序</p><p>
107、 5 原理圖電路仿真 </p><p> 為了更進(jìn)一步確保本方案設(shè)計的可以行,在進(jìn)行硬件電路實(shí)物的制作之前,先通過使用仿真軟件對設(shè)計方案進(jìn)行軟件仿真。設(shè)計仿真主要使用Proteus仿真軟件和虛擬串口軟件。</p><p> 下位機(jī)硬件電路仿真原理圖如圖5-1所示,圖中只畫出了4路放大電路中其中的1路放大電路,其它3路放大與其完全相同。仿真時另外三路放大器的電壓輸出用三個滑動變阻器來模
108、擬溫度傳感器經(jīng)放大后的電壓輸出。在上圖的仿真原理圖中只實(shí)現(xiàn)了溫度傳感器、放大電路、A/D轉(zhuǎn)換電路和LCD1602顯示電路的仿真,而串口通信并未實(shí)現(xiàn)仿真。在進(jìn)行串口通信仿真時,首先需要安裝一個虛擬串口軟件VSPD XP 5,安裝成功后打開如</p><p> 圖5-1 硬件電路仿真原理圖</p><p> 圖5-2所示,會虛擬出兩個串口COM1和COM2,通過這兩個虛擬串口,就可以實(shí)現(xiàn)串
109、口通信的仿真。在進(jìn)行串口通信仿真前需要設(shè)置好仿真原理圖中的串口,其串口參數(shù)設(shè)置如圖5-3所示,選擇串口號COM1,其中串口波特率為9600,數(shù)據(jù)為8位,停止位1位,沒有奇</p><p><b> 圖5-2 虛擬串口</b></p><p> 偶校驗(yàn)位。設(shè)置好這些參數(shù)之后,還需要打開串口調(diào)試助手,串口調(diào)試助手的設(shè)置除</p><p> 了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計--基于labview數(shù)控機(jī)床現(xiàn)場溫度實(shí)時多點(diǎn)采集測量與實(shí)現(xiàn)
- 畢業(yè)設(shè)計論文--基于labview串口的現(xiàn)場實(shí)時多通道溫度采集測量與實(shí)現(xiàn)
- 數(shù)控機(jī)床畢業(yè)設(shè)計論文
- 畢業(yè)設(shè)計基于labview的溫度采集系統(tǒng)
- 基于LabVIEW的數(shù)控機(jī)床聯(lián)網(wǎng)系統(tǒng)的設(shè)計與實(shí)現(xiàn).pdf
- 數(shù)控機(jī)床畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---數(shù)控機(jī)床
- 數(shù)控機(jī)床畢業(yè)設(shè)計
- 畢業(yè)設(shè)計(論文)-數(shù)控機(jī)床多源信息采集系統(tǒng)的開發(fā)
- 數(shù)控機(jī)床畢業(yè)設(shè)計
- 數(shù)控機(jī)床畢業(yè)設(shè)計
- 數(shù)控機(jī)床畢業(yè)設(shè)計
- 畢業(yè)設(shè)計--數(shù)控機(jī)床
- 畢業(yè)設(shè)計(論文)數(shù)控機(jī)床的plc設(shè)計
- 基于labview的實(shí)時溫度采集系統(tǒng)的設(shè)計【通信工程畢業(yè)論文】
- 畢業(yè)論文-基于labview的實(shí)時溫度采集系統(tǒng)的設(shè)計【精校排版】
- 畢業(yè)設(shè)計(論文)+基于labview的數(shù)據(jù)采集系統(tǒng)的設(shè)計與實(shí)現(xiàn)
- 基于labview的實(shí)時溫度采集系統(tǒng)的設(shè)計
- 基于LabVIEW的數(shù)控機(jī)床熱誤差自動測量系統(tǒng)的設(shè)計.pdf
- 數(shù)控機(jī)床改造畢業(yè)設(shè)計
評論
0/150
提交評論