文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.179022
中文引用格式: 張灣,張華,,郭肖旺,,等. 基于工控網絡拓撲結構的可視化分層方法[J].電子技術應用,2017,,43(12):85-88.
英文引用格式: Zhang Wan,,Zhang Hua,Guo Xiaowang,,et al. Visualization hierarchical method based on industrial network Topology[J].Application of Electronic Technique,,2017,43(12):85-88.
0 引言
隨著國產可編程邏輯控制器(Programming Logical Controller,,PLC)的研究取得了豐碩的成果,,組態(tài)軟件也有了蓬勃發(fā)展[1]。組態(tài)軟件在自動控制系統(tǒng)中是處于監(jiān)控層一級的軟件平臺和開發(fā)環(huán)境[2],,具有快速靈活地提供構建工業(yè)自動控制系統(tǒng)監(jiān)控和配置的功能,。圖形子系統(tǒng)是組態(tài)軟件中非常重要的一個系統(tǒng),組態(tài)拓撲結構的存儲,、應用,、分析、顯示是圖形子系統(tǒng)重要的一部分,,拓撲結構的可視化也顯得日趨重要,。
拓撲結構的研究已經受到計算機、物理、數(shù)學等多個領域的重視,,廣泛應用于交通,、網絡、電力等方面[3-6],。目前已經形成了很多完善的拓撲發(fā)現(xiàn),、拓撲生成、拓撲優(yōu)化算法,。針對復雜網絡拓撲的可視化,張暢等人提出一種NECB壓縮算法,,并應用FR算法進行點布局[7],;肖群健等提出了基于SNMP協(xié)議,使用MIBs數(shù)據的拓撲發(fā)現(xiàn)算法,,該算法具有更好的穩(wěn)定性,,運算簡單,獲得的網絡拓撲圖更加準確,,具有很強的可操作性[8],;劉金明、萬明祥提出了一種基于FR[9]的分層算法——DHL算法,,很好地解決了Internet網絡拓撲中路由級拓撲分層顯示的問題,,DHL算法可以多層遞歸,適用于所有節(jié)點對等級的網絡[10],;VATHY-FOGARASSY A和WERNER-STARK A等人提出了一種拓撲的量化和低維可視化算法[11],,這些算法按照通信協(xié)議分別從網絡層和物理層進行拓撲結構的發(fā)現(xiàn)、分析,、生成,、可視化等算法的研究。在工業(yè)控制領域,,由于網關模塊,、IO模塊、耦合模塊等的特性不同,,整個設備系統(tǒng)組成的拓撲結構中的節(jié)點可以被分成幾種不同的類別,,形成一個節(jié)點不對等的網絡拓撲。然而,,針對結點不對等的網絡拓撲結構的可視化研究尚未引起足夠的關注,。
本文以自主研發(fā)的PLC為硬件依托,針對復雜工控網絡拓撲結構的可視化問題,,提出一種合理的方案對網絡拓撲進行分層,,合理去除了環(huán)狀結構,將大數(shù)據劃分為小數(shù)據,,降低圖形子系統(tǒng)的顯示復雜度,。以關鍵度為標準實現(xiàn)關鍵節(jié)點網絡壓力的預警,,提高工業(yè)控制網絡的健壯性。
1 組態(tài)軟件概述
組態(tài)的含義是配置,、設置,、設定等意思,是指用戶通過類似“搭積木”的方式來完成自己所需要的軟件功能,,而不需要編寫計算機程序,。典型的監(jiān)控系統(tǒng)主要包括管理層、監(jiān)控層,、控制層,、工業(yè)現(xiàn)場四個部分,其中組態(tài)軟件用于管理層和監(jiān)控層,。組態(tài)軟件主要完成現(xiàn)場數(shù)據收集處理,、遠程監(jiān)控、控制命令轉發(fā)等工作,,以及數(shù)據的接收處理,、監(jiān)控界面刷新、歷史數(shù)據保存等[12],。
PLC網絡控制系統(tǒng)的連接圖如圖1所示,,組態(tài)軟件存于PC,通過網1和主站按照自定義的網絡協(xié)議進行通信,,將PC端配置的所有數(shù)據信息發(fā)送給主站,,由主站將這些數(shù)據按照存儲地址偏移值及長度搬到CPU的共享內存中,CPU通過共享內存區(qū)域與從站設備,,例如AI,、AO、DI,、DO,、網關模塊進行數(shù)據交互。網關模塊可以轉變網絡的通信協(xié)議,,圖1中網2按照相應的通信協(xié)議完成了網關模塊與其從站設備的數(shù)據交互,。同時,組態(tài)軟件會分析由主站返回來的數(shù)據信息,,進行在線的實時顯示,。組態(tài)軟件中顯示連接關系應該與控制系統(tǒng)的實際連接相匹配,例如,,每一個AI對應組態(tài)畫面中的一個AI模塊圖形,,每個物理設備都應在組態(tài)軟件中,并且能夠在組態(tài)界面中找到一個模塊圖形與之對應。
由于總線和可擴展設備的存在,,一個網絡中可以連接多個總線,,每個總線又可以分別連接很多設備,同時大多數(shù)設備(例如網關模塊)可以掛載自己的子設備,,這樣整個控制系統(tǒng)的設備連接就形成了一個復雜的拓撲結構,。設備的物理連接是一種三維物體的存在形式,如何將這些三維物體的連接清晰明了地映射到二維空間中顯示在組態(tài)軟件中成為拓撲結構可視化的重點,。本文使用分層的方法將二維的顯示擴展到三維空間,,添加分層層次為第三維數(shù)據。
2 組態(tài)拓撲設計
網絡拓撲結構主要有總線型,、星型,、環(huán)型、樹型,、網狀和混合型,。本文采用以上類型都能轉化的樹型結構為數(shù)據存儲方式,。
2.1 拓撲數(shù)據結構
在組態(tài)軟件中的拓撲結構可以轉化為一個無向圖來描述:G=(V,,E)。其中,,V為節(jié)點集合,,E為無向圖的邊集合。節(jié)點集合由組態(tài)工程中出現(xiàn)的所有設備組成,,邊則代表各個設備的連接關系,。
圖2中上半部分為工控領域實際硬件連接的示意圖,黑色粗實線表示總線,,方形表示模塊,,圓形表示CPU;下半部分為數(shù)據的結構存儲方式,。按照圖中的連接關系及數(shù)據的存儲結構,,將CPU轉化為根節(jié)點,CPU直接連接的總線上的所有節(jié)點作為CPU的子節(jié)點,。網關模塊可以掛載支持該網絡通信協(xié)議的從設備,,即網關模塊可以連接其他葉子節(jié)點。耦合模塊可以連接兩個模塊,,使得設備連接拓撲中出現(xiàn)環(huán)狀,,分層方法可以降低環(huán)形顯示的復雜性。
在拓撲結構的分層可視化顯示中,,應該對總線,、IO模塊、耦合模塊加以區(qū)分。本文提出的使用廣度優(yōu)先分層算法,,可以很好地發(fā)現(xiàn)環(huán)路中的耦合模塊節(jié)點,。
2.2 可視化方法設計
拓撲結構的顯示重要性很高,圖形系統(tǒng)中圖元的重疊會影響拓撲組態(tài)和拓撲分析過程,。在工控網絡中,,各個設備形成的節(jié)點是不對等的,導致網絡中的DHL分層算法并不適用[7],。工控網絡中節(jié)點的連接關系具有一定的層次性,,在選取環(huán)路的拆分點時,環(huán)路的節(jié)點并不對等,。本文根據層次關系強這一特點,,提出工控網絡拓撲的分層顯示,使用廣度優(yōu)先的方法可以很好地發(fā)現(xiàn)環(huán)路中的耦合模塊,,并利用該點拆分環(huán)路,。
2.2.1 分層方法
拓撲結構可視化時,為了清晰起見會對繪制圖元進行碰撞檢測來防止重疊顯示,。但是,,對于一個三維的物理拓撲結構,如果控制網絡過于復雜,,利用空間碰撞檢測的方法避免圖元重疊和交叉的效果并不理想,。本文提出使用廣度優(yōu)先的方法對拓撲圖進行分層,在二維空間坐標系的基礎上,,添加層次作為第三維數(shù)據,,每層的數(shù)據仍然映射到二維平面中。對于拆分之后在同一層的拓撲數(shù)據,,使用分離距離來進行碰撞檢測[13],,本文采用歐式距離的計算如下:
式中,d表示距離,,(x1,,y1)和(x2,y2)分別是二維空間中的兩個點,。
按照圖的廣度優(yōu)先生成樹的節(jié)點高度進行分層,,在第一個配置界面上只顯示高度為1的節(jié)點組成的拓撲結構。圖的廣度優(yōu)先生成樹是按照圖的廣度優(yōu)先遍歷的方法生成的,。如圖3所示,,每個節(jié)點中的數(shù)字代表當前節(jié)點的值。
(1)初始化拓撲圖中每個節(jié)點的值為1,,選取控制站所在的節(jié)點作為第一個節(jié)點,;
(2)按照廣度優(yōu)先的方法對拓撲圖中的節(jié)點進行遍歷,,節(jié)點每被遍歷一次就將該節(jié)點的值減1;
(3)直到遍歷過所有的節(jié)點,,遍歷的路徑即為圖的廣度優(yōu)先生成樹,。
根據數(shù)據結構的定義方法,每個節(jié)點的子節(jié)點都是該節(jié)點設備的從設備,。故將從站設備的配置顯示在該設備的主設備的下一層,,從設備的從設備同理。對于圖中不同層的公共節(jié)點,,即在廣度優(yōu)先生成樹中,,值為小于0的節(jié)點,用特定顏色來進行標記,。在圖3中節(jié)點值為-1的節(jié)點,,表明是形成環(huán)的節(jié)點。
生成廣度優(yōu)先生成樹后,,按照樹的高度進行分層顯示,。這里仍然以圖3中的樹結構為例,為了描述方便起見,,將圖3樹中節(jié)點內的值改為節(jié)點編號顯示,,如圖4所示。將高度為1的節(jié)點顯示在第一層,,高度為2的節(jié)點顯示在第二層,,每層都要保留其父節(jié)點,。節(jié)點5為廣度生成樹中的值為-1的節(jié)點,,故在第二層顯示時,以深色顯示,,并分別顯示到第二層的兩個子樹中,。在層次的劃分上,也可以根據實際情況,,改變劃分的間隔高度,。
2.2.2 分層算法實現(xiàn)
基于廣度優(yōu)先生成樹的分層算法,首先選取CPU節(jié)點為根節(jié)點,,對整個拓撲圖進行遍歷,,保留下各個節(jié)點的遍歷路徑,即為廣度優(yōu)先生成樹,,并根據樹的高度分層顯示到界面上,。廣度優(yōu)先生成樹的偽代碼如下:
廣度優(yōu)先遍歷的方法時間復雜度為O(|E|),|E|為拓撲圖中邊的數(shù)量,。故使用廣度優(yōu)先生成樹的方式進行拓撲圖的劃分,,并不會提高計算的復雜度,。
3 拓撲分析預警
拓撲圖可以根據對圖中各個節(jié)點的度、經過的最短路徑長度,、聚集度等特征[7]來分析整個拓撲的狀態(tài),,根據這些信息可以發(fā)現(xiàn)拓撲中的關鍵節(jié)點。
關鍵節(jié)點就是節(jié)點的損壞會導致拓撲網絡中與這個節(jié)點連通的其他節(jié)點受到嚴重影響,,例如網關模塊的損壞就有比IO模塊更大的影響,。對于拓撲圖中的一個節(jié)點i與其他ki個葉子節(jié)點連通,則稱ki為節(jié)點i的連通度,,記為d(i),。節(jié)點的度越大,設備在工控網絡中越重要,,設備的損壞對工控網絡的影響就越大,。
假設生成如圖5所示的廣度優(yōu)先生成樹,節(jié)點內的數(shù)字表示節(jié)點的編號,。對于根節(jié)點1來說,,葉子節(jié)點3、10,、6,、8、9都與根節(jié)點1連通,,所以節(jié)點1的度d(1)=5,。同理,d(5)=3,,d(7)=2,,又有d(5)>d(7),所以節(jié)點5是比節(jié)點7重要的節(jié)點,。
整個圖可以使用回溯法計算節(jié)點可連通的葉節(jié)點的個數(shù),,回溯法就是在生成廣度優(yōu)先生成樹之后,再從樹的根節(jié)點開始進行遍歷,,按照后續(xù)深度優(yōu)先的方法計算每個節(jié)點的可連通葉節(jié)點的數(shù)量,,節(jié)點中子節(jié)點的可連通的葉節(jié)點的和,即為可連通的值。
根據這種方法,,可以查找出拓撲圖中網絡承受壓力大的設備,,例如節(jié)點5壞掉會導致節(jié)點6、7,、8,、9都失去控制。在用戶組態(tài)時,,檢查對比當前的拓撲關鍵點,,提示用戶改變拓撲連接方法,,可以提高工控網絡的健壯性。
4 結論
本文提出的拓撲結構分層算法將復雜的工控網絡拓撲結構進行分層,,實現(xiàn)小數(shù)據量的可視化,,提高將數(shù)據轉化為圖形顯示的速度,同時通過對當前圖形的分析實現(xiàn)預警,。該方法可以應用于工控網絡中組態(tài)拓撲與物理拓撲的一致性檢查,,從站掃描自動生成組態(tài)拓撲等方面,但是本文中的方法忽略了總線這個數(shù)據實體,,未考慮某些模塊自帶環(huán)路的情況,。在接下來的工作中,將會在收集大量的數(shù)據之后,,對分層方法的參數(shù)標準進行研究,。
參考文獻
[1] 歐金成,歐世樂,,林德杰,,等.組態(tài)軟件的現(xiàn)狀與發(fā)展[J].工業(yè)控制計算機,2002,,15(4):42-45.
[2] 徐鑫鑫.基于HTML5和SVG跨平臺工控圖形組態(tài)軟件的研發(fā)[D].南京:南京大學,,2014.
[3] 鄭耿忠,劉三陽,,齊小剛.基于小世界網絡模型的無線傳感器網絡拓撲研究綜述[J].控制與決策,,2010,25(12):1761-1768.
[4] 鄭嘯,,陳建平,,邵佳麗,等.基于復雜網絡理論的北京公交網絡拓撲性質分析[J].物理學報,,2012,,61(19):95-105.
[5] 苗新,,張東霞,,宋璇坤.全球電力能源互聯(lián)網拓撲的矩陣表述[J].電力系統(tǒng)自動化,2016(5):8-16.
[6] 朱鐵穩(wěn),,李琦,,苗前軍.三維空間對象拓撲關系的研究[J].計算機工程與應用,2003,,39(17):1-3.
[7] 張暢,,謝鈞,胡谷雨,,等.復雜網絡拓撲可視化方案設計與實現(xiàn)[J].計算機技術與發(fā)展,,2014(12):78-82.
[8] 肖群健.局域網拓撲發(fā)現(xiàn)技術研究與應用[D].廣州:廣東工業(yè)大學,,2011.
[9] 李海峰.圖布局FR算法的研究與實現(xiàn)[J].電腦知識與技術,2013(12):2864-2865.
[10] 劉金明,,萬明祥.基于節(jié)點度分層的路由器級拓撲布局算法[J].計算機技術與發(fā)展,,2015(1):100-106.
[11] VATHY-FOGARASSY A,WERNER-STARK A,,GAL B,,et al.Visualization of Topology representing networks[M].Intelligent Data Engineering and Automated Learning:IDEAL 2007,2007:557-566.
[12] 王光.基于C#的監(jiān)控組態(tài)軟件開發(fā)[D].哈爾濱:哈爾濱工業(yè)大學,,2012.
[13] 潘海鴻,,馮俊杰,陳琳,,等.基于分離距離的碰撞檢測算法綜述[J].系統(tǒng)仿真學報,,2014,26(7):1407-1416.
作者信息:
張 灣1,,張 華2,,郭肖旺1,霍玉鮮1,,張曉莉1
(1.華北計算機系統(tǒng)工程研究所,,北京100083;2.北京航天飛行控制中心,,北京102206)