時(shí)間:2012-06-12 15:08:01來(lái)源:yehongjuan
Web Scada 系統(tǒng)的可伸縮性研究
曾明昌 陳治金
(成都瑞科電氣有限公司 四川 成都 610043)
摘 要:針對(duì)Web Scada系統(tǒng)中如何更好地適應(yīng)用戶規(guī)模變化的問(wèn)題,分析現(xiàn)有實(shí)現(xiàn)方式對(duì)建立可伸縮系統(tǒng)的限制,提出了基于WCF技術(shù)建立可伸縮的Web Scada系統(tǒng)的解決方案。系統(tǒng)核心是采用面向服務(wù)的SOA架構(gòu),推送或抓取不同規(guī)模用戶的數(shù)據(jù)采集終端的各種數(shù)據(jù),對(duì)外公布數(shù)據(jù)訪問(wèn)和推送接口。實(shí)現(xiàn)了Web客戶端響應(yīng)推送服務(wù)或查詢采集數(shù)據(jù),呈現(xiàn)到監(jiān)控頁(yè)面中。
關(guān)鍵詞:Web Scada 系統(tǒng);可伸縮;監(jiān)控頁(yè)面;面向服務(wù);WCF
Research of Flexibility of Web Scada System
基于Web的Scada系統(tǒng)不僅提高了Scada系統(tǒng)的適應(yīng)范圍,提高了系統(tǒng)的可靠性,也使Scada系統(tǒng)的管理和維護(hù)變得更加簡(jiǎn)單方便,已經(jīng)成為國(guó)內(nèi)Scada系統(tǒng)事實(shí)上的標(biāo)準(zhǔn)。從Windows平臺(tái)的基于DCOM、ActiveX技術(shù)的同構(gòu)平臺(tái),到CGI/PHP,再到SOAP、SOA的異構(gòu)平臺(tái),它涉及了Web數(shù)據(jù)發(fā)布技術(shù)、實(shí)時(shí)圖形的生成和處理、客戶端圖形實(shí)時(shí)刷新技術(shù)、遙控操作圖像熱點(diǎn)處理技術(shù)、系統(tǒng)管理和安全技術(shù)等方面[2]。由于Scada系統(tǒng)的特點(diǎn)決定了它必須處理數(shù)量變化的遠(yuǎn)程通訊裝置的數(shù)據(jù)采集。由于當(dāng)前數(shù)據(jù)采集技術(shù)的限制,數(shù)據(jù)的采集源點(diǎn)可能千差萬(wàn)別,給Web數(shù)據(jù)發(fā)布帶來(lái)了可伸縮的要求??梢赃@樣說(shuō),能否具有可伸縮性能是決定Web Scada系統(tǒng)能夠進(jìn)入大規(guī)模工程實(shí)際應(yīng)用的基礎(chǔ)。其他的多項(xiàng)技術(shù)都須建立在它的基礎(chǔ)之上才會(huì)有實(shí)際意義。Web Scada系統(tǒng)的分層設(shè)計(jì)如下[3]:
由監(jiān)控邏輯層處理復(fù)雜多變的通訊層變動(dòng),為界面層提供一個(gè)穩(wěn)定的數(shù)據(jù)來(lái)源是建立可伸縮Web Scada系統(tǒng)的關(guān)鍵。
本文擬以一個(gè)實(shí)際的Web Scada系統(tǒng)的開(kāi)發(fā)為背景,利用.Net Framework 4.0、VS2010以及IIS、HTML技術(shù)建立一個(gè)可伸縮的Web Scada 系統(tǒng),其核心是建立介于通訊層和界面層之間的監(jiān)控邏輯層。通過(guò)該層實(shí)現(xiàn)與通訊層的可伸縮連接和與Web界面層之間的穩(wěn)定連接。
一、現(xiàn)有Web Scada系統(tǒng)模式
現(xiàn)有的Web Scada 系統(tǒng)主要為了實(shí)現(xiàn)采集的數(shù)據(jù)信息的Web展現(xiàn),他們都以在Web 頁(yè)面中實(shí)施展現(xiàn)通訊層的數(shù)據(jù)采集內(nèi)容為主要功能。由于面對(duì)的用戶規(guī)模不同,出現(xiàn)了比較多的Web Scada 系統(tǒng),但它們基本都屬于以下兩類:
1、 分布式Web Scada 系統(tǒng)(下稱分布式系統(tǒng))
系統(tǒng)有多個(gè)服務(wù)器分別處理不同間隔內(nèi)的遠(yuǎn)程裝置(RTU)數(shù)據(jù)采集。形成分布式的網(wǎng)絡(luò)數(shù)據(jù)庫(kù),用戶根據(jù)需要連接到不同的服務(wù)器對(duì)其連接的遠(yuǎn)程裝置進(jìn)行監(jiān)控。在此結(jié)構(gòu)中,服務(wù)中內(nèi)含Web Server。它可以根據(jù)用戶規(guī)模的不同,增添更多的服務(wù)器來(lái)滿足用戶的擴(kuò)展要求。如下圖2。
2、 集中式Web Scada系統(tǒng)(下稱集中式系統(tǒng))
系統(tǒng)只有一個(gè)服務(wù)器分別處理間隔內(nèi)的遠(yuǎn)程裝置(RTU)數(shù)據(jù)采集。形成集中的網(wǎng)絡(luò)數(shù)據(jù)庫(kù),用戶可以對(duì)其連接的遠(yuǎn)程裝置進(jìn)行監(jiān)控。在此結(jié)構(gòu)中,服務(wù)中內(nèi)含Web Server。它可以根據(jù)用戶規(guī)模的不同,增添更多遠(yuǎn)程裝置和采用更好的服務(wù)器來(lái)滿足用戶的擴(kuò)展要求。如上圖3。
二、可伸縮Web Scada 系統(tǒng)模式
上述的兩種系統(tǒng)模式在解決實(shí)際的問(wèn)題時(shí),存在著各自的優(yōu)缺點(diǎn)。
分布式系統(tǒng)的優(yōu)點(diǎn)是擴(kuò)展服務(wù)器的數(shù)量可以適應(yīng)更大規(guī)模的用戶需求,它適 應(yīng)用戶規(guī)模較大的情況,缺點(diǎn)是:如果采用客戶端查詢方式(client pull)[2]沒(méi)有更新的數(shù)據(jù)時(shí)也需要定時(shí)查詢,網(wǎng)絡(luò)流量大;如果采用服務(wù)端推送(server push)[2],則由于需要保持連接通道,使得客戶端的數(shù)量受到限制。同時(shí),如果要同時(shí)監(jiān)控多個(gè)服務(wù)器的數(shù)據(jù)則需要服務(wù)器之間要建立相應(yīng)的聯(lián)系,會(huì)破壞服務(wù)器之間的獨(dú)立性,極大地增加其擴(kuò)展的代價(jià)。
集中式系統(tǒng)顯然沒(méi)有分布式系統(tǒng)的這些缺點(diǎn),其優(yōu)點(diǎn)是:結(jié)構(gòu)簡(jiǎn)單,數(shù)據(jù)統(tǒng)一管理,網(wǎng)頁(yè)設(shè)計(jì)簡(jiǎn)單穩(wěn)定,頁(yè)面刷新延遲小。但它的缺點(diǎn)也是顯而易見(jiàn)的:擴(kuò)展受限,要增加遠(yuǎn)程裝置的數(shù)據(jù),只能提升服務(wù)器的性能。它只適應(yīng)用戶規(guī)模較小的情況。
在我們開(kāi)發(fā)Web Scada系統(tǒng)的時(shí),我們提出了以下目標(biāo):
穩(wěn)定的界面層
靈活地適用于不同的用戶規(guī)模
因?yàn)槲覀兊挠脩舴植加诟鱾€(gè)行業(yè),自動(dòng)化水平相差很大,我們提出這樣的目標(biāo)是要實(shí)現(xiàn)開(kāi)發(fā)和維護(hù)成本的最低化。該系統(tǒng)的結(jié)構(gòu)如下圖4:
比較它和分布式系統(tǒng)結(jié)構(gòu),我們可以看到,Web Server不再內(nèi)含。它增加了發(fā)布網(wǎng)頁(yè)的Web Server、進(jìn)行數(shù)據(jù)管理的數(shù)據(jù)服務(wù)器、進(jìn)行文件管理的文件傳送服務(wù)器等等(我們的實(shí)際系統(tǒng)中,還包含事件管理服務(wù)器、口令管理服務(wù)器、數(shù)據(jù)轉(zhuǎn)發(fā)服務(wù)器等等)。因?yàn)樗前凑招枰墓δ苓M(jìn)行配置的,所以它是可伸縮的。比如增加事件短信報(bào)警功能,接在網(wǎng)絡(luò)上加掛一個(gè)短信報(bào)警服務(wù)器。
在用戶規(guī)模的可伸縮上,Web Scada Server、數(shù)據(jù)服務(wù)器(歷史數(shù)據(jù)、實(shí)時(shí)數(shù)據(jù))、文件傳送服務(wù)器、事件管理服務(wù)器、口令管理服務(wù)器、數(shù)據(jù)轉(zhuǎn)發(fā)服務(wù)器等服務(wù)器都是可配置的,而且是自動(dòng)加載的,可以實(shí)現(xiàn)在線切換。
在具體實(shí)現(xiàn)方式上,每個(gè)服務(wù)器均公布WCF接口,按照SOA架構(gòu)進(jìn)行開(kāi)發(fā),每個(gè)服務(wù)均是可配置(綁定、終結(jié)點(diǎn))的,便于在復(fù)雜的網(wǎng)絡(luò)中進(jìn)行靈活的部署。此外,數(shù)據(jù)轉(zhuǎn)發(fā)服務(wù)器可以增加、修改、刪除轉(zhuǎn)發(fā)實(shí)例,為實(shí)現(xiàn)用戶規(guī)模的可伸縮奠定了基礎(chǔ)。部署結(jié)構(gòu)如圖5
三、關(guān)鍵技術(shù)的實(shí)現(xiàn)
1、 靈活的數(shù)據(jù)轉(zhuǎn)發(fā)
我們知道,用戶規(guī)模不同,遠(yuǎn)程通訊裝置的數(shù)量就不同,要為界面層建立一個(gè)穩(wěn)定的數(shù)據(jù)來(lái)源,我們需要建立一個(gè)處理系統(tǒng)所有同類數(shù)據(jù)的服務(wù)器,然后把相關(guān)的數(shù)據(jù)都交到該服務(wù)器中進(jìn)行處理,讓它進(jìn)行Web數(shù)據(jù)發(fā)布。以歷史數(shù)據(jù)處理為例,其軟件結(jié)構(gòu)如下圖6:
這樣,針對(duì)多個(gè)通訊服務(wù)器(對(duì)應(yīng)不同的用戶規(guī)模),我們?cè)谙到y(tǒng)中配置對(duì)應(yīng)數(shù)量的歷史數(shù)據(jù)轉(zhuǎn)發(fā)器,就可以適應(yīng)用戶的遠(yuǎn)程通訊裝置數(shù)量的擴(kuò)展變化。歷史數(shù)據(jù)轉(zhuǎn)發(fā)器運(yùn)行的實(shí)例數(shù)量根據(jù)配置文件自動(dòng)生成,不僅如此,還必須在服務(wù)器系統(tǒng)啟動(dòng)后自動(dòng)載入,且在運(yùn)行過(guò)程中受到監(jiān)控。
2、 數(shù)據(jù)服務(wù)端推送
如圖1,監(jiān)控邏輯層向界面層發(fā)布數(shù)據(jù)是實(shí)現(xiàn)界面層向用戶呈現(xiàn)采集數(shù)據(jù)的基礎(chǔ),由于我們采用的是SOA架構(gòu),模塊連接采用WCF接口,所以我們可以很方便地采用建立雙向通道的方式實(shí)現(xiàn)服務(wù)端數(shù)據(jù)推送[1]。
如圖7,實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)發(fā)器在從通訊服務(wù)器取得實(shí)時(shí)數(shù)據(jù)后將實(shí)時(shí)數(shù)據(jù)存入實(shí)時(shí)數(shù)據(jù)存取服務(wù)器,實(shí)時(shí)數(shù)據(jù)存取服務(wù)器發(fā)現(xiàn)數(shù)據(jù)有變化便使用實(shí)時(shí)監(jiān)控畫面事先與實(shí)時(shí)數(shù)據(jù)存取服務(wù)器建立好的回調(diào)通道,向?qū)崟r(shí)監(jiān)控畫面推送實(shí)時(shí)數(shù)據(jù)。在WCF技術(shù)中,一般采用TCP通道,因?yàn)樗敲嫦蜻B接的,而Http通道是無(wú)狀態(tài)的,不適合做雙向通道,當(dāng)然,Http也有雙向的Http,但是由于它要指定回調(diào)的知名端口而使得回調(diào)會(huì)受到一些限制[4]。具體實(shí)現(xiàn)接口如下:
public interface IPushCallback
{
///
/// 數(shù)據(jù)推送回調(diào)接口,單向操作,用于通知客戶端有數(shù)據(jù)要推送
///
/// 類型
/// 站點(diǎn)名稱
/// 單元名稱
/// 數(shù)據(jù)字段
/// 數(shù)據(jù)值
[OperationContract(IsOneWay = true)]
void PushData(string type, string station, List strUnit, List strField,
List fValue);
}
類型表示是遙測(cè)、遙信或者是電度量,站點(diǎn)名稱表示通訊服務(wù)器,單元名稱是通訊服務(wù)器下的遠(yuǎn)程通訊單元,數(shù)據(jù)字段是每個(gè)單元下的唯一的數(shù)據(jù)量的標(biāo)識(shí)名稱。
在客戶端,監(jiān)控網(wǎng)頁(yè)響應(yīng)回調(diào)函數(shù),類似如下:
void back_callback(string type, string station, string[] strUnit, string[] strField, float[] fValue)
{
for (int i = 0; i < strField.Length ; i++)
{
switch (type)
{
case "YC":
myCAnalog analog = dtmng.getdata(station, strUnit[i], strField[i]) as myCAnalog;
analog.Fresh(fValue[i]);
break;
case "YX":
myCDigital digital = dtmng.getdata(station, strUnit[i], strField[i]) as myCDigital;
digital.Fresh(fValue[i] ==0 ? (byte)0:(byte)1);
break;
case "DD":
myCAccumulate accumulate = dtmng.getdata(station, strUnit[i], strField[i]) as myCAccumulate;
accumulate.Fresh(fValue[i]);
break;
}
}
… …
}
四、結(jié)束語(yǔ)
采用面向服務(wù)的系統(tǒng)結(jié)構(gòu)式我們可以結(jié)合Web Scada系統(tǒng)分布式和集中式模式的優(yōu)點(diǎn)形成可伸縮Web Scada系統(tǒng),該系統(tǒng)由簡(jiǎn)潔的數(shù)據(jù)通訊服務(wù)器、數(shù)據(jù)管理服務(wù)器、文件傳送服務(wù)器、口令管理服務(wù)器等組成。它綜合了集中式系統(tǒng)和分布式系統(tǒng)的優(yōu)點(diǎn)。由于通訊服務(wù)器負(fù)責(zé)與遠(yuǎn)程裝置的數(shù)據(jù)通訊,靈活地部署和配置通訊服務(wù)器可以適應(yīng)不同規(guī)模的用戶需求,靈活地部署各個(gè)功能服務(wù)器可以適應(yīng)用戶的不同功能要求,以此形成可伸縮Web Scada系統(tǒng)。今后,還將開(kāi)發(fā)多級(jí)熱備份功能,故障錄播分析服務(wù)器、潮流分析服務(wù)器、諧波分析服務(wù)器、數(shù)據(jù)預(yù)處理系統(tǒng)等單力系統(tǒng)的專用功能服務(wù)器。
作者簡(jiǎn)介:
曾明昌?。?966- ) 男 四川省德陽(yáng)人 本科生 研究方向:WCF應(yīng)用、SOA、網(wǎng)絡(luò)數(shù)據(jù)管理
陳治金?。?988- ) 男 四川省內(nèi)江人 研究生 研究方向:組態(tài)軟件、ARM
曾明昌 四川省成都市高新西區(qū)銀河西路、610041、zmc1234@163.com、13281246733
標(biāo)簽:
上一篇:基于PLC的電梯模型的制作
中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
相關(guān)資訊
產(chǎn)品新聞
更多>以簡(jiǎn)驅(qū)繁,精準(zhǔn)智控 | 維智S1系列新一代...
2024-11-01
新品發(fā)布:CD300系列總線型伺服驅(qū)動(dòng)器
2024-10-31
2024-10-31
2024-10-31
新勢(shì)能 新期待|維智B1L直線伺服驅(qū)動(dòng)器
2024-10-31
纖薄之間,化繁為簡(jiǎn)|合信全新simple系...
2024-10-29
推薦專題
更多>