摘 要: 本文首先分析了網絡遠程控制系統(tǒng)的層次結構,提出了基于網絡的工業(yè)遠程控制系統(tǒng)。系統(tǒng)采用了微軟最新的.NET技術,以Visual basic.net作為開發(fā)語言,以Visual Studio.Net等軟件作為開發(fā)工具,以SQL Server 2000作為數(shù)據(jù)庫平臺,利用ASP.NET,ADO.NET和Activex等技術開發(fā)了基于Web的遠程監(jiān)測系統(tǒng)。
關鍵字: 遠程控制; 網絡; SQL
1 引言
控制系統(tǒng)是集計算機技術、控制技術、網絡技術為一體的產品,具有控制功能強、操作簡便和可靠性高等特點,它可以方便地用于工業(yè)裝置的生產控制和經營管理。結合網絡技術的發(fā)展,各種先進的技術不斷涌現(xiàn),例如遠程控制、遠程制造等。本文以實驗室遠程控制技術為基礎應用于工業(yè)現(xiàn)場,設計了一種基于網絡的工業(yè)遠程控制系統(tǒng)。
2 系統(tǒng)構成框圖
本工業(yè)遠程控制系統(tǒng)的總體框圖如1所示。
[align=center]

圖1 系統(tǒng)框圖[/align]
3 遠程控制網絡結構的具體實現(xiàn)
3.1 現(xiàn)場控制設備
本文的設備層主要包括:THJ-2型高級過程控制系統(tǒng)、SIEMENS變頻器、智能數(shù)顯表、各種傳感器、SIEMENS PLC S7-200以及智能采集模塊等。在這些設備中SIEMENS PLC S7-200充當下位機作為控制器,它是現(xiàn)場設備層與現(xiàn)場控制計算機層的橋梁。SIEMENS PLC S7-200通過PC/PPI電纜與工控機的RS-485相連。S7-200 CPU將一個微處理器、一個集成電源和數(shù)字量I/O點集成在一個緊湊的封裝中,從而形成了一個功能強大的微型PLC,當下載程序后,S7-200就可以按照邏輯關系控制I/O設備從而實現(xiàn)應用要求。還可利用多種類型的擴展模塊來完善其CPU的功能。該系統(tǒng)中膨化罐的溫度、重量、壓力均用模擬量輸入/輸出模塊EM235來控制。
3.2 現(xiàn)場控制計算機
本系統(tǒng)的現(xiàn)場控制計算機使用的是研華工控機,在硬件方面它本身帶有RS-485接口,同時支持ISA、PCI類型的數(shù)據(jù)采集板卡,很方便就能與現(xiàn)場設備連接。本機在軟件方面裝有設備專用的編程軟件,進行開發(fā)、編輯和控制自己的應用程序來控制可編程控制器。例如STEP 7-Micro/WIN編程軟件來編輯應用程序,控制S7-200數(shù)字量/模擬量輸入輸出控制,還裝有組態(tài)軟件-MCGS 6.0網絡版完成控制畫面以及SQL Server 2000完成數(shù)據(jù)存儲。
1、工業(yè)控制計算機與THJ-2高級型過程控制裝置的通訊
本實驗裝置與工業(yè)控制計算機的通訊采用RS485串口通訊協(xié)議,通過在工控機上安裝RS232/485轉換板卡把工控機RS232通訊協(xié)議下的信號轉換成RS485通訊協(xié)議下的信號,利用儀表控制臺側部的RS485串行接口同所有儀表進行通訊。采用二線制雙絞線進行通訊。
工控機上裝有MCGS組態(tài)軟件,在組態(tài)軟件的設備窗口中,在設備工具箱中加入AI系列智能儀表的驅動程序,首先雙擊設備工具箱中的通用串口設備,然后再雙擊不同型號的AI系列智能儀表驅動,使它們掛接在通用串口設備下,通用串口設備的參數(shù)設置應當和智能儀表的參數(shù)設置相一致,包括最小采集周期,通訊波特率等,通用串口設備的參數(shù)設置應當和智能儀表的參數(shù)設置相一致,包括最小采集周期,通訊波特率等。
2、數(shù)據(jù)庫服務器
在現(xiàn)代化的工業(yè)生產現(xiàn)場,由于大量使用各種類型的控制設備,因此,通常會產生大量的生產數(shù)據(jù)。這就要求構成控制系統(tǒng)核心的組態(tài)軟件具備強大的數(shù)據(jù)處理能力,從而有效、合理地將這些生產數(shù)據(jù)加以處理,一方面,為現(xiàn)場操作員提供實時、可靠的圖象、曲線等,以反映現(xiàn)場運行的狀況并方便其進行相應的控制操作;同時,也需要為企業(yè)的管理人員提供各種類型的數(shù)據(jù)報表,為企業(yè)管理提供切實可靠的第一手資料。通過MCGS組態(tài)軟件可以完成數(shù)據(jù)的初步處理,該組態(tài)軟件將數(shù)據(jù)處理過程分為三個階段,即:數(shù)據(jù)前處理、實時數(shù)據(jù)處理以及數(shù)據(jù)后處理,以滿足各種類型的需要,如下圖2所示:
[align=center]

圖2 數(shù)據(jù)處理流程[/align]
1) 數(shù)據(jù)前處理。在實際應用中,從硬件設備中輸入或輸出的數(shù)據(jù)一般是特定范圍內的電壓、電流等物理意義的值,通常要對這些數(shù)據(jù)進行相應的轉換,才能得到真正具有實際意義的工程數(shù)據(jù)。例如,從AD通道采集進來的數(shù)據(jù)一般都為電壓mV值,需要進行量程轉換或查表、計算等處理才能得到所需的工程物理量。MCGS系統(tǒng)對設備采集通道的數(shù)據(jù)可以進行八種形式的數(shù)據(jù)處理。各種處理可單獨進行也可組合進行。MCGS的數(shù)據(jù)前處理與設備是緊密相關的,在MCGS設備窗口下,打開設備構件,設置其數(shù)據(jù)處理屬性頁即可進行MCGS的數(shù)據(jù)前處理組態(tài)。
2) 實時數(shù)據(jù)處理。MCGS缺省使用Microsoft Access數(shù)據(jù)庫作為歷史存盤數(shù)據(jù)庫,用數(shù)據(jù)庫技術來管理和維護存盤的數(shù)據(jù),存盤數(shù)據(jù)庫的文件名和路徑在主控窗口屬性中設定,系統(tǒng)運行過程中,MCGS自動進行數(shù)據(jù)存貯操作。這對用戶數(shù)據(jù)的開放式管理是一種非常有效的方式。但是,使用Access數(shù)據(jù)庫也受到該數(shù)據(jù)庫本身特性的制約,特別地,當用戶工程的存盤數(shù)據(jù)量很大或需要存貯很長時間內的數(shù)據(jù)時,使用Access數(shù)據(jù)庫就會因數(shù)據(jù)庫文件過大而導致性能的下降。
針對上述情況,MCGS提供了數(shù)據(jù)存盤備份機制,將歷史數(shù)據(jù)以多個平面文件的形式存貯在硬盤的指定位置或者通過ODBC連接于其它數(shù)據(jù)庫。在膨化系統(tǒng)里使用的是SQL Server 2000數(shù)據(jù)庫。MCGS可以自動把采集到的數(shù)據(jù)存入到數(shù)據(jù)庫SQL Server 2000中。只需在數(shù)據(jù)庫服務器上安裝Microsoft SQL Server 2000服務器端組件,用SQL Server 2000提供的SQL Enterprise Manager(企業(yè)管理器)工具來完成數(shù)據(jù)庫的創(chuàng)建。在膨化炸藥數(shù)據(jù)庫里。數(shù)據(jù)庫的表根據(jù)控制層的需要和設定,自動在指定數(shù)據(jù)庫中生成。使用的主要數(shù)據(jù)庫表如“膨化炸藥”數(shù)據(jù)庫中“真空度”。
注意:對于非組對象類型的數(shù)據(jù)對象,作為獨立的對象按變化量存盤,與作為組對象的成員定時存盤,同一對象采用兩種不同的存儲方式,在存盤數(shù)據(jù)文件內是存儲在不同的地方。單個數(shù)據(jù)對象存盤時,數(shù)據(jù)值主要反映該對象的值隨時間變化的情況,而組對象對應的存盤數(shù)據(jù)重點在于記錄其所有成員在同一時刻的值。一個非組對象類型的數(shù)據(jù)對象可能同時是多個組對象的成員,在幾個地方都可能對其進行了存盤處理,每一部分的存盤數(shù)據(jù)都是各自獨立的。
一般情況下采用組對象存盤,因為組對象存盤時是將組對象的所有成員都同時存盤,在歷史存盤數(shù)據(jù)庫中,每個組對象對應一個數(shù)據(jù)表,其成員對應相應的字段域。如果單個變量定義存盤,則在歷史數(shù)據(jù)庫中該變量對應一個表和字段域,如果變量較多時,則數(shù)據(jù)庫中的表會很多。在實際工程應用中,多個工程物理量之間有聯(lián)系,在歷史報表、歷史曲線中需要把多個變量對應的歷史數(shù)據(jù)同時顯示出來,此時用組對象存盤保證存盤數(shù)據(jù)的同時性,對多個變量的歷史數(shù)據(jù)進行比較才具有物理意義。
3) 數(shù)據(jù)的后處理。組態(tài)軟件中的數(shù)據(jù)的后處理,其本質上是對歷史存盤數(shù)據(jù)庫的處理。將存盤數(shù)據(jù)庫中的歷史數(shù)據(jù)加以提煉,得到對用戶真正有用的數(shù)據(jù)和信息,然后,通過歷史曲線、歷史表格、Excel報表輸出以及存盤數(shù)據(jù)瀏覽等功能將這些數(shù)據(jù)和信息形象地顯示或打印出來。本文中系統(tǒng)使用的就是ASP.NET里的ADO.NET構件訪問存盤數(shù)據(jù),通過ADO.NET讀取SQL Servers數(shù)據(jù)庫表,以膨化真空度數(shù)據(jù)為例說明ADO.NET讀取SQL Servers數(shù)據(jù)的實現(xiàn)。
3.3 Web服務器的實現(xiàn)
Web服務器是整個系統(tǒng)的關鍵,起中轉作用其中主要包括五個進程:登錄界面,實驗參數(shù)設置界,實驗結果顯示界面,Socket服務器和Socket客戶端程序,其結構見圖3所示。
[align=center]

圖3 Web服務器結構圖[/align]
登錄界面,實驗參數(shù)設置界面和實驗結果顯示界面都是用ASP.NET建立的動態(tài)網頁Socket客戶端程序和Socket服務器程序是用VB.NET編寫,在Web服務器中同時設置Socket的服務器程序和客戶端程序是為了將修改后的實驗參數(shù)及時的送給工控機,實現(xiàn)在線實時調節(jié)參數(shù)的功能。同時工控機送回的采樣值被寫入XML文件,實驗參數(shù)從參數(shù)設置界面?zhèn)鹘oSocket客戶端程序,它們之間采用微軟消息隊列進行通信,是并發(fā)執(zhí)行的。Socket服務器程序將工控機送回的采樣值寫入XML文件,實驗結果顯示界面同時讀這個文件,并將其中的數(shù)據(jù)轉換成圖形的形式展現(xiàn)給用戶。
1、使用ASP.NET建立動態(tài)頁面
登錄界面、實驗參數(shù)設置界面、實驗結果顯示界面和組態(tài)演示界面都使用ASP.NET來實現(xiàn)的。在實現(xiàn)登錄,參數(shù)設置和實驗結果顯示時它們分別使用不同的數(shù)據(jù)庫而組態(tài)演示界面調用的是ActiveX構件完成。下面介紹把MCGS組態(tài)界面通過ActiveX構件嵌入到網頁的方法:首先打開VB,創(chuàng)建一個新工程,在ActiveX工具箱中,添加對瀏覽器組件的索引,在窗體上創(chuàng)建一個瀏覽器組件,調整其大小。
2、消息隊列-MSMQ
從體系結構中可知,本系統(tǒng)采用的是多模塊,多進程的模式。為了提高系統(tǒng)的速度,進程間需要并發(fā)執(zhí)行。為了使進程間相互協(xié)調的工作,必須要有相應的機制來保證。這種機制應該具有低耦合性,高可靠性的特點。
微軟消息隊列——MSMQ正是能夠滿足上述條件的一種通信機制,它提供了可靠的異步和松散耦合的通信機制。MSMQ實現(xiàn)原理:消息的發(fā)送者把自己想要發(fā)送的信息放入一個容器中(稱之為message),并將它保存至一個系統(tǒng)公用空間的消息隊列(Message Queue)中;本地或異地的消息接收程序再從該隊列中取出發(fā)給它的消息進行處理。由于MSMQ是異步通信,無論是發(fā)送方還是接收方都不用等待對方返回成功消息,就可以執(zhí)行余下的代碼,這樣就能實現(xiàn)進程的并發(fā)執(zhí)行:消息的格式是用戶自定義的,可以進行簡單的加密:由于MSMQ代表已包裝的服務請求,當要求產生日志時,只需自動為相關的日志隊列產生每個消息的拷貝即可,因此有利于系統(tǒng)的恢復和安全性。
3、DDE方式建立數(shù)據(jù)交換的過程
本文中的系統(tǒng)使用的是DDE熱鏈接的方式,同時用Excel作為MCGS的數(shù)據(jù)與瀏覽器數(shù)據(jù)的中間緩存單元。在MCGS的“實時數(shù)據(jù)庫”窗口中定義的變量Dat01-Dat100,根據(jù)工程的要求部分變量需DDE輸出的,其余的是DDE輸入的。在MCGS組態(tài)環(huán)境的“工具”菜單中選取“DDE連接管理”菜單項。
3.4 代理服務器
本系統(tǒng)使用的代理服務器軟件是Sygate,它是一個網關服務器設置軟件,比Wingate設定更容易更好用的軟件。Sygate是一套允許使用者在局域網中,通過國際互聯(lián)網連接,分享給整個局域網的使用者,讓兩臺以上的電腦,同時上網的好軟件,支持Modem、ISDN、Cable Modem、ASDL等等多種接入,只需要在局域網中有Modem的電腦上安裝即可,是解決多計算機Internet共享的好軟件。
代理服務除了擁有共享Internet連接的作用外,還可以通過本地計算機硬盤中所保留的緩存來提高訪問速度、節(jié)約帶寬的作用。
本文作者創(chuàng)新點:
遠程控制技術是一門綜合性技術,涉及控制、網絡、計算機、數(shù)據(jù)庫等多個領域。本文從系統(tǒng)集成的角度深入研究設計了基于網絡的工業(yè)遠程控制系統(tǒng),實現(xiàn)了遠程客戶端和Web服務器的設計。
參考文獻:
[1] 薛立,范福玲,劉麗萍.基于Web的遠程控制技術的研究與應用[J].中原工學院學報,2005,6(14):18-23
[2] 李洪寶,曾文方.基于Web的實時信息發(fā)布系統(tǒng)的設計與實現(xiàn)[J].計算機應用,2005,19(12):P55-P58
[3] Tony Bain, Denise Gosnell.VB.NET和SQL Server 2000高級編程[M].北京:清華大學出版社,2005:150-192
[4] 劉忠超,何東健,范靈燕. 基于嵌入式Web服務器的溫室遠程監(jiān)控的研究[J]. 微計算機信息, 2006, 10-2: 141-142