《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于工控網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的可視化分層方法
基于工控網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的可視化分層方法
2017年電子技術(shù)應(yīng)用第12期
張 灣1,張 華2,郭肖旺1,霍玉鮮1,張曉莉1
1.華北計算機(jī)系統(tǒng)工程研究所,北京100083;2.北京航天飛行控制中心,北京102206
摘要: 為了實現(xiàn)工控網(wǎng)絡(luò)組態(tài)的拓?fù)浣Y(jié)構(gòu)到二維平面的無交叉映射顯示,從自主可控PLC的網(wǎng)絡(luò)拓?fù)涑霭l(fā),提出按照廣度優(yōu)先生成樹的高度對拓?fù)浣Y(jié)構(gòu)進(jìn)行分層,根據(jù)層次的劃分,每個界面只顯示該層組態(tài)界面信息,簡化了組態(tài)畫面的復(fù)雜性,強(qiáng)化了組態(tài)拓?fù)涞倪壿媱澐帧Mㄟ^統(tǒng)計每個節(jié)點可連通的葉節(jié)點數(shù)量分析節(jié)點的關(guān)鍵度,利用關(guān)鍵度分析網(wǎng)絡(luò)組態(tài)中的節(jié)點,并提示預(yù)警。
中圖分類號: TP273
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.179022
中文引用格式: 張灣,張華,郭肖旺,等. 基于工控網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的可視化分層方法[J].電子技術(shù)應(yīng)用,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.
Visualization hierarchical method based on industrial network Topology
Zhang Wan1,Zhang Hua2,Guo Xiaowang1,Huo Yuxian1,Zhang Xiaoli1
1.North China Institute of Computer Systems Engineering,Beijing 100083,China; 2.Beijing Aerospace Control Center,Beijing 102206,China
Abstract: In order to realize the non-cross-map display of the topology industrial control network topology to the two-dimensional plane, this paper proposes a hierarchical visualization method, which based on the height of the tree of the autonomously controlled PLC. According to the hierarchical division, the interface only displays the layer configuration interface information. This method simplifies the complexity of the configuration screen, and strengthens the logical partitioning of the configuration topology. By analyzing the key degree of the node that can be connected by each node, the nodes in the network configuration are analyzed by the key degree and the warning is indicated.
Key words : topology;hierarchical visualization;configuration warning;PLC

0 引言

    隨著國產(chǎn)可編程邏輯控制器(Programming Logical Controller,PLC)的研究取得了豐碩的成果,組態(tài)軟件也有了蓬勃發(fā)展[1]。組態(tài)軟件在自動控制系統(tǒng)中是處于監(jiān)控層一級的軟件平臺和開發(fā)環(huán)境[2],具有快速靈活地提供構(gòu)建工業(yè)自動控制系統(tǒng)監(jiān)控和配置的功能。圖形子系統(tǒng)是組態(tài)軟件中非常重要的一個系統(tǒng),組態(tài)拓?fù)浣Y(jié)構(gòu)的存儲、應(yīng)用、分析、顯示是圖形子系統(tǒng)重要的一部分,拓?fù)浣Y(jié)構(gòu)的可視化也顯得日趨重要。

    拓?fù)浣Y(jié)構(gòu)的研究已經(jīng)受到計算機(jī)、物理、數(shù)學(xué)等多個領(lǐng)域的重視,廣泛應(yīng)用于交通、網(wǎng)絡(luò)、電力等方面[3-6]。目前已經(jīng)形成了很多完善的拓?fù)浒l(fā)現(xiàn)、拓?fù)渖?、拓?fù)鋬?yōu)化算法。針對復(fù)雜網(wǎng)絡(luò)拓?fù)涞目梢暬?,張暢等人提出一種NECB壓縮算法,并應(yīng)用FR算法進(jìn)行點布局[7];肖群健等提出了基于SNMP協(xié)議,使用MIBs數(shù)據(jù)的拓?fù)浒l(fā)現(xiàn)算法,該算法具有更好的穩(wěn)定性,運(yùn)算簡單,獲得的網(wǎng)絡(luò)拓?fù)鋱D更加準(zhǔn)確,具有很強(qiáng)的可操作性[8];劉金明、萬明祥提出了一種基于FR[9]的分層算法——DHL算法,很好地解決了Internet網(wǎng)絡(luò)拓?fù)渲新酚杉壨負(fù)?a class="innerlink" href="http://ihrv.cn/tags/分層顯示" title="分層顯示" target="_blank">分層顯示的問題,DHL算法可以多層遞歸,適用于所有節(jié)點對等級的網(wǎng)絡(luò)[10];VATHY-FOGARASSY A和WERNER-STARK A等人提出了一種拓?fù)涞牧炕偷途S可視化算法[11],這些算法按照通信協(xié)議分別從網(wǎng)絡(luò)層和物理層進(jìn)行拓?fù)浣Y(jié)構(gòu)的發(fā)現(xiàn)、分析、生成、可視化等算法的研究。在工業(yè)控制領(lǐng)域,由于網(wǎng)關(guān)模塊、IO模塊、耦合模塊等的特性不同,整個設(shè)備系統(tǒng)組成的拓?fù)浣Y(jié)構(gòu)中的節(jié)點可以被分成幾種不同的類別,形成一個節(jié)點不對等的網(wǎng)絡(luò)拓?fù)?。然而,針對結(jié)點不對等的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的可視化研究尚未引起足夠的關(guān)注。

    本文以自主研發(fā)的PLC為硬件依托,針對復(fù)雜工控網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的可視化問題,提出一種合理的方案對網(wǎng)絡(luò)拓?fù)溥M(jìn)行分層,合理去除了環(huán)狀結(jié)構(gòu),將大數(shù)據(jù)劃分為小數(shù)據(jù),降低圖形子系統(tǒng)的顯示復(fù)雜度。以關(guān)鍵度為標(biāo)準(zhǔn)實現(xiàn)關(guān)鍵節(jié)點網(wǎng)絡(luò)壓力的預(yù)警,提高工業(yè)控制網(wǎng)絡(luò)的健壯性。

1 組態(tài)軟件概述

    組態(tài)的含義是配置、設(shè)置、設(shè)定等意思,是指用戶通過類似“搭積木”的方式來完成自己所需要的軟件功能,而不需要編寫計算機(jī)程序。典型的監(jiān)控系統(tǒng)主要包括管理層、監(jiān)控層、控制層、工業(yè)現(xiàn)場四個部分,其中組態(tài)軟件用于管理層和監(jiān)控層。組態(tài)軟件主要完成現(xiàn)場數(shù)據(jù)收集處理、遠(yuǎn)程監(jiān)控、控制命令轉(zhuǎn)發(fā)等工作,以及數(shù)據(jù)的接收處理、監(jiān)控界面刷新、歷史數(shù)據(jù)保存等[12]。

    PLC網(wǎng)絡(luò)控制系統(tǒng)的連接圖如圖1所示,組態(tài)軟件存于PC,通過網(wǎng)1和主站按照自定義的網(wǎng)絡(luò)協(xié)議進(jìn)行通信,將PC端配置的所有數(shù)據(jù)信息發(fā)送給主站,由主站將這些數(shù)據(jù)按照存儲地址偏移值及長度搬到CPU的共享內(nèi)存中,CPU通過共享內(nèi)存區(qū)域與從站設(shè)備,例如AI、AO、DI、DO、網(wǎng)關(guān)模塊進(jìn)行數(shù)據(jù)交互。網(wǎng)關(guān)模塊可以轉(zhuǎn)變網(wǎng)絡(luò)的通信協(xié)議,圖1中網(wǎng)2按照相應(yīng)的通信協(xié)議完成了網(wǎng)關(guān)模塊與其從站設(shè)備的數(shù)據(jù)交互。同時,組態(tài)軟件會分析由主站返回來的數(shù)據(jù)信息,進(jìn)行在線的實時顯示。組態(tài)軟件中顯示連接關(guān)系應(yīng)該與控制系統(tǒng)的實際連接相匹配,例如,每一個AI對應(yīng)組態(tài)畫面中的一個AI模塊圖形,每個物理設(shè)備都應(yīng)在組態(tài)軟件中,并且能夠在組態(tài)界面中找到一個模塊圖形與之對應(yīng)。

tx3-t1.gif

    由于總線和可擴(kuò)展設(shè)備的存在,一個網(wǎng)絡(luò)中可以連接多個總線,每個總線又可以分別連接很多設(shè)備,同時大多數(shù)設(shè)備(例如網(wǎng)關(guān)模塊)可以掛載自己的子設(shè)備,這樣整個控制系統(tǒng)的設(shè)備連接就形成了一個復(fù)雜的拓?fù)浣Y(jié)構(gòu)。設(shè)備的物理連接是一種三維物體的存在形式,如何將這些三維物體的連接清晰明了地映射到二維空間中顯示在組態(tài)軟件中成為拓?fù)浣Y(jié)構(gòu)可視化的重點。本文使用分層的方法將二維的顯示擴(kuò)展到三維空間,添加分層層次為第三維數(shù)據(jù)。

2 組態(tài)拓?fù)湓O(shè)計

    網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)主要有總線型、星型、環(huán)型、樹型、網(wǎng)狀和混合型。本文采用以上類型都能轉(zhuǎn)化的樹型結(jié)構(gòu)為數(shù)據(jù)存儲方式。

2.1 拓?fù)鋽?shù)據(jù)結(jié)構(gòu)

    在組態(tài)軟件中的拓?fù)浣Y(jié)構(gòu)可以轉(zhuǎn)化為一個無向圖來描述:G=(V,E)。其中,V為節(jié)點集合,E為無向圖的邊集合。節(jié)點集合由組態(tài)工程中出現(xiàn)的所有設(shè)備組成,邊則代表各個設(shè)備的連接關(guān)系。

    圖2中上半部分為工控領(lǐng)域?qū)嶋H硬件連接的示意圖,黑色粗實線表示總線,方形表示模塊,圓形表示CPU;下半部分為數(shù)據(jù)的結(jié)構(gòu)存儲方式。按照圖中的連接關(guān)系及數(shù)據(jù)的存儲結(jié)構(gòu),將CPU轉(zhuǎn)化為根節(jié)點,CPU直接連接的總線上的所有節(jié)點作為CPU的子節(jié)點。網(wǎng)關(guān)模塊可以掛載支持該網(wǎng)絡(luò)通信協(xié)議的從設(shè)備,即網(wǎng)關(guān)模塊可以連接其他葉子節(jié)點。耦合模塊可以連接兩個模塊,使得設(shè)備連接拓?fù)渲谐霈F(xiàn)環(huán)狀,分層方法可以降低環(huán)形顯示的復(fù)雜性。

tx3-t2.gif

    在拓?fù)浣Y(jié)構(gòu)的分層可視化顯示中,應(yīng)該對總線、IO模塊、耦合模塊加以區(qū)分。本文提出的使用廣度優(yōu)先分層算法,可以很好地發(fā)現(xiàn)環(huán)路中的耦合模塊節(jié)點。

2.2 可視化方法設(shè)計

    拓?fù)浣Y(jié)構(gòu)的顯示重要性很高,圖形系統(tǒng)中圖元的重疊會影響拓?fù)浣M態(tài)和拓?fù)浞治鲞^程。在工控網(wǎng)絡(luò)中,各個設(shè)備形成的節(jié)點是不對等的,導(dǎo)致網(wǎng)絡(luò)中的DHL分層算法并不適用[7]。工控網(wǎng)絡(luò)中節(jié)點的連接關(guān)系具有一定的層次性,在選取環(huán)路的拆分點時,環(huán)路的節(jié)點并不對等。本文根據(jù)層次關(guān)系強(qiáng)這一特點,提出工控網(wǎng)絡(luò)拓?fù)涞姆謱语@示,使用廣度優(yōu)先的方法可以很好地發(fā)現(xiàn)環(huán)路中的耦合模塊,并利用該點拆分環(huán)路。

2.2.1 分層方法

         拓?fù)浣Y(jié)構(gòu)可視化時,為了清晰起見會對繪制圖元進(jìn)行碰撞檢測來防止重疊顯示。但是,對于一個三維的物理拓?fù)浣Y(jié)構(gòu),如果控制網(wǎng)絡(luò)過于復(fù)雜,利用空間碰撞檢測的方法避免圖元重疊和交叉的效果并不理想。本文提出使用廣度優(yōu)先的方法對拓?fù)鋱D進(jìn)行分層,在二維空間坐標(biāo)系的基礎(chǔ)上,添加層次作為第三維數(shù)據(jù),每層的數(shù)據(jù)仍然映射到二維平面中。對于拆分之后在同一層的拓?fù)鋽?shù)據(jù),使用分離距離來進(jìn)行碰撞檢測[13],本文采用歐式距離的計算如下:     tx3-gs1.gif

式中,d表示距離,(x1,y1)和(x2,y2)分別是二維空間中的兩個點。

    按照圖的廣度優(yōu)先生成樹的節(jié)點高度進(jìn)行分層,在第一個配置界面上只顯示高度為1的節(jié)點組成的拓?fù)浣Y(jié)構(gòu)。圖的廣度優(yōu)先生成樹是按照圖的廣度優(yōu)先遍歷的方法生成的。如圖3所示,每個節(jié)點中的數(shù)字代表當(dāng)前節(jié)點的值。

tx3-t3.gif

    (1)初始化拓?fù)鋱D中每個節(jié)點的值為1,選取控制站所在的節(jié)點作為第一個節(jié)點;

    (2)按照廣度優(yōu)先的方法對拓?fù)鋱D中的節(jié)點進(jìn)行遍歷,節(jié)點每被遍歷一次就將該節(jié)點的值減1;

    (3)直到遍歷過所有的節(jié)點,遍歷的路徑即為圖的廣度優(yōu)先生成樹。

    根據(jù)數(shù)據(jù)結(jié)構(gòu)的定義方法,每個節(jié)點的子節(jié)點都是該節(jié)點設(shè)備的從設(shè)備。故將從站設(shè)備的配置顯示在該設(shè)備的主設(shè)備的下一層,從設(shè)備的從設(shè)備同理。對于圖中不同層的公共節(jié)點,即在廣度優(yōu)先生成樹中,值為小于0的節(jié)點,用特定顏色來進(jìn)行標(biāo)記。在圖3中節(jié)點值為-1的節(jié)點,表明是形成環(huán)的節(jié)點。

    生成廣度優(yōu)先生成樹后,按照樹的高度進(jìn)行分層顯示。這里仍然以圖3中的樹結(jié)構(gòu)為例,為了描述方便起見,將圖3樹中節(jié)點內(nèi)的值改為節(jié)點編號顯示,如圖4所示。將高度為1的節(jié)點顯示在第一層,高度為2的節(jié)點顯示在第二層,每層都要保留其父節(jié)點。節(jié)點5為廣度生成樹中的值為-1的節(jié)點,故在第二層顯示時,以深色顯示,并分別顯示到第二層的兩個子樹中。在層次的劃分上,也可以根據(jù)實際情況,改變劃分的間隔高度。

tx3-t4.gif

2.2.2 分層算法實現(xiàn)

    基于廣度優(yōu)先生成樹的分層算法,首先選取CPU節(jié)點為根節(jié)點,對整個拓?fù)鋱D進(jìn)行遍歷,保留下各個節(jié)點的遍歷路徑,即為廣度優(yōu)先生成樹,并根據(jù)樹的高度分層顯示到界面上。廣度優(yōu)先生成樹的偽代碼如下:

tx3-t4-x1.gif

    廣度優(yōu)先遍歷的方法時間復(fù)雜度為O(|E|),|E|為拓?fù)鋱D中邊的數(shù)量。故使用廣度優(yōu)先生成樹的方式進(jìn)行拓?fù)鋱D的劃分,并不會提高計算的復(fù)雜度。

3 拓?fù)浞治鲱A(yù)警

    拓?fù)鋱D可以根據(jù)對圖中各個節(jié)點的度、經(jīng)過的最短路徑長度、聚集度等特征[7]來分析整個拓?fù)涞臓顟B(tài),根據(jù)這些信息可以發(fā)現(xiàn)拓?fù)渲械年P(guān)鍵節(jié)點。

    關(guān)鍵節(jié)點就是節(jié)點的損壞會導(dǎo)致拓?fù)渚W(wǎng)絡(luò)中與這個節(jié)點連通的其他節(jié)點受到嚴(yán)重影響,例如網(wǎng)關(guān)模塊的損壞就有比IO模塊更大的影響。對于拓?fù)鋱D中的一個節(jié)點i與其他ki個葉子節(jié)點連通,則稱ki為節(jié)點i的連通度,記為d(i)。節(jié)點的度越大,設(shè)備在工控網(wǎng)絡(luò)中越重要,設(shè)備的損壞對工控網(wǎng)絡(luò)的影響就越大。

    假設(shè)生成如圖5所示的廣度優(yōu)先生成樹,節(jié)點內(nèi)的數(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é)點。

tx3-t5.gif

    整個圖可以使用回溯法計算節(jié)點可連通的葉節(jié)點的個數(shù),回溯法就是在生成廣度優(yōu)先生成樹之后,再從樹的根節(jié)點開始進(jìn)行遍歷,按照后續(xù)深度優(yōu)先的方法計算每個節(jié)點的可連通葉節(jié)點的數(shù)量,節(jié)點中子節(jié)點的可連通的葉節(jié)點的和,即為可連通的值。

    根據(jù)這種方法,可以查找出拓?fù)鋱D中網(wǎng)絡(luò)承受壓力大的設(shè)備,例如節(jié)點5壞掉會導(dǎo)致節(jié)點6、7、8、9都失去控制。在用戶組態(tài)時,檢查對比當(dāng)前的拓?fù)潢P(guān)鍵點,提示用戶改變拓?fù)溥B接方法,可以提高工控網(wǎng)絡(luò)的健壯性。

4 結(jié)論

    本文提出的拓?fù)浣Y(jié)構(gòu)分層算法將復(fù)雜的工控網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)進(jìn)行分層,實現(xiàn)小數(shù)據(jù)量的可視化,提高將數(shù)據(jù)轉(zhuǎn)化為圖形顯示的速度,同時通過對當(dāng)前圖形的分析實現(xiàn)預(yù)警。該方法可以應(yīng)用于工控網(wǎng)絡(luò)中組態(tài)拓?fù)渑c物理拓?fù)涞囊恢滦詸z查,從站掃描自動生成組態(tài)拓?fù)涞确矫?,但是本文中的方法忽略了總線這個數(shù)據(jù)實體,未考慮某些模塊自帶環(huán)路的情況。在接下來的工作中,將會在收集大量的數(shù)據(jù)之后,對分層方法的參數(shù)標(biāo)準(zhǔn)進(jìn)行研究。

參考文獻(xiàn)

[1] 歐金成,歐世樂,林德杰,等.組態(tài)軟件的現(xiàn)狀與發(fā)展[J].工業(yè)控制計算機(jī),2002,15(4):42-45.

[2] 徐鑫鑫.基于HTML5和SVG跨平臺工控圖形組態(tài)軟件的研發(fā)[D].南京:南京大學(xué),2014.

[3] 鄭耿忠,劉三陽,齊小剛.基于小世界網(wǎng)絡(luò)模型的無線傳感器網(wǎng)絡(luò)拓?fù)溲芯烤C述[J].控制與決策,2010,25(12):1761-1768.

[4] 鄭嘯,陳建平,邵佳麗,等.基于復(fù)雜網(wǎng)絡(luò)理論的北京公交網(wǎng)絡(luò)拓?fù)湫再|(zhì)分析[J].物理學(xué)報,2012,61(19):95-105.

[5] 苗新,張東霞,宋璇坤.全球電力能源互聯(lián)網(wǎng)拓?fù)涞木仃嚤硎鯷J].電力系統(tǒng)自動化,2016(5):8-16.

[6] 朱鐵穩(wěn),李琦,苗前軍.三維空間對象拓?fù)潢P(guān)系的研究[J].計算機(jī)工程與應(yīng)用,2003,39(17):1-3.

[7] 張暢,謝鈞,胡谷雨,等.復(fù)雜網(wǎng)絡(luò)拓?fù)淇梢暬桨冈O(shè)計與實現(xiàn)[J].計算機(jī)技術(shù)與發(fā)展,2014(12):78-82.

[8] 肖群健.局域網(wǎng)拓?fù)浒l(fā)現(xiàn)技術(shù)研究與應(yīng)用[D].廣州:廣東工業(yè)大學(xué),2011.

[9] 李海峰.圖布局FR算法的研究與實現(xiàn)[J].電腦知識與技術(shù),2013(12):2864-2865.

[10] 劉金明,萬明祥.基于節(jié)點度分層的路由器級拓?fù)洳季炙惴╗J].計算機(jī)技術(shù)與發(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è)大學(xué),2012.

[13] 潘海鴻,馮俊杰,陳琳,等.基于分離距離的碰撞檢測算法綜述[J].系統(tǒng)仿真學(xué)報,2014,26(7):1407-1416.



作者信息:

張  灣1,張  華2,郭肖旺1,霍玉鮮1,張曉莉1

(1.華北計算機(jī)系統(tǒng)工程研究所,北京100083;2.北京航天飛行控制中心,北京102206)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。