回复:关于TCP/UDP通信的连接资源、CONN-ID、连接的新建另建与重建

已锁定

宝冬

  • 帖子

    313
  • 精华

    26
  • 被关注

    253

论坛等级:奇侠

注册时间:2016-07-06

钻石 钻石 如何晋级?

发布于 2023-12-29 10:50:22

62楼

展开查看
以下是引用胖者归来在2023-12-29 10:23:36的发言 >61楼

请教下楼主,研究了下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连接,恢复正常通信。



说白了就是:看想玩到什么程度,提供什么样的用户体验、完善性和通信健壮性,也就是卖到什么价钱,或者说做什么样的品牌和服务。


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15370条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。