回复:我也来说说MODBUS MASTER指令的错误代码6

shine

  • 帖子

    8803
  • 精华

    39
  • 被关注

    157

论坛等级:至圣

注册时间:2003-06-06

普通 普通 如何晋级?

发布于 2018-12-27 11:15:55

1楼

通讯属于异步指令,和其他的指令是不一样的,其他指令,比如一条ADD MW0 MW2的指令,执行到这条指令,执行完成之后,MW2 = MW0 + MW2,事情就完了。但是一条异步指令呢,比如

XMT    VB0, 0

这条指令呢?执行到的时候只是告诉PLC,你可以把VB0开始的数据通过端口0发送出去,然后CPU就去执行下一条指令了,并不是等到数据发送完成了才会执行下一条指令。在执行之后的指令时,数据发送还在进行,等到数据发送完成,会触发一个中断事件,同时也有特殊寄存器指示通讯端口的状态。

我们可以大致计算一下XMT指令执行完成需要多少时间,按9600波特率,8个数据位,一个起始位,一个停止位,无奇偶校验,一个字节10个数据位,大约需要1ms的时间进行发送。

以MODBUS的03功能码来说,主站指令8个字节,从站响应根读取的据寄存器数量n,有n*2+5个字节的通讯数据量,不考虑所有其他延迟,读取10个寄存器的数据,一个通讯循环至少需要 8+ 10*2 +5 = 33ms的时间,假设PLC循环时间是3ms,需要至少11个扫描周期才能完成一个通讯循环。


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8936条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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