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