蘇震宇
(淮南市礦用電子技術研究所,安徽淮南232001)
在許多現場自動監測系統中,計算機和實際監測系統之間需要進行數據交換。在電池的管理系統中,需要對電池的相關數據進行采集并實時顯示,以便于工作人員觀測,通過數據曲線的比較,可增強分析性,及時發現問題和解決問題。IO COMP Components是一個面向仿真、工業自動化、儀表等數據圖形領域的通用組件包。包含了豐富的應用在Visual Basic和Visual C++、Delphi等Windows開發工具的嵌入式控件,包括各種形式的報警器、測量、棒圖、LED、儀表、數碼管、計數器、趨勢圖等48種面板指示控件。本文將介紹基于VB的Iocomp控件實現實時監控的繪制方法,該方法簡便易行,編程也比較簡單,在實際應用中得到了良好的效果[2-3]。
上位機部分,使用VB編程來實現對數據的接受、顯示和存儲等。VB6.0不但提供了良好的界面設計能力,而且在微機串口通信方面也有很強的功能,采用VB開發基于Windows下的數據采集和工業控制應用軟件十分方便,尤其軟件界面設計非常便捷,編程工作量較少開發周期短。上位機能過RS232轉RS485和電池管理系統進行通信,將電池管理系統所采集的電池相關的數據信息在電腦上顯示并存儲。
VB串口通信利用MS COMM通訊控件向電池管理系統發送信息,并對管理系統進行控制。
MS COMM是Windows下串行通信編程的Active X,它為應用程序提供了通過串行接口收發數據的簡便方法。MS COMM提供了兩種處理通信問題的方法:一是事件驅動,一是查詢[1]。
1)事件驅動方式
事件驅動通訊是處理串行端口交互作用的一種非常有效的方法。在許多情況下,在事件發生時需要得到通知,例如,在串口接收緩沖區中有字符,或Carrier Detect線上一個字符收到或發生一個變化時。可以利用MS COMM控件的On Comm事件捕獲并處理這些通訊事件。On COMM事件還可以檢查和處理通訊錯誤。該方法優點是程序響應及時,可靠性高。每個MS COMM控件對應一個串口,如果程序需要訪問多個串口,必須使用多個MS COMM控件。
2)查詢方式
查詢方式實質上還是事件驅動。在程序的每個關鍵功能之后,通過輪詢檢測Comm Event屬性的值來查詢事件和錯誤。這樣顯得更為便捷。本文將對以下幾種方式進行對比分析。
方法一:采用Tee Chart實現。Tee Chart Pro是一款提供上百種2D和3D圖形風格、40種數學和統計功能、加上無限制的軸和22種調色板組件供選擇的繪圖控件。Tee Chart還包括一個強大的、完整的編輯對話框,幾乎可用于每個組件和子組件,可以快速的設計同復雜圖表應用程序。圖表編輯器通過Tee Commander組件進一步得到增強,它提供一次點擊訪問圖表編輯器和共同特征。
方法二:在VB中繪制實時曲線是比較難的,一般要應用第三方控件或是Windows API函數來完成,但是如果對實時曲線的要求不高,只要能表示出當前的一般情況的話,可以直接應用V B提供給我們的空間來完成。
方法三:可以采用工控組態軟件來實現。組態軟件具有動畫顯示、流程控制、數據采集、設備控制與輸出、工程報表、數據與曲線等強大功能,在自動控制中占據主力位置。
方法四:采用Iocomp控件來實現。結合Ioeomp Components圖形儀表組件,易于實現VB組態。
結合來看,采用Iocomp控件來實現實時曲線的繪制是最佳的,在工業控制軟件當中,它將為更多的程序員提供更廣的應用領域和發展空間。
IOCOMP[4-5]是一套用于工業的儀表盤控件,適用于ActiveX或VCL開發環境。提供自定義屬性編輯器可以快速和簡單的配置,VCL版包含所有的源代碼(100%的Delphi源代碼),發布版權免費(除HMI和SCADA類型的應用),矢量繪制,不會因為圖像的大小引起圖形變形,支持OPC。分為四個版本分別是:Std Pack、Pro Pack、Plot Pack、Ultra Pack。IOCOMP Software特征如下:
自定義屬性編輯器:每個控件都帶一個將屬性以邏輯形式分組的屬性自定義編輯器,它使得用戶能夠輕松的設置控件屬性。在屬性窗口中可以無限的搜索,屬性窗口也可以無限的層疊。
值相關聯:大多數的控件都擁有一些值,它們在設置前可能是相關聯的,這就提供了一個相關聯的機制以及程序靈活性。
實時高效:該控件具有實時顯示、縮放、滾動、即使是進行數據繪制時,不限制X有及Y坐標軸、不限制通道、曲線擬合、直角坐標軸、可視化的布局管理器、支持EMF、BMP、JPG以及TXT格式的文件輸出,及具高效性。
IOCOMP控件主要有三種組件:(iPlot、iXYPlot和iScope。
iPlot是一款即時繪圖組件,支持具有連續遞增的x坐標的數據序列的繪圖。其典型的用途是圖表記錄或滾動圖表類型的應用。該組件可用于所有的繪圖應用。iP1ot組件的應用使得繪圖程序得到了最優化,iPlot組件還可提供高速接入和繪圖方法。
iXYPlot是一個即時繪圖組件,它支持具備任意X、Y坐標值的數據。
iScope是一個真正的實時模擬數字范圍的組件。支持實時處理和顯示的數據時,5MHz的信號輸入率如果是連續的數據或使用更高的數據傳輸率采用間斷數據。
iPlot組件和iXYPlot組件的等級是相同的,除了通道的對象。其常用屬性為:
Channel屬性,可以訪問指定的通道。可以使用Add Channel,Delete Channel,Remove All Channel方法在運行時間中添加或者移除某個通道。在設計時,可以使用內置的屬性編輯器來改變通道。Annotation屬性,可以訪問指定的注釋。可以使用Add Annotation,Delete Annotation和Remove All Annotation方法在運行時間中添加或者移除某個注釋。注釋無法在設計時間中添加。X-axis屬性,您可以訪問指定的X軸線。您可以使用Add X Axis,Delete X Axis和Remove All X Axes方法在運行時間中添加或者移除某個x軸。在設計時間,可以使用內置的屬性編輯器來改變某個x軸。Y-Axis屬性,可以訪問指定的Y軸線。可以使用Add Y Axis,Delete YA xis和Remove All Y Axes方法在運行時間中添加或者移除某個Y軸。在設計時間,可以使用內置的屬性編輯器來改變某個Y軸。Data View屬性通過索引號,可以訪問數據視圖。該功能接口支持多個數據視圖,但是在當前版本中未提供該功能支持。Tool Bar屬性通過索引號,可以訪問工具欄。該功能接口支持多個工具欄,但是在當前版本中未提供該功能支持。Legend屬性通過索引號,可以訪問圖標符號。該功能接口支持多個圖標符號,但是在當前版本中未提供該功能支持。
我們可以直接修改程序來進行對一些屬性要求的設置,也可以直接在面板的分項屬性中進行設置,對各屬性不同的設置得到的結果顯示也將不一樣,可以根據設計員自己的要求來具體設置。

圖2
通過介紹使用IOCOMP組件在在VB設計可視化虛擬儀表的技術,靈活使用IOCOMP組件技術可以使用戶可以不必了解虛擬儀表內部的軟件設計,只要安裝了IOCOMP組件就可方便地創建虛擬儀表,不僅使得人機交互更加方便,而且可以實現數據顯示的實時性,具有較高的實際應用價值。
[1]范逸之,陳立元.Visual Basic 與 RS-232 串行通信控制(最新版)[M].北京:清華大學出版社,2002.
[2]潘地林,陳清華.Visual Basic 程序設計教程[M].合肥:安徽大學出版社,2004.
[3]張樹兵,戴紅,陳哲.Visual Basic6.0 入門與提高[M].北京:清華大學,2000.11.
[4]孫建洲,李偉.基于IOCOMP組件對汽車虛擬儀表的實現[J].工業控制計算機,2007.20(11).
[5]康雪麗.基于BCB的實時數據采集與分析系統[J].科技信息,2008(1).