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

圖1 系統(tǒng)框圖[/align]
3 遠程控制網(wǎng)絡(luò)結(jié)構(gòu)的具體實現(xiàn)
3.1 現(xiàn)場控制設(shè)備
本文的設(shè)備層主要包括:THJ-2型高級過程控制系統(tǒng)、SIEMENS變頻器、智能數(shù)顯表、各種傳感器、SIEMENS PLC S7-200以及智能采集模塊等。在這些設(shè)備中SIEMENS PLC S7-200充當下位機作為控制器,它是現(xiàn)場設(shè)備層與現(xiàn)場控制計算機層的橋梁。SIEMENS PLC S7-200通過PC/PPI電纜與工控機的RS-485相連。S7-200 CPU將一個微處理器、一個集成電源和數(shù)字量I/O點集成在一個緊湊的封裝中,從而形成了一個功能強大的微型PLC,當下載程序后,S7-200就可以按照邏輯關(guān)系控制I/O設(shè)備從而實現(xiàn)應(yīng)用要求。還可利用多種類型的擴展模塊來完善其CPU的功能。該系統(tǒng)中膨化罐的溫度、重量、壓力均用模擬量輸入/輸出模塊EM235來控制。
3.2 現(xiàn)場控制計算機
本系統(tǒng)的現(xiàn)場控制計算機使用的是研華工控機,在硬件方面它本身帶有RS-485接口,同時支持ISA、PCI類型的數(shù)據(jù)采集板卡,很方便就能與現(xiàn)場設(shè)備連接。本機在軟件方面裝有設(shè)備專用的編程軟件,進行開發(fā)、編輯和控制自己的應(yīng)用程序來控制可編程控制器。例如STEP 7-Micro/WIN編程軟件來編輯應(yīng)用程序,控制S7-200數(shù)字量/模擬量輸入輸出控制,還裝有組態(tài)軟件-MCGS 6.0網(wǎng)絡(luò)版完成控制畫面以及SQL Server 2000完成數(shù)據(jù)存儲。
1、工業(yè)控制計算機與THJ-2高級型過程控制裝置的通訊
本實驗裝置與工業(yè)控制計算機的通訊采用RS485串口通訊協(xié)議,通過在工控機上安裝RS232/485轉(zhuǎn)換板卡把工控機RS232通訊協(xié)議下的信號轉(zhuǎn)換成RS485通訊協(xié)議下的信號,利用儀表控制臺側(cè)部的RS485串行接口同所有儀表進行通訊。采用二線制雙絞線進行通訊。
工控機上裝有MCGS組態(tài)軟件,在組態(tài)軟件的設(shè)備窗口中,在設(shè)備工具箱中加入AI系列智能儀表的驅(qū)動程序,首先雙擊設(shè)備工具箱中的通用串口設(shè)備,然后再雙擊不同型號的AI系列智能儀表驅(qū)動,使它們掛接在通用串口設(shè)備下,通用串口設(shè)備的參數(shù)設(shè)置應(yīng)當和智能儀表的參數(shù)設(shè)置相一致,包括最小采集周期,通訊波特率等,通用串口設(shè)備的參數(shù)設(shè)置應(yīng)當和智能儀表的參數(shù)設(shè)置相一致,包括最小采集周期,通訊波特率等。
2、數(shù)據(jù)庫服務(wù)器
在現(xiàn)代化的工業(yè)生產(chǎn)現(xiàn)場,由于大量使用各種類型的控制設(shè)備,因此,通常會產(chǎn)生大量的生產(chǎn)數(shù)據(jù)。這就要求構(gòu)成控制系統(tǒng)核心的組態(tài)軟件具備強大的數(shù)據(jù)處理能力,從而有效、合理地將這些生產(chǎn)數(shù)據(jù)加以處理,一方面,為現(xiàn)場操作員提供實時、可靠的圖象、曲線等,以反映現(xiàn)場運行的狀況并方便其進行相應(yīng)的控制操作;同時,也需要為企業(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ù)前處理。在實際應(yīng)用中,從硬件設(shè)備中輸入或輸出的數(shù)據(jù)一般是特定范圍內(nèi)的電壓、電流等物理意義的值,通常要對這些數(shù)據(jù)進行相應(yīng)的轉(zhuǎn)換,才能得到真正具有實際意義的工程數(shù)據(jù)。例如,從AD通道采集進來的數(shù)據(jù)一般都為電壓mV值,需要進行量程轉(zhuǎn)換或查表、計算等處理才能得到所需的工程物理量。MCGS系統(tǒng)對設(shè)備采集通道的數(shù)據(jù)可以進行八種形式的數(shù)據(jù)處理。各種處理可單獨進行也可組合進行。MCGS的數(shù)據(jù)前處理與設(shè)備是緊密相關(guān)的,在MCGS設(shè)備窗口下,打開設(shè)備構(gòu)件,設(shè)置其數(shù)據(jù)處理屬性頁即可進行MCGS的數(shù)據(jù)前處理組態(tài)。
2) 實時數(shù)據(jù)處理。MCGS缺省使用Microsoft Access數(shù)據(jù)庫作為歷史存盤數(shù)據(jù)庫,用數(shù)據(jù)庫技術(shù)來管理和維護存盤的數(shù)據(jù),存盤數(shù)據(jù)庫的文件名和路徑在主控窗口屬性中設(shè)定,系統(tǒng)運行過程中,MCGS自動進行數(shù)據(jù)存貯操作。這對用戶數(shù)據(jù)的開放式管理是一種非常有效的方式。但是,使用Access數(shù)據(jù)庫也受到該數(shù)據(jù)庫本身特性的制約,特別地,當用戶工程的存盤數(shù)據(jù)量很大或需要存貯很長時間內(nèi)的數(shù)據(jù)時,使用Access數(shù)據(jù)庫就會因數(shù)據(jù)庫文件過大而導(dǎo)致性能的下降。
針對上述情況,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ù)庫服務(wù)器上安裝Microsoft SQL Server 2000服務(wù)器端組件,用SQL Server 2000提供的SQL Enterprise Manager(企業(yè)管理器)工具來完成數(shù)據(jù)庫的創(chuàng)建。在膨化炸藥數(shù)據(jù)庫里。數(shù)據(jù)庫的表根據(jù)控制層的需要和設(shè)定,自動在指定數(shù)據(jù)庫中生成。使用的主要數(shù)據(jù)庫表如“膨化炸藥”數(shù)據(jù)庫中“真空度”。
注意:對于非組對象類型的數(shù)據(jù)對象,作為獨立的對象按變化量存盤,與作為組對象的成員定時存盤,同一對象采用兩種不同的存儲方式,在存盤數(shù)據(jù)文件內(nèi)是存儲在不同的地方。單個數(shù)據(jù)對象存盤時,數(shù)據(jù)值主要反映該對象的值隨時間變化的情況,而組對象對應(yīng)的存盤數(shù)據(jù)重點在于記錄其所有成員在同一時刻的值。一個非組對象類型的數(shù)據(jù)對象可能同時是多個組對象的成員,在幾個地方都可能對其進行了存盤處理,每一部分的存盤數(shù)據(jù)都是各自獨立的。
一般情況下采用組對象存盤,因為組對象存盤時是將組對象的所有成員都同時存盤,在歷史存盤數(shù)據(jù)庫中,每個組對象對應(yīng)一個數(shù)據(jù)表,其成員對應(yīng)相應(yīng)的字段域。如果單個變量定義存盤,則在歷史數(shù)據(jù)庫中該變量對應(yīng)一個表和字段域,如果變量較多時,則數(shù)據(jù)庫中的表會很多。在實際工程應(yīng)用中,多個工程物理量之間有聯(lián)系,在歷史報表、歷史曲線中需要把多個變量對應(yīng)的歷史數(shù)據(jù)同時顯示出來,此時用組對象存盤保證存盤數(shù)據(jù)的同時性,對多個變量的歷史數(shù)據(jù)進行比較才具有物理意義。
3) 數(shù)據(jù)的后處理。組態(tài)軟件中的數(shù)據(jù)的后處理,其本質(zhì)上是對歷史存盤數(shù)據(jù)庫的處理。將存盤數(shù)據(jù)庫中的歷史數(shù)據(jù)加以提煉,得到對用戶真正有用的數(shù)據(jù)和信息,然后,通過歷史曲線、歷史表格、Excel報表輸出以及存盤數(shù)據(jù)瀏覽等功能將這些數(shù)據(jù)和信息形象地顯示或打印出來。本文中系統(tǒng)使用的就是ASP.NET里的ADO.NET構(gòu)件訪問存盤數(shù)據(jù),通過ADO.NET讀取SQL Servers數(shù)據(jù)庫表,以膨化真空度數(shù)據(jù)為例說明ADO.NET讀取SQL Servers數(shù)據(jù)的實現(xiàn)。
3.3 Web服務(wù)器的實現(xiàn)
Web服務(wù)器是整個系統(tǒng)的關(guān)鍵,起中轉(zhuǎn)作用其中主要包括五個進程:登錄界面,實驗參數(shù)設(shè)置界,實驗結(jié)果顯示界面,Socket服務(wù)器和Socket客戶端程序,其結(jié)構(gòu)見圖3所示。
[align=center]

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