前言:想要写出一篇引人入胜的文章?我们特意为您整理了环网下的工业通信自组网方法设计范文,希望能给你带来灵感和参考,敬请阅读。
摘要:本文提出了一种基于环网的工业通信自组网方法。该方法基于环网以太网通信,通过扫描帧的方式,实现网内模块自动识别并产成本地MAC地址,主控模块通过收集网内所有模块的MAC地址,对各模块进行点对点组网配置,实现环网控制系统的智能组网,无需人工参与。该方法支持环网异常情况下的自动组网,同时识别环网故障位置。此外,该方法在不影响网络正常通信的情况下,支持新模块的接入及自动入网。
关键词:环网;扫描帧;自动组网
引言
工业网络尤其是特殊应用场合对于通信的可用性和可靠性有着较高的要求,在一些距离远,节点多的应用场合下,环型的网络拓扑结构无论在层次化组网、节省线路资源(比如光纤、cable等)上,还是在保障通信可靠性上都有其他网络拓扑结构不具备的优点。工业环网系统在构成系统之前,往往需要对系统中的每个模块进行配置,如设备出厂ID,物理MAC地址等。当系统规模较大时,挨个对每个模块进行配置不仅使得工作量庞大、繁琐,同时也容易因各种人为因素产生重复、错乱等问题。为了解决上述缺陷,并使得控制系统更加智能,本文提出了一种基于环网结构的自组网及网络诊断方法。现行已有的自组网方式,大多是基于无线通信的,自组网协议、方法在网络的上层实现。本文则是基于网络的物理层、链路层进行,底层实现比上层实现更灵敏、更实时。
1通信模型及自组网概述
通信环网模型如图1所示,通信环网包含了一个主控模块,若干个从动模块。每个模块都带有A、B两个以太网通信口,主控模块和从动模块依次连接形成环网结构。主控模块管理整个网络及配置信息。用户可以通过设备描述文件——XDD文件向主控模块进行配置写入。主控模块通过XDD文件获知所有设备的通信信息,如设备类型、每个设备需要收发的数据等。同时,用户只需对主控模块进行MAC地址等的分配写入。主控模块通过周期性的发送扫描报文,告知配入MAC地址,从动模块根据扫描报文的该MAC地址生成并填入本地MAC地址到扫描报文中,最终主控模块通过回收扫描报文收集到网内所有模块的MAC地址。扫描帧包括帧头、数据和帧尾,帧格式如图2所示。当主控模块获得所有模块的MAC地址后,主控模块根据每个模块的MAC地址进行点对点发送组态配置数据。组态配置的数据主控模块已从XDD文件中获取。
2自组网原理机制
环网结构的通信链路优势在于其中一条链路断开,通信依然可以进行。因此本文也在环网正常和环网异常断开两种不同的情况下进行了自组网的研究。自组网流程如图3所示。
2.1环网正常
环网正常的情况下,上电后,主控模块从一侧端口(A口)发送扫描帧。其中扫描帧数据段起始位置的前6个字节(称为数据段1,第7~12个字节为数据段2,依次类推)插入了主控模块的MAC地址,数据段2插入从动模块自动生成MAC地址的参考值(高4个字节以及第6个字节为主控模块的MAC[47:16]和MAC[7:0];第5个字节用于标记主控模块从A口还是B口发出扫描报文,此处通过0或者1表示,0代表A口,1代表B口),其余数据段为0。当紧邻主控制器A口的第一个从动模块接收到数据帧,从动模块判断帧类型,当帧类型为扫描帧,从扫描帧的数据部分以一个数据段即6个字节为单位依次读取MAC地址,直至数据段为0位置。该从动模块根据最后读取的数据段1的值进行自加1来生成自身的MAC地址,并放入扫描帧数据中数据段3位置后转发该扫描帧给下一个从动模块。环网内的从动模块依次进行扫描报文的判断、MAC自加插入和转发。主控模块从B口返回扫描帧,从扫描帧的数据中读取网内的所有从动模块的MAC地址。同时,根据扫描帧中的MAC值所在的数据段,主控模块可以清晰的获知每个模块处于环网中的具体位置。
2.2环网异常
当环网链路断开异常时,主控模块从A口发送扫描帧后,B口无法返回的扫描帧。主控模块在从A口发送扫描帧后开始计时,当计时时间达到Ttimeout后还未从B口收到扫描帧,则判断等待超时,启动线路自检。超时时间Ttimeout可配,Ttimeout≥环网内设备个数×10μs,其中10μs为转发一个100Byte的扫描帧所需时间。主控模块从A、B口同时发送线路自检通知帧。主动模块从开始发送该帧开始计时,等待一个时间周期T2,确保线路自检通知帧已经轮询完网内所有从动模块。从动模块收到该帧后,等待一个时间周期T2。在等待T2时间后,主控模块、从动模块开始同时向A、B口发送线路自检帧,相邻的模块将会从一侧端口收到线路自检帧,当收到该帧后,则标记当前端口处于正常通信状态。当所有的模块都收发完线路自检帧后,各模块都完成了端口状态标记。链路异常断开,两侧的两个模块所对应的端口将标记为端口异常。主控模块在完成端口标记后,从A、B口同时发送扫描帧,从动模块接收扫描帧,依次产生并插入MAC地址到扫描帧中。如果该从动模块是从A口接收扫描帧,且B口处于正常通信状态,则该从动模块将更新后的扫描帧从B口转发给下一个从动模块;如果该从动模块的B口处于异常状态,则将扫描帧从A返回扫描帧给上一个从动模块。上一个从动模块已经处理过扫描帧,则不再进行二次处理,判断为扫描帧后直接往另一个端口转发,经过一级级转发最后回到主控模块。主控模块将从A、B口分别收到一个返回的扫描帧,两个扫描帧中分别包含主控模块A口到链路断开处之间的所有从模块的MAC地址,和主控模块B口到链路断开处之间的所有从模块的MAC地址。通过解析两个扫描帧,主控模块可以获取所有的设备的MAC地址,并获知每个模块在网内的位置以及链路断开的位置。
3新模块入网
在工业通信中,往往存在网络中的模块加入和断开的情况,并且不影响整个网络的正常通信的情况。本文也对新模块如何自动入网进行了研究。在系统进入正常通信后,如果环网正常,主控模块会周期性的从一侧发送扫描帧;如果环网断开,主控模块会周期性的从两侧发生扫描帧。当有新模块加入时,新模块会响应扫描帧,根据扫描帧中的MAC值生成自身的MAC值。主控模块收到返回的扫描帧后根据数据值即获知有新设备加入并对其进行组态配置。在系统正常通信且环网正常的情况下,如果新模块需要插入,需经过先断开环网、接入新模块、恢复环网3个步骤。当断开环网时,主控模块、从动模块仍然可以继续通信,但是在通信过程只能收到一份数据,此时主控模块和从动模块可知环网断开。链路断开两侧模块将会在下次通信中上报网络断开、断开端口给主控模块。主控模块根据环网断开、新模块加入、环网恢复以及从动模块上报的端口断开信息可判断新接入模块所处的网络位置。在系统正常通信且环网断开的情况下,新模块的接入只能接在两侧链路的尾端。主控模块根据接收新加入模块数据的端口可判断新接入模块处于链路哪一侧。
4结论
通过本文的所提到的自组网方式,将使得环网控制系统的组网配置过程更加智能高效,无需人工参与,不仅节省了工程师大量繁琐且重复的工作量,也避免了极易因人为导致的重复配置、错乱等问题。同时,通过本文的方法,上位机以及用户可以清楚的知道每个设备在网络中所处的位置,当系统设备或者线路故障时,也无需工程师挨个排查定位,即可明确知道网络故障位置。
参考文献
[1]李志强.DRP系统故障自愈时间的建模分析和优化研究,浙江大学硕士学位论文,2013.
[2]张宪军,刘颖,余华武.IEC62439PRP冗余丢弃算法设计,电力系统保护与控制,2014.
[3]冯冬芹,褚健,金建祥.实时工业以太网技术-EPA及其应用解决方案,科学出版社,2013.
作者:童庆 金伟江 刘国安 傅盼盼 单位:浙江中控研究院有限公司