時間:2012-06-12 15:08:01來æºï¼šyehongjuan
Web Scada 系統的å¯ä¼¸ç¸®æ€§ç ”ç©¶
曾明昌 陳治金
(æˆéƒ½ç‘žç§‘電氣有é™å…¬å¸ å››å· æˆéƒ½ 610043)
摘 è¦ï¼šé‡å°Web Scada系統ä¸å¦‚ä½•æ›´å¥½åœ°é©æ‡‰ç”¨æˆ¶è¦æ¨¡è®ŠåŒ–çš„å•題,分æžç¾æœ‰å¯¦ç¾æ–¹å¼å°å»ºç«‹å¯ä¼¸ç¸®ç³»çµ±çš„é™åˆ¶ï¼Œæå‡ºäº†åŸºäºŽWCF技術建立å¯ä¼¸ç¸®çš„Web Scadaç³»çµ±çš„è§£æ±ºæ–¹æ¡ˆã€‚ç³»çµ±æ ¸å¿ƒæ˜¯é‡‡ç”¨é¢å‘æœå‹™çš„SOAæž¶æ§‹ï¼ŒæŽ¨é€æˆ–抓å–ä¸åŒè¦æ¨¡ç”¨æˆ¶çš„æ•¸æ“šé‡‡é›†çµ‚端的å„種數據,å°å¤–公布數據訪å•å’ŒæŽ¨é€æŽ¥å£ã€‚實ç¾äº†Webå®¢æˆ¶ç«¯éŸ¿æ‡‰æŽ¨é€æœå‹™æˆ–查詢采集數據,呈ç¾åˆ°ç›£æŽ§é é¢ä¸ã€‚
é—œéµè©žï¼šWeb Scada 系統;å¯ä¼¸ç¸®ï¼›ç›£æŽ§é é¢ï¼›é¢å‘æœå‹™ï¼›WCF
Research of Flexibility of Web Scada System
基于Webçš„Scada系統ä¸åƒ…æé«˜äº†Scadaç³»çµ±çš„é©æ‡‰èŒƒåœï¼Œæé«˜äº†ç³»çµ±çš„å¯é 性,也使Scada系統的管ç†å’Œç¶è·è®Šå¾—æ›´åŠ ç°¡å–®æ–¹ä¾¿ï¼Œå·²ç¶“æˆç‚ºåœ‹å…§Scada系統事實上的標準。從Windows平臺的基于DCOMã€ActiveXæŠ€è¡“çš„åŒæ§‹å¹³è‡ºï¼Œåˆ°CGI/PHP,å†åˆ°SOAPã€SOA的異構平臺,它涉åŠäº†Web數據發布技術ã€å¯¦æ™‚圖形的生æˆå’Œè™•ç†ã€å®¢æˆ¶ç«¯åœ–形實時刷新技術ã€é™æŽ§æ“作圖åƒç†±é»žè™•ç†æŠ€è¡“ã€ç³»çµ±ç®¡ç†å’Œå®‰å…¨æŠ€è¡“ç‰æ–¹é¢[2]。由于Scadaç³»çµ±çš„ç‰¹é»žæ±ºå®šäº†å®ƒå¿…é ˆè™•ç†æ•¸é‡è®ŠåŒ–çš„é 程通訊è£ç½®çš„æ•¸æ“šé‡‡é›†ã€‚ç”±äºŽç•¶å‰æ•¸æ“šé‡‡é›†æŠ€è¡“çš„é™åˆ¶ï¼Œæ•¸æ“šçš„采集æºé»žå¯èƒ½åƒå·®è¬åˆ¥ï¼Œçµ¦Web數據發布帶來了å¯ä¼¸ç¸®çš„è¦æ±‚。å¯ä»¥é€™æ¨£èªªï¼Œèƒ½å¦å…·æœ‰å¯ä¼¸ç¸®æ€§èƒ½æ˜¯æ±ºå®šWeb Scadaç³»çµ±èƒ½å¤ é€²å…¥å¤§è¦æ¨¡å·¥ç¨‹å¯¦é𛿇‰ç”¨çš„åŸºç¤Žã€‚å…¶ä»–çš„å¤šé …æŠ€è¡“éƒ½é ˆå»ºç«‹åœ¨å®ƒçš„åŸºç¤Žä¹‹ä¸Šæ‰æœƒæœ‰å¯¦éš›æ„ç¾©ã€‚Web Scada系統的分層è¨è¨ˆå¦‚下[3]:
由監控é‚輯層處ç†å¾©é›œå¤šè®Šçš„通訊層變動,為界é¢å±¤æä¾›ä¸€å€‹ç©©å®šçš„æ•¸æ“šä¾†æºæ˜¯å»ºç«‹å¯ä¼¸ç¸®Web Scada系統的關éµã€‚
本文擬以一個實際的Web Scada系統的開發為背景,利用.Net Framework 4.0ã€VS2010以åŠIISã€HTML技術建立一個å¯ä¼¸ç¸®çš„Web Scada ç³»çµ±ï¼Œå…¶æ ¸å¿ƒæ˜¯å»ºç«‹ä»‹äºŽé€šè¨Šå±¤å’Œç•Œé¢å±¤ä¹‹é–“的監控é‚輯層。通éŽè©²å±¤å¯¦ç¾èˆ‡é€šè¨Šå±¤çš„å¯ä¼¸ç¸®é€£æŽ¥å’Œèˆ‡Web界é¢å±¤ä¹‹é–“的穩定連接。
一ã€ç¾æœ‰Web Scada系統模å¼
ç¾æœ‰çš„Web Scada 系統主è¦ç‚ºäº†å¯¦ç¾é‡‡é›†çš„æ•¸æ“šä¿¡æ¯çš„Web展ç¾ï¼Œä»–們都以在Web é é¢ä¸å¯¦æ–½å±•ç¾é€šè¨Šå±¤çš„æ•¸æ“šé‡‡é›†å…§å®¹ç‚ºä¸»è¦åŠŸèƒ½ã€‚ç”±äºŽé¢å°çš„ç”¨æˆ¶è¦æ¨¡ä¸åŒï¼Œå‡ºç¾äº†æ¯”較多的Web Scada 系統,但它們基本都屬于以下兩類:
1〠分布å¼Web Scada 系統(下稱分布å¼ç³»çµ±ï¼‰
系統有多個æœå‹™å™¨åˆ†åˆ¥è™•ç†ä¸åŒé–“隔內的é 程è£ç½®ï¼ˆRTU)數據采集。形æˆåˆ†å¸ƒå¼çš„ç¶²çµ¡æ•¸æ“šåº«ï¼Œç”¨æˆ¶æ ¹æ“šéœ€è¦é€£æŽ¥åˆ°ä¸åŒçš„æœå‹™å™¨å°å…¶é€£æŽ¥çš„é 程è£ç½®é€²è¡Œç›£æŽ§ã€‚在æ¤çµæ§‹ä¸ï¼Œæœå‹™ä¸å…§å«Web Server。它å¯ä»¥æ ¹æ“šç”¨æˆ¶è¦æ¨¡çš„ä¸åŒï¼Œå¢žæ·»æ›´å¤šçš„æœå‹™å™¨ä¾†æ»¿è¶³ç”¨æˆ¶çš„æ“´å±•è¦æ±‚。如下圖2。
2〠集ä¸å¼Web Scada系統(下稱集ä¸å¼ç³»çµ±ï¼‰
ç³»çµ±åªæœ‰ä¸€å€‹æœå‹™å™¨åˆ†åˆ¥è™•ç†é–“隔內的é 程è£ç½®ï¼ˆRTU)數據采集。形æˆé›†ä¸çš„網絡數據庫,用戶å¯ä»¥å°å…¶é€£æŽ¥çš„é 程è£ç½®é€²è¡Œç›£æŽ§ã€‚在æ¤çµæ§‹ä¸ï¼Œæœå‹™ä¸å…§å«Web Server。它å¯ä»¥æ ¹æ“šç”¨æˆ¶è¦æ¨¡çš„ä¸åŒï¼Œå¢žæ·»æ›´å¤šé 程è£ç½®å’Œé‡‡ç”¨æ›´å¥½çš„æœå‹™å™¨ä¾†æ»¿è¶³ç”¨æˆ¶çš„æ“´å±•è¦æ±‚。如上圖3。
二ã€å¯ä¼¸ç¸®Web Scada 系統模å¼
上述的兩種系統模å¼åœ¨è§£æ±ºå¯¦éš›çš„å•題時,å˜åœ¨è‘—å„自的優缺點。
分布å¼ç³»çµ±çš„優點是擴展æœå‹™å™¨çš„æ•¸é‡å¯ä»¥é©æ‡‰æ›´å¤§è¦æ¨¡çš„ç”¨æˆ¶éœ€æ±‚ï¼Œå®ƒé© æ‡‰ç”¨æˆ¶è¦æ¨¡è¼ƒå¤§çš„æƒ…æ³ï¼Œç¼ºé»žæ˜¯ï¼šå¦‚果采用客戶端查詢方å¼ï¼ˆclient pull)[2]沒有更新的數據時也需è¦å®šæ™‚查詢,網絡æµé‡å¤§ï¼›å¦‚果采用æœå‹™ç«¯æŽ¨é€ï¼ˆserver push)[2],則由于需è¦ä¿æŒé€£æŽ¥é€šé“,使得客戶端的數é‡å—到é™åˆ¶ã€‚åŒæ™‚,如果è¦åŒæ™‚監控多個æœå‹™å™¨çš„æ•¸æ“šå‰‡éœ€è¦æœå‹™å™¨ä¹‹é–“è¦å»ºç«‹ç›¸æ‡‰çš„è¯ç³»ï¼Œæœƒç ´å£žæœå‹™å™¨ä¹‹é–“çš„ç¨ç«‹æ€§ï¼Œæ¥µå¤§åœ°å¢žåŠ å…¶æ“´å±•çš„ä»£åƒ¹ã€‚
集ä¸å¼ç³»çµ±é¡¯ç„¶æ²’有分布å¼ç³»çµ±çš„é€™äº›ç¼ºé»žï¼Œå…¶å„ªé»žæ˜¯ï¼šçµæ§‹ç°¡å–®ï¼Œæ•¸æ“šçµ±ä¸€ç®¡ç†ï¼Œç¶²é è¨è¨ˆç°¡å–®ç©©å®šï¼Œé é¢åˆ·æ–°å»¶é²å°ã€‚但它的缺點也是顯而易見的:擴展å—é™ï¼Œè¦å¢žåŠ é 程è£ç½®çš„æ•¸æ“šï¼Œåªèƒ½æå‡æœå‹™å™¨çš„æ€§èƒ½ã€‚它åªé©æ‡‰ç”¨æˆ¶è¦æ¨¡è¼ƒå°çš„æƒ…æ³ã€‚
在我們開發Web Scada系統的時,我們æå‡ºäº†ä»¥ä¸‹ç›®æ¨™ï¼š
穩定的界é¢å±¤
éˆæ´»åœ°é©ç”¨äºŽä¸åŒçš„ç”¨æˆ¶è¦æ¨¡
å› ç‚ºæˆ‘å€‘çš„ç”¨æˆ¶åˆ†å¸ƒäºŽå„個行æ¥ï¼Œè‡ªå‹•化水平相差很大,我們æå‡ºé€™æ¨£çš„目標是è¦å¯¦ç¾é–‹ç™¼å’Œç¶è·æˆæœ¬çš„æœ€ä½ŽåŒ–ã€‚è©²ç³»çµ±çš„çµæ§‹å¦‚下圖4:
比較它和分布å¼ç³»çµ±çµæ§‹ï¼Œæˆ‘們å¯ä»¥çœ‹åˆ°ï¼ŒWeb Serverä¸å†å…§å«ã€‚å®ƒå¢žåŠ äº†ç™¼å¸ƒç¶²é çš„Web Serverã€é€²è¡Œæ•¸æ“šç®¡ç†çš„æ•¸æ“šæœå‹™å™¨ã€é€²è¡Œæ–‡ä»¶ç®¡ç†çš„æ–‡ä»¶å‚³é€æœå‹™å™¨ç‰ç‰ï¼ˆæˆ‘們的實際系統ä¸ï¼Œé‚„包å«äº‹ä»¶ç®¡ç†æœå‹™å™¨ã€å£ä»¤ç®¡ç†æœå‹™å™¨ã€æ•¸æ“šè½‰ç™¼æœå‹™å™¨ç‰ç‰ï¼‰ã€‚å› ç‚ºå®ƒæ˜¯æŒ‰ç…§éœ€è¦çš„功能進行é…置的,所以它是å¯ä¼¸ç¸®çš„ã€‚æ¯”å¦‚å¢žåŠ äº‹ä»¶çŸä¿¡å ±è¦åŠŸèƒ½ï¼ŒæŽ¥åœ¨ç¶²çµ¡ä¸ŠåŠ æŽ›ä¸€å€‹çŸä¿¡å ±è¦æœå‹™å™¨ã€‚
åœ¨ç”¨æˆ¶è¦æ¨¡çš„å¯ä¼¸ç¸®ä¸Šï¼ŒWeb Scada Serverã€æ•¸æ“šæœå‹™å™¨ï¼ˆæ·å²æ•¸æ“šã€å¯¦æ™‚æ•¸æ“šï¼‰ã€æ–‡ä»¶å‚³é€æœå‹™å™¨ã€äº‹ä»¶ç®¡ç†æœå‹™å™¨ã€å£ä»¤ç®¡ç†æœå‹™å™¨ã€æ•¸æ“šè½‰ç™¼æœå‹™å™¨ç‰æœå‹™å™¨éƒ½æ˜¯å¯é…ç½®çš„ï¼Œè€Œä¸”æ˜¯è‡ªå‹•åŠ è¼‰çš„ï¼Œå¯ä»¥å¯¦ç¾åœ¨ç·šåˆ‡æ›ã€‚
åœ¨å…·é«”å¯¦ç¾æ–¹å¼ä¸Šï¼Œæ¯å€‹æœå‹™å™¨å‡å…¬å¸ƒWCF接å£ï¼ŒæŒ‰ç…§SOA架構進行開發,æ¯å€‹æœå‹™å‡æ˜¯å¯é…置(ç¶å®šã€çµ‚çµé»žï¼‰çš„,便于在復雜的網絡ä¸é€²è¡Œéˆæ´»çš„部署。æ¤å¤–,數據轉發æœå‹™å™¨å¯ä»¥å¢žåŠ ã€ä¿®æ”¹ã€åˆªé™¤è½‰ç™¼å¯¦ä¾‹ï¼Œç‚ºå¯¦ç¾ç”¨æˆ¶è¦æ¨¡çš„å¯ä¼¸ç¸®å¥ å®šäº†åŸºç¤Žã€‚éƒ¨ç½²çµæ§‹å¦‚圖5
三ã€é—œéµæŠ€è¡“的實ç¾
1ã€ éˆæ´»çš„æ•¸æ“šè½‰ç™¼
我們知é“ï¼Œç”¨æˆ¶è¦æ¨¡ä¸åŒï¼Œé 程通訊è£ç½®çš„æ•¸é‡å°±ä¸åŒï¼Œè¦ç‚ºç•Œé¢å±¤å»ºç«‹ä¸€å€‹ç©©å®šçš„æ•¸æ“šä¾†æºï¼Œæˆ‘們需è¦å»ºç«‹ä¸€å€‹è™•ç†ç³»çµ±æ‰€æœ‰åŒé¡žæ•¸æ“šçš„æœå‹™å™¨ï¼Œç„¶åŽæŠŠç›¸é—œçš„æ•¸æ“šéƒ½äº¤åˆ°è©²æœå‹™å™¨ä¸é€²è¡Œè™•ç†ï¼Œè®“它進行Web數據發布。以æ·å²æ•¸æ“šè™•ç†ç‚ºä¾‹ï¼Œå…¶è»Ÿä»¶çµæ§‹å¦‚下圖6:
這樣,é‡å°å¤šå€‹é€šè¨Šæœå‹™å™¨ï¼ˆå°æ‡‰ä¸åŒçš„ç”¨æˆ¶è¦æ¨¡ï¼‰ï¼Œæˆ‘們在系統ä¸é…ç½®å°æ‡‰æ•¸é‡çš„æ·å²æ•¸æ“šè½‰ç™¼å™¨ï¼Œå°±å¯ä»¥é©æ‡‰ç”¨æˆ¶çš„é 程通訊è£ç½®æ•¸é‡çš„æ“´å±•變化。æ·å²æ•¸æ“šè½‰ç™¼å™¨é‹è¡Œçš„å¯¦ä¾‹æ•¸é‡æ ¹æ“šé…置文件自動生æˆï¼Œä¸åƒ…如æ¤ï¼Œé‚„å¿…é ˆåœ¨æœå‹™å™¨ç³»çµ±å•Ÿå‹•åŽè‡ªå‹•載入,且在é‹è¡ŒéŽç¨‹ä¸å—到監控。
2〠數據æœå‹™ç«¯æŽ¨é€
如圖1,監控é‚輯層å‘界é¢å±¤ç™¼å¸ƒæ•¸æ“šæ˜¯å¯¦ç¾ç•Œé¢å±¤å‘用戶呈ç¾é‡‡é›†æ•¸æ“šçš„基礎,由于我們采用的是SOA架構,模塊連接采用WCF接å£ï¼Œæ‰€ä»¥æˆ‘們å¯ä»¥å¾ˆæ–¹ä¾¿åœ°é‡‡ç”¨å»ºç«‹é›™å‘通é“的方å¼å¯¦ç¾æœå‹™ç«¯æ•¸æ“šæŽ¨é€[1]。
如圖7,實時數據轉發器在從通訊æœå‹™å™¨å–得實時數據åŽå°‡å¯¦æ™‚數據å˜å…¥å¯¦æ™‚數據å˜å–æœå‹™å™¨ï¼Œå¯¦æ™‚數據å˜å–æœå‹™å™¨ç™¼ç¾æ•¸æ“šæœ‰è®ŠåŒ–ä¾¿ä½¿ç”¨å¯¦æ™‚ç›£æŽ§ç•«é¢äº‹å…ˆèˆ‡å¯¦æ™‚數據å˜å–æœå‹™å™¨å»ºç«‹å¥½çš„回調通é“,å‘å¯¦æ™‚ç›£æŽ§ç•«é¢æŽ¨é€å¯¦æ™‚數據。在WCF技術ä¸ï¼Œä¸€èˆ¬é‡‡ç”¨TCP通é“ï¼Œå› ç‚ºå®ƒæ˜¯é¢å‘連接的,而Httpé€šé“æ˜¯ç„¡ç‹€æ…‹çš„,ä¸é©åˆåšé›™å‘通é“,當然,Http也有雙å‘çš„Httpï¼Œä½†æ˜¯ç”±äºŽå®ƒè¦æŒ‡å®šå›žèª¿çš„知å端å£è€Œä½¿å¾—回調會å—到一些é™åˆ¶[4]ã€‚å…·é«”å¯¦ç¾æŽ¥å£å¦‚下:
public interface IPushCallback
{
///
/// 數據推é€å›žèª¿æŽ¥å£ï¼Œå–®å‘æ“ä½œï¼Œç”¨äºŽé€šçŸ¥å®¢æˆ¶ç«¯æœ‰æ•¸æ“šè¦æŽ¨é€
///
/// 類型
/// 站點å稱
/// 單元å稱
/// æ•¸æ“šå—æ®µ
/// 數據值
[OperationContract(IsOneWay = true)]
void PushData(string type, string station, List strUnit, List strField,
List fValue);
}
é¡žåž‹è¡¨ç¤ºæ˜¯é™æ¸¬ã€é™ä¿¡æˆ–者是電度é‡ï¼Œç«™é»žå稱表示通訊æœå‹™å™¨ï¼Œå–®å…ƒå稱是通訊æœå‹™å™¨ä¸‹çš„é ç¨‹é€šè¨Šå–®å…ƒï¼Œæ•¸æ“šå—æ®µæ˜¯æ¯å€‹å–®å…ƒä¸‹çš„唯一的數據é‡çš„æ¨™è˜å稱。
在客戶端,監控網é 響應回調函數,類似如下:
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;
}
}
… …
}
å››ã€çµæŸèªž
采用é¢å‘æœå‹™çš„ç³»çµ±çµæ§‹å¼æˆ‘們å¯ä»¥çµåˆWeb Scada系統分布å¼å’Œé›†ä¸å¼æ¨¡å¼çš„優點形æˆå¯ä¼¸ç¸®Web Scada系統,該系統由簡潔的數據通訊æœå‹™å™¨ã€æ•¸æ“šç®¡ç†æœå‹™å™¨ã€æ–‡ä»¶å‚³é€æœå‹™å™¨ã€å£ä»¤ç®¡ç†æœå‹™å™¨ç‰çµ„æˆã€‚它綜åˆäº†é›†ä¸å¼ç³»çµ±å’Œåˆ†å¸ƒå¼ç³»çµ±çš„優點。由于通訊æœå‹™å™¨è² 責與é 程è£ç½®çš„æ•¸æ“šé€šè¨Šï¼Œéˆæ´»åœ°éƒ¨ç½²å’Œé…置通訊æœå‹™å™¨å¯ä»¥é©æ‡‰ä¸åŒè¦æ¨¡çš„ç”¨æˆ¶éœ€æ±‚ï¼Œéˆæ´»åœ°éƒ¨ç½²å„個功能æœå‹™å™¨å¯ä»¥é©æ‡‰ç”¨æˆ¶çš„ä¸åŒåŠŸèƒ½è¦æ±‚,以æ¤å½¢æˆå¯ä¼¸ç¸®Web Scada系統。今åŽï¼Œé‚„將開發多級熱備份功能,故障錄æ’åˆ†æžæœå‹™å™¨ã€æ½®æµåˆ†æžæœå‹™å™¨ã€è«§æ³¢åˆ†æžæœå‹™å™¨ã€æ•¸æ“šé 處ç†ç³»çµ±ç‰å–®åŠ›ç³»çµ±çš„å°ˆç”¨åŠŸèƒ½æœå‹™å™¨ã€‚
作者簡介:
曾明昌 (1966- ) 男 四å·çœå¾·é™½äººã€€æœ¬ç§‘ç”Ÿã€€ç ”ç©¶æ–¹å‘:WCF應用ã€SOAã€ç¶²çµ¡æ•¸æ“šç®¡ç†
陳治金 (1988- ) 男 四å·çœå…§æ±Ÿäººã€€ç ”ç©¶ç”Ÿã€€ç ”ç©¶æ–¹å‘:組態軟件ã€ARM
曾明昌 四å·çœæˆéƒ½å¸‚高新西å€éŠ€æ²³è¥¿è·¯ã€610041ã€zmc1234@163.comã€13281246733
標簽:
上一篇:基于PLC的電梯模型的制作
下一篇:微能WIN-V63çŸ¢é‡æŽ§åˆ¶è®Šé »å™¨åœ¨...
ä¸åœ‹å‚³å‹•網版權與å…è²¬è²æ˜Žï¼šå‡¡æœ¬ç¶²æ³¨æ˜Ž[來æºï¼šä¸åœ‹å‚³å‹•ç¶²]的所有文å—ã€åœ–片ã€éŸ³è¦–å’Œè¦–é »æ–‡ä»¶ï¼Œç‰ˆæ¬Šå‡ç‚ºä¸åœ‹å‚³å‹•ç¶²(www.hysjfh.com)ç¨å®¶æ‰€æœ‰ã€‚如需轉載請與0755-82949061è¯ç³»ã€‚任何媒體ã€ç¶²ç«™æˆ–å€‹äººè½‰è¼‰ä½¿ç”¨æ™‚é ˆæ³¨æ˜Žä¾†æºâ€œä¸åœ‹å‚³å‹•ç¶²â€ï¼Œé•å者本網將追究其法律責任。
本網轉載并注明其他來æºçš„稿件,å‡ä¾†è‡ªäº’è¯ç¶²æˆ–æ¥å…§æŠ•稿人士,版權屬于原版權人。轉載請ä¿ç•™ç¨¿ä»¶ä¾†æºåŠä½œè€…ï¼Œç¦æ¢æ“…自篡改,é•è€…è‡ªè² ç‰ˆæ¬Šæ³•å¾‹è²¬ä»»ã€‚
相關資訊