基于LabVIEW的數(shù)控機床網(wǎng)絡測控系統(tǒng)--基于B/S模式的軟件設計 (二)
在Analog Tag Configuration的Connect目錄下的Item與OPC服務器的項名進行匹配,并對Tag進行了詳細的描述,如OPC服務器,工程量的范圍,報警的上下限,更新的死區(qū)等等。在運行時,標簽引擎Tag Engine會根據(jù)。scf文件的配置建立與OPC服務器的連接。當OPC服務器與。scf文件配置好以后,可以在LabVIEW的前面板上通過Numeric Control,Numeric Indicator控件讀寫現(xiàn)場采集的數(shù)據(jù),Numeric Control,Numeric Indicator控件通過人機向導HMI Wizard For Analog Control與。scf文件Tag進行匹配,并自動默認控件的Lable為與之對應的OPC配置所對應的項名。
本文引用地址:http://cafeforensic.com/article/270599.htm當DSC引擎運行起來以后,它就開始記錄數(shù)據(jù)、事件、錯誤等,并將數(shù)據(jù)記錄到暫且稱之為“大本營數(shù)據(jù)庫”里,即運行的程序都是從“大本營數(shù)據(jù)庫”里取數(shù)據(jù)或發(fā)送數(shù)據(jù)??梢钥吹?,在程序運行的過程中,通過DSC引擎在LabVIEW和OPC服務器之間傳遞著數(shù)據(jù),發(fā)揮著中間橋梁的作用。DSC模塊的運用,使得界面之間的切換更加友好化;并通過設置標簽的配置的更新速度、刷新頻率等成功解決了數(shù)據(jù)更新速度慢、界面之間切換慢的問題,保證了控制的實時性和可靠性等要求。
(4)報表生成和實時與歷史曲線顯示
現(xiàn)場采集來的數(shù)據(jù)可以以報表的形式輸出到Execl表格中,以供存儲與瀏覽。然而,LabVIEW本身沒有強大的實時數(shù)據(jù)庫,只有通過DSC模塊生成的。scf文件來記錄數(shù)據(jù)并存入歷史數(shù)據(jù)庫,但是它是根據(jù)記錄死區(qū)log Deadband所定義的偏差來記錄數(shù)據(jù)的,而不是根據(jù)時間記錄的,只有當數(shù)據(jù)的變化超出偏差時才記錄,因此,會導致在生成報表時數(shù)據(jù)和時間不對應。鑒于上述原因,一般通過編程來實現(xiàn)會比較好。
編程如下:先將要求記錄的標簽Tag的值按照時間間隔(如1小時)寫入一個表(如控件Table),然后再根據(jù)要求記錄的數(shù)據(jù)個數(shù)(如24個)將Table的記錄數(shù)據(jù)寫入Excel中,并將Table清空。這種方法只要求用戶定義報表輸出周期和數(shù)據(jù)輸出的周期即可。
例如:要求每小時記錄一個數(shù)據(jù),每天生成一個報表,就可以只設定數(shù)據(jù)輸出的周期1小時,數(shù)據(jù)的個數(shù)24個即可。到目前為止,此種方法在現(xiàn)場控制中應用效果非常好。
尤其在編程過程中,調用了LabVIEW中的兩個子VI:Generate Unique Filename.vi(用來指示報表的路徑及時間)和Array to HTML Table.vi(用于生成報表的格式),使得流程圖的編譯更簡單、簡潔,并增加了軟件的可復用性。具體數(shù)據(jù)存儲及報表生成程序和報表生成界面如圖5.8和圖5.9所示。
在實現(xiàn)實時曲線時,調用了DSC模塊提供的Trend Tags.vi,該子VI的輸入為標簽(Tag)和時間長度,可以通過編程來實現(xiàn)X、Y軸顯示的數(shù)據(jù)范圍的大小;實現(xiàn)歷史曲線時,調用DSC模塊提供的Read Treace.vi,通過Historical Trend控件可以查看任意歷史時刻的采集的數(shù)據(jù),通過選擇不同的現(xiàn)場采集點,X、Y軸的量程范圍也隨之變化。
評論