回复:S7-1200 做Modbus rtu 通信,如何做到不丢包?

已锁定

holdkcsxyz

西门子1847工业学习平台

  • 帖子

    1578
  • 精华

    24
  • 被关注

    163

论坛等级:至圣

注册时间:2015-06-03

白金 白金 如何晋级?

发布于 2020-01-14 11:25:47

18楼

展开查看
以下是引用威师爷在2020-01-13 23:12:37的发言 >17楼

什么样也没有pn快!

感谢你的建议!!

以下是引用holdkcsxyz在2020-01-13 15:03:26的发言 >15楼:       同意ymin...

引用15楼详细内容:

       同意yming版主观点:普通的485通讯硬件采用差分接口,软件加上严格证明的最优的数据校验方式CRC,对于单一的主从结构更是稳定,而且485协议栈非常小(比如整个Modbus以及USS以及Hostlink协议也没多大),CPU开销也非常小,因此普通的I/O口都可以非常非常稳定的模拟它的通讯时序,基本不会丢包。

       就单一主从结构来讲普通的以太网优势并不大(时间及内存开销上),因为以太网协议栈需要专门的硬件来跑即使集成在CPU内部,以太网天生就是为大数据,远距离,多机通讯准备的。再大一点的数据量需要5G,比如华为主推的短码适合应用到对应的短码优势场景(比如工业逻辑量等),长码是高通的优势(比如高清视频直播场景),短码为了应付长码场景需要在数据包内串联多个CRC短码校验来拼凑出整个长码,时延上宣称可短到1ms左右。更快的据说需要下一代技术。

      从时间上来讲50ms的话不用担心串口的收发开销,以前用自由口写的Hostlink非标协议在19.2k下都可以稳定实现50ms内传输22个字(44个字节)的要求,1200在115200下更是Easy。

    是的PN和EC都是非常快速的工业互联网。除错误或很强的干扰外,串口很难丢包:9600波特率传一个字符,比如是9或其它个数的高低电平,而实际上根据不同的CPU弥补异步时钟差异以及干扰处理机制,CPU对每个高低电平要确认XX倍(比如16倍也就是在更低的时序下对一个高电平确认16次其中如果有XX次比如13次是高电平3次低电平那么默认这是高电平,默认3次低电平是由于时钟差异或干扰造成的忽略不计,(时钟差异是指两台CPU约定同样是9600也是有差异的,这3次低电平的时钟差异是将下一位真正的低电平读到本次这个位上来了,而实际上本次这个位是高电平) 可以想象这很难出错码,但这也说明串口很难传很长的信息一般限定在256个字符,除非分段校验发送拼凑长信息,接收方分段解析拼凑执行,这时网口的优势就体现出来了。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15695条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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