撰文/江蘇徐州工程機械研究院 陳新春 閆乃晴 齊偉 王燦
基于Visual Basic與RS 232串行通信的數(shù)據(jù)采集系統(tǒng)
撰文/江蘇徐州工程機械研究院 陳新春 閆乃晴 齊偉 王燦
目前,諸如液壓缸缸筒、活塞桿和振動輪等工程機械核心零部件精度要求越來越高。在生產過程中,檢測工序已經(jīng)不可忽視。遺憾的是,許多關鍵工序涉及的待檢測形面復雜,尚無檢測手段。隨著技術的進步,基于激光位移傳感器,開發(fā)專有檢測儀器是實現(xiàn)工程機械核心零部件關鍵工序質量監(jiān)控的有效途徑。
激光位移傳感器由激光器、激光檢測器和測量電路組成,能夠精確非接觸測量被測物體的位置、位移等變化。在開發(fā)激光檢測裝置時,如何準確有效地獲得激光位移傳感器檢測值是關鍵的研究內容。
針對該問題,本文結合串行端口技術,提出一種基于Visual Basic與RS 232串行通信的數(shù)據(jù)采集系統(tǒng)。通過Visual Basic通信控件MSComm與串行端口RS 232,建立激光位移傳感器與工控機的通信渠道。采用Visual Basic開發(fā)激光位移傳感器數(shù)據(jù)采集軟件界面和算法。應用Excel工具建立存儲檢測數(shù)據(jù)的數(shù)據(jù)庫。與激光位移傳感器測試軟件比較,驗證上述研究的有效性。
VB6.0是一種功能強大的程序設計語言,適用于設計程序界面。它不僅保留了Basic語言的全部功能,還增加了面向對象程序設計功能,相較于VC,其操作簡單,運行速度較快。
MSComm是VB與激光位移傳感器之間實現(xiàn)通信的的ActiveX控件。利用MSComm控件,設計串口通信程序主要涉及表1所示屬性。

表1 MSComm控件的主要屬性
在本研究中,主要的屬性參數(shù)設置為:(1)InputMode=0,取回文本數(shù)據(jù)。(2)InputLen=0表示一次接收完緩沖區(qū)中的所有數(shù)據(jù),其他參數(shù)可根據(jù)其含義進行相應設置。
為了簡化數(shù)據(jù)采集系統(tǒng),項目組采用的RS 232是目前廣泛應用的一種9芯接口。具體如圖1與表2所示。

圖1 RS 232接線端子排序圖

表2 9芯RS 232接口
數(shù)據(jù)采集系統(tǒng)是激光檢測裝置中非常關鍵的一部分,其主要包括硬件系統(tǒng)和軟件系統(tǒng)兩大部分。根據(jù)檢測現(xiàn)場要求,搭建硬件系統(tǒng);在此基礎上,采用VB6.0,設計數(shù)據(jù)采集軟件系統(tǒng)。
1.硬件系統(tǒng)設計
數(shù)據(jù)采集硬件系統(tǒng)由工控機Visual Basic模塊、串行通信模塊、位移傳感器模塊3部分組成,電路系統(tǒng)框圖如圖2所示。

圖2 電路系統(tǒng)框圖
硬件系統(tǒng)連接:激光位移傳感器通過信號線與工控機連接,信號線一端與激光位移傳感器連接,另一端帶有RS 232串口,與工控機的RS 232串口連接;激光位移傳感器電源線紅線為電源正,棕線為電源負,與電源連接。
在實驗中,硬件系統(tǒng)應用流程為:啟動工控機-接通傳感器電源-數(shù)據(jù)采集與存儲-斷開傳感器電源-關閉工控機-完成數(shù)據(jù)采集與存儲。
2.軟件系統(tǒng)設計
實時數(shù)據(jù)采集系統(tǒng)軟件設計包括界面設計及算法開發(fā)。界面設計根據(jù)需要放置按鈕控件,包括數(shù)據(jù)采集、數(shù)據(jù)存儲及其他需要的控件,如圖3所示。其中,MSComm控件用于從激光位移傳感器采集數(shù)據(jù)到工控機上。

圖3 軟件界面圖
基于上述軟件界面,串口軟件操作流程圖如圖4所示,首先要對串口進行初始化,設定通信參數(shù)和通信協(xié)議,然后打開端口后才能進行數(shù)據(jù)采集、存儲的操作,最后要關閉端口。
數(shù)據(jù)采集的流程圖如圖5所示:工控機與激光位移傳感器通信之前,工控機先檢查是否與激光位移傳感器連接成功,若已連接,則工控機進行端口初始化,包括對傳輸速度、傳輸?shù)臄?shù)據(jù)位數(shù)等參數(shù)的初始化。接著工控機向激光位移傳感器發(fā)送命令,激光位移傳感器響應命令發(fā)送其參數(shù),若響應超時,則工控機再要求重發(fā)。當工控機接收到設備參數(shù)時,對激光位移傳感器檢測的數(shù)據(jù)進行采集,并將已接收的數(shù)據(jù)存入到數(shù)據(jù)庫中。
MSComm提供了兩種處理通信問題的方法,一種是查詢法,一種是事件驅動法。
(1)查詢法。查詢法適合較小的應用程序,在這種情況下,每當應用程序執(zhí)行完某一串行口操作后,將不斷檢查MSComm控件的CommEvent屬性,以檢查執(zhí)行結果或檢查某一事件是否發(fā)生。
(2)事件驅動法。在使用事件驅動法設計程序時,每當有新字符到達或端口狀態(tài)改變,或發(fā)生錯誤時,MSComm控件將觸發(fā)OnComm事件,而應用程序在捕獲該事件后,通過檢查MSComm控件的CommEvent屬性可以獲知所發(fā)生的事件或錯誤,從而采取相應的操作。這種方法的優(yōu)點是程序響應及時,可靠性高。

圖5 數(shù)據(jù)采集流程圖
為了達到實時數(shù)據(jù)采集目的,數(shù)據(jù)采集程序采用MSComm事件驅動方式。
OnComm事件流程圖如圖6所示,當有數(shù)據(jù)傳輸時,觸發(fā)MSComm1的OnComm事件,OnComm的事件處理程序只處理comEvReceive事件,首先判斷是否為接收事件,若是則關閉OnComm接收事件,然后接收數(shù)據(jù)字節(jié),將字節(jié)進行還原轉換,最后打開OnComm接收事件,等待下一次OnComm事件產生。
其中,接收數(shù)據(jù)模式采用的是二進制的形式,即InputMode=comInputModeBinary,但用Input屬性讀取數(shù)據(jù)時,不能直接賦值給Byte類型變量,只能通過先賦值給一個Variant類型變量,返回一個二進制數(shù)據(jù)的數(shù)組,再轉換保存到Byte類型變量中。

圖6 OnComm事件流程圖
采集數(shù)據(jù)過程中,主機首先要傳輸給激光位移傳感器一個命令,該命令帶有傳感器的地址。通過MSComm1的OutPut屬性,把命令寫入到發(fā)送緩沖區(qū)中。激光位移傳感器接收到該命令后,通過MSComm1的InPut屬性從接收緩沖區(qū)移走字符,把緩沖區(qū)中收到的數(shù)據(jù)讀入變量。發(fā)送命令后,傳感器會連續(xù)不斷的傳輸測量值,我們每4個字節(jié)組成一個值來獲取測量結果。傳感器傳輸?shù)臄?shù)據(jù)的校驗位是C、D、E和F不斷輪換的,只有當4個字節(jié)數(shù)的校驗位一致時,該數(shù)據(jù)才有效,否則該數(shù)據(jù)不正確。所以,每個字節(jié)只取后面4位的數(shù),組成十六進制的數(shù),再轉換成十進制,位移傳感器返回來的數(shù)據(jù)是先低位再高位。
3.數(shù)據(jù)庫設計
Excel是目前使用最廣泛的辦公軟件之一,它具有強大的數(shù)學分析與計算功能,包括很多VB沒有的求值數(shù)學表達式的函數(shù)和方法。由于Excel的應用程序對象是外部可創(chuàng)建的對象,所以能從VB應用程序內部來程序化操縱Excel。為了能從VB應用程序中訪問Excel豐富的內部資源,使Excel應用程序運行的更快,需要在VB工程中添加對Excel類型庫的引用。具體步驟如下:選擇“工程”/ “引用”命令,在“引用”對話框中選擇Excel類型庫"Microsoft Excel14.0 Object Library"選項并單擊確定按鈕。
數(shù)據(jù)庫主要按照時間順序將采集到的數(shù)據(jù)進行存儲,其主要字段包括采集的數(shù)據(jù)、采集時間、采集日期。
激光位移傳感器帶有一個專用的檢測軟件,首先用該專用軟件檢測出一個數(shù)值,如圖7中標出部分所示。

圖7 激光位移傳感器檢測軟件測量結果
然后用所搭建的數(shù)據(jù)采集系統(tǒng)采集激光位移傳感器數(shù)據(jù),如圖8中標出部分所示。

圖8 設計程序測量結果
由檢測結果對比分析可知,所搭建的數(shù)據(jù)采集系統(tǒng)采集的激光位移傳感器的數(shù)據(jù)與激光位移傳感器自帶的檢測軟件所測量的結果誤差在0.005mm以內,可以認為是一致的,證明所搭建的數(shù)據(jù)采集系統(tǒng)可以實現(xiàn)準確采集激光位移傳感器的數(shù)據(jù)。
圖9為數(shù)據(jù)實時存儲界面,可以看出所設計的Excel數(shù)據(jù)庫可以準確存儲位移傳感器采集的數(shù)據(jù)、采集時間及采集日期。

圖9 數(shù)據(jù)實時存儲界面
本研究圍繞激光位移傳感器數(shù)據(jù)采集系統(tǒng),開展了系統(tǒng)硬件連接、界面設計、算法開發(fā)和測試驗證等工作,得出了如下三點結論。
(1)通過RS 232實現(xiàn)了激光位移傳感器與工控機串行通信,利用Visual Basic在工控機上編寫的程序,可以實現(xiàn)對激光位移傳感器的數(shù)據(jù)采集,采集的數(shù)據(jù)存儲在Excel數(shù)據(jù)庫中。
(2)與激光位移傳感器測試軟件采集的數(shù)據(jù)比較,所搭建的數(shù)據(jù)采集系統(tǒng)獲得數(shù)據(jù)偏差小于0.005mm,滿足實際生產需要,證明所搭建的數(shù)據(jù)采集系統(tǒng)是有效的。
(3)本研究為開發(fā)工程機械檢測核心零部件專有檢測儀器提供了技術支持。