陳青貴
摘要:某項目需要在兩臺計算機之間傳輸數(shù)據(jù)。在主控計算機上由Labview編制的程序負責測試、讀取數(shù)據(jù);測試數(shù)據(jù)的記錄則在另外一臺計算機上由Excel完成。由于測試數(shù)據(jù)量不大、對數(shù)據(jù)傳輸速率要求不高,兩臺計算機通過RS232連接即可實現(xiàn)數(shù)據(jù)傳輸。本項目主要研究Labview、Excel的串口數(shù)據(jù)傳輸與接收,并成功應用于實例。
關(guān)鍵詞:RS232;Labview;Excel;串口;數(shù)據(jù)傳輸
中圖分類號:TP391.7 文獻標識碼:A 文章編號:1007-9416(2017)02-0134-03
某產(chǎn)品測試設備不具備自動化測試能力,該產(chǎn)品常溫測試時需兩人共同協(xié)作進行,一人負責操作設備主控計算機測試并讀出產(chǎn)品測試數(shù)據(jù),另一人在輔助計算機上負責記錄、校驗讀出的數(shù)據(jù)。共同協(xié)作方式首先浪費人力資源,測試效率較低;其次人工讀數(shù)會造成測試數(shù)據(jù)延誤、數(shù)據(jù)偏移;人工記錄數(shù)據(jù)容易出現(xiàn)誤操作,導致測試數(shù)據(jù)記錄不真實。本項目使用常用RS232接口將兩臺計算機連接,并通過在Labview和Excel上編寫串口通信程序完成數(shù)據(jù)傳輸、處理以達到測試數(shù)據(jù)自動讀取、記錄效果。
1 總體構(gòu)思
為了提高測試效率,節(jié)約人力資源。將兩臺電腦通過RS232串口連接通信,主控計算機通過軟件自動讀數(shù)并通過串口發(fā)送測試數(shù)據(jù);輔助計算機通過Excel運行VBA程序接受數(shù)據(jù)填寫到Excel上。Excel具有數(shù)據(jù)校驗功能,能對數(shù)據(jù)的正確性進行判定。這樣能減少工人讀數(shù)時間,不再需要專用工人記錄數(shù)據(jù),能極大提高產(chǎn)品測試效率。總體構(gòu)思如圖1所示。
2 實例
2.1 RS232物理連接
RS232是美國電子工業(yè)聯(lián)盟(EIA)制定的串行數(shù)據(jù)通信接口標準。它被廣泛用于計算機串行接口外設連接,是計算機標配通用接口。目前計算機上基本上使用DB9作為RS232的通用接口。兩臺計算機如要通過RS232連接只需連接DB9的2腳(RXD,信號接收端)、3腳(TXD,信號發(fā)送端)、5腳(GND)即可。需注意的是兩臺計算機DB9的2、3需要交叉連接。
2.2 RS232數(shù)據(jù)傳送
串口數(shù)據(jù)傳輸應用非常廣泛,因此程序編制有很多控件直接可以使用。主控計算機的測控程序使用的Labview圖形編程,串口通信有專門的子VI;輔助計算機使用的excel記錄數(shù)據(jù),excel能很好地支持宏,通過VBA使用微軟的MSComm通信控件可方便進行串口通信。使用專業(yè)的控件編程不需要進行底層編程,僅需要進行控件的初始化即可。
使用通用控件編程,只能完成底層數(shù)據(jù)傳輸,只能保證單個字節(jié)數(shù)據(jù)傳輸?shù)恼_性。要完成復雜的任務需要自己設計數(shù)據(jù)傳輸格式,即需要自定義數(shù)據(jù)包。數(shù)據(jù)包一般分為包頭、數(shù)據(jù)、包尾三部分。通過分析本任務的數(shù)據(jù)特性;數(shù)據(jù)包需要含包頭、測試項目、測試數(shù)據(jù)、測試數(shù)據(jù)分割符、包尾。最終定義數(shù)據(jù)包格式如圖2。
2.3 主控計算機軟件實現(xiàn)
主控計算機主要任務是讀取測試數(shù)據(jù)、發(fā)送測試數(shù)據(jù)。因此軟件上的主要任務就是初始化RS232、識別測試項目、讀取測試數(shù)據(jù)、打包數(shù)據(jù)、發(fā)送數(shù)據(jù)。
2.3.1 初始化RS232
初始化串口使用labview自帶的子VI,初始化只需對子VI的變量進行配置即可。主要變量是端口號選擇Com2;通信速率選擇38400;字節(jié)數(shù)選8;奇偶校驗選none;停止位選1。具體配置見圖3。
2.3.2 識別測試項目
根據(jù)產(chǎn)品測試作業(yè)文件將測試項目進行分類并使用下拉列表列出,標記出測試內(nèi)容。如圖4所示,正常測試時首先默認測試第一個項目,當測試者按發(fā)送數(shù)據(jù)按鈕(或者使用快捷鍵Esc)后,測試項目自動調(diào)至下一項。在平時測試時也可以手動點擊下拉列表選擇正在測試項目,然后發(fā)送測試數(shù)據(jù)。這樣到達識別測試項目之目的。
2.3.3 讀取、打包、發(fā)送數(shù)據(jù)
數(shù)據(jù)的讀取根據(jù)當前測試項目不同而不同;數(shù)據(jù)的讀取在Labview中可以通過調(diào)用控件的value屬性節(jié)點完成??丶膙alue屬性是浮點數(shù),根據(jù)文件記錄的要求需對數(shù)據(jù)格式進行調(diào)整,主要調(diào)整小數(shù)點的位數(shù)。數(shù)據(jù)打包根據(jù)預先設定格式使用Labview內(nèi)部字符處理VI可進行多字符組合;最后通過串口發(fā)送VI即可將文本發(fā)送出去。具體實現(xiàn)方法參考圖5。
2.4 輔助計算機軟件實現(xiàn)
2.4.1 Excel使用VBA編程
以往在輔助計算機上使用excel進行隨行文件記錄。使用Excel記錄數(shù)據(jù)可以實現(xiàn)數(shù)據(jù)的自動計算,隨行文件模板變化時方便更改。Excel支持VBA編程擴展,因此可以使用VBA完成數(shù)據(jù)接收處理工作,在excel中使用VBA的方法如圖6所示。調(diào)出Excel的Visual Basic菜單,點擊控件按鈕即可添加想要的控件,雙擊控件即可進入控件響應代碼編輯窗口。
2.4.2 初始化RS232
按照2.4.1的方法在Excel中添加微軟的通用通信控件MSComm。對MSComm控件的初始化代碼如圖7??丶跏蓟晒t計算機的RS232串口初始化成功。
2.4.3 數(shù)據(jù)包接收
Excel初始化串口完畢后,當主控計算機發(fā)過來數(shù)據(jù)時,MSComm控件會激發(fā)OnComm事件。在這個事件處理程序中添加數(shù)據(jù)接收程序。由于OnComm事件激發(fā)時,MSComm控件可能只是收集到了數(shù)據(jù)包的片段,因此程序需要從接收的數(shù)據(jù)中識別出包頭、包尾還是中間部位。然后掐頭去尾將接收的數(shù)據(jù)拼接成完成的數(shù)據(jù)包。接收到完整數(shù)據(jù)包即可調(diào)用數(shù)據(jù)包處理程序。具體實現(xiàn)程序如圖8。
2.4.4 數(shù)據(jù)包處理
數(shù)據(jù)包處理首先需要分離出測試項目,測試項目前面是“@”符號,后面是“/”符號。通過字符查找函數(shù)既可以知道測試項目的位置。第二步就是分離出測試數(shù)據(jù),測試數(shù)據(jù)都是通過“/”符號分隔,因此通過字符查找函數(shù)“InStr”即可找到分隔符的位置,從而將測試數(shù)據(jù)一個一個分隔下來,至到數(shù)據(jù)包結(jié)束字符“#”。分離出來的數(shù)據(jù)根據(jù)測試項目使用Sheet.Cells()對預定的excel表格位置填寫數(shù)據(jù)。具體實現(xiàn)過程參照圖9。
3 結(jié)語
本項目主要技術(shù)應用在于以下幾點:
(1)涉及Labview、VBA、excel多種編程手段,需要綜合利用。
(2)串口通信需要自行設計高級的通信協(xié)議,需要對數(shù)據(jù)進行打包處理。單獨傳輸產(chǎn)品數(shù)據(jù),使用MSComm控件基本上無法完整接收。
(3)excel結(jié)合VBA可以開發(fā)出強大的應用,利用excel的圖形和數(shù)據(jù)處理能力能處理很多試驗數(shù)據(jù),方便打印。
(4)參考本項目,自定義更多過程可以遠程操作Excel,以實現(xiàn)Excel的自動化。
本項目完成,使用試驗件產(chǎn)品多次試驗測試,數(shù)據(jù)傳輸準確、穩(wěn)定。極大的提高了該產(chǎn)品常溫測試效率。
參考文獻
[1]李小遐.Excel VBA 在辦公自動化中的應用[J].科技論壇,2014(22):105-107.
[2]楊峻,睢丹.VBA在Excel中的應用[J].安陽大學學報,2003,2(2):44-45.
[3]陳錫輝.LabVIEW 8.20 程序設計從入門到精通[M].北京:清華大學出版社,2007:390.
[4]張華,鄭賓,武曉棟.基于LabVIEW 的溫度測試系統(tǒng)[J].電子器件,2013(2):243-246.