新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于LabVIEW DSC的監(jiān)控軟件的應(yīng)用研究

基于LabVIEW DSC的監(jiān)控軟件的應(yīng)用研究

作者: 時(shí)間:2016-12-27 來(lái)源:網(wǎng)絡(luò) 收藏

1 引言

本文引用地址:http://m.butianyuan.cn/article/201612/334128.htm

目前用于監(jiān)測(cè)功能的裝置大部分是通過(guò)商業(yè)組態(tài)軟件(如Fix、組態(tài)王等)來(lái)實(shí)現(xiàn),其在功能上存在一定的缺陷:商業(yè)組態(tài)軟件盡管能設(shè)計(jì)出友好的人機(jī)界面,但它是按照安裝的節(jié)點(diǎn)及I/O的點(diǎn)數(shù)來(lái)計(jì)費(fèi),所以對(duì)于中小型系統(tǒng)而言,性價(jià)比就會(huì)比較低。相對(duì)的,LabVIEW具有人機(jī)界面友好,功能強(qiáng)大,維護(hù)簡(jiǎn)便等優(yōu)點(diǎn)。鑒于上述原因,本文提出了在上位機(jī)中采用LabVIEW作為控制系統(tǒng)的測(cè)控軟件,實(shí)現(xiàn)過(guò)程控制的監(jiān)控功能,以取代上位監(jiān)控組態(tài)軟件。下面做一下簡(jiǎn)單的介紹。

LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是實(shí)驗(yàn)室虛擬儀器集成開(kāi)發(fā)平臺(tái)的簡(jiǎn)稱,它是目前國(guó)際上應(yīng)用最廣泛的虛擬儀器開(kāi)發(fā)環(huán)境之一。LabVIEW的最大特色是采用編譯型圖形化編程語(yǔ)言-G語(yǔ)言(Graph Programming),它與C、Pascal、Basic等傳統(tǒng)語(yǔ)言有著相似之處,如:相似的數(shù)據(jù)類型、數(shù)據(jù)流控制結(jié)構(gòu)、程序調(diào)試工具,以及模塊化的編程特點(diǎn)。但二者最大的區(qū)別在于:傳統(tǒng)編程語(yǔ)言用文本語(yǔ)言編程,程序的執(zhí)行依賴于文本所描述的指令;而LabVIEW使用圖形語(yǔ)言(即各種圖標(biāo)、圖形、符號(hào)、連線等)以框圖的形式編寫程序。用LabVIEW編程無(wú)需具備太多編程經(jīng)驗(yàn),因?yàn)長(zhǎng)abVIEW使用的都是測(cè)試工程師們熟悉的術(shù)語(yǔ)和圖標(biāo),如各種按鈕、開(kāi)關(guān)、波形圖等,界面非常直觀形象 [1]。然而,用LabVIEW實(shí)現(xiàn)事故報(bào)警、系統(tǒng)事件發(fā)生、實(shí)時(shí)與歷史數(shù)據(jù)曲線顯示及安全性功能時(shí),都是通過(guò)復(fù)雜編程實(shí)現(xiàn)的,因此,對(duì)于不熟練LabVIEW的用戶來(lái)說(shuō),相對(duì)較難。鑒于此,NI公司推出了LabVIEW的附加模塊——數(shù)據(jù)記錄監(jiān)控模塊DSC(Datalogging and Supervisory Control Module),此模塊是專為過(guò)程控制設(shè)計(jì)的,它提供了實(shí)現(xiàn)過(guò)程控制軟件所必須的控件和功能模塊,如實(shí)時(shí)歷史趨勢(shì)圖、數(shù)據(jù)庫(kù)、報(bào)警、數(shù)據(jù)報(bào)表等等[2]。因此,利用“LabVIEW+DSC”的設(shè)計(jì)方法來(lái)開(kāi)發(fā)監(jiān)控軟件,在上述功能的實(shí)現(xiàn)過(guò)程中,既操作簡(jiǎn)單,又無(wú)需大量的編程工作,節(jié)省了開(kāi)發(fā)時(shí)間,提高了開(kāi)發(fā)效率。

2監(jiān)控軟件設(shè)計(jì)

監(jiān)控軟件一般應(yīng)實(shí)現(xiàn)的基本監(jiān)控功能包括:數(shù)據(jù)采集與數(shù)據(jù)處理功能、系統(tǒng)故障診斷和事故報(bào)警功能、圖形組態(tài)功能、實(shí)時(shí)與歷史數(shù)據(jù)曲線顯示功能、報(bào)表打印功能和友好的人機(jī)界面[4]。

2.1數(shù)據(jù)采集及存儲(chǔ)

在現(xiàn)場(chǎng)總線控制系統(tǒng)中,對(duì)于過(guò)程控制來(lái)說(shuō),很重要的內(nèi)容就是對(duì)實(shí)時(shí)采集的數(shù)據(jù)進(jìn)行顯示和查詢以及報(bào)表分析,這就涉及到數(shù)據(jù)采集及存儲(chǔ)的問(wèn)題。“數(shù)據(jù)采集”是指將溫度、壓力、流量等模擬量采集、轉(zhuǎn)換成數(shù)字量以后,再由計(jì)算機(jī)進(jìn)行存儲(chǔ)、處理、顯示或者打印的過(guò)程。所以用LabVIEW實(shí)現(xiàn)實(shí)時(shí)的數(shù)據(jù)采集功能是設(shè)計(jì)研究的關(guān)鍵部分。運(yùn)用“LabVIEW+DSC”相結(jié)合的設(shè)計(jì)方法,軟件體系結(jié)構(gòu)圖如圖1所示:

圖1 “LabVIEW+DSC”的軟件體系結(jié)構(gòu)圖

2.1.1OPC服務(wù)器的配置

為提高系統(tǒng)的開(kāi)放性,選用了“LabVIEW+OPC”的設(shè)計(jì)方法。就是用LabVIEW作為上位機(jī)監(jiān)控軟件,采用先進(jìn)的網(wǎng)絡(luò)通信技術(shù)——DataSocket技術(shù),通過(guò)OPC服務(wù)器接口來(lái)實(shí)現(xiàn)現(xiàn)場(chǎng)數(shù)據(jù)共享。這里采用的OPC服務(wù)器是Matrikon公司研發(fā)的,它作為一中間橋梁,實(shí)現(xiàn)了監(jiān)控軟件LabVIEW和現(xiàn)場(chǎng)智能組件之間的數(shù)據(jù)通信,通過(guò)OPC配置項(xiàng)建立與底層設(shè)備的數(shù)據(jù)采集點(diǎn)的一一對(duì)應(yīng)關(guān)系。如下圖所示:

圖2OPC服務(wù)器的配置項(xiàng)

其中項(xiàng)名Name是用戶自己定義的對(duì)應(yīng)于現(xiàn)場(chǎng)的數(shù)據(jù)采集點(diǎn),Item Path必須符合OPC服務(wù)器與MODBUS協(xié)議的語(yǔ)法要求,即“[port].Device.0~4:”,同時(shí)設(shè)置該項(xiàng)是讀數(shù)據(jù)還是寫數(shù)據(jù)以及數(shù)據(jù)的類型、更新時(shí)間等等[5]。

2.1.2 實(shí)時(shí)數(shù)據(jù)庫(kù)

LabVIEW訪問(wèn)OPC的方法有很多種,本文采用的是通過(guò)DSC模塊中Tag Configuration Editor引擎,建立LabVIEW和OPC服務(wù)器的連接。DSC模塊使用Tag連接OPC數(shù)據(jù)項(xiàng),通過(guò)Tag Configuration Editor ,可以將DSC的Tag與OPC數(shù)據(jù)項(xiàng)對(duì)應(yīng)起來(lái),生成.scf文件,相當(dāng)于LabVIEW的實(shí)時(shí)數(shù)據(jù)庫(kù),如圖3所示。

圖3 .scf文件

在Analog Tag Configuration 的Connect目錄下的Item與OPC服務(wù)器的項(xiàng)名進(jìn)行匹配,并對(duì)Tag進(jìn)行了詳細(xì)的描述,如OPC服務(wù)器,工程量的范圍,報(bào)警的上下限,更新的死區(qū)等等[3]。在運(yùn)行時(shí),標(biāo)簽引擎Tag Engine 會(huì)根據(jù).scf文件的配置建立與OPC服務(wù)器的連接。當(dāng)OPC服務(wù)器與.scf文件配置好以后,可以在LabVIEW的前面板上通過(guò)Numeric Control,Numeric Indicator控件讀寫現(xiàn)場(chǎng)采集的數(shù)據(jù),Numeric Control,Numeric Indicator控件通過(guò)人機(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)名。

DSC模塊的成功運(yùn)用,使得界面之間的切換更加友好化;并成功解決了數(shù)據(jù)更新速度慢、界面之間切換慢的問(wèn)題,保證了控制的實(shí)時(shí)性和可靠性等要求。

2.1.3 報(bào)表生成

現(xiàn)場(chǎng)采集來(lái)的數(shù)據(jù)可以以報(bào)表的形式輸出到Execl表格中,以供存儲(chǔ)與瀏覽。然而,LabVIEW本身沒(méi)有強(qiáng)大的實(shí)時(shí)數(shù)據(jù)庫(kù),只有通過(guò)DSC模塊生成的.scf文件來(lái)記錄數(shù)據(jù)并存入歷史數(shù)據(jù)庫(kù),但是它是根據(jù)記錄死區(qū)log Deadband所定義的偏差來(lái)記錄數(shù)據(jù)的,而不是根據(jù)時(shí)間記錄的,只有當(dāng)數(shù)據(jù)的變化超出偏差時(shí)才記錄,因此,會(huì)導(dǎo)致在生成報(bào)表時(shí)數(shù)據(jù)和時(shí)間不對(duì)應(yīng)。鑒于上述原因,一般通過(guò)編程來(lái)實(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)用效果非常好。尤其在編程過(guò)程中,調(diào)用了LabVIEW中的兩個(gè)子VI:Generate Unique Filename.vi(用來(lái)指示報(bào)表的路徑及時(shí)間)和Array to HTML Table.vi(用于生成報(bào)表的格式),使得流程圖的編譯更簡(jiǎn)單、簡(jiǎn)潔,并增加了軟件的可復(fù)用性。

圖4 數(shù)據(jù)存儲(chǔ)及報(bào)表生成

2.2實(shí)時(shí)與歷史曲線顯示

趨勢(shì)曲線能夠形象清楚地描繪出現(xiàn)場(chǎng)數(shù)據(jù)在一段時(shí)間內(nèi)的分布趨勢(shì),通過(guò)趨勢(shì)圖,操作員可以根據(jù)各個(gè)現(xiàn)場(chǎng)數(shù)據(jù)采集點(diǎn)的數(shù)據(jù)的變化趨勢(shì)看出各個(gè)量的變化情況,而且能查看任何歷史時(shí)刻的數(shù)據(jù),供現(xiàn)場(chǎng)操作人員作出適當(dāng)?shù)奶幚怼?/p>

在實(shí)現(xiàn)實(shí)時(shí)曲線時(shí),調(diào)用了DSC模塊提供的Trend Tags.vi,該子VI的輸入為標(biāo)簽(Tag)和時(shí)間長(zhǎng)度,可以通過(guò)編程來(lái)實(shí)現(xiàn)X軸、Y軸顯示的數(shù)據(jù)范圍的大小;實(shí)現(xiàn)歷史曲線時(shí),調(diào)用DSC模塊提供的Read Treace.vi,通過(guò)Historical Trend控件可以查看任意歷史時(shí)刻的現(xiàn)場(chǎng)采集的數(shù)據(jù),通過(guò)選擇不同的現(xiàn)場(chǎng)采集點(diǎn),X軸、Y軸的量程范圍也隨之變化。值得注意的是,歷史曲線只有在數(shù)據(jù)變化超過(guò)所設(shè)定的偏差時(shí),才顯示曲線的趨勢(shì)圖。

2.3報(bào)警顯示與故障處理

監(jiān)控軟件一般都提供了報(bào)警系統(tǒng),報(bào)警系統(tǒng)可用于生成、顯示、存儲(chǔ)報(bào)警信息,并將報(bào)警信息發(fā)送到網(wǎng)絡(luò)上的任意節(jié)點(diǎn),或監(jiān)控主機(jī)相連的打印機(jī)、磁盤文件、報(bào)警概要顯示、報(bào)警歷史窗口以及多媒體報(bào)警系統(tǒng),按故障發(fā)生時(shí)間任意排序、登記在數(shù)據(jù)庫(kù)中,并在計(jì)算機(jī)上顯示出來(lái)。

本文是采用DSC模塊提供了報(bào)警事件顯示Alarm Event Display控件,實(shí)現(xiàn)有關(guān)的現(xiàn)場(chǎng)報(bào)警及各種應(yīng)用報(bào)警的顯示。它可以用來(lái)對(duì)現(xiàn)場(chǎng)的事件報(bào)警信息進(jìn)行顯示,包括產(chǎn)生報(bào)警現(xiàn)場(chǎng)測(cè)量點(diǎn),報(bào)警的時(shí)間,報(bào)警的優(yōu)先級(jí)及報(bào)警的原因等等,產(chǎn)生報(bào)警以后需要對(duì)此信息進(jìn)行確認(rèn),確認(rèn)后在報(bào)警信息欄會(huì)顯示報(bào)警確認(rèn)的時(shí)間和確認(rèn)者;未響應(yīng)的故障持續(xù)發(fā)出聲光報(bào)警,并用紅色進(jìn)行閃爍指示。

2.4人機(jī)交互與用戶安全權(quán)限

LabVIEW提供了豐富的前面板控件,如數(shù)據(jù)連接,按鈕、表格、曲線等,甚至還有專門的裝飾控件,并且DSC模塊的Image Navigator也包含了各種各樣的圖標(biāo)(Symbols),可以滿足用戶的各種要求,同時(shí)也可以在前面板上粘貼.Bmp和.JPEG格式的圖片,完全能夠?qū)崿F(xiàn)監(jiān)控軟件的流程畫面設(shè)計(jì),使人機(jī)界面更友好[6]。

再者,為了保證正常生產(chǎn)監(jiān)控的需要,防止誤操作造成生產(chǎn)停頓和大的經(jīng)濟(jì)損失,要明確操作人員的職責(zé)范圍,防止操作人員的越權(quán)操作。因此,可以通過(guò)設(shè)置以安全級(jí)別為基礎(chǔ)的各種用戶,在應(yīng)用程序?qū)用鎸?duì)操作員的操作權(quán)限進(jìn)行控制,禁止越權(quán)操作。

DSC模塊提供了NI User Account Manager,可編輯各個(gè)安全級(jí)別不同的用戶。在運(yùn)行DSC Run-Time System時(shí),調(diào)用Invoke Login Dialog.vi讓用戶注冊(cè),前面板可控制的控件提供安全屬性設(shè)置,定義某些用戶可以控制及其具有的操作權(quán)限。這樣,每個(gè)控件僅允許預(yù)先定義的用戶進(jìn)行操作,用戶要實(shí)現(xiàn)對(duì)控件的控制,則需要先用相應(yīng)的權(quán)限進(jìn)行注冊(cè)。本監(jiān)控軟件設(shè)定了三個(gè)用戶級(jí)別:

(1)工程師級(jí):能修改系統(tǒng)組態(tài)的各種參數(shù),能清除記錄文件的內(nèi)容。

(2)操作員級(jí):能修改部分參數(shù)和進(jìn)行遠(yuǎn)程標(biāo)定。

(3)一般級(jí):僅能查看畫面和數(shù)據(jù),不能做任何修改和遠(yuǎn)程操作。

3 結(jié)束語(yǔ)

該監(jiān)控軟件經(jīng)實(shí)際運(yùn)行證明,LabVIEW的圖形化編程環(huán)境,可以使用戶設(shè)計(jì)出使用靈活、畫面質(zhì)量和表現(xiàn)形式豐富多樣的監(jiān)控系統(tǒng)。再者,采用DSC(數(shù)據(jù)記錄監(jiān)控)模塊所提供的諸如圖庫(kù)、VIs以及實(shí)時(shí)數(shù)據(jù)庫(kù)等功能可以使用戶組態(tài)系統(tǒng)所需的時(shí)間縮短,同時(shí)使系統(tǒng)功能得到加強(qiáng)。此監(jiān)控軟件已成功運(yùn)用于某藥業(yè)的FQA工程,它不僅能滿足現(xiàn)場(chǎng)監(jiān)控的各種需要,且畫面生動(dòng)逼真,貼近現(xiàn)場(chǎng)、操作簡(jiǎn)便安全、報(bào)表打印靈活方便、安全性可靠等諸多優(yōu)點(diǎn)得到了用戶的高度好評(píng),再次驗(yàn)證了基于LabVIEW的監(jiān)控軟件在過(guò)程控制中可行性。



關(guān)鍵詞: LabVIEWDSC監(jiān)控軟

評(píng)論


技術(shù)專區(qū)

關(guān)閉