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