摘要:傳統(tǒng)的機(jī)械設(shè)備測(cè)量儀器,其功能固定、擴(kuò)展性差,且測(cè)試系統(tǒng)開發(fā)時(shí)間長。美國國家儀器NI公司于1986年提出的虛擬儀器的概念,引發(fā)了傳統(tǒng)儀器領(lǐng)域的一場(chǎng)重大變革。本文以單片機(jī)STC89C55為數(shù)據(jù)采集核心硬件,NI公司的LabVIEW為上位機(jī)支持軟件,完成數(shù)據(jù)實(shí)時(shí)采集系統(tǒng)設(shè)計(jì)和對(duì)普通圓柱蝸桿的質(zhì)量快速檢測(cè)。采用LabVIEW程序設(shè)計(jì)多路數(shù)據(jù)實(shí)時(shí)采集與分析,編程者不需要深究相關(guān)硬件的專業(yè)知識(shí),也不需要考慮復(fù)雜的專門的驅(qū)動(dòng)程序編寫,只需合理使用LabVIEW提供的控件和函數(shù)。
引言
傳統(tǒng)的機(jī)械設(shè)備測(cè)量儀器,其功能固定、擴(kuò)展性差,且測(cè)試系統(tǒng)開發(fā)時(shí)間長。美國國家儀器NI公司于1986年提出的虛擬儀器的概念,引發(fā)了傳統(tǒng)儀器領(lǐng)域的一場(chǎng)重大變革。其將計(jì)算機(jī)強(qiáng)大的數(shù)字處理能力和儀器硬件的測(cè)量、控制能力結(jié)合在一起,大大增強(qiáng)了傳統(tǒng)儀器的功能。而NI公司開發(fā)的圖形化開發(fā)平臺(tái)LabVIEW無疑是虛擬儀器的杰出代表。
蝸桿傳動(dòng)過程中,往往會(huì)碰到蝸桿蝸輪嚙合中心距測(cè)量問題。本系統(tǒng)主要設(shè)計(jì)交錯(cuò)放置在檢具底盤上蝸桿副嚙合運(yùn)動(dòng)中的傳動(dòng)中心距以及蝸輪轉(zhuǎn)角值的位置信息數(shù)據(jù)采集電路,并在上位機(jī)LabVIEW8.6軟件開發(fā)平臺(tái)上實(shí)時(shí)顯示出位置信息關(guān)系曲線以及對(duì)采集數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析。
1、系統(tǒng)的組成及工作原理
圖1為系統(tǒng)組成結(jié)構(gòu)框圖。該光柵測(cè)量系統(tǒng)主要由PC工控機(jī)、STC89C55、信號(hào)接口電路、信號(hào)預(yù)處理電路以及液晶顯示控制電路組成。其中,角編碼器和光柵尺
傳感器組成光柵位移量測(cè)量的檢測(cè)傳輸平臺(tái),分別輸出蝸輪轉(zhuǎn)角值和蝸桿副傳動(dòng)中心距位置信息;然后再經(jīng)過光電轉(zhuǎn)換以及整形放大電路,輸出單片機(jī)可以識(shí)別的相位角相差90°的2路方波序列脈沖信號(hào)(A相主信號(hào)和B相副信號(hào)),另外還輸出一個(gè)作為校驗(yàn)Z信號(hào)。硬件接口電路將3路信號(hào)輸入到信號(hào)預(yù)處理電路進(jìn)行化移脈沖數(shù)據(jù)、移動(dòng)方向以及原點(diǎn)信息的預(yù)處理,再由單片機(jī)通過數(shù)據(jù)總線根據(jù)需要讀取、處理和顯示數(shù)據(jù),隨后通過RS232串口總線將采集的多路數(shù)據(jù)送入LabVIEW軟件平臺(tái)進(jìn)行檢測(cè)以及分析。
2、系統(tǒng)硬件設(shè)計(jì)
2.1主控芯片
本系統(tǒng)的下位機(jī)核心控制芯片是單片機(jī)STC89C55,其內(nèi)部程序存儲(chǔ)空間有20KB,片內(nèi)RAM為1280字節(jié),外部晶振頻率zui高可以接入40MHz。該單片機(jī)不僅具有MCS-51系列單片機(jī)的所有特性,而且具有穩(wěn)定性高、功耗低、抗干擾等特點(diǎn),是目前性價(jià)比較高的芯片。由于本系統(tǒng)對(duì)實(shí)時(shí)性要求比較高,所以選用24MHz外部晶振,可提高單片機(jī)的處理速度。
2.2數(shù)據(jù)采集接口電路
本系統(tǒng)中光柵尺和角編碼器都屬于增量式光電編碼器,而增量式編碼器系列有各種不同類型的輸出電路方式可以選擇,為了抑制共模干擾和提高傳輸抗干擾性能,設(shè)計(jì)中采用了差分輸出型方案。由于數(shù)字式傳感器不需要進(jìn)行A/D轉(zhuǎn)換,所以需將差分信號(hào)轉(zhuǎn)化為單片機(jī)可以識(shí)
別的單端TTL信號(hào),進(jìn)而直接進(jìn)行辨向計(jì)數(shù)。AM26C32是NI公司的4路差動(dòng)線路接收器,將差分信號(hào)轉(zhuǎn)化為單片機(jī)可以識(shí)別的單端TTL信號(hào),進(jìn)而直接進(jìn)行辨向計(jì)數(shù)。系統(tǒng)數(shù)據(jù)采集接口電路如圖2所示。
2.3數(shù)據(jù)采集電路
數(shù)據(jù)采集電路主要由信號(hào)預(yù)處理電路和單片機(jī)主控電路組成。信號(hào)預(yù)處理電路主要完成對(duì)方波信號(hào)的鑒相與計(jì)數(shù)的預(yù)處理,是系統(tǒng)硬件設(shè)計(jì)的關(guān)鍵。為了保證計(jì)數(shù)的實(shí)時(shí)性和方便后期功能擴(kuò)展,結(jié)合兩種軟硬件設(shè)計(jì)特點(diǎn)設(shè)計(jì)出了較合理的信號(hào)預(yù)處理電路,如圖3所示。鑒相電路由1個(gè)D觸發(fā)器74HC74和2個(gè)與非門74HC00組成,可逆計(jì)數(shù)電路由2片74HC193組成,低8位計(jì)數(shù)值輸出經(jīng)三態(tài)緩沖芯片74HC245后掛到單片機(jī)P1口總線上進(jìn)行實(shí)時(shí)查詢。一旦發(fā)生計(jì)數(shù)值溢出,就會(huì)在外部產(chǎn)生觸發(fā)中斷,單片機(jī)進(jìn)入中斷服務(wù)程序通過沒置在鑒相電路中的P2.3口狀態(tài)識(shí)別是止轉(zhuǎn)計(jì)數(shù)還是反轉(zhuǎn)計(jì)數(shù)。傳感器校驗(yàn)信號(hào)直接與單片機(jī)引腳相連,檢測(cè)輸入信號(hào)。
單片機(jī)主控電路除了對(duì)前端信號(hào)初始化計(jì)數(shù)預(yù)置,數(shù)據(jù)組合處理和中斷控制外,還負(fù)責(zé)將采集到的數(shù)據(jù)進(jìn)行顯示,同時(shí)通過串口送入上位機(jī)。采用這種計(jì)數(shù)方式可以減少硬件資源的消耗,充分利用單片機(jī)軟件資源,方便功能擴(kuò)展,節(jié)約成小,提高實(shí)時(shí)性。另外,由于單片機(jī)I/O端口資源比較有限,所以液晶顯示電路利用74HC595芯片實(shí)現(xiàn)單片機(jī)I/O引腳功能擴(kuò)展。
3、系統(tǒng)軟件設(shè)計(jì)
3.1下位機(jī)軟件設(shè)計(jì)
STC89C55單片機(jī)程序采用C語言進(jìn)行設(shè)計(jì),對(duì)單片機(jī)串口、外部中斷、定時(shí)器以及液晶顯示等進(jìn)行初始化設(shè)置,然后通過I/O口實(shí)時(shí)查詢信號(hào)處理電路的計(jì)數(shù)值。當(dāng)硬件電路計(jì)數(shù)值溢出時(shí),便在進(jìn)/借位端口產(chǎn)生相應(yīng)的下降沿觸發(fā),外部中斷實(shí)時(shí)響應(yīng)并處理相應(yīng)情況,得到各自的計(jì)數(shù)高8位數(shù)據(jù)。zui后,與計(jì)數(shù)低8位數(shù)據(jù)進(jìn)行數(shù)據(jù)組合和換算并將其送入LCD液晶顯示。
與此同時(shí),單片機(jī)實(shí)時(shí)判斷兩路組合數(shù)據(jù)是否超過給定范圍,根據(jù)判斷情況進(jìn)行相應(yīng)的數(shù)據(jù)處理。在主程序讀取數(shù)據(jù)期間,單片機(jī)隨時(shí)通過串口中斷,響應(yīng)上位機(jī)發(fā)來的數(shù)據(jù)發(fā)送請(qǐng)求命令和暫停接收命令。單片機(jī)主程序流程如圖4所示。
3.2上位機(jī)軟件設(shè)計(jì)
上位機(jī)軟件采用LabVIEW圖形化編程語言來完成控制平臺(tái)的設(shè)計(jì)。LabVIEW程序主要包括前面板(即人機(jī)界面)和方框圖程序。前面板用于模擬真實(shí)儀器的面板操作,框圖程序應(yīng)用圖形編程語言編寫,其用于傳送前面板輸入的命令參數(shù)到儀器以執(zhí)行相應(yīng)的操作。在系統(tǒng)中,單片機(jī)與上位機(jī)數(shù)據(jù)傳輸是通過RS-232串行方式,因此不需要購買昂貴的數(shù)據(jù)采集卡就能簡便且穩(wěn)定地實(shí)現(xiàn)數(shù)據(jù)傳輸與實(shí)時(shí)監(jiān)控,滿足了工業(yè)控制的一般要求。
在LabVIEW虛擬儀器串行接口編程中,通常用其提供的標(biāo)準(zhǔn)I/O函數(shù)庫VISA,無論儀器使用GPIB、PXI、VXI,還是串行接口都可實(shí)現(xiàn)計(jì)算機(jī)與儀器之間的標(biāo)準(zhǔn)軟件通信。
LabVIEW前面板如圖5所示,給出了上位機(jī)LabVIEW控制平臺(tái)的蝸桿副快速檢測(cè)平臺(tái)。采用模塊化設(shè)計(jì)思想,系統(tǒng)主要由串口配置與控制模塊、數(shù)據(jù)讀取與轉(zhuǎn)換模塊、數(shù)據(jù)顯示、統(tǒng)計(jì)與存儲(chǔ)模塊等組成。用戶無需了解模塊內(nèi)部的程序框圖便可直接通過鼠標(biāo)在界面上操作,實(shí)現(xiàn)上位機(jī)數(shù)據(jù)采集、處理、顯示、報(bào)警、控制等功能。
(1)串口配置與控制模塊
為了保證計(jì)算機(jī)與單片機(jī)能串口通信,首先應(yīng)進(jìn)行串口初始化。根據(jù)單片機(jī)串口設(shè)定方式,在程序框圖設(shè)置VISA資源名稱為COM1,波特率為9600,數(shù)據(jù)位為8,停止位為1,無奇偶校驗(yàn)位和流控制。這些初始設(shè)定都可以在前面板的相應(yīng)輸入控件中加以更改。在VISA標(biāo)準(zhǔn)串口函數(shù)庫里面提供的節(jié)點(diǎn)不僅可以實(shí)現(xiàn)串口初始化配置,還可以對(duì)緩沖區(qū)數(shù)據(jù)進(jìn)行讀寫控制。另外,在程序框圖中所有的功能子模塊都需要在while循環(huán)內(nèi),同時(shí)用前面板的布爾值丌關(guān)控制循環(huán)命令條件端子。
?。?)數(shù)據(jù)讀取與轉(zhuǎn)換模塊
圖6給出了數(shù)據(jù)讀取與轉(zhuǎn)換模塊程序框圖??驁D中,VISAReed節(jié)點(diǎn)用于讀取數(shù)量的字節(jié)。BytcsatPort節(jié)點(diǎn)是VISA串口字節(jié)數(shù),用于判斷瀆取數(shù)據(jù)是否滿足4個(gè)字節(jié),如果為真即滿足條件,則進(jìn)入數(shù)據(jù)讀取模塊,串口字節(jié)數(shù)清空;正確讀取的4個(gè)字節(jié)巾前2個(gè)字節(jié)為蝸輪角度值,后2個(gè)字節(jié)為傳動(dòng)蝸桿中心距數(shù)據(jù)。由于讀串口節(jié)點(diǎn)只能讀取字符串,所以需要進(jìn)行正確的字符串與數(shù)字之間的轉(zhuǎn)換,方便后續(xù)的數(shù)據(jù)顯示與統(tǒng)計(jì)分析。
根據(jù)模塊化設(shè)計(jì)思想,系統(tǒng)設(shè)計(jì)了一個(gè)處理數(shù)據(jù)轉(zhuǎn)換功能的子VI模塊。其作用是將存放串口讀取數(shù)據(jù)的數(shù)組送入處理數(shù)據(jù)轉(zhuǎn)換VI模塊,并根據(jù)事先設(shè)定好的控制參數(shù),得到轉(zhuǎn)換后的角度和傳動(dòng)中心距偏差數(shù)據(jù),分別保存于X-Y軸坐標(biāo)數(shù)組,便于后續(xù)顯示。該轉(zhuǎn)換模塊中利用LabVIEW所*的公式節(jié)點(diǎn),直接輸入條件判斷公式和有關(guān)端子,而不用創(chuàng)建復(fù)雜的框圖節(jié)點(diǎn),實(shí)現(xiàn)了對(duì)兩路數(shù)據(jù)不同類型的換算和轉(zhuǎn)換。另外,輸出的角度值可以用來指示當(dāng)前蝸輪是正轉(zhuǎn)還是反轉(zhuǎn),而輸出的傳動(dòng)中心距偏差值可以用來指示蝸桿目前狀態(tài)??刂茀?shù)正確設(shè)置對(duì)系統(tǒng)設(shè)計(jì)是極為重要的。
角編碼器和光柵尺的光柵線數(shù)分別決定了其所能分辨的zui小角度和傳動(dòng)中心距長度,而理論中心距是檢測(cè)蝸桿的理想?yún)?shù),它與精度等級(jí)共同決定了傳動(dòng)中心距的極限偏差值,通過現(xiàn)行機(jī)械設(shè)計(jì)手冊(cè)查找得出。在本設(shè)計(jì)中,提供的光柵尺測(cè)量精度為0.01mm,選用的精度等級(jí)不能過高。從設(shè)計(jì)中選用的第9等級(jí)精度可知,待檢測(cè)蝸輪副實(shí)際中心距偏差值不能超過60mm,一旦超過設(shè)定的測(cè)量范圍將會(huì)報(bào)警提示,并顯示蝸桿質(zhì)量不正常。
(3)數(shù)據(jù)顯示、統(tǒng)計(jì)與存儲(chǔ)模塊
LabVIEW是號(hào)為測(cè)量、分析數(shù)據(jù)并提交結(jié)果而設(shè)計(jì)的,其強(qiáng)大的圖表和圖形組件體現(xiàn)出極大的優(yōu)勢(shì)。由于坐標(biāo)圖不同于簡單的波形圖,其可以有不同類型的數(shù)據(jù)輸入,因此不能簡單互連,故坐標(biāo)圖需要將X數(shù)組和Y數(shù)組分別轉(zhuǎn)換成動(dòng)態(tài)數(shù)據(jù)類型后綁定為一個(gè)簇連接到坐標(biāo)圖中。本設(shè)計(jì)在前面板的控件選項(xiàng)卡中找到Express類,Express函數(shù)不同于一般的LabVIEW函數(shù),其可以被視為通用編程問題的解決方案庫。在前面板合適位置放置Express;XY坐標(biāo)圖后,其在程序框圖中自動(dòng)地“在幕后”產(chǎn)生了對(duì)應(yīng)圖標(biāo),只需要將創(chuàng)建XY圖標(biāo)的兩個(gè)輸入端子直接與來自按名稱釋放簇中X軸和Y軸坐標(biāo)數(shù)組兩端子分別相連,便會(huì)自動(dòng)匹配數(shù)據(jù)輸入格式。不僅如此,測(cè)量文件的快速寫入也是通過函數(shù)面板中WriteToMeasurementFileExpressVI加以配置,如何格式化文件以及保存數(shù)據(jù)內(nèi)容。通過在前面板設(shè)置數(shù)據(jù)保存開關(guān),便可以靈活記錄和實(shí)時(shí)訪問已測(cè)量過的數(shù)據(jù)值。
4、結(jié)語
本文以單片機(jī)STC89C55為數(shù)據(jù)采集核心硬件,NI公司的LabVIEW為上位機(jī)支持軟件,完成數(shù)據(jù)實(shí)時(shí)采集系統(tǒng)設(shè)計(jì)和對(duì)普通圓柱蝸桿的質(zhì)量快速檢測(cè)。采用LabVIEW程序設(shè)計(jì)多路數(shù)據(jù)實(shí)時(shí)采集與分析,編程者不需要深究相關(guān)硬件的專業(yè)知識(shí),也不需要考慮復(fù)雜的專門的驅(qū)動(dòng)程序編寫,只需合理使用LabVIEW提供的控件和函數(shù)。實(shí)踐表明,該系統(tǒng)縮短了開發(fā)周期,并且具有硬件電路設(shè)計(jì)簡單、實(shí)時(shí)性好、測(cè)試穩(wěn)定、功能可擴(kuò)展的特點(diǎn)。