楊進(jìn)成,夏春蕾,戴曙光
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
?
基于LabVIEW的無(wú)線遙控汽車(chē)檢測(cè)臺(tái)設(shè)計(jì)
楊進(jìn)成,夏春蕾,戴曙光
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
針對(duì)傳統(tǒng)汽車(chē)檢測(cè)耗時(shí)長(zhǎng)、統(tǒng)計(jì)復(fù)雜等問(wèn)題,在LabVIEW軟件基礎(chǔ)上,通過(guò)CAN通信協(xié)議等,提出了汽車(chē)遙控?cái)?shù)據(jù)檢測(cè)系統(tǒng)設(shè)計(jì)的方法。采用CAN通訊協(xié)議、無(wú)線遙控、USB驅(qū)動(dòng)、打印機(jī)設(shè)計(jì)等,可快速完成向工控機(jī)發(fā)送控制命令,實(shí)現(xiàn)汽車(chē)功能的檢測(cè),并以Excel格式記憶所有的檢測(cè)結(jié)果,其具有快速、穩(wěn)定、實(shí)時(shí)記錄與打印的性能。實(shí)際結(jié)果表明,該系統(tǒng)在檢測(cè)行業(yè)、尤其汽車(chē)檢測(cè)方面具有廣泛的使用價(jià)值。
無(wú)線自動(dòng)化測(cè)試;CAN總線;LabVIEW;動(dòng)態(tài)調(diào)用鏈接庫(kù)
YANG Jincheng, XIA Chunlei, DAI Shuguang
(School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology,Shanghai 200093, China)
控制器局部網(wǎng)(CAN總線),解決了汽車(chē)電子設(shè)備之間的通信問(wèn)題,減少電子設(shè)備之間繁多的信號(hào)線[1]。作為當(dāng)前流行的網(wǎng)絡(luò)通信控制方式,其性能遠(yuǎn)高于傳統(tǒng)的控制方式。CAN總線系統(tǒng)數(shù)據(jù)穩(wěn)定可靠,具有線間干擾小、抗干擾能力強(qiáng)的特點(diǎn)[2]。汽車(chē)的集成化模塊及功能日益豐富,使用傳統(tǒng)的汽車(chē)檢測(cè)方法,會(huì)造成人力、物力的大量投入。因此,CAN通信在汽車(chē)上的應(yīng)用,使大量的檢測(cè)得到簡(jiǎn)化。
此設(shè)計(jì)是基于LabVIEW軟件平臺(tái)上的,利用CAN通訊協(xié)議,完成汽車(chē)與工控機(jī)的信息傳輸。再結(jié)合無(wú)線遙控功能,搭建無(wú)線控制汽車(chē)檢測(cè)系統(tǒng)。主要運(yùn)用到汽車(chē)生產(chǎn)檢測(cè),有效、快速幫助使用者遙控完成生產(chǎn)測(cè)試。在生產(chǎn)方面,主要通過(guò)CAN通信點(diǎn)亮汽車(chē)儀表盤(pán)功能以及車(chē)用DVD部分,通過(guò)控制高低電平、PWM信號(hào)等完成檢測(cè)。用戶通過(guò)無(wú)線工業(yè)遙控器進(jìn)行遙控操作,同時(shí)打印不符合要求的儀器。所有的操作數(shù)據(jù)會(huì)以Excel格式記錄。從而完成生產(chǎn)上快速檢測(cè)任務(wù)。
無(wú)線遙控汽車(chē)檢測(cè)臺(tái)是由上位機(jī)、下位機(jī)和信道組成。主要由遙控信號(hào)經(jīng)過(guò)信道驅(qū)動(dòng)上位機(jī);上位機(jī)獲得信號(hào)后,再通過(guò)信道給下位機(jī)發(fā)送命令,并同時(shí)將數(shù)據(jù)反饋給上位機(jī);再將數(shù)據(jù)加以處理得到最終的檢測(cè)結(jié)果。
常見(jiàn)的控制方式有有線控制和無(wú)線控制兩種。有線控制方式具有可拓行差、造價(jià)高等缺點(diǎn),但其穩(wěn)定性、控制范圍明顯高于無(wú)線控制[3]。選擇無(wú)線方式的原因:(1)在汽車(chē)生產(chǎn)上,控制范圍的要求較低;(2)需要無(wú)線通信的信息較少且單一,并可重復(fù)操作;(3)由于對(duì)節(jié)拍的要求較為嚴(yán)格,有線操作會(huì)給操作帶來(lái)不便。綜上所述,無(wú)線控制的優(yōu)勢(shì)明顯高于有線控制。
2.1 硬件的總體接線
無(wú)線遙控汽車(chē)檢測(cè)臺(tái)的硬件系統(tǒng)設(shè)計(jì)構(gòu)成,如圖1所示。
圖1 硬件總體搭建圖
采用Passthru+XS 2G車(chē)輛通訊模塊作為汽車(chē)檢驗(yàn)的下位機(jī)系統(tǒng)控制核心。Passthru+XS 2G具有藍(lán)牙通訊功能,完全兼容J2634和J2534-1標(biāo)準(zhǔn),可提供自由的無(wú)線通訊功能[4]。CAN供電電壓為12 V,供電信號(hào)接歐姆龍的常開(kāi)端,觸發(fā)信號(hào)來(lái)自工控機(jī)。此外,CAN+、CAN-接口直接與工控機(jī)連接。
工控機(jī)作為上位機(jī)的控制核心??刂圃磥?lái)自人為的近程遙控,通過(guò)無(wú)線遙控技術(shù)和工控機(jī)建立通訊。工控機(jī)接到信息源,會(huì)自動(dòng)完成儀器供電、儀器驅(qū)動(dòng)、控制發(fā)送、接收信息及處理、結(jié)束任務(wù)一系列的流程。
2.2 工控機(jī)與無(wú)線遙控器的接口設(shè)計(jì)
無(wú)線遙控具有開(kāi)始、啟動(dòng)、結(jié)束3個(gè)功能鍵。但控制器不能直接控制工控機(jī),中間需要一個(gè)媒介。7052D作為有源8路隔離數(shù)字量模塊,充當(dāng)了工控機(jī)和遙控器之間的橋梁。7052D具有安全性高、通用性好、性能優(yōu)良、快速組網(wǎng)等優(yōu)點(diǎn)。能穩(wěn)定、快速、方便地完成遙控信號(hào)與工控機(jī)的無(wú)線通訊。遙控器的相應(yīng)I/O控制接口與7052D的IN0+、IN0-;IN1+、IN1-;IN2+、IN2-串聯(lián)通信。有源電壓選擇為24 V。而工控機(jī)和7052D之間采用多點(diǎn)分布式的RS-485串口通信方式。
2.3 工控機(jī)與繼電器的通訊方式
歐姆龍XD-J16H-V2具有多通道,每塊具有16個(gè)獨(dú)立通道,且可進(jìn)行多機(jī)級(jí)聯(lián),最多達(dá)到256個(gè)通道同時(shí)通信,只需修改設(shè)置地址便可分別控制。滿足了本設(shè)計(jì)控制信號(hào)較多、工控機(jī)接口缺少的問(wèn)題,且與LabVIEW具有較好的兼容性。選擇RS-485轉(zhuǎn)RS-232的通訊方式。此外,RS-485統(tǒng)一增加了COM接線,從而增強(qiáng)信息傳遞的穩(wěn)定性。
3.1 LabVIEW的主流程
虛擬儀器程序可監(jiān)視實(shí)時(shí)狀態(tài)[5]。上位機(jī)的控制流程如圖2所示。首先,只需對(duì)汽車(chē)檢測(cè)臺(tái)上電和啟動(dòng)工控機(jī),就會(huì)直接完成LabVIEW的自啟動(dòng)和工控機(jī)與Passthru+XS 2G等串口的初始化、自啟動(dòng)作業(yè)。其次,需要遙控信號(hào)或手動(dòng)控制PC機(jī)才能觸發(fā)之后的一系列自動(dòng)流程。依次完成CAN、PWM信號(hào)發(fā)生器、繼電器的工作參數(shù)、工作模式、控制指令的發(fā)送等,并對(duì)所需檢測(cè)的項(xiàng)目全部通訊。最后,在檢測(cè)的同時(shí)采集反饋信息,經(jīng)過(guò)算法的判斷得出是否合格,任何一項(xiàng)不合格則顯示總體不合格。但數(shù)據(jù)報(bào)表存儲(chǔ)時(shí)會(huì)記錄具體哪項(xiàng)不合格,方便針對(duì)性處理。
圖2 軟件設(shè)計(jì)流程圖
上位機(jī)的設(shè)計(jì)構(gòu)架為隊(duì)列狀態(tài)機(jī),為保證數(shù)據(jù)的實(shí)時(shí)性,采用多線程的處理方式。設(shè)計(jì)的主VI中包含兩大子VI:(1)負(fù)責(zé)指令控制和流程控制的子VI;(2)負(fù)責(zé)數(shù)據(jù)采集及判斷檢測(cè)項(xiàng)的合格與否的子VI。此外,使用事件結(jié)構(gòu)、隊(duì)列、順序結(jié)構(gòu)使空閑狀態(tài)下基本不占用CPU,從而能較好地響應(yīng)前面板動(dòng)作和外部時(shí)間[6];保證了“一鍵式”功能的時(shí)效性。圖3為主VI的程序框圖框架。
圖3 LabVIEW主VI程序框圖
3.2 CAN總線報(bào)文設(shè)計(jì)
Passthru+XS 2G采用了車(chē)輛診斷協(xié)議SAE J2534-2的通訊協(xié)議,該協(xié)議允許使用再編程軟件。在CAN總線上傳輸?shù)男畔⒎Q(chēng)為報(bào)文[7]。CAN報(bào)文有兩種不同的幀格式,分別為標(biāo)準(zhǔn)幀和擴(kuò)展幀,每種幀下又包含幾種子幀。通道的建立與相互之間的通信是通過(guò)CAN報(bào)文來(lái)控制的。下面是報(bào)文的部分設(shè)置:
(1)通信速率。CAN總線技術(shù)摒棄了傳統(tǒng)的站地址編碼,通信速率可達(dá)1 Mbit·s-1[8]。在串口通信中,通信速率決定了收發(fā)數(shù)據(jù)的成功與否。此設(shè)計(jì)的通訊速率和pProtocolID的選擇有關(guān),在此選擇CAN,對(duì)應(yīng)的波特率為500 000 bit·s-1;
(2)報(bào)文類(lèi)型。CAN報(bào)文有兩種幀格式,其區(qū)別就在于標(biāo)識(shí)符,分別為標(biāo)準(zhǔn)標(biāo)識(shí)符(11位)和擴(kuò)展標(biāo)識(shí)符(29位)。此設(shè)計(jì)選擇標(biāo)準(zhǔn)幀,即報(bào)文長(zhǎng)度為8 Bytes,標(biāo)識(shí)符位于仲載段,仲載的機(jī)制確保了報(bào)文和時(shí)間均不損失[9];
(3)報(bào)文發(fā)送類(lèi)型。由于儀表接受效果具有暫時(shí)性,每隔一個(gè)周期要發(fā)送一次指令。所以報(bào)文設(shè)為Cycle模式,發(fā)送周期視指令而定;
(4)報(bào)文分配。有些檢測(cè)的精度要求較高,例如轉(zhuǎn)速。此時(shí),信號(hào)長(zhǎng)度就要求較長(zhǎng),需要一個(gè)特定報(bào)文標(biāo)識(shí)符ID。而一些布爾類(lèi)型信號(hào)只需1 bit,將這些布爾型號(hào)分配到一個(gè)報(bào)文標(biāo)識(shí)符,大幅縮減CAN的負(fù)載。
3.3 CAN數(shù)據(jù)動(dòng)態(tài)鏈接庫(kù)驅(qū)動(dòng)程序設(shè)計(jì)
CAN數(shù)據(jù)動(dòng)態(tài)鏈接庫(kù)是實(shí)現(xiàn)LabVIEW與CAN模塊之間的驅(qū)動(dòng)程序。采用多線程的串口通信方式,實(shí)現(xiàn)汽車(chē)檢測(cè)數(shù)據(jù)的控制與采集。在進(jìn)行上電后,首先準(zhǔn)備鏈接設(shè)備、初始化;主要清除上次暫留的配置信息。配置信息主要在PassThruConnect()和PassThruSystemFilter()配置。主要包含標(biāo)志寄存器、波特率、時(shí)間間隔、濾波方式等。隨后就是寫(xiě)命令、讀采集數(shù)據(jù)等事件。不判斷是否合格(在工控機(jī)LabVIEW中實(shí)現(xiàn)),簡(jiǎn)要代碼如下:
PassThruOpen(); 準(zhǔn)備設(shè)備鏈接
PassThruSystemInit(); 系統(tǒng)初始化
PassThruStartMsgFilter(); 系統(tǒng)配置與濾波處理
While(PassThruStop()){ 周期性寫(xiě)命令,讀采集數(shù)據(jù)
PassThruPeriodicWrite();
PassThruDelay(TimeInterval);
PassThruPeriodicWrite();
PassThruStop(); 設(shè)置停止}
PassThruPeriodicStopMsg();停止周期讀寫(xiě)
同樣,《荊軻刺秦王》一文在敘述故事情節(jié)時(shí)詳略的處理也是很講究的,在“行刺前的準(zhǔn)備”這一環(huán)節(jié)中,作者對(duì)能夠表現(xiàn)荊軻形象特征的求取信物(取樊於期人頭)、易水訣別兩個(gè)情節(jié)進(jìn)行了詳細(xì)的敘述、描寫(xiě),而對(duì)準(zhǔn)備武器、副手、地圖這些不能夠直接反應(yīng)荊軻形象的情節(jié)則是采用了略寫(xiě)的方式。另外,作者還詳寫(xiě)了“廷刺秦王”(計(jì)見(jiàn)秦王、顧笑武陽(yáng)、秦廷搏擊、倚柱笑罵)部分,將荊軻的沉穩(wěn)剛毅、機(jī)智勇敢等形象表現(xiàn)得淋漓盡致,而對(duì)行刺的緣起和行刺的結(jié)局只用了很少的筆墨來(lái)交代。
PassThruDisconnect(); 斷開(kāi)鏈接
PassThruClose(); 關(guān)閉設(shè)備
下位機(jī)的底層開(kāi)發(fā)基于C語(yǔ)言,使用Visual Studio 2013平臺(tái)進(jìn)行設(shè)計(jì)和封裝。LabVIEW和DLL之間的聯(lián)系必須通過(guò)接口進(jìn)行通訊。數(shù)據(jù)接口函數(shù)就是作為L(zhǎng)abVIEW應(yīng)用程序調(diào)用動(dòng)態(tài)鏈接庫(kù)的入口[10],充當(dāng)著重要的角色,不僅可傳送數(shù)據(jù)配置參數(shù)、接收上位機(jī)下達(dá)的控制命令;還完成數(shù)據(jù)采集與轉(zhuǎn)達(dá)的功能。DLL各個(gè)狀態(tài)時(shí)的參數(shù)不同;下面以PassThruStartMsgFilter()的接口參數(shù)為例:
Const uint pFilter,ChannelID,FilterType;
Const void *pPatternMsg,*pMaskMsg,
*pFlowControlMsg; 介紹接口
如ChannelID的類(lèi)型為常量無(wú)符號(hào)整型,此參數(shù)指定SAEJ2534協(xié)議連接的物理層,選擇CAN,DLL配置中選擇值。“*”代表指針,DLL配置中選擇指針。LabVIEW調(diào)用DLL的子VI配置前面板如圖4所示。
圖4 DLL子VI配置面板
3.4 工控機(jī)VISA串口通信設(shè)計(jì)
汽車(chē)檢測(cè)臺(tái)用了兩大類(lèi)的串口通信方式:一種是動(dòng)態(tài)調(diào)用的通信方式,運(yùn)用在CAN、打印機(jī)設(shè)備上;第二種是NI VISA的通訊方式,運(yùn)用在PWM發(fā)生器、歐姆龍繼電器、7052D等產(chǎn)品上。相對(duì)動(dòng)態(tài)調(diào)用鏈接,NI VISA的優(yōu)勢(shì)明顯。找到正確USB接口作為VISA Resourse Name,配置參數(shù)要求和設(shè)備參數(shù)一致,便可完成設(shè)備的連接。然后就可發(fā)送正確的指令,完成設(shè)備與LabVIEW的正確通信。工控機(jī)VISA串口通信的程序如圖5所示。
圖5 VISA串口通信基本流程
CAN總線網(wǎng)絡(luò)通信和診斷的自動(dòng)化集成測(cè)試,大幅提高了測(cè)試效率和精度,降低了測(cè)試的工作強(qiáng)度,同時(shí)保證了測(cè)試的一致性[11]。每一臺(tái)汽車(chē)的檢測(cè)過(guò)程前面板,如圖6所示。
圖6 檢測(cè)過(guò)程及結(jié)果
檢測(cè)過(guò)程包括:給被檢測(cè)項(xiàng)供電;檢測(cè)CAN數(shù)字信號(hào)以外檢測(cè)項(xiàng);檢測(cè)有關(guān)CAN控制的檢測(cè)項(xiàng);關(guān)閉;所有狀態(tài)均OK,則結(jié)果合格;否則,不合格。
實(shí)驗(yàn)結(jié)果表明:(1)使用動(dòng)態(tài)調(diào)用鏈接可與LabVIEW進(jìn)行穩(wěn)定、快速地通信。對(duì)下位機(jī)的控制具有較好的時(shí)效性;(2)無(wú)線遙控汽車(chē)檢測(cè)臺(tái)可滿足汽車(chē)生產(chǎn)的要求;能在15 s完成一臺(tái)汽車(chē)的檢測(cè);(3)數(shù)據(jù)收集事件能準(zhǔn)確保存預(yù)期的效果;能準(zhǔn)確地判斷出產(chǎn)品出錯(cuò)的時(shí)間和名稱(chēng)。滿足了汽車(chē)檢測(cè)的需求。
[1] 牛躍聽(tīng),周立功,方丹,等.CAN總線嵌入式開(kāi)發(fā):從入門(mén)到實(shí)戰(zhàn)[M].北京:北京航空航天大學(xué)出社,2012.
[2] 符策偉.汽車(chē)CAN總線技術(shù)及其故障診斷[C].???“綠色制造與質(zhì)量管理”——海南省機(jī)械工程學(xué)會(huì)、海南省機(jī)械工業(yè)質(zhì)量管理協(xié)會(huì)年會(huì),2011.
[3] 施揚(yáng).現(xiàn)代通信技術(shù)與業(yè)務(wù)[M].北京:人民郵電出版社,2011.
[4] 歐科佳汽車(chē)電子設(shè)備有限公司.passthru+XS 2G說(shuō)明書(shū)[M].上海:歐科佳(上海)汽車(chē)電子設(shè)備有限公司,2006.
[5] Ma Tianbing,Du Fei,Fang Chuanzhi.Sensors state monitoring based on LabVIEW and wireless nodes[J].Procedia Engineering,2011(15) :2639-2643.
[6] 陳樹(shù)學(xué),劉萱.LabVIEW寶典[M].北京:電子工業(yè)出版社,2011.
[7] SAE International.Surface vehicle recommended practice[S].Canda,USA:SAE Technical Standards Board Rules,2006.
[8] 亢雪琳.基于STM32的CAN總線通信設(shè)計(jì)[D].長(zhǎng)春:吉林大學(xué),2013.
[9] 韓成浩,高曉紅.CAN總線技術(shù)及其應(yīng)用[J].制造業(yè)自動(dòng)化,2010,32(2):146-148.
[10] 黃桂鈺,鄧焱,張錦杰.嵌入式LabVIEW調(diào)用DLL實(shí)現(xiàn)數(shù)據(jù)采集[J].微計(jì)算機(jī)信息,2010,26(11):26-28.
[11] 王意,張永剛,姬廣斌,等.汽車(chē)CAN總線網(wǎng)絡(luò)自動(dòng)化測(cè)試系統(tǒng)[C].上海:中國(guó)汽車(chē)工程學(xué)會(huì)年會(huì),2014.
Design of Wireless Remote Control Vehicle Detection Station Based on LabVIEW
Traditional vehicle detection is difficult, time consuming and statistical complex. A design of the auto remote date detection system based on LabVIEW and the CAN communication protocol is proposed. It can send control command to the industrial computer quickly owing to the use of the CAN communication protocol design, the wireless remote control design, the USB driver design and the printer design, thus realizing the functions of auto detection and recording of all memory test results in Excel format. Besides, it is fast, stable, and capable of real-time record and printing. Experiments show that this system is applicable in the detection industry, especially in vehicle detection.
wireless automated test; CAN bus; LabVIEW; dll
2015- 12- 28
楊進(jìn)成(1990-),男,碩士研究生。研究方向:現(xiàn)代工業(yè)控制與檢測(cè)。夏春蕾(1974-),女,講師。研究方向:光電檢測(cè)等。戴曙光(1957-),男,教授。研究方向:自動(dòng)測(cè)量在線檢測(cè)等。
10.16180/j.cnki.issn1007-7820.2016.10.037
TP368.1
A
1007-7820(2016)10-129-04