恭喜,你发布的帖子
发布于 2019-01-24 10:50:48
5楼
最近有客户也遇到类似的问题,原拓扑如下图所示:
按余工的解决办法,修改拓扑后,网络正常了,修改后的拓扑如下:
另外,PN设备名称和转换的名称中。转换的名称只支持四种字符:小写字母、数字、英文减号-、英文点. ,很多时候组态有问题,都是 设备名称 转换的名称 分配的名称不统一造成的。
补充:
因为不在现场,所以只能借余工的图作了简单分析,
通过搜到的资料里PTCP两种解释:1. Precision Time Control Protocol (PTCP),主要基于链路层来同步多个PLC的时钟/时间信号;2. Precise transparent clock protocol, 作用同1,主要完成同步和测量延时时间。两种解释感觉差别不大。
NG OK 图片里,主要三种报文 Delay.Req、Delay.Rsp、DelayFuRsp。这里涉及到延时响应机制,如下图:
Delay Request-Response Mechanism.png
T2=Offset+T1+Delay; T3+Delay=T4+Offset. 二元一次方程,可求得Offset跟Delay。这里重点就来了,这offset跟delay不是白算的,请求不是白发的,发了肯定是要修正同步时钟的NG里面有PLC的一组测试报文,那PLC的同步时钟会不会有改变就不知道了。
NG的图中我理解,同步时钟是从连接PLC的第一个交换机开始建立的,而交换机无法了解PLC的主要地位,所以也在测试PLC的Offset跟Delay,PLC很可能会根据测试结果来修改自己同步时钟,从而使IRT的同步时钟也乱了。
而OK的图中,同步时钟就是PLC先修ET200SP(报文看不到)然后ET200SP修其它设备,逻辑清晰,PLC主要地位明显,没有报文去修改PLC的同步时钟,使得IRT同步稳定!
后补的纯属个人分析,肯定有错的,不要被我带沟里,还希望专家及时来指正!
大家的回复都不错,从各个方面都思考了,这个很好!我来总结一下:
1, PTCP的工作原理,@1k01ye,@该昵称已注册都从理论上做了说明和分析,然后这里仅仅是PTCP的基础知识,对于如何计算我们还没有涉及,其实目前来说也没有必要涉及,这完全是基础学科。
2,其实我们主要把握1个点,
PTCP是组播协议,组播意味着是有指定的,只会在相邻的交换机之间交换报文,所以既然来了我们就要参与计算,但是这个计算并不是它所需要的,从而必然产生错误,导致通信失败。参考我以前的回答,时间计算错误。
3,修复的方式,除了采用西门子的交换机做中间隔离
主要原因就是阻挡了异侧来的PTCP的组播报文;也可以使用在端口中设置同步域的边界,这样不该发送PTCP组播的端口就不发了。
4,最后,提出一个小问题,既然我们有两个同步域,那么我们是否可以修改同步域的名字使其不同,从而解决上述问题。
请填写推广理由:
分享
只看
楼主