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