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