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