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