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