引言
在工業(yè)監(jiān)控系統(tǒng)中,國(guó)產(chǎn)組態(tài)軟件的應(yīng)用越來(lái)越普遍,其中組態(tài)王6.5具有良好的圖形界面、豐富的驅(qū)動(dòng)程序和網(wǎng)絡(luò)功能,價(jià)格適中,因而在國(guó)內(nèi)冶金、電力等領(lǐng)域應(yīng)用廣泛。但是,組態(tài)王并非面面俱到,有時(shí)需要利用其他軟件彌補(bǔ)其薄弱環(huán)節(jié)。本文基于組態(tài)王6.5和Visual Basic 6.0實(shí)現(xiàn)了一種適合工業(yè)現(xiàn)場(chǎng)的遠(yuǎn)程監(jiān)控系統(tǒng),該方法既利用組態(tài)軟件方便快捷的界面設(shè)計(jì)功能,又可借助VB編程實(shí)現(xiàn)大數(shù)據(jù)量的串口通信、復(fù)雜的數(shù)據(jù)分析和處理等功能。本系統(tǒng)投入運(yùn)行后,對(duì)武鋼工業(yè)港的6312站和1#混勻取料機(jī)進(jìn)行在線監(jiān)測(cè)和故障診斷。實(shí)際運(yùn)行效果表明:該監(jiān)控系統(tǒng)實(shí)現(xiàn)了武鋼工業(yè)港中控室和各監(jiān)控點(diǎn)之間連續(xù)、可靠的數(shù)據(jù)信息交換,是一種經(jīng)濟(jì)實(shí)用、安全有效的工業(yè)監(jiān)控方式。
1、監(jiān)控系統(tǒng)的硬件結(jié)構(gòu)
本系統(tǒng)采用無(wú)線傳輸裝置、數(shù)據(jù)采集裝置和工控機(jī),以分布式控制方式組成監(jiān)控系統(tǒng)。在監(jiān)控系統(tǒng)中,主站上位機(jī)采用1臺(tái)工業(yè)PC機(jī)作為中控室的主機(jī),從站下位機(jī)為2臺(tái)現(xiàn)場(chǎng)數(shù)據(jù)采集裝置,分別連接6312站和1#混勻取料機(jī)的信號(hào)源。作為信息終端的上、下位機(jī)通過(guò)串行端口與無(wú)線傳輸裝置相連,以無(wú)線通信的方式進(jìn)行數(shù)據(jù)信息的相互傳輸,形成一個(gè)三級(jí)網(wǎng)絡(luò)系統(tǒng),監(jiān)控系統(tǒng)基本結(jié)構(gòu)如圖1所示。
上位機(jī)中的監(jiān)控軟件負(fù)責(zé)向下位機(jī)發(fā)送地址信息和控制命令,接收來(lái)自下位機(jī)管理設(shè)備的相關(guān)運(yùn)行狀態(tài)及參數(shù)信息,完成對(duì)生產(chǎn)過(guò)程的動(dòng)態(tài)模擬顯示和相關(guān)的數(shù)據(jù)處理,提供信息報(bào)警和數(shù)據(jù)報(bào)表等功能。下位機(jī)完成對(duì)設(shè)備數(shù)據(jù)的實(shí)時(shí)采集,然后響應(yīng)主站的請(qǐng)求,通過(guò)無(wú)線傳輸裝置將設(shè)備的更新數(shù)據(jù)以無(wú)線通信的方式及時(shí)上傳至主站的上位機(jī)中,實(shí)現(xiàn)設(shè)備點(diǎn)檢狀態(tài)的在線監(jiān)測(cè)。
2、監(jiān)控軟件的設(shè)計(jì)
2.1 組態(tài)王簡(jiǎn)介
組態(tài)王是一款國(guó)產(chǎn)組態(tài)軟件,它具有①豐富的圖庫(kù)及圖庫(kù)開發(fā)工具,通過(guò)形象簡(jiǎn)單的組態(tài)工作,即可構(gòu)成所需功能的界面;②大量的設(shè)備驅(qū)動(dòng)接口,支持國(guó)內(nèi)主流的各種PLC、智能儀表、板卡和現(xiàn)場(chǎng)總線等工控產(chǎn)品;③一種類似C語(yǔ)言的編程環(huán)境,便于建立命令語(yǔ)言文本,處理一些簡(jiǎn)單的算法和操作;④內(nèi)嵌許多控件函數(shù)、命令語(yǔ)言函數(shù)供用戶調(diào)用,另外支持自定義函數(shù)。
2.2 組態(tài)王的不足
本系統(tǒng)要求監(jiān)控軟件具有良好的監(jiān)控界面,但是單獨(dú)使用組態(tài)王將無(wú)法實(shí)現(xiàn)上位機(jī)監(jiān)控軟件的要求,因?yàn)樵趯?shí)際應(yīng)用的過(guò)程中組態(tài)王存在如下不足:①組態(tài)王提供的命令語(yǔ)言環(huán)境較弱,對(duì)于較為復(fù)雜的數(shù)據(jù)處理很難實(shí)現(xiàn)。例如:系統(tǒng)中需要通過(guò)FFT變換得到振動(dòng)信號(hào)的頻譜分析曲線,對(duì)G312站的高速軸和二軸進(jìn)行故障診斷分析;②在組態(tài)王中,串口設(shè)備對(duì)應(yīng)的變量類型為字符串型,其最大長(zhǎng)度值為128個(gè)字符,即通過(guò)串口設(shè)備組態(tài)王一次最多只能交換16B的數(shù)據(jù)。由于系統(tǒng)中實(shí)現(xiàn)故障診斷所需的數(shù)據(jù)量很大,數(shù)據(jù)終端通過(guò)無(wú)線數(shù)傳電臺(tái)交換的數(shù)據(jù)包遠(yuǎn)遠(yuǎn)超過(guò)了組態(tài)王定義串口通信I/O變量的范圍,因此對(duì)于利用串口設(shè)備實(shí)現(xiàn)大數(shù)據(jù)量通信的系統(tǒng),組態(tài)王存在很大的局限性。
2.3 監(jiān)控軟件結(jié)構(gòu)
鑒于組態(tài)王的不足,我們利用組態(tài)王6.5和VB6.0混合編程開發(fā)上位機(jī)監(jiān)控軟件,監(jiān)控軟件的結(jié)構(gòu)如圖2所示。組態(tài)王6.5作為前臺(tái)程序完成監(jiān)控界面的開發(fā),操作人員通過(guò)前臺(tái)運(yùn)行的組態(tài)王可以實(shí)時(shí)監(jiān)測(cè)各設(shè)備的運(yùn)行狀態(tài),根據(jù)相關(guān)數(shù)據(jù)和趨勢(shì)圖判斷設(shè)備的故障情況。系統(tǒng)運(yùn)行時(shí),VB6.0作為后臺(tái)程序,主要實(shí)現(xiàn)數(shù)據(jù)通信功能及復(fù)雜的數(shù)據(jù)處理算法。組態(tài)王與VB程序之間以文件的形式實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)的交換,而不是采用組態(tài)王提供的DDE方式,其原因是:在VB環(huán)境中每個(gè)數(shù)據(jù)必須對(duì)應(yīng)一個(gè)特定的文本框、標(biāo)簽或圖片框,并且在組態(tài)王中也必有一個(gè)I/O點(diǎn)對(duì)應(yīng),因此DDE方式適合數(shù)據(jù)量不太大的場(chǎng)合,否則會(huì)給VB編程帶來(lái)一定的麻煩,同時(shí)增加組態(tài)王的點(diǎn)數(shù),增加了軟件成本。
3、監(jiān)控軟件的實(shí)現(xiàn)
3.1 監(jiān)控界面的實(shí)現(xiàn)
在Windows2000環(huán)境下,系統(tǒng)采用組態(tài)王6.5開發(fā)上位機(jī)實(shí)時(shí)監(jiān)控界面,主要包括以下部分。
(1)主界面。主界面的功能主要是反映G312站和1#混勻取料機(jī)的實(shí)時(shí)工作流程?,F(xiàn)場(chǎng)上傳的數(shù)據(jù)與組態(tài)王數(shù)據(jù)庫(kù)中定義的變量對(duì)應(yīng),通過(guò)圖形對(duì)象與變量之間動(dòng)畫連接類型模擬現(xiàn)場(chǎng)設(shè)備的運(yùn)行,可以直觀、動(dòng)態(tài)地顯示現(xiàn)場(chǎng)設(shè)備參數(shù)的變化。
(2)信號(hào)分析界面。該界面為G312站減速箱的軸承提供故障診斷的理論依據(jù),操作人員根據(jù)信號(hào)分析界面中顯示的數(shù)據(jù)和相關(guān)趨勢(shì)圖可以判斷產(chǎn)生故障的部位和原因,預(yù)測(cè)設(shè)備未來(lái)的運(yùn)行狀態(tài)。該界面中主要顯示G312站中高速軸和二軸的溫度,振動(dòng)速度值及其均方根、信號(hào)峭度、信號(hào)偏態(tài)和峰值因子等數(shù)據(jù),以及振動(dòng)速度趨勢(shì)曲線和對(duì)應(yīng)的頻譜分析曲線。
(3)信息報(bào)警界面。信息報(bào)警分為實(shí)時(shí)報(bào)警和歷史報(bào)警。當(dāng)監(jiān)控系統(tǒng)中發(fā)生符合報(bào)警配置條件的實(shí)時(shí)報(bào)警信息時(shí),報(bào)警點(diǎn)所屬的主界面中會(huì)彈出相應(yīng)的實(shí)時(shí)報(bào)警窗口,同時(shí)發(fā)出聲音報(bào)警,直至報(bào)警信息確認(rèn)恢復(fù)。歷史報(bào)警窗口中記錄系統(tǒng)運(yùn)行中的各種報(bào)警和事件信息,提供信息查詢和打印功能。
(4)報(bào)表界面。數(shù)據(jù)報(bào)表主要反應(yīng)生產(chǎn)過(guò)程中的數(shù)據(jù)和狀態(tài)等,通過(guò)對(duì)長(zhǎng)期的生產(chǎn)過(guò)程進(jìn)行統(tǒng)計(jì)可以掌握和分析設(shè)備的生產(chǎn)情況。系統(tǒng)采用組態(tài)王提供的內(nèi)嵌式報(bào)表系統(tǒng),根據(jù)要求設(shè)置報(bào)表的格式并對(duì)報(bào)表進(jìn)行組態(tài)。另外,調(diào)用組態(tài)王中的系統(tǒng)函數(shù)實(shí)現(xiàn)報(bào)表的打印功能。
3.2 數(shù)據(jù)通信及處理的實(shí)現(xiàn)
遠(yuǎn)程監(jiān)控系統(tǒng)中,采用VB6.0的MSComm串行通信控件實(shí)現(xiàn)數(shù)據(jù)的發(fā)送和接收,并以事件驅(qū)動(dòng)方式響應(yīng)OnComm事件,對(duì)上位機(jī)接收的數(shù)據(jù)包進(jìn)行處理,具體實(shí)現(xiàn)過(guò)程如下。
第1步,初始化。系統(tǒng)運(yùn)行時(shí),上位機(jī)采取主叫的方式,由VB程序設(shè)置通信參數(shù)、握手信號(hào)(從站的站地址)和通信采樣時(shí)間等信息,負(fù)責(zé)建立主、從站之間的通信聯(lián)接。
第2步,請(qǐng)求數(shù)據(jù)。VB程序生成數(shù)據(jù)請(qǐng)求指令,該指令通過(guò)連接在串口上的無(wú)線傳輸裝置以廣播通信的方式向遠(yuǎn)端從站發(fā)送。在正常情況下,利用Timer控件設(shè)置上位機(jī)采樣時(shí)間,上位機(jī)定時(shí)輪流向從站請(qǐng)求數(shù)據(jù)。然后,上位機(jī)處于數(shù)據(jù)等待狀態(tài)。
第3步,接收數(shù)據(jù)。當(dāng)從站接收到握手信號(hào)并判斷準(zhǔn)確后,將現(xiàn)場(chǎng)采集的數(shù)據(jù)以數(shù)據(jù)包的形式,通過(guò)無(wú)線傳輸裝置送至上位機(jī)中。
第4步,數(shù)據(jù)處理。上位機(jī)的串口定時(shí)接收到數(shù)據(jù)包后,促發(fā)VB的OnComm事件,對(duì)數(shù)據(jù)包進(jìn)行解包,然后進(jìn)行相應(yīng)的數(shù)據(jù)處理,例如表度變換、FFT等。
第5步,數(shù)據(jù)交換。VB與組態(tài)王之間以文件的形式進(jìn)行數(shù)據(jù)的動(dòng)態(tài)交換。VB將指定的字符串變量寫人文本文件中;組態(tài)王在應(yīng)用程序命令中定時(shí)更新讀取該文本文件,然后存入組態(tài)王定義的變量中,供組態(tài)王以各種形式(如文本、顏色、動(dòng)畫和棒圖等)反映現(xiàn)場(chǎng)設(shè)備的狀態(tài),達(dá)到遠(yuǎn)程監(jiān)控的目的。
在利用VB實(shí)現(xiàn)無(wú)線通信的過(guò)程中,除了定義合理的通信協(xié)議外,每次發(fā)送傳輸指令后,需要適當(dāng)?shù)卦黾友訒r(shí),等待一段時(shí)間后再?gòu)拇诘妮斎刖彌_區(qū)讀取數(shù)據(jù),以此保證通信的正確性。
4、結(jié)束語(yǔ)
本文應(yīng)用VB編程擴(kuò)充了組態(tài)王串口通信和數(shù)據(jù)處理的功能,實(shí)現(xiàn)了一種適用于工業(yè)現(xiàn)場(chǎng)的監(jiān)控系統(tǒng)。該系統(tǒng)集現(xiàn)場(chǎng)監(jiān)控、數(shù)據(jù)采集和遠(yuǎn)程傳輸于一體,便于擴(kuò)展,成功用于武鋼工業(yè)港,達(dá)到了令人滿意的監(jiān)控效果?!?