回复:S7 200 MODBUS PORT0 PORT1 都有从站,port0影响port1数据?

yanxiao

版主

  • 帖子

    12143
  • 精华

    46
  • 被关注

    183

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2017-09-07 09:59:39

23楼

不少人纠结SMB2只有一个,所以认为两个端口会相互干涉。

串口通讯叫做异步串行通讯。异步者,就是通讯行为存在随机性。一个口连续收发一帧信息时,占用时间可以在几ms至数百ms,另一个口怎么办?没有人会设计这么弱爆的产品。


玩过单片机的,比如51,串口收和发的寄器都叫SBUF,实际物理上有两个寄存器,读SBUF时,访问的是接收SBUF,写入SBUF时,是访问发送SBUF。


200的SMB2也是同样的原理。当你在端口1的中断里读写SMB2,物理上访问的是端口1的寄存器;当在端口2的中断里读写SMB2时,物理上对应的是端口2的寄存器。


SMB2不适合在主程序里读写。若要问为什么,请自行研究。


话说,现在的modbus库,根本就没使用SMB2.用的是RCV和XMT。

当然,库程序也会存在BUG,说两个端口会相互干扰,你要有充分的理由说明你的程序没问题,来证明库程序有BUG。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33257条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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