主权项 |
一种现场总线式网络拓扑识别方法,其特征在于包括下述步骤:步骤1:确定n个探测点之间关系的n项数列,由控制器逐次向各探测点发送查询信号,各探测点根据收到查询信号的情况返回确认信号;探测点向控制器返回确认信号记为1,若探测点未返回确认信号则记为0,用A<sub>i</sub>表示第i个探测点与所有探测点之间关系的n项数列,A<sub>i</sub>={a<sub>i1</sub>,a<sub>i2</sub>,...,a<sub>ij</sub>,...,a<sub>in</sub>}(i,j=1,2,3,...,n),其中项a<sub>ij</sub>表示当发送第i次查询信号时,各探测点收到查询信号后,返回确认信号的情况,得到n个探测点之间关系的n项数列;步骤2:确定n项数列的各项和组成的数列S:并记数列A<sub>i</sub>中的各项和S<sub>i</sub>组成的n项数列为S,S={S<sub>1</sub>,S<sub>2</sub>,…,S<sub>i</sub>,…S<sub>n</sub>},<img file="FDA0000782635850000011.GIF" wi="290" he="97" />(i=1,2,3,...,n);步骤3:将步骤2中所得数列S中的各项按照由小至大的顺序重新排列并记为S′,使得S′={S<sub>1′</sub>,S<sub>2′</sub>,...,S<sub>n′</sub>}为非递减数列,即S′满足S<sub>1′</sub>≤S<sub>2′</sub>...≤S<sub>n′</sub>;步骤4:将S′中各项对应的数列分别记为B<sub>1′</sub>,B<sub>2′</sub>,…,B<sub>(i‑1)′</sub>,B<sub>i′</sub>,其中B<sub>(i‑1)′</sub>={b<sub>(i‑1)′1</sub>,b<sub>(i‑1)′2</sub>,...,b<sub>(i‑1)′n</sub>},B<sub>i′</sub>={b<sub>i′1</sub>,b<sub>i′2</sub>,...,b<sub>i′n</sub>},并根据数列S排列调整的顺序,将数列A<sub>i</sub>的值赋予数列B<sub>1′</sub>,B<sub>2′</sub>,…,B<sub>(i‑1)′</sub>,B<sub>i′</sub>,同时可以得到B<sub>1′</sub>,B<sub>2′</sub>,…,B<sub>(i‑1)′</sub>,B<sub>i′</sub>对应的探测点位置构成的数列L,L={1′,2′,...,n′};步骤5:根据步骤3中得到的S′={S<sub>1′</sub>,S<sub>2′</sub>,...,S<sub>n′</sub>}进行如下判断,便可得到网络拓扑关系:若S<sub>i′</sub>=1,则说明网络有i个并行分支,探测点1′、2′...、i′分别为控制器后i个并行分支上的第一个探测点;若S<sub>i′</sub>≠1,i=2,3,...,n,记S<sub>i′</sub>与S<sub>(i‑1)′</sub>在数列B<sub>i′</sub>与B<sub>(i‑1)′</sub>中对应各项的乘积和为K<sub>i,(i‑1)</sub>;<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>K</mi><mrow><mi>i</mi><mo>,</mo><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>=</mo><munderover><mo>Σ</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>b</mi><mrow><msup><mi>i</mi><mo>′</mo></msup><mi>j</mi></mrow></msub><msub><mi>b</mi><mrow><msup><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>′</mo></msup><mi>j</mi></mrow></msub><mo>,</mo><mi>i</mi><mo>=</mo><mn>2</mn><mo>,</mo><mn>3</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>n</mi></mrow>]]></math><img file="FDA0000782635850000021.GIF" wi="812" he="166" /></maths>若S<sub>i′</sub>>S<sub>(i‑1)′</sub>=K<sub>i,(i‑1)</sub>,那么探测点i′与探测点(i‑1)′在同一链路,且为探测点(i‑1)′后的第一个探测点;若S<sub>i′</sub>=S<sub>(i‑1)′</sub>>K<sub>i,(i‑1)</sub>,那么探测点i′与探测点(i‑1)′不在同一链路,需要进一步判断K<sub>i,(i‑2)</sub>与S<sub>(i‑2)′</sub>的关系;若S<sub>(i‑2)′</sub>=K<sub>i,(i‑2)</sub>,那么探测点i′与探测点(i‑2)′在同一链路且为探测点(i‑2)′后的第一个探测点;若S<sub>(i‑2)′</sub>>K<sub>i,(i‑2)</sub>,那么探测点i′与探测点(i‑2)′也不在同一链路,需要进一步判断K<sub>i,(i‑3)</sub>与S<sub>(i‑3)′</sub>的关系,直至确认该探测点与任一探测点的关系为止,当对S<sub>i′</sub>(i′=1,2,3,...,n)判断完毕,可得到整个网络的拓扑关系,进而可得到网络的拓扑关系图。 |