氣動量儀是一種非接觸式長度測量儀器,它能將工件尺寸的變化量轉(zhuǎn)換成壓縮空氣流量或壓力的變化,由指示裝置指示出來,從而測量出工件尺寸的誤差。因其操作簡便、測量效率高,被廣泛應(yīng)用于機械制造工業(yè)生產(chǎn)實際中。氣動量儀一般配備RS485 通信接口,具備多機通信能力,生產(chǎn)氣動量儀的商家通常會為其產(chǎn)品開發(fā)相應(yīng)的配套軟件。但配套軟件功能單一、針對性不強,也不具備數(shù)據(jù)自動分組、實時圖表顯示等功能,讓用戶在使用操作中多有不便,因而可視化的數(shù)據(jù)自動采集系統(tǒng)便成為了一種急切需求。文中基于VC + + 和Excel 很好地滿足了這一需求。
1 系統(tǒng)架構(gòu)介紹
該系統(tǒng)的整體架構(gòu)框圖如圖1 所示,為了實現(xiàn)氣動量儀與電腦的通信,須經(jīng)過RS232-RS485 轉(zhuǎn)換器。系統(tǒng)軟件包括3 個部分: ( 1) 通信部分,實時得到氣動量儀瞬時數(shù)據(jù),在測完尺寸后計算得到測量數(shù)據(jù); ( 2) 數(shù)據(jù)實時繪點,以圖表的形式顯示每一個測量結(jié)果,以便操作員查看誤差走向; ( 3) 數(shù)據(jù)處理,把采集到的數(shù)據(jù)實時地存儲到Excel 報表文件中,以便二次處理及存檔。
2 通信部分的設(shè)計與實現(xiàn)
氣動量儀的信號由計算機的RS232 串口采集,因而系統(tǒng)的通信部分即是對RS232 串口的操作。通常來講,其實現(xiàn)方法主要有兩種: 一種是使用Windows操作系統(tǒng)的API; 另一種是使用微軟公司提供的MSComm 控件。前一種方法較為繁瑣,不便使用; 后一種方法方便、簡單。因此,該系統(tǒng)使用MSComm控件實現(xiàn)通信。
MSComm 全稱為Microsoft Communications Control,是Microsoft 公司提供的簡化Windows 串行通信編程的ActiveX 控件,它為應(yīng)用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡便方法,編程人員不需要花過多時間去了解復(fù)雜的API 函數(shù),就可實現(xiàn)串口編程。
MSComm 控件提供了兩種處理通信問題的方法:
(1) 事件驅(qū)動( Event-Driven) 方法; (2) 查詢法。
查詢方式是指通過用戶程序中定時或不定時地查詢MSComm 控件的內(nèi)部成員CommEvent 屬性是否發(fā)生變化來進行相應(yīng)的處理。事件驅(qū)動方式是處理串行端口交互作用的一種非常有效的方法,許多情況下,事件發(fā)生時需要得到通知( 比如在CarrierDetect ( CD)或Request To Send ( RTS) 線上有一個字符到達或一個變化發(fā)生) ,此時,可以利用MSComm 控件的On-Comm 事件捕獲并處理這些通信事件; OnComm 事件還可以檢查和處理通信錯誤。在編程過程中,通過在OnComm 事件處理函數(shù)中加入相應(yīng)處理代碼,實現(xiàn)應(yīng)有的功能。這種方式的優(yōu)點是實時性強,可靠性高。MSComm 控件的事件OnComm 是該控件的惟一事件。此事件可用來處理所有與通信相關(guān)的事件,不管是何種事件發(fā)生,MSComm 控件只用一個CommEvent的屬性予以代表。使用事件程序的好處是不需要一直讓程序處于檢查的狀態(tài),只要事先將程序代碼寫好,如事件發(fā)生,就會直接執(zhí)行相應(yīng)的程序指令。
由于涉及到多機通信,為了保證實時性,必須配合一個定時器來完成多機輪詢功能,在每一個定時器結(jié)束時,結(jié)束上一臺儀器的查詢并啟動下一臺儀器的查詢。
處理通信的流程圖如圖2 所示。
3 實時圖表設(shè)計與實現(xiàn)
測量人員通常希望將采集的數(shù)據(jù)以圖表的方式直觀并實時地顯示出來,以便直接觀察出測量結(jié)果是否超出公差上下限,系統(tǒng)采用MSChart 實現(xiàn)數(shù)據(jù)的實時圖表顯示。MSChart 是Microsoft 公司制作的功能強大的圖表控件,它可以按照一定的規(guī)范將數(shù)據(jù)以圖表的形式繪制出來,使數(shù)據(jù)變得直觀生動。MSChart 具有45 個屬性,9 個方法,49 個事件,可靈活編程,也可實現(xiàn)各類表的顯示。此外,利用MSChart 可以很方便地建立各種圖表,制作各種2 維3 維的直方圖、折線圖以及餅狀圖。
在使用MSChart 進行繪圖時,為了得到預(yù)設(shè)顯示效果,首先需要對MSChart 進行初始化操作,該系統(tǒng)需要把圖形設(shè)置為2D 線條型,此外需要設(shè)置上限、下限、中線的粗細程度、顏色,記錄點樣式、顏色、大小等。
實時圖表的部分初始化代碼為:
4 與Excel 報表交互設(shè)計與實現(xiàn)
Excel 強大的報表制作功能是眾所周知的,它具有強大的公式計算和圖表繪制功能,而VC 強大的數(shù)據(jù)處理能力,操作一個Excel 模板可以顯著地縮短報表的制作周期。VC 操作Excel 有多種方法,該系統(tǒng)采用COM 自動化方法,具體的報表制作過程為:
(1) 用Excel 預(yù)先設(shè)計好具有公式和圖表的報表文檔;
(2) VC 操作Excel 程序加載模板新建報表文檔;
(3) VC 操作Excel 程序向報表文檔的對應(yīng)單元格中填充采集數(shù)據(jù)。
Excel 的對象模型是層次組織結(jié)構(gòu)。集合作為對象的容器,是一組屬于同一類型的對象或相關(guān)對象的集。Application 對象表示整個應(yīng)用程序,處于模型的最頂層。Workbooks 對象作為所有Workbook 對象的集合,包含在Application 對象中。Worksheets 對象作為所有Worksheet 對象的集合,包含在Workbook 對象中。Ranges 對象作為所有Range 對象的集合,包含在Worksheet 對象中,是用來處理單個單元格或成組單元格的對象。利用MFC 類向?qū)Р迦?span>Excel 模板類后即 可利用這些類定義對象來操作Excel 數(shù)據(jù)。當(dāng)要向Excel 文檔中輸入一條數(shù)據(jù)時,需要從對象模型中的頂層向下逐層找到操作對象,處理流程如圖3 所示。
5 結(jié)束語
該自動數(shù)據(jù)采集系統(tǒng)實現(xiàn)了氣動量儀的自動數(shù)據(jù)采集,具有實時圖表顯示、后臺報表輸出的功能。后臺輸出的Excel 文檔用戶可以進行二次處理,極大地提高了管理效率。也可以將該方法推廣至其他類似場合,具有很高的實用價值。
如果您有機床行業(yè)、企業(yè)相關(guān)新聞稿件發(fā)表,或進行資訊合作,歡迎聯(lián)系本網(wǎng)編輯部, 郵箱:skjcsc@vip.sina.com