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