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

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

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

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