恭喜,你发布的帖子
发布于 2023-12-29 10:50:22
62楼
请教下楼主,研究了下udp,但是发现西门子内部都是双向写程序才可以,可以像tcp那样做成modbus 从站么,
目前用1500主控,smart当采集模块,smart做成tcp从站,1500里封装tcp通讯模块采集写入,数据传输很快,也节省了大量getput,项目间移植就很容易。
可以,用UDP实现可靠传输的自定义协议。
UDP底层完全可控,无效流量可以做到几乎为零,可以完全杜绝由于自身存在导致的网络拥塞,最重要的是底层的诊断是透明的。UDP可以随意有线无线切换,不怕拔网线。
1、首先对方节点收到UDP帧要回复确认。
2、根据报文时间戳,就会知道一次问答往返的时间是多少(RTT,Round Trip Time)。根据长时间的RTT统计,就动态知道传输耗时是多少,大概规律情况。
3、根据2,就可以动态调整RTT的超时阈值(RTO, Retransmission Timeout),超出RTO没有收到对方回复,就要重传。
4、在前面基础上可以实现,读数据、写数据。
5、空闲的时候、可以发送心跳帧。以探查发现新节点上线,核查老节点是否下线了。动态刷新一个在线节点列表。
6、通常PLC只能用单核单线程,不适合搞UDP的流传输。一次单包1400个字节的数据量,大多情况都够用。
----------------------------------------------------------------------------
例0:与一个UDP节点,进行一次通信和回复确认的时序细节。
例1: 下图是新合法节点发现、读、写、心跳往来的一个场景
例2:下图是人为极限压缩RTO,诱发出错导致重传的场景。
3、下图是RTT统计的场景。UDP本身的速度是很快的,但是由于收发方都是PLC,所以在PLC之间的通信时间一定受到双方扫描周期的影响、从对RTT的时间统计能看出来。
例4:下图是发现一个非法无效节点并记录。目的是在一定程度上了解网络中的整体状况。
例5:下入是模拟网络发生UDP风暴,端口被阻塞,PLC会自动重建UDP连接,恢复正常通信。
说白了就是:看想玩到什么程度,提供什么样的用户体验、完善性和通信健壮性,也就是卖到什么价钱,或者说做什么样的品牌和服务。
请填写推广理由:
分享
只看
楼主