張 晶
(山西財(cái)貿(mào)職業(yè)技術(shù)學(xué)院信息工程系,山西 太原 030031)
數(shù)據(jù)采集系統(tǒng)上位機(jī)軟件的設(shè)計(jì)
張 晶
(山西財(cái)貿(mào)職業(yè)技術(shù)學(xué)院信息工程系,山西太原030031)
針對測試測量領(lǐng)域文本編程語言編程繁瑣、開發(fā)周期長的特點(diǎn),基于LabVIEW軟件平臺,設(shè)計(jì)了數(shù)據(jù)采集系統(tǒng)控制軟件,可以通過USB接口、串口實(shí)現(xiàn)通信,完成了電路編程、采樣讀數(shù)等功能.并在四通道數(shù)據(jù)采集系統(tǒng)實(shí)驗(yàn)中成功完成數(shù)據(jù)采集、顯示、存儲、回讀、定標(biāo)等,經(jīng)實(shí)驗(yàn)表明,該軟件運(yùn)行可靠、操作簡便.
LabVIEW;數(shù)據(jù)采集;上位機(jī)
圖1 功能模塊圖Fig.1 Functional block diagram
一個完備的數(shù)據(jù)采集系統(tǒng)需要友好的人機(jī)交互界面作為支撐,實(shí)現(xiàn)與上位機(jī)間的通信,并為用戶再現(xiàn)、分析和處理經(jīng)采集存儲的大量數(shù)據(jù).選擇美國National Instruments公司開發(fā)的,被稱為是工程師和科學(xué)家開發(fā)語言的LabVIEW作為開發(fā)平臺[1],開發(fā)了數(shù)據(jù)采集系統(tǒng)的上位機(jī)軟件,并在實(shí)驗(yàn)中得到成功的應(yīng)用.
軟件是由多個不同功能及含有明確意義的模塊組成的,其中不同的模塊可以滿足不同的任務(wù)需求,從而可以成功細(xì)致描述對應(yīng)的唯一的功能模塊,這樣就可以正確流暢的進(jìn)行下一步編寫程序的工作,在編寫程序之前,做好軟件從頂層到底層各個階段的設(shè)計(jì)工作,可以大幅度提高整個軟件系統(tǒng)的可靠性、可操作性和可維護(hù)性[2].
現(xiàn)有的數(shù)據(jù)采集系統(tǒng)應(yīng)分為從可視化到非可視化的4個層面,即可視化的程序執(zhí)行界面、非可視化的數(shù)據(jù)采集系統(tǒng)的主程序、以及非可視化的各種功能程序模塊以及構(gòu)成該功能模塊的下一層面的子模塊IVI,功能模塊框圖如圖1所示.
2.1軟件結(jié)構(gòu)設(shè)計(jì)
開發(fā)軟件的過程中,采用NI公司提供的項(xiàng)目瀏覽器作為主要的項(xiàng)目管理工具,從邏輯上把一個項(xiàng)目所有的文件集合在一起,相當(dāng)于一個包含所有文件引用位置和相互關(guān)系的樹形目錄.這樣能夠輕松管理VI程序、文本文件、DLL,為后期制作應(yīng)用程序、安裝程序、源代碼發(fā)布等提供方便.圖2為本項(xiàng)目的項(xiàng)目瀏覽器.
圖2 項(xiàng)目瀏覽器Fig.2 Project browser
采用結(jié)構(gòu)化程序設(shè)計(jì)方法,自頂向下、逐步細(xì)化、模塊化設(shè)計(jì),將問題由抽象逐步具體化[3].首先對數(shù)據(jù)采集系統(tǒng)進(jìn)行功能需求分析,將其分成電路編程、采樣讀數(shù)、讀取文件、定標(biāo)讀值四個模塊,每個模塊即為一個子VI.這樣不僅增強(qiáng)了軟件的可維護(hù)性和可擴(kuò)展性,還充分利用了代碼的復(fù)用性,改善了軟件結(jié)構(gòu).其中采樣讀數(shù)模塊可選擇USB通信或串口通信.
2.2接口設(shè)計(jì)
2.2.1USB接口通信 當(dāng)通過USB外部接口通信時,使用調(diào)用庫函數(shù)節(jié)點(diǎn)CIN(Call Library Function Node),調(diào)用庫函數(shù)就是指調(diào)用動態(tài)鏈接庫(DLL)中的函數(shù).通信時調(diào)用DLL68013.DLL,當(dāng)調(diào)用DLL中的函數(shù)時,必須知道函數(shù)原型,一般的DLL都會提供頭文件,能否正確配置DLL函數(shù)的參數(shù)直接關(guān)系到調(diào)用函數(shù)的成敗[4].在采樣讀數(shù)子VI中,首先調(diào)用函數(shù)TranVerCmmd(unsigned char*pdata),配置參數(shù):返回類型為數(shù)值,無符號8位整型;pdata數(shù)據(jù)類型為匹配至類型,數(shù)據(jù)格式按值處理.配置結(jié)束后函數(shù)為:
將固定值B3連接到pdata使能USB開始讀數(shù),返回值:成功為1,否則為0.如圖3所示.如果函數(shù)Tran-VerCmmd返回1,則設(shè)備連接有效,調(diào)用函數(shù)BulkRead(int pipenum,WORD*pdata,int length)將數(shù)據(jù)讀入計(jì)算機(jī),對其參數(shù)配置后如圖4所示,完成配置后函數(shù)為:int16_t BulkRead(int8_t pipenum,void*pdata,int32_t length);
圖3 TranVerCmmd函數(shù)CIN配置Fig.3 RanVerCmmd function CIN configuration
圖4 BulkRead函數(shù)CIN配置Fig.4 BulkRead function CIN configuration
在調(diào)用DLL時,采用顯示調(diào)用方式,僅在進(jìn)程或線程中需要調(diào)用DLL函數(shù)時加載文件,在進(jìn)程或者線程運(yùn)行完畢后即卸載DLL,這樣避免了在系統(tǒng)啟動時,加載大量的DLL文件,有效地節(jié)省內(nèi)存空間
2.2.2串口通信 當(dāng)選擇RS232口進(jìn)行通信時,使用LabVIEW內(nèi)置的串口通信函數(shù),配置串口參數(shù)(打開串口)→發(fā)送或接收數(shù)據(jù)→關(guān)閉串口.LabVIEW串口通信支持字節(jié)發(fā)送和ASCII字符串發(fā)送兩種通信方式.如果發(fā)送的字符串是以正常方式顯示的字符串,則發(fā)送的是字符串的ASCII,串口通信為ASCII字符串方式;如果發(fā)送的字符串是以HEX方式顯示的字節(jié),則發(fā)送的是為字節(jié),字節(jié)通信方式多用于直接傳輸十六進(jìn)制數(shù)字.
串口通信4個最基本的函數(shù)為:VISA配置串口、VISA讀取、VISA寫入和VISA關(guān)閉.圖5為串口讀數(shù)程序框圖,將讀取指定的字節(jié)數(shù).
2.3詳細(xì)設(shè)計(jì)
用戶登錄界面如圖6所示.登錄窗口是以子VI的形式被調(diào)用,設(shè)置其屬性為調(diào)用時顯示前面板.系統(tǒng)還支持無鼠標(biāo)操作,即在只有鍵盤的情況下用戶可以使用Tab鍵和Enter鍵完成對系統(tǒng)的操作.用戶成功登陸后,系統(tǒng)主界面彈出,用戶根據(jù)功能按鈕.主界面如圖7所示.
圖5 串口讀數(shù)Fig.5 Serial reading
圖6 登錄窗口Fig.6 login window
圖7 系統(tǒng)前面板Fig.7 System front panel
圖8 試驗(yàn)驗(yàn)證圖Fig.8 Test verification
系統(tǒng)主要由While循環(huán)和事件結(jié)構(gòu)聯(lián)合,在順序結(jié)構(gòu)中完成.最外層的是共有兩幀的層疊式順序結(jié)構(gòu),第一幀主要完成對登錄子VI的調(diào)用和登錄時主界面控件的禁用,并初始化波形圖.第二幀內(nèi)嵌了While循環(huán)和事件結(jié)構(gòu),分別響應(yīng)前面板控件對應(yīng)的事件.事件結(jié)構(gòu)中的超時結(jié)構(gòu)功能:無論用戶對圖形進(jìn)行放大還是縮小操作,創(chuàng)建的兩個游標(biāo)始終在波形圖中顯示,便于用戶讀取圖形任意點(diǎn)的坐標(biāo)和計(jì)算兩點(diǎn)間的坐標(biāo)差.事件結(jié)構(gòu)的其他分支處理電路編程、采樣讀數(shù)、讀取文件等事件.在實(shí)現(xiàn)系統(tǒng)基本功能之后,還增加了撤銷、導(dǎo)出波形等功能.用戶誤操作時,點(diǎn)擊撤銷可以回到上一步操作狀態(tài);導(dǎo)出波形響應(yīng)將當(dāng)前圖形以圖形文件形式存儲到任意位置的事件.系統(tǒng)在設(shè)計(jì)過程中被逐步完善和修飾.
軟件或程序的可延展性和較高的動態(tài)響應(yīng)性是未來發(fā)展的趨勢,無論上層要求的復(fù)雜性和多重性,軟件的功能會一直增加和完善下去,如果軟件或程序的可延展性得不到大力度的執(zhí)行,那么軟件的生命周期將會很短,一些新的任務(wù)將會難以實(shí)現(xiàn)[5].由于數(shù)據(jù)采集系統(tǒng)有著清晰的層次結(jié)構(gòu),設(shè)計(jì)符合高內(nèi)聚低耦合的軟件架構(gòu),且通信接口可選擇USB接口或串口,具有很好的靈活性和可擴(kuò)展性,對后期的改進(jìn)和新需求提供了可能和便利.系統(tǒng)還具有一定的容錯性,程序中放置了簡易錯誤處理器,能響應(yīng)部分突發(fā)異常事件,用戶可放心使用.
2.4試驗(yàn)驗(yàn)證
該軟面板廣泛應(yīng)用于本實(shí)驗(yàn)室數(shù)據(jù)采集系統(tǒng)中,圖8為在四通道數(shù)據(jù)采集系統(tǒng)中經(jīng)采樣讀數(shù)讀回來的數(shù)據(jù)波形,可以通過圖形工具選板對波形縮放,對數(shù)據(jù)進(jìn)行濾波、波形導(dǎo)出等處理,還能分通道顯示波形圖等,功能均可以正確地實(shí)現(xiàn).
數(shù)據(jù)采集系統(tǒng)上位機(jī)軟件為用戶與“黑匣子”之間打開了一扇窗戶,用戶不需要了解系統(tǒng)硬件的結(jié)構(gòu),也不需要懂得LabVIEW的內(nèi)部語法,只需緊跟系統(tǒng)的Tip提示和對話框提示使用鍵盤或鼠標(biāo),就能觀察所需波形和數(shù)據(jù),并存儲、處理等.數(shù)據(jù)能存儲在能以字處理軟件打開的文件中,波形圖可以以.bmp或.emf等圖形文件格式存儲,文件格式存儲,方便用戶后期完成對采集回來的數(shù)據(jù)進(jìn)行下一步諸如濾波、定標(biāo)、積分、報告等一系列的處理,這些步驟都是利用了強(qiáng)大功能的LabVIEW,使與用戶面對面交流的采集體通軟面板功能更加完善,可延展性更強(qiáng),經(jīng)實(shí)驗(yàn)證明,該軟件方便、友好、簡潔,自動化程度高,大大降低了測試人員的工作強(qiáng)度.
[1]黃豪彩,楊燦軍.基于LabVIEW的深海氣密采水器測控系統(tǒng)[J].儀器儀表學(xué)報,2011,32(1):40-45.
[2]劉珊珊.基于LabVIEW的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)及應(yīng)用[D].太原:中北大學(xué),2012.
[3]譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2005.
[4]陳樹學(xué),劉萱.LabVIEW寶典[M].北京:電子工業(yè)出版社,2011.
[5]陳錫輝,張銀鴻.LabVIEW8.20程序設(shè)計(jì)從入門到精通[M].北京:清華大學(xué)出版社,2007.
責(zé)任編輯:時 凌
Software Design of Host Computer of Data Acquisition System
ZHANG Jing
(Department of Informational Engineering,Shanxi Vocational College of Finance&Trade,Taiyuan 030031,China)
Directing at the fact that the tar programming languagte is complicated and the development cycle is long in the field of test and measurement,this paper,based on the LabVIEW platform,designed the control software of data acquisition system,which can complete the circuit programming,sample readings,and other functions through the USB interface and a serial port communication.In the experiments of four-channel data acquisition systemthe software has successfully completed the data acquisition,display,storage,back reading,scaling,etc.The experimental results show that the software is reliable in operation.
LabVIEW;data acquisition;host computer
TP273.5
A
1008-8423(2015)04-0409-03DOI:10.13501/j.cnki.42-1569/n.2015.12.014
2015-11-09.
山西省教育科學(xué)研究院重點(diǎn)實(shí)驗(yàn)室基金項(xiàng)目(SN201408).
張晶(1982-),男,講師,主要從事計(jì)算機(jī)網(wǎng)絡(luò)的研究.