溫曉行,李彬,謝啟,徐惠鋼,顧啟民
(常熟理工學(xué)院電氣與自動(dòng)化工程學(xué)院,江蘇常熟 215500)
條碼技術(shù)是集光電、計(jì)算機(jī)和通信等多種技術(shù)于一體的一門綜合性科學(xué)技術(shù),主要涵蓋一維條碼技術(shù)、二維條碼技術(shù)。從條碼符號(hào)的生成到檢測(cè)、從條碼的識(shí)讀到條碼的應(yīng)用,條碼技術(shù)已經(jīng)形成了集編碼技術(shù)、載體技術(shù)、識(shí)讀技術(shù)以及應(yīng)用技術(shù)的技術(shù)體系。作為信息數(shù)據(jù)自動(dòng)識(shí)別、輸入的重要方法和有效手段,條碼已成為一種推動(dòng)經(jīng)濟(jì)發(fā)展和社會(huì)進(jìn)步的重要力量。掃描技術(shù)可以與電腦程序進(jìn)行通信,完成條碼掃描的功能,常用的電腦程序是采用VB、Visual C++等編寫的[1-2]。
虛擬儀器的概念是由美國(guó)國(guó)家儀器公司最先提出的。所謂虛擬儀器是基于計(jì)算機(jī)的軟硬件測(cè)試平臺(tái),它可代替?zhèn)鹘y(tǒng)的測(cè)量?jī)x器,如示波器、邏輯分析儀、信號(hào)發(fā)生器、頻譜分析儀等,可集成于自動(dòng)控制、工業(yè)控制系統(tǒng)之中,可自由構(gòu)建專有儀器系統(tǒng)。虛擬儀器是智能儀器之后的新一代測(cè)量?jī)x器。虛擬儀器的核心技術(shù)思想就是“軟件即是儀器”。該技術(shù)把儀器分為計(jì)算機(jī)、儀器硬件和應(yīng)用軟件三部分。
虛擬儀器以通用計(jì)算機(jī)和配備標(biāo)準(zhǔn)數(shù)字接口的測(cè)量?jī)x器為基礎(chǔ),將儀器硬件連接到各種計(jì)算機(jī)平臺(tái)上,直接利用計(jì)算機(jī)豐富的軟硬件資源,將計(jì)算機(jī)硬件和測(cè)量?jī)x器等硬件資源與計(jì)算機(jī)軟件資源有機(jī)地結(jié)合起來(lái)[3]。
文中采用LabVIEW 圖形編程語(yǔ)言設(shè)計(jì)出條碼掃描和顯示界面,然后,通過(guò)串口來(lái)實(shí)現(xiàn)條碼掃描器的控制與條碼數(shù)據(jù)的讀取,完成對(duì)條碼的采集和處理,可采集和多通道顯示條碼數(shù)據(jù)。
許多掃描程序都采用C++、VB 等軟件實(shí)現(xiàn),但是,隨著科學(xué)技術(shù)的發(fā)展,一種虛擬儀器技術(shù)誕生,利用目前比較流行的LabVIEW 開發(fā)環(huán)境,編程實(shí)現(xiàn)能對(duì)條碼進(jìn)行掃描和多工位顯示的程序。虛擬儀器技術(shù)的核心是軟件,其軟件基本結(jié)構(gòu)如圖1 所示。
虛擬儀器多工位條碼掃描系統(tǒng)的設(shè)計(jì)包括兩個(gè)部分,分別為前面板設(shè)計(jì)與程序框圖設(shè)計(jì),下面對(duì)系統(tǒng)設(shè)計(jì)進(jìn)行詳細(xì)的介紹。
圖1 虛擬儀器軟件結(jié)構(gòu)
一個(gè)好的可視化程序離不開界面的設(shè)計(jì),界面設(shè)計(jì)是否合理直接影響程序的運(yùn)行和使用。LabVIEW的界面設(shè)計(jì)就是前面板設(shè)計(jì),為了實(shí)現(xiàn)多工位條碼掃描和顯示,就需要在界面上設(shè)計(jì)多個(gè)數(shù)據(jù)顯示控件;數(shù)據(jù)顯示之后,如果想要對(duì)條碼進(jìn)行處理可以單擊“下一步”按鈕;為了增加系統(tǒng)的靈活性,還設(shè)置了“退出”按鈕,直接退出程序;為了更加人性化,在界面還設(shè)置了提示信息,防止人員錯(cuò)誤操作;同時(shí),在前面板上添加了檢驗(yàn)員編號(hào)輸入控件,可以將檢驗(yàn)人的信息與條碼綁定,更加貼近實(shí)際工程測(cè)試項(xiàng)目的要求。系統(tǒng)的界面設(shè)計(jì)圖如圖2 所示。
圖2 多工位條碼掃描前面板
多條形碼的功能是對(duì)掃描的條碼進(jìn)行多工位選擇,要完成這個(gè)功能,在程序框圖中需要分幾個(gè)步驟實(shí)現(xiàn):(1)在程序運(yùn)行之前,要對(duì)程序初始化;(2)程序運(yùn)行的時(shí)候,要判斷條形碼位數(shù)是否符合,再進(jìn)行顯示;(3)程序運(yùn)行之后,選擇進(jìn)入下一步或者退出程序。
基于上面的思路,LabVIEW 后面板的程序采用幀結(jié)構(gòu),內(nèi)部共分4 個(gè)幀:第一個(gè)幀主要對(duì)程序界面的工位顯示控件、“進(jìn)入下一步”和“退出”按鈕進(jìn)行初始化;第二個(gè)幀完成測(cè)試工位選擇和功能選擇,選擇不同的工位可以控制條碼顯示的位置,每個(gè)工位又有是否測(cè)試的功能選擇按鈕。為了增加實(shí)用性,此程序增加了對(duì)采集的數(shù)據(jù)的位數(shù)進(jìn)行判斷的功能,如果符合標(biāo)準(zhǔn),就在對(duì)應(yīng)的工位顯示,否則,不輸出條碼;第三幀是對(duì)提示信息進(jìn)行點(diǎn)亮操作,增加美觀;第四幀是在程序運(yùn)行之后,對(duì)是否退出程序進(jìn)行判斷,從而實(shí)現(xiàn)了程序的整個(gè)操作過(guò)程。程序框圖設(shè)計(jì)如圖3、4 所示。
圖3 掃描數(shù)據(jù)位數(shù)判斷
圖4 掃描條碼多工位顯示
特別需要指出,在第二幀中,LabVIEW 程序中的讀取數(shù)據(jù)端口采用的是VISA 配置串口。其控件接線端子如圖5 所示。
圖5 VISA 配置串口
啟用終止符使串行設(shè)備做好識(shí)別終止符的準(zhǔn)備,如值為TRUE (默認(rèn)),VI_ATTR_ASRL_END_IN 屬性將被設(shè)置為識(shí)別終止符,如值為 FALSE,VI_ATTR_ASRL_END_IN 屬性將被設(shè)置為0 (無(wú))且串行設(shè)備不識(shí)別終止符。終止符通過(guò)調(diào)用終止讀取操作,從串行設(shè)備讀取終止符后讀取操作將終止。超時(shí)設(shè)置讀取和寫入操作的超時(shí)值,以ms 為單位,默認(rèn)值為10 000。VISA 資源名稱指定要打開的資源,該控件也可指定會(huì)話句柄和類。波特率是傳輸速率,默認(rèn)值為9 600。數(shù)據(jù)比特是輸入數(shù)據(jù)的位數(shù),其值介于5 和8 之間,默認(rèn)值為8。奇偶指定要傳輸或接收的每一幀所使用的奇偶校驗(yàn)。錯(cuò)誤輸入表明VI 或函數(shù)運(yùn)行前發(fā)生的錯(cuò)誤,默認(rèn)值為無(wú)錯(cuò)誤,如錯(cuò)誤發(fā)生在VI 或函數(shù)運(yùn)行之前,VI 或函數(shù)將把錯(cuò)誤輸入值傳遞至錯(cuò)誤輸出;如在VI 或函數(shù)運(yùn)行前沒(méi)有發(fā)生錯(cuò)誤,VI 或函數(shù)將正常運(yùn)行;如在VI 或函數(shù)運(yùn)行時(shí)發(fā)生錯(cuò)誤,VI 或函數(shù)將正常運(yùn)行并在錯(cuò)誤輸出中設(shè)置自身的錯(cuò)誤狀態(tài)。簡(jiǎn)易錯(cuò)誤處理器或通用錯(cuò)誤處理器VI可用于顯示錯(cuò)誤代碼的說(shuō)明信息。停止位指定用于表示幀結(jié)束的停止位的數(shù)量。流控制設(shè)置傳輸機(jī)制使用的控制類型。VISA 資源名稱輸出是由VISA 函數(shù)返回的VISA 資源名稱的副本。錯(cuò)誤輸出包含錯(cuò)誤信息,如錯(cuò)誤輸入表明在VI 或函數(shù)運(yùn)行前已發(fā)生錯(cuò)誤,錯(cuò)誤輸出將包含相同的錯(cuò)誤信息;否則,表明VI 或函數(shù)中出現(xiàn)的錯(cuò)誤狀態(tài)。右鍵單擊錯(cuò)誤輸出的前面板顯示控件,從快捷菜單中選擇解釋錯(cuò)誤可獲取更多關(guān)于該錯(cuò)誤的信息[4]。
該系統(tǒng)使用的條碼掃描槍是蘇州力象電腦有限公司生產(chǎn)的ARGOX-8520 條碼掃描槍,該條碼掃描槍的掃描距離為0~600 mm,掃描寬度0~160 mm,最大掃描速率450 次/s,該掃描槍采用RS232 串口與電腦通信。
I/O 接口設(shè)備主要用來(lái)完成對(duì)被測(cè)輸入信號(hào)進(jìn)行采集、放大、模數(shù)轉(zhuǎn)換。可根據(jù)實(shí)際需要采用不同的I/O 接口硬件設(shè)備,如數(shù)據(jù)采集卡、GPIB 總線儀器、VXI 總線儀器、串口儀器、USB 等。數(shù)據(jù)采集卡的信號(hào)處理功能強(qiáng)大,GPIB 和VXI 總線儀器傳輸數(shù)據(jù)速度較快,但是價(jià)格昂貴。
串口系統(tǒng)是以Serial 標(biāo)準(zhǔn)總線儀器與計(jì)算機(jī)為儀器精簡(jiǎn)平臺(tái)組成的虛擬測(cè)試系統(tǒng)。RS232 總線是早期采用的通用串行總線,將帶有RS232 標(biāo)準(zhǔn)總線接口的儀器作為I/O 接口設(shè)備,通過(guò)RS232 串口總線與計(jì)算機(jī)組成虛擬儀器系統(tǒng)目前仍然是虛擬儀器構(gòu)成方式之一,主要適用于速度較低的測(cè)試系統(tǒng),RS232 的針腳如表1 所示。由于該條碼掃描系統(tǒng)是低速掃描,不需要較高速率的數(shù)據(jù)通信線,故采用搭配RS232 串口通信線的條碼掃描槍[5]。
表1 RS232 串口針腳
連接好掃描槍和LabVIEW 程序口,在程序運(yùn)行之前,先選擇程序框圖中第二幀的VISA 配置串口的資源名稱,當(dāng)PC 機(jī)與外部硬件連接完成,則可以在程序框圖的I/O 口處選擇連接對(duì)應(yīng)的端子。點(diǎn)擊運(yùn)行程序,選定光標(biāo)所在的工位,通過(guò)條碼掃描槍掃描條碼,即可在程序的對(duì)應(yīng)工位顯示條碼數(shù)字,單擊“退出”按鈕可以退出程序。其程序運(yùn)行結(jié)果如圖6所示。
圖6 條碼掃描運(yùn)行界面
對(duì)于條碼掃描的實(shí)現(xiàn),已經(jīng)有了一些比較成熟的程序語(yǔ)言可以實(shí)現(xiàn)軟件編程采集條碼數(shù)據(jù)。文中基于目前比較流行的虛擬儀器技術(shù),設(shè)計(jì)了LabVIEW 程序與外部掃描設(shè)備進(jìn)行連接,完成條碼掃描數(shù)據(jù)的顯示和操作。在程序的設(shè)計(jì)中,充分利用了虛擬儀器編程周期短、圖形化編程的特點(diǎn),程序的實(shí)現(xiàn)結(jié)果也達(dá)到設(shè)計(jì)的目標(biāo),可以直接應(yīng)用于實(shí)際生活與生產(chǎn)中。
[1]中國(guó)物品編織中心,中國(guó)自動(dòng)識(shí)別協(xié)會(huì).條碼技術(shù)基礎(chǔ)[M].武漢:武漢大學(xué)出版社,2008:1 -4.
[2]劉志海,萬(wàn)麗榮,宋作玲.條碼技術(shù)及程序設(shè)計(jì)案例[M].北京:化學(xué)工業(yè)出版社,2009.
[3]李江全,劉恩博,胡蓉,等.LabVIEW 虛擬儀器數(shù)據(jù)采集與串口通信測(cè)控應(yīng)用實(shí)戰(zhàn)[M].北京:人民郵電大學(xué)出版社,2010.
[4]陳樹學(xué),劉萱.LabVIEW 寶典[M].北京:電子工業(yè)出版社,2011.
[5]胡成華,劉傳瑞,郭文生.嵌入式網(wǎng)絡(luò)編程:串口通信、工業(yè)總線、傳感器網(wǎng)絡(luò)應(yīng)用開發(fā)[M].北京:電子工業(yè)出版社,2012.