陳杰春 張亞南 閆瑞乾
(東北電力大學(xué)自動(dòng)化工程學(xué)院,吉林 吉林 132012)
低壓電力線載波通信(Power Line Carrier Communications,PLCC)技術(shù)是一種以低壓電力線路為傳輸媒介,通過(guò)載波方式進(jìn)行信息傳輸和交換的技術(shù),是一種電力系統(tǒng)特有的通信方式。與其他通信方式相比,低壓PLCC技術(shù)能夠充分利用現(xiàn)有的電力線資源,因此具有良好的開發(fā)前景和應(yīng)用價(jià)值。從20世紀(jì)90年代初開始,低壓PLCC技術(shù)就已經(jīng)應(yīng)用于自動(dòng)抄表、電網(wǎng)負(fù)載控制及供電管理等方面[1]。
電力網(wǎng)絡(luò)的阻抗特性、衰減特性和噪聲干擾是影響低壓PLCC傳輸質(zhì)量的主要因素,其中前兩者制約信號(hào)的傳輸距離,后者決定數(shù)據(jù)傳輸?shù)馁|(zhì)量[2]。網(wǎng)絡(luò)中繼技術(shù)和組網(wǎng)路由算法是擴(kuò)展低壓PLCC距離的重要手段。現(xiàn)有的低壓PLCC路由算法,如基于人工蛛網(wǎng)的路由算法[3]、基于蟻群算法的路由算法[4,5]、分簇路由算法[6]及基于傳輸矩陣的路由算法等,在理論上都是可行且適合于電力線特性的,但其實(shí)際的網(wǎng)絡(luò)性能尚不明確。在此,筆者基于傳輸矩陣的路由算法,探討基于OPNET Simulator軟件的低壓PLCC路由算法的仿真方法。通過(guò)算法仿真,以進(jìn)一步了解算法的性能和可用性。
基于傳輸矩陣的路由算法是一種只適用于主從式低壓PLCC網(wǎng)絡(luò)的路由算法。該方法是在主控制器中存放一個(gè)定期動(dòng)態(tài)更新的路由表,主控制器根據(jù)路由表發(fā)送數(shù)據(jù)到從控制器。從控制器中不存放路由表,它只需根據(jù)所接收數(shù)據(jù)中的地址來(lái)決定轉(zhuǎn)發(fā)數(shù)據(jù)或發(fā)送反饋信息[7]。
主從式低壓PLCC網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,假定低壓電力線上有9個(gè)設(shè)備:主控制器0和從控制器1~8。
圖1 主從式低壓PLCC網(wǎng)絡(luò)結(jié)構(gòu)
初始化過(guò)程。首先建立一個(gè)9×9的零矩陣,讓主控制器0發(fā)送廣播信號(hào),假設(shè)只有從控制器2、3接收到廣播并分別反饋含有從控制器地址的應(yīng)答信號(hào)。主控制器0分析應(yīng)答信息后,將傳輸矩陣第0行的第2、3列元素分別置1。然后,主控制器0再發(fā)送命令讓從控制器2發(fā)送廣播信號(hào)(已發(fā)送過(guò)反饋信號(hào)的從控制器不再發(fā)送反饋應(yīng)答信號(hào)),假設(shè)從控制器2接收到來(lái)自從控制器1、5的反饋信號(hào)并將其分別反傳給主控制器0,主控制器0將傳輸矩陣的第2行的第1、5列元素置為1。之后主控制器0再發(fā)送命令讓從控制器3發(fā)送廣播信號(hào),依此類推,得到如圖2所示的傳輸矩陣,進(jìn)而可確定如圖3所示的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
如此,主控制器0便可以根據(jù)傳輸矩陣按照指定路徑給從控制器發(fā)送消息。如主控制器0要傳輸數(shù)據(jù)給從控制器8,首先搜索傳輸矩陣的第8列,找到第6行元素的值為1;再搜索矩陣的第6列,找到第1行元素的值為1;再搜索矩陣的第1列,找到第2行元素的值為1;再搜索矩陣的第2列,找到第0行元素的值為1。搜索過(guò)程結(jié)束,確定的傳輸路徑為0→2→1→6→8。
圖2 傳輸矩陣
圖3 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
OPNET Simulator是目前作為網(wǎng)絡(luò)規(guī)劃、仿真和分析工具的高端產(chǎn)品,在通信、國(guó)防和數(shù)據(jù)網(wǎng)絡(luò)領(lǐng)域已被廣泛認(rèn)可和應(yīng)用。陳磊等使用OPNET Simulator分析了以太網(wǎng)的通信延遲與節(jié)點(diǎn)數(shù)目、數(shù)據(jù)幀長(zhǎng)度和通信速率之間的關(guān)系[8]。OPNET Simulator提供三層建模機(jī)制:最底層是進(jìn)程模型,實(shí)現(xiàn)算法協(xié)議;中間層為節(jié)點(diǎn)模型,反映設(shè)備的硬件特性;最上層為網(wǎng)絡(luò)模型,表現(xiàn)現(xiàn)實(shí)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)[9]。筆者根據(jù)OPNET Simulator的三層建模機(jī)制,對(duì)基于傳輸矩陣的路由算法進(jìn)行初始化建模仿真,獲得仿真數(shù)據(jù)并分析網(wǎng)絡(luò)性能。
在進(jìn)行三層建模之前,首先要完成數(shù)據(jù)幀的設(shè)計(jì)。數(shù)據(jù)幀(圖4)是傳輸信息的基本單元,由若干字段組成。定義每個(gè)字段為8位,分別為源地址、中繼地址、目的地址、控制位和數(shù)據(jù)位。
圖4 通信幀結(jié)構(gòu)
其中,中繼地址段的大小會(huì)根據(jù)傳輸需要的個(gè)數(shù)而動(dòng)態(tài)改變。
基于傳輸矩陣的路由算法的進(jìn)程仿真模型如圖5所示,該進(jìn)程仿真模型由init、idle、snd、rcv、wt_free和end共6個(gè)狀態(tài)組成。
圖5 進(jìn)程仿真模型
init狀態(tài)完成設(shè)備的初始化,包括讀取設(shè)備的命名、主從狀態(tài)、設(shè)備地址、仿真開始時(shí)間、統(tǒng)計(jì)量的聲明和產(chǎn)生中斷命令。idle狀態(tài)是閑置狀態(tài),系統(tǒng)初始化后,若沒(méi)有事件發(fā)生則處于閑置狀態(tài)。snd狀態(tài)完成數(shù)據(jù)包的發(fā)送和發(fā)包統(tǒng)計(jì)量的記錄。根據(jù)數(shù)據(jù)包攜帶的信息和自身的主從狀態(tài)及地址等參數(shù),rcv狀態(tài)完成數(shù)據(jù)包的轉(zhuǎn)發(fā)、收包統(tǒng)計(jì)記錄、銷毀、傳輸矩陣的更新及發(fā)包中斷等處理。利用CSMA協(xié)議,wt_free狀態(tài)監(jiān)聽信道是否空閑,在發(fā)送數(shù)據(jù)時(shí),若信道空閑則馬上發(fā)送數(shù)據(jù);否則會(huì)等待繼續(xù)監(jiān)聽,等信道空閑后發(fā)送。end狀態(tài)是系統(tǒng)仿真結(jié)束后進(jìn)入的狀態(tài),用以顯示初始化時(shí)間的確切結(jié)果。
主控制器流程如圖6所示,其中MAX為總線上的設(shè)備個(gè)數(shù),M[MAX]為廣播所記錄的數(shù)組,當(dāng)其某一位為1時(shí),就發(fā)送命令讓該設(shè)備廣播,等待接收反饋應(yīng)答信號(hào)。在接收到反饋信息時(shí)會(huì)刷新等待時(shí)間重新等待,直到在限定時(shí)間內(nèi)無(wú)反饋信號(hào)而跳出等待,廣播下一個(gè)節(jié)點(diǎn)設(shè)備。N[MAX]記錄下一層需廣播的節(jié)點(diǎn)設(shè)備,當(dāng)其所有數(shù)據(jù)為0時(shí),初始化過(guò)程結(jié)束。
從控制器流程如圖7所示。在初始化階段,將從控制器的標(biāo)志位置0。若接收到反饋應(yīng)答信號(hào),則將標(biāo)志位置1,并停止反饋應(yīng)答信號(hào);若接收到需要廣播的信號(hào),就進(jìn)行和主控制器相同的廣播過(guò)程,在此不再贅述。
圖6 主控制器流程
圖7 從控制器流程
節(jié)點(diǎn)模型如圖8所示(虛線為統(tǒng)計(jì)線,用以偵聽信道狀態(tài)),其中每個(gè)設(shè)備都具有對(duì)數(shù)據(jù)包的接收、轉(zhuǎn)發(fā)和發(fā)送功能,因此都配有一組收發(fā)機(jī)(bus_rx、bus_tx)和判斷收發(fā)、轉(zhuǎn)發(fā)的程序處理模塊(proc)。收發(fā)機(jī)模擬硬件接口,控制數(shù)據(jù)的傳輸速率,并完成數(shù)據(jù)的發(fā)送和處理。
圖8 節(jié)點(diǎn)模型
網(wǎng)絡(luò)模型如圖9所示,其中主設(shè)備和從設(shè)備隨機(jī)相連在總線上。主設(shè)備和從設(shè)備唯一的區(qū)別是主設(shè)備對(duì)總線進(jìn)行控制并負(fù)責(zé)數(shù)據(jù)包的發(fā)送,而從設(shè)備負(fù)責(zé)對(duì)數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)和信息反饋。圖9中單位格長(zhǎng)度為125m,由程序設(shè)定數(shù)據(jù)的傳播距離為250m,即兩個(gè)單位格的長(zhǎng)度。
圖9 網(wǎng)絡(luò)模型
用所建仿真模型分別進(jìn)行兩組實(shí)驗(yàn)。第一組實(shí)驗(yàn)在保證20個(gè)從設(shè)備不變的前提下,將數(shù)據(jù)傳輸速率分別設(shè)置為600、1 200、1 800、2 400、3 600、4 800bit/s,通過(guò)算法仿真分別確定系統(tǒng)的初始化時(shí)間(即創(chuàng)建傳輸矩陣的時(shí)間)為16.6、8.3、5.6、4.2、2.8、2.1s。
第二組實(shí)驗(yàn)在保持?jǐn)?shù)據(jù)傳輸速率為1 200bit/s的條件下,將從設(shè)備數(shù)量分別設(shè)置為10、20、30、40、50個(gè),通過(guò)算法仿真分別確定系統(tǒng)的初始化時(shí)間為4.1、8.3、13.1、17.0、21.0s。
由仿真結(jié)果看出,數(shù)據(jù)的傳輸速率與系統(tǒng)的初始化時(shí)間成反函數(shù)關(guān)系,在設(shè)備數(shù)量為20個(gè)時(shí),初始化時(shí)間約為9 600/傳輸速率。從設(shè)備的數(shù)量與系統(tǒng)初始化時(shí)間成線性函數(shù)關(guān)系,在傳輸速率為1 200bit/s時(shí),初始化時(shí)間約為0.42倍的從設(shè)備數(shù)量。
筆者基于傳輸矩陣的動(dòng)態(tài)路由算法,探討了基于OPNET Simulator的低壓PLCC路由算法的仿真方法。分別給出了協(xié)議設(shè)計(jì)、進(jìn)程建模、節(jié)點(diǎn)建模和網(wǎng)絡(luò)結(jié)構(gòu)建模的方法,這些方法均具有一般性,可以為其他路由算法的仿真提供借鑒。
[1] 王君紅,劉寶,袁若權(quán),等.基于電力載波通訊的遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)及應(yīng)用[J].化工自動(dòng)化及儀表,2009,36(1): 49~52.
[2] 邢明海,胡靜宇,鄧海峰.低壓電力線載波抄表系統(tǒng)中的通信技術(shù)應(yīng)用[J].化工自動(dòng)化及儀表,2002,29(1):38~42.
[3] 劉曉勝,張良,周巖,等.低壓電力線通信人工蛛網(wǎng)結(jié)構(gòu)的可靠性分析[J].中國(guó)電機(jī)工程學(xué)報(bào),2012,32(28):142~149.
[4] 劉曉勝,周巖,戚佳金.電力線載波通信的自動(dòng)路由方法研究[J].中國(guó)電機(jī)工程學(xué)報(bào),2006,26(21):76~81.
[5] 劉曉勝,戚佳金,宋其濤,等.基于蟻群算法的低壓配電網(wǎng)電力線通信組網(wǎng)方法[J].中國(guó)電機(jī)工程學(xué)報(bào),2008, 28(1):71~76.
[6] 戚佳金,劉曉勝,徐殿國(guó),等.低壓電力線通信分簇路由算法及網(wǎng)絡(luò)重構(gòu)[J].中國(guó)電機(jī)工程學(xué)報(bào),2008,28(4):65~71.
[7] 俞天白,楊將新,趙玉璽.樓宇控制系統(tǒng)中的電力線載波通信路由算法[J].電網(wǎng)技術(shù),2006,30(9):88~91.
[8] 陳磊,馮冬芹,金建祥,等.以太網(wǎng)在工業(yè)應(yīng)用中的實(shí)時(shí)能力分析[J].化工自動(dòng)化及儀表,2003,30(1):44~48.
[9] 陳敏.OPNET網(wǎng)絡(luò)仿真[M].北京:清華大學(xué)出版社,2004.