物聯(lián)傳媒 旗下網(wǎng)站
登錄 注冊(cè)

基于Web的變電站監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

作者:吳有義 任榮 敬章浩
來源:《物聯(lián)網(wǎng)世界》
日期:2014-02-11 10:19:29
摘要:系統(tǒng)設(shè)計(jì)為遠(yuǎn)程服務(wù)端和Web服務(wù)器兩部分。為了實(shí)時(shí)穩(wěn)定的接受和存儲(chǔ)變電站總站傳輸?shù)腎EC104規(guī)約數(shù)據(jù),采用JAVA多線程連接池和數(shù)據(jù)庫連接池方法設(shè)計(jì)服務(wù)端,將接收到的數(shù)據(jù)解析之后分組存入數(shù)據(jù)庫中。同時(shí)將SOE事件通過GPRS設(shè)備手機(jī)短信報(bào)警。在Web端使用JSP動(dòng)態(tài)頁面技術(shù)實(shí)現(xiàn)變電站數(shù)據(jù)查詢,接線圖狀況,遠(yuǎn)程控制設(shè)備,以及遠(yuǎn)程視頻監(jiān)控功能。

  系統(tǒng)設(shè)計(jì)為遠(yuǎn)程服務(wù)端和Web服務(wù)器兩部分。為了實(shí)時(shí)穩(wěn)定的接受和存儲(chǔ)變電站總站傳輸?shù)腎EC104規(guī)約數(shù)據(jù),采用JAVA多線程連接池和數(shù)據(jù)庫連接池方法設(shè)計(jì)服務(wù)端,將接收到的數(shù)據(jù)解析之后分組存入數(shù)據(jù)庫中。同時(shí)將SOE事件通過GPRS設(shè)備手機(jī)短信報(bào)警。在Web端使用JSP動(dòng)態(tài)頁面技術(shù)實(shí)現(xiàn)變電站數(shù)據(jù)查詢,接線圖狀況,遠(yuǎn)程控制設(shè)備,以及遠(yuǎn)程視頻監(jiān)控功能。

  引言

  傳統(tǒng)的監(jiān)控一般構(gòu)建于桌面應(yīng)用,具有系統(tǒng)跨平臺(tái),客戶端升級(jí)等缺點(diǎn),更重要的是需要人員實(shí)時(shí)守在電腦旁,不利于工作人員對(duì)隨時(shí)出現(xiàn)的故障進(jìn)行判斷。隨著互聯(lián)網(wǎng)技術(shù)和電力行業(yè)不斷發(fā)展,將互聯(lián)網(wǎng)與電力行業(yè)應(yīng)用一體化已成趨勢.而萬維網(wǎng)(Web)具有編程簡單,跨平臺(tái),客戶端免安裝、維護(hù)等優(yōu)點(diǎn),結(jié)合GPRS設(shè)備,可以給手機(jī)發(fā)送報(bào)警信息,開發(fā)基于B/S架構(gòu)的監(jiān)控系統(tǒng)有其廣闊的研究意義[1]。

  本文結(jié)合IEC104電力行業(yè)規(guī)約,JAVA多線程,數(shù)據(jù)庫訪問技術(shù),動(dòng)態(tài)數(shù)據(jù)發(fā)布,Web動(dòng)態(tài)圖形等分析與研究,從遠(yuǎn)程監(jiān)控系統(tǒng)角度出發(fā),采用TCP連接池,數(shù)據(jù)庫連接池,串口通信,JQuery等技術(shù),設(shè)計(jì)Web遠(yuǎn)程監(jiān)控系統(tǒng)。一方面研究Web監(jiān)控系統(tǒng)實(shí)現(xiàn)過程中遇到的問題,另一方面能夠?qū)ζ渌愃菩再|(zhì)的遠(yuǎn)程監(jiān)控的研究提供一些借鑒和幫助。

  1.系統(tǒng)總體設(shè)計(jì)

  1.1 IEC104簡介

  IEC104是國際電工委員會(huì)制定的一個(gè)規(guī)范,標(biāo)準(zhǔn)定義了用于網(wǎng)絡(luò)的開放 TCP/IP接口,網(wǎng)絡(luò)可以包括例如傳輸IEC60870-5-101的應(yīng)用服務(wù)數(shù)據(jù)單元的遠(yuǎn)動(dòng)設(shè)備的局域網(wǎng)。包含不同的廣域網(wǎng)類型的路由器可以通過公共的TCP/IP-局域網(wǎng)連接起來。

  傳輸接口(用戶對(duì)TCP 接口)是面向數(shù)據(jù)量的接口,它并不定義 IEC60870-5-101的應(yīng)用服務(wù)數(shù)據(jù)單元的任何啟動(dòng)或者停止。為了檢出應(yīng)用服務(wù)數(shù)據(jù)單元的啟動(dòng)和結(jié)束,定義了啟動(dòng)字符、應(yīng)用服務(wù)數(shù)據(jù)單元的長度規(guī)范、以及應(yīng)用規(guī)約控制信息的控制域??蓚鬏斠粋€(gè)完整的應(yīng)用規(guī)約數(shù)據(jù)單元或者為了控制的目的僅僅傳輸應(yīng)用規(guī)約控制信息域。

基于Web的變電站監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

圖1 遠(yuǎn)動(dòng)配套標(biāo)準(zhǔn)定的應(yīng)用服務(wù)數(shù)據(jù)單元

  應(yīng)用規(guī)約數(shù)據(jù)單元的長度定義了應(yīng)用規(guī)約數(shù)據(jù)單元主體的長度,它由應(yīng)用規(guī)約控制信息的四個(gè)控制域八位位組和應(yīng)用服務(wù)數(shù)據(jù)單元所組成。第一個(gè)被計(jì)數(shù)的八位位組為控制域的第一個(gè)八位位組。最后一個(gè)被計(jì)數(shù)的八位位組為應(yīng)用服務(wù)數(shù)據(jù)單元的最后一個(gè)八位位組。應(yīng)用服務(wù)數(shù)據(jù)單元的最大幀長為249,而控制域的長度是4個(gè)八位位組,應(yīng)用規(guī)約數(shù)據(jù)單元的最大長度為253 (APDUMAX=255 減掉啟動(dòng)和長度八位位組)[2]。

  1.2系統(tǒng)體系結(jié)構(gòu)

  Web遠(yuǎn)程監(jiān)控系統(tǒng)主要分為三個(gè)部分:服務(wù)端,數(shù)據(jù)庫層,web客戶端。

  服務(wù)端:利用IEC104的TCP/IP網(wǎng)絡(luò)傳輸特性,采用JAVA的TCP連接池編寫通信鏈路層,和變電站主站連接。通過以太網(wǎng)和變電站主站進(jìn)行通信,解析工作主站傳輸?shù)腎EC104規(guī)約報(bào)文,包括I幀,U幀,S幀等。將其遙測,遙信量,SOE事件信息進(jìn)行分類,存入數(shù)據(jù)庫中。當(dāng)其數(shù)據(jù)量達(dá)到報(bào)警值,或者有SOE事件信息時(shí)。通過與服務(wù)端相連GPRS模塊,利用JAVA串口通信將報(bào)警值和SOE事件信息,發(fā)送短信到指定用戶手機(jī)上,及時(shí)提醒工作人員設(shè)備狀況和信息。系統(tǒng)程序流程如圖2所示。

基于Web的變電站監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

圖2 服務(wù)端程序流程圖

  數(shù)據(jù)庫:設(shè)計(jì)為實(shí)時(shí)數(shù)據(jù)庫,根據(jù)104規(guī)約數(shù)據(jù),將遙測,遙信,開關(guān)事件等信息分組存入數(shù)據(jù)庫,數(shù)據(jù)庫保存所有數(shù)據(jù)信息。

  Web服務(wù)端:采用JSP動(dòng)態(tài)頁面設(shè)計(jì),利用JAVA數(shù)據(jù)庫連接池,可高效的連接數(shù)據(jù)庫層,用戶登錄之后能查詢各設(shè)備的運(yùn)行參數(shù);變電站的SOE事件和開關(guān)事件信息;控制設(shè)備開關(guān)變化;瀏覽變電站主接線圖和配電室主接線圖狀況;并可通過視頻監(jiān)控查看遠(yuǎn)程設(shè)備真實(shí)狀況。

基于Web的變電站監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

圖3系統(tǒng)總體框圖

  2.系統(tǒng)軟件設(shè)計(jì)

  2.1 IEC104的I幀U幀S幀簡介

  控制域的這些類型被用于完成計(jì)數(shù)的信息傳輸?shù)?I格式)、計(jì)數(shù)的監(jiān)視功能(S格式)和不計(jì)數(shù)的控制功能(U格式)??刂朴虻牡谝粋€(gè)八位位組的第1位比特=0定義了I格式。I格式應(yīng)用規(guī)約數(shù)據(jù)單元常常包含應(yīng)用服務(wù)數(shù)據(jù)單元。I格式的控制信息如圖4所示。

  比特 8 7 6 5 4 3 2 1

發(fā)送序列N(S) LSB

0

MSB 發(fā)送序列N(S)

接受序列N(R) LSB

0

MSB 接受序列N(R)

  圖4 信息傳輸格式類型(I格式)控制域

  控制域的第一個(gè)八位位組的第 1 位比特=1,第 2 位比特=0 定義了 S 格式。S格式應(yīng)用規(guī)約數(shù)據(jù)單元由控制信息所組成。S格式的控制信息如圖5所以。

  比特 8 7 6 5 4 3 2 1

0

0

1

0

接受序列N(R) LSB

MSB 接受序列N(R)

  圖5 計(jì)數(shù)的監(jiān)視功能類型(S格式)控制域

  控制域的第一個(gè)八位位組的第1位比特=1,第2為比特=1定義了U格式。U格式應(yīng)用數(shù)據(jù)規(guī)約數(shù)據(jù)單元僅有應(yīng)用規(guī)約控制信息所組成。U格式的控制信息如圖6所示。在同一時(shí)刻僅TESTFR,STOPDT,STARTDT功能之一被激活[2]。

  比特 8 7 6 5 4 3 2 1

TESTFR

STOPDT

STARTDT

1

1

CON

ACT

CON

ACT

CON

ACT

0

0

0

0

  圖6 信息傳輸格式類型(U格式)控制域

  2.2 服務(wù)端連接

  在服務(wù)端采用JAVA的TCP連接池和數(shù)據(jù)庫連接池技術(shù),使用EchoServer的server()方法。

  public void service(){

  While(!isShutdown){

  …

  try{

  Thread workThread=new (new Handler(socket));

  …

  }

  …

  }

  以上工作線程workThread執(zhí)行Handler的run()方法。Handler類實(shí)現(xiàn)了Runnable接口,它的run()方法負(fù)責(zé)與單個(gè)客戶通信,與客戶通信結(jié)束后,就會(huì)斷開連接,執(zhí)行Handler的 run()方法的工作線程也會(huì)自然終止[3]。

  使用總召喚命令(0x68,0x04,0x07,0x00,0x00,0x00);召喚變電站總站向服端發(fā)送數(shù)據(jù),服務(wù)端解析之后按照遙測,遙信,開關(guān)事件等存入數(shù)據(jù)庫。在后續(xù)開發(fā)的Android和IOS客戶端,只要執(zhí)行標(biāo)準(zhǔn)的104協(xié)議規(guī)約數(shù)據(jù),即可與服務(wù)端建立通信。這樣簡化二次開發(fā)難度,并且在與JAVA串口通信的連接中多線程的調(diào)度執(zhí)行效率更高。

  2.3 數(shù)據(jù)庫連接

  數(shù)據(jù)庫采用SQL server2005,采用C3P0連接池,它是一個(gè)開源的JDBC連接池,它實(shí)現(xiàn)了數(shù)據(jù)源和JNDI綁定,支持JDBC3規(guī)范和JDBC2的標(biāo)準(zhǔn)擴(kuò)展。與普通JDBC相比,效率更高,穩(wěn)定性更強(qiáng)[4]。設(shè)置C3P0基本配置:

  ds = new ComboPooledDataSource();

  ds.setDriverClass(className);

  ds.setJdbcUrl(url);

  ds.setUser(user);

  ds.setPassword(password);

  //設(shè)置連接池的最大最小初始化連接數(shù)

  ds.setInitialPoolSize(30);

  ds.setMaxPoolSize(100);

  ds.setMinPoolSize(10);

  創(chuàng)建一個(gè)一個(gè)數(shù)據(jù)庫接口:private Connection newConnection()。以供數(shù)據(jù)存儲(chǔ)使用。

  2.4 網(wǎng)頁端訪問

  網(wǎng)頁端主要建立與數(shù)據(jù)庫連接,主要查詢變電站遙測,遙信,開關(guān),SOE事件信息。另外通過建立TCP套接字與服務(wù)端建立連接,Socket socket = new Socket("localhost",8082);實(shí)現(xiàn)變電站遠(yuǎn)程控制事件。

  變電站主接線圖部分為采用Java Applet的多線程和繪圖功能來實(shí)現(xiàn),接線圖的主要功能是用來監(jiān)視變電站運(yùn)行狀態(tài)的直觀反映,在本文監(jiān)控設(shè)計(jì)中,需要將實(shí)時(shí)數(shù)據(jù)與接線圖緊密結(jié)合,通過線程每次運(yùn)行,查詢數(shù)據(jù)庫中的新數(shù)據(jù),并更具新數(shù)據(jù)使用repaint(); getImage();和drawImage();等函數(shù)對(duì)圖像重繪制,通過顏色和狀態(tài)的區(qū)別可直觀的查詢到變電站的運(yùn)行狀態(tài)[5]。驗(yàn)證圖如7所示。

基于Web的變電站監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

圖7 變電站運(yùn)行部分狀態(tài)

  3.總結(jié)

  隨著互聯(lián)網(wǎng)行業(yè)的發(fā)展以及云計(jì)算的到來,加快了信息的交流和信息的共享,工業(yè)監(jiān)控系統(tǒng)由Web的跨平臺(tái)和隨時(shí)使用的特點(diǎn)替代傳統(tǒng)的桌面軟件風(fēng)格是一種潮流和必然。借助于手機(jī)和電腦瀏覽器,用戶可隨時(shí)遠(yuǎn)程監(jiān)控變電站的實(shí)時(shí)運(yùn)行情況和控制變電站開關(guān)狀態(tài),對(duì)電力系統(tǒng)的安全、經(jīng)濟(jì)運(yùn)行起到了促進(jìn)作用。并且本文所設(shè)計(jì)的服務(wù)端104鏈路層,可和任意標(biāo)準(zhǔn)104協(xié)議通信,這樣在以后開發(fā)的Android和IOS移動(dòng)客戶端,直接通過TCP發(fā)送標(biāo)準(zhǔn)的104協(xié)議數(shù)據(jù),可與服務(wù)端建立連接。減少了了后續(xù)開發(fā)難度。但在網(wǎng)絡(luò)傳輸過程中,時(shí)延是基于Web監(jiān)控的關(guān)鍵問題,影響這系統(tǒng)的穩(wěn)定性和控制的高效性,怎樣減小這種影響成為了日后改進(jìn)和研究的重點(diǎn)之一。

  基金項(xiàng)目:物聯(lián)網(wǎng)科普系列叢書(cstc2012gg-kplB40006)

  物聯(lián)網(wǎng)互動(dòng)體驗(yàn)館科普展品及教具研發(fā)(cstc2012gg-kplB40005)