轉帖|使用教程|編輯:龔雪|2014-08-01 09:37:11.000|閱讀 5758 次
概述:本文為使用Iocomp工控圖表工具繪制實時曲線探索及研究教程,為大家介紹了Iocomp控件、實時曲線繪制方法、Iocomp界面操作,屬性分類等。幫助學習者更好的運用Iocomp。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
[摘要]數據采集是控制系統最常見的任務,對于大量的實時采集數據采用曲線加以分析已成為很重要的一種手段。文章將介紹如何用 Iocomp控件實現控制軟件中的實時曲線的設計與繪制,并結合實例程序加以具體說明。實踐表明,該方法簡單可靠,對工業實時控制應用有一定借鑒意義。
Iocomp控件:
在工業控制領域,需要進行大量的數據處理和可視化顯示。實時監測軟件中,常常需要將采集到的數據實時顯示到界面上來,以便于工作人員觀測,及時發現問題和解決問題,通常還要求曲線可伸縮、可漫游、可取值,可若干條曲線的比較,以增強其可分析性。傳統的控制軟件開發工具多用 DOS或 Windows下的 C語言開發,導致系統開發周期長,可維護性差,并且不具有標準的 Windows圖形用戶界面。VB作為一種 Windows軟件開發工具,既具有效率高界面友好的功能,又可以使用 DLL來實現 I/O端口的輸入功能,還可以通過 API函數或 Mscomm控件實現串口通信。而本文將詳細介紹一種基于 VB的 Iocomp控件實現實時曲線的繪制方法,該方法簡便易行,編程也比較簡單,在實際應用中得到了良好的效果。
Iocomp Software是一個讓 Iocomp公司引以為豪的全新的、100%托管的、領先的、高速的、易用的、能實時繪制的控件。擁有許多在其他同類圖表控件產品中所不能找到的全新特征功能及性能。Iocomp Software特征如下:
屬性定制編輯器:每一個控件都帶有一個將屬性以邏輯形式分組的屬性定制編輯器,它們使得用戶能夠輕松的設置控件屬性。在屬性窗口中可以無限的搜索,屬性窗口也可以無限的層疊。
值相關聯:大多數的控件都擁有一些值,它們在設置前可能是相關聯的,這就提供了一個相關聯的機制以及程序靈活性。
實時 -高效:該產品的工具控件是當今最高效的。具有實時顯示、縮放、滾動、即使是在進行數據繪制時、不限制 X以及 Y坐標軸、不限制通道、曲線擬合、直角坐標軸、可視化的布局管理器、支持 EMF、BMP、 JPG以及 TXT格式的文件輸出。
實時曲線的繪制方法多種多樣,根據對曲線的要求,我們可以采用不同的方法來繪制,從而達到最佳的曲線效果,以下列出了幾種常用的繪制實時曲線的方法:
方法一:采用 TeeChart實現。TeeChart Pro是一款提供上百種 2D和 3D圖形風格、40種數學和統計功能、加上無限制的軸和 22種調色板組件供選擇的繪圖控件。TeeChart還包括一個強大的、完整的編輯對話框,幾乎可用于每個組件和子組件,允許你快速的設計復雜圖表應用程序。圖表編輯器通過 TeeCommander組件進一步得到增強,它提供一次點擊訪問圖表編輯器和共同特征。
方法二:在 VB中繪制實時曲線是比較難的,一般要應用第三方控件或是 Windows API函數來完成,但是如果你對實時曲線的要求不是很高,只要能表示出當前的一般情況的話,我們可以直接應用 VB提供給我們的空間來完成。
方法三:可以采用工控組態軟件來實現。組態軟件具有動畫顯示、流程控制、數據采集、設備控制與輸出、工程報表、數據與曲線等強大功能,在自動控制中占據主力軍的位置,已逐漸成為工業自動化的靈魂。
方法四:采用 Iocomp控件來實現。結合 Iocomp Components圖形儀表組件,易于實現 VB組態。
結合以上四種方法的總結與比較,采用 Iocomp控件來實現實時曲線的繪制是最佳的,在工業控制軟件當中,它將為更多的程序員提供更廣的應用領域和發展空間。
Iocomp控件主要有三種組件:⑴iPlot ⑵iXYPlot ⑶iScope iPlot是一款即時繪圖組件,支持具有連續遞增的 X坐標的數據序列的繪圖。其典型的用途是圖表記錄或滾動圖表類型的應用。該組件可
用于所有的繪圖應用。iPlot組件的應用使得繪圖程序得到了最優化, iPlot組件還可提供高速接入和繪圖方法。
iXYPlot是一個即時繪圖組件,它支持具備任意 X、Y坐標值的數據。
iScope是一個真正的實時模擬和數字范圍的組件。支持實時處理和顯示的數據時,5MHz的信號輸入率如果是連續的數據或使用更高的數據傳輸率采用間斷數據。
iPlot組件和 iXYPlot組件的等級是相同的,除了通道的對象。其層次結構圖如圖 1。
圖 1層次結構圖常用屬性簡介如下表:
Channel屬性,可以訪問指定的通道。可以使用 AddChannel, DeleteChannel和 RemoveAllChannel方法在運行時間中添加或者移除某個通道。在設計時,可以使用內置的屬性編輯器來改變通道。
Annotation屬性,可以訪問指定的注釋。可以使用 AddAnnotation, DeleteAnnotation和 RemoveAllAnnotation方法在運行時間中添加或者移除某個注釋。注釋無法在設計時間中添加。
X-axis屬性,您可以訪問指定的 X軸線。您可以使用 AddXAxis, DeleteXAxis和 RemoveAllXAxes方法在運行時間中添加或者移除某個 X軸。在設計時間,可以使用內置的屬性編輯器來改變某個 X軸。
YAxis屬性,可以訪問指定的 Y軸線。可以使用 AddYAxis, Delete YAxis和 RemoveAllYAxes方法在運行時間中添加或者移除某個 Y軸。在設計時間,可以使用內置的屬性編輯器來改變某個 Y軸。
DataView屬性通過索引號,可以訪問數據視圖。該功能接口支持多個數據視圖,但是在當前版本中未提供該功能支持,期待在下面版本中推出。
ToolBar屬性通過索引號,可以訪問工具欄。該功能接口支持多個工具欄,但是在當前版本中未提供該功能支持,期待在下面版本中推出。
Legend屬性通過索引號,可以訪問圖標符號。該功能接口支持多個圖標符號,但是在當前版本中未提供該功能支持,期待在下面版本中推出。
對界面的設置是必不可少的,它可以更直觀更簡捷的為我們提供繪制實時曲線的各個屬性功能,我們可以直接修改程序來進行對一些屬性要求的設置,也可以直接在面板的分項屬性中進行設置,對各屬性
不同的設置得到的結果顯示也將不一樣,可以根據設計員自己的要求來具體設置。下圖 2是顯示了本文所應用的 iPlot組建的編輯主界面。
下面來看一下如何采用 Iocomp控件中的 iPlot組件來實現實時曲線的繪制,編寫程序既簡單又方便。
采用 Iocomp控件中的 iPlot組件繪制實時曲線,其實時測量值曲線繪制顯示界面如圖 3。
實時曲線反映的是現場數據的實時性和當前趨勢,繪制實時采集數據曲線是為了實時觀測,以便掌握實時采集數據變動的趨勢,使曲線顯示效果最佳,因此在實現時需顯示曲線的動態變化,當前點在曲線的最右端顯示,而整個曲線動態地向左移動。實時曲線在動態的移動時,測量值、峰值、谷值這三個通道同時相應的顯示具體采樣數值,一目了然。由于篇幅有限,程序只保留核心部分。編寫程序如下:
Private Sub Form_Load() iPlotX1.Channel(0).TitleText = " 測量值" iPlotX1.Channel(1).TitleText = " 峰值" iPlotX1.Channel(2).TitleText = " 谷值" Call Comm_initial XValue = 0 If Right(App.Path, 1) = "\" Then fpname = App.Path &"data\" Else fpname = App.Path &"\data\" End If ComD1.InitDir = fpname End Sub
以上程序完成對 iPlotX控件的初始化,初始化具有三個通道,名字分別為測量值、峰值、谷值,并調用 Comm_initial函數完成對串口的初始化,設定 App.Path & "data\"為采集數據存放路徑。
Private Sub Timer1_Timer() Dim a Dim i%, j%, k%, l% Dim bjsta As String Dim otime As Long Dim delayt As Integer delayt = 60 i=0 '命令重發次數計數變量 j=0 k=0 l=0 fs1: MSComm.InBufferCount = 0 MSComm.OutBufferCount = 0 '清空輸出緩沖區 MSComm.Output = "#01" & vbCr '測量值讀取 otime = GetTickCount i=i+1 Do a = DoEvents() Loop Until MSComm.InBufferCount >= 10 Or GetTickCount >= otime + delayt clclz = MSComm.Input If Left(clclz, 1) = "=" And IsNumeric(Mid(clclz, 2, 6)) Then lbclz.Caption = Mid(clclz, 2, 6) clclz = lbclz.Caption Else If i > 10 Then GoTo fs2 GoTo fs1 End If ………………//省略程序數據采集峰值、谷值,其采集方法同上 fs5: YValue = Val(lbclz.Caption) iPlotX1.Channel(0).AddYNow Yvalue YValue = Val(Lbfz.Caption) iPlotX1.Channel(1).AddYNow YValue YValue = Val(Lbgz.Caption) iPlotX1.Channel(2).AddYNow YValue YValue = yboutv2 XValue = XValue + 1 MSComm.InBufferCount = 0 MSComm.OutBufferCount = 0 ………………//數據保存部分省略 End Sub
以上程序為實時采集函數,其功能:用 MSComm實現與串口的通信, MSComm.Output = "#01" & vbCr語句為讀儀表命令。每次采樣發出 3條儀表讀取測量值命令,1條報警開關讀取命令。采樣頻率在有線通信和無線通信模式下最高每秒可以達到 15次,在無線通信出錯較大情況下可以保證每秒正確采樣 8次,通信采用的強烈的糾錯方法;采樣數據測量值、峰值、谷值送入 Iocomp控件實時顯示,程序會在每次采樣過后將數據存入本軟件的 data目錄下。
以上程序采用 Iocomp控件實現實時曲線的繪制,曲線的采樣頻率可以每秒達到 50次,最高可達 100次,靈敏度極高,繪制出的曲線也比較流暢,它不僅可用在工業控制的歷史數據處理,而且可以廣泛地適用于商業、管理及很多有大量數據需曲線顯示的應用。
因此,Iocomp Components圖形儀表組件對于構建逼真的人機界面、處理實時數據將非常有用,相信它們會被廣泛地應用到越來越多的領域和行業當中。由于控件具有界面友好、操作簡單、可擴展性強等特點,因此使用這些組件可以非常方便地擴展出風格多種多樣的數據圖形,整個設計過程都無需編程。
作者:陜西理工學院物理系 翟世磊 李明波 李福 劉東
工控儀表盤與數采軟件交流群:766890732 歡迎進群交流討論
(慧都控件網版權所有,轉載請注明出處,否則追究法律責任)
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn