梁佩鵬 李文
1 引言
IT界正流行著Sun公司的一句名言“網(wǎng)絡(luò)就是計算機”,而隨著網(wǎng)絡(luò)技術(shù)在控制領(lǐng)域的廣泛研究和應(yīng)用,“網(wǎng)絡(luò)就是控制”應(yīng)運而生。現(xiàn)階段,隨著計算機網(wǎng)絡(luò)技術(shù)和通信技術(shù)的飛速進(jìn)步,對工業(yè)控制系統(tǒng)的管理控制已不再僅限于現(xiàn)場或近距離監(jiān)控,而是要求與企業(yè)信息系統(tǒng)進(jìn)行整合集成,構(gòu)成控制網(wǎng)絡(luò),以便實現(xiàn)整個企業(yè)的信息化,從而使企業(yè)的業(yè)務(wù)活動拓展到整個Internet。而對系統(tǒng)的遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控是其中的一個重要方面。
這里所說的網(wǎng)絡(luò)監(jiān)控的對象是工業(yè)控制系統(tǒng)的機器、生產(chǎn)線、動力裝置等現(xiàn)場設(shè)備;區(qū)別于網(wǎng)絡(luò)系統(tǒng)中所指的監(jiān)控問題。對工業(yè)控制系統(tǒng)的網(wǎng)絡(luò)監(jiān)控有兩層含義:一是對工業(yè)系統(tǒng)進(jìn)行遙測、遙信、遙控;二是系統(tǒng)管理,對工業(yè)系統(tǒng)運行數(shù)據(jù)進(jìn)行數(shù)據(jù)挖掘,以對系統(tǒng)進(jìn)行評估、管理和決策,為維護(hù)人員排除故障提供準(zhǔn)確的依據(jù),在一定程度上實現(xiàn)故障的預(yù)測與預(yù)防。
新的技術(shù)不斷涌現(xiàn)和被應(yīng)用于工業(yè)系統(tǒng)中,如Java技術(shù)、XML技術(shù)、分布式對象技術(shù)等等,將進(jìn)一步促進(jìn)對工業(yè)控制系統(tǒng)進(jìn)行網(wǎng)絡(luò)監(jiān)控的實現(xiàn)。
2 網(wǎng)絡(luò)監(jiān)控系統(tǒng)結(jié)構(gòu)及功能
對工業(yè)控制系統(tǒng)的網(wǎng)絡(luò)監(jiān)控實質(zhì)上就是對現(xiàn)場設(shè)備基于Internet的監(jiān)控,是建立在已經(jīng)對現(xiàn)場設(shè)備進(jìn)行自動控制的基礎(chǔ)上的。最新的控制網(wǎng)絡(luò)技術(shù)通過將控制系統(tǒng)與企業(yè)管理信息系統(tǒng)基于Intranet進(jìn)行整合集成,可以實現(xiàn)全企業(yè)范圍的信息化。而適應(yīng)電子商務(wù)的發(fā)展,企業(yè)的Internet活動除了傳統(tǒng)的信息發(fā)布、在線交易等應(yīng)用外,對工業(yè)現(xiàn)場系統(tǒng)進(jìn)行遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控也是一個重要的方面。這樣,以Internet為數(shù)據(jù)信息傳輸載體,使產(chǎn)品制造商、使用、維修者、客戶,只要是有權(quán)限者,不管身在何處,都可以方便地瀏覽各種被控制對象的實時數(shù)據(jù)、工作情況。在客戶端控制中心,有智能化軟件、數(shù)據(jù)庫,擁有權(quán)限就可以分析所得結(jié)果,下達(dá)控制指令。通過網(wǎng)絡(luò)監(jiān)控,使專業(yè)人員能夠監(jiān)管更多的設(shè)備。網(wǎng)絡(luò)監(jiān)控系統(tǒng)結(jié)構(gòu)參見圖1所示。
圖1 網(wǎng)絡(luò)監(jiān)控系統(tǒng)結(jié)構(gòu)
工業(yè)控制網(wǎng)絡(luò)監(jiān)控系統(tǒng)的結(jié)構(gòu)可以基于較流行的Web應(yīng)用的三層模型,在現(xiàn)場由智能化監(jiān)測儀器儀表對被控對象進(jìn)行測控,對具有網(wǎng)絡(luò)功能的智能儀表可以直接通過企業(yè)內(nèi)部網(wǎng)將實時監(jiān)測數(shù)據(jù)送到數(shù)據(jù)服務(wù)器,否則可以擴展網(wǎng)絡(luò)接口部件,或者通過RS232/485送入工控機,由工控機實現(xiàn)傳輸數(shù)據(jù)到數(shù)據(jù)服務(wù)器。
數(shù)據(jù)服務(wù)器包括實時數(shù)據(jù)庫和歷史數(shù)據(jù)庫,它可以對報警記錄、管理員信息進(jìn)行管理,支持生成報表、查詢、修改等功能。數(shù)據(jù)服務(wù)器不僅反映了各種參數(shù)的歷史狀態(tài),而且也是管理和決策的重要信息來源。
而對數(shù)據(jù)服務(wù)器的訪問由WWW服務(wù)器來實現(xiàn),WWW服務(wù)器根據(jù)客戶端的各種監(jiān)測請求,對數(shù)據(jù)服務(wù)器進(jìn)行相應(yīng)的操作。這樣就可以在客戶端實現(xiàn)對遠(yuǎn)程現(xiàn)場設(shè)備的實時監(jiān)測、觀察歷史趨勢以及進(jìn)行分析、決策、故障排除等工作。
3 軟件設(shè)計方案
網(wǎng)絡(luò)監(jiān)控軟件著重關(guān)注的是現(xiàn)場設(shè)備監(jiān)測數(shù)據(jù)和控制信息的存儲、傳輸。軟件的設(shè)計一般包括現(xiàn)場設(shè)備端和服務(wù)器端的設(shè)計,而客戶端通常基于瀏覽器。對不同企業(yè)的不同情況可以有靈活的規(guī)劃和選擇。一般情況下,可以有以下幾種方案。
(1) 基于遠(yuǎn)程控制軟件
遠(yuǎn)程控制軟件的發(fā)展非常迅速,它可以實現(xiàn)對遠(yuǎn)程計算機的完全控制。因此可以在工業(yè)控制軟件運行的遠(yuǎn)方計算機上運行遠(yuǎn)程控制軟件服務(wù)器端,而在需要的時候,在本地計算機上運行遠(yuǎn)程控制客戶端,從而實現(xiàn)對工業(yè)控制系統(tǒng)的遠(yuǎn)程監(jiān)控。常見的遠(yuǎn)程控制軟件有pcAnywhere、冰河等等。
這種方案的優(yōu)勢在于無需進(jìn)行開發(fā)即可使用,但缺點也很明顯,數(shù)據(jù)傳輸量比較大、容易引發(fā)安全問題,許多防火墻禁止使用遠(yuǎn)程控制軟件,所以只能在特定的情況下使用。
(2) 基于組態(tài)軟件進(jìn)行改造
當(dāng)前許多企業(yè)都利用組態(tài)軟件實現(xiàn)了對現(xiàn)場系統(tǒng)的集中監(jiān)控。比較有名的組態(tài)軟件有Intellution公司的IFIX、美國AB公司的RSView32、西門子公司的Wincc、以及國產(chǎn)組態(tài)王KingView、北極星等,不同的組態(tài)軟件各有其特點,它們的最新版本都包括了對網(wǎng)絡(luò)功能的擴展,在已有的組態(tài)監(jiān)控系統(tǒng)的基礎(chǔ)上利用其編程接口進(jìn)行添加或改進(jìn)網(wǎng)絡(luò)數(shù)據(jù)傳輸功能,就可以很好地實現(xiàn)對系統(tǒng)的遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控。而Broadwin的WebAcess作為一款基于瀏覽器的組態(tài)軟件,甚至已經(jīng)在一定程度上實現(xiàn)了網(wǎng)絡(luò)監(jiān)控。
這種方案的優(yōu)勢在于可以利用組態(tài)軟件提供的豐富的素材以及良好的編程接口加速開發(fā)進(jìn)展,意在不改動舊有系統(tǒng)的基礎(chǔ)上增加新功能。
(3) 進(jìn)行自行開發(fā)
對于許多企業(yè)而言,以此為契機加速企業(yè)的信息化建設(shè),以適應(yīng)特定的需求,不失為一個很好的選擇。因此很有必要進(jìn)行網(wǎng)絡(luò)監(jiān)控軟件的開發(fā)。
在現(xiàn)場設(shè)備端:當(dāng)前許多編程語言可以用于系統(tǒng)開發(fā),如Java、VB、C++、Dephi、Matlab、LabView等等,它們各有優(yōu)勢,在不同的情況對它們進(jìn)行組合使用可以提高效率。例如VB與C++組合,使用VB制作界面,而由C++控制底層操作;LabView與Java通過DataStocket JavaBean共同使用;Java與C++組合,由Java實現(xiàn)網(wǎng)絡(luò)功能,而由C++ dll實現(xiàn)底層數(shù)據(jù)處理;后者的強強聯(lián)合是今后工業(yè)控制軟件開發(fā)的一個熱點。
在服務(wù)器端:可以利用JSP、Java Applet、ASP、ActiveX對象以及VBScript/JavaScript進(jìn)行開發(fā),通過它們訪問數(shù)據(jù)服務(wù)器,以為客戶端監(jiān)控請求服務(wù)。
4 關(guān)鍵技術(shù)
(1) Java技術(shù)
關(guān)于Java的特點這里不再贅述,當(dāng)前Java的各種應(yīng)用正如火如荼地展開。SUN公司為了占領(lǐng)自動控制市場,推出了串行口信息傳遞軟件包,另外,作為Java開發(fā)包的一部分,JNI(Java Native Interface)已經(jīng)在工業(yè)控制中得到了應(yīng)用。JNI的主要目的是幫助Java軟件開發(fā)員調(diào)用已有的、用其他語言編寫的程序。例如如果設(shè)備用C或C++編寫的控制程序控制的,為了通過網(wǎng)絡(luò)達(dá)到增加遠(yuǎn)程控制的目的,可以用Java編寫遠(yuǎn)距離發(fā)送指令來接受所顯示的部分,調(diào)用C或C++的程序具體實施控制。而Java語言最大的優(yōu)勢在于網(wǎng)上應(yīng)用,在于實體類型模擬,進(jìn)而易于開發(fā)、易于維護(hù),利用Java Socket、RMI技術(shù)非常容易實現(xiàn)分布式Web程序設(shè)計。
(2) C++ DLL技術(shù)
C++是高級語言中對底層硬件操作最強的語言之一。C++通過多種編譯環(huán)境如VC、C++ Builder都可以編寫DLL(Dynamic Link Library 動態(tài)鏈接庫)。DLL是可執(zhí)行的模塊,但它沒有自己的堆棧,必須在調(diào)用動態(tài)鏈接庫函數(shù)的程序環(huán)境下運行。DLL不僅可以作為一個運行模塊,包括函數(shù)代碼,而且可以包含程序以外的任何數(shù)據(jù)或者資源(位圖、圖標(biāo)等)。DLL就是給程序提供函數(shù)或者資源。現(xiàn)在許多語言都支持調(diào)用動態(tài)鏈接庫,從而實現(xiàn)功能擴展。
(3) JSP/ASP與VBScript/JavaScript技術(shù)
JSP(Java Server Page)是基于Java技術(shù)、用于創(chuàng)建可支持跨平臺及跨Web服務(wù)器的動態(tài)網(wǎng)頁的技術(shù)。JSP使用類似于HTML的標(biāo)識和Java代碼片段,執(zhí)行時由Web服務(wù)器自動將通過JSP生成的Java代碼片段轉(zhuǎn)換成Java片段。ASP(Active Server Page)與JSP一樣都是動態(tài)網(wǎng)頁編程語言,它把HTML的簡單性、腳本程序編寫以及Active服務(wù)器組件等常見工具組合在一起,用以創(chuàng)建動態(tài)的功能強大的網(wǎng)站。它們均在服務(wù)器的進(jìn)程內(nèi)運行,是多線程的。
VBScript和JavaScript均是腳本語言,不需要進(jìn)行編譯就可以執(zhí)行,它們被嵌入到HTML文件中能夠給頁面帶來更多的動態(tài)性和交互性。VBScript/JavaScrip程序首先從服務(wù)器中被下載到客戶端,然后被客戶端的瀏覽器解釋執(zhí)行。通過VBScript/JavaScript腳本程序可以使用戶輸入的信息不用經(jīng)過服務(wù)器處理,而是直接被客戶端的腳本所處理。