各位大侠台达PLC用MODBUS/RTU模式时遇到3.5个字符间隔如何处理? 点击:2110 | 回复:5



medco501

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 49回
  • 年度积分:0
  • 历史总积分:143
  • 注册:2008年1月12日
发表于:2009-12-21 14:14:52
楼主
有一块仪表,是MODBUS协议,当我用ASCII模式时可以正常读写,当用RTU模式时读写不成功,查阅说明书发现帧间隔需要至少3.5个字符,而台达的MODRD指令对这个处理不了啊?



medco501

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 49回
  • 年度积分:0
  • 历史总积分:143
  • 注册:2008年1月12日
发表于:2009-12-21 21:17:26
1楼
而同一块表,用台达的触摸屏读写也没问题,我想这应该是PLC的MODBUS便利指令本身不够完善吧!

3CWQZ

  • 精华:0帖
  • 求助:0帖
  • 帖子:13帖 | 821回
  • 年度积分:300
  • 历史总积分:4676
  • 注册:2003年1月21日
发表于:2009-12-21 22:36:44
2楼
顶起,我也用的RTU模式,也遇到了通讯逾时错误.

medco501

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 49回
  • 年度积分:0
  • 历史总积分:143
  • 注册:2008年1月12日
发表于:2009-12-21 22:51:06
3楼
顶起,我也用的RTU模式,也遇到了通讯逾时错误.
----------------------------------------------------------------
你查一下说明书,如果没有3.5个字符间隔的话,应该是你程序或参数设置的问题

3CWQZ

  • 精华:0帖
  • 求助:0帖
  • 帖子:13帖 | 821回
  • 年度积分:300
  • 历史总积分:4676
  • 注册:2003年1月21日
发表于:2009-12-22 13:15:47
4楼
嗯,有空是要看看了。不知你是怎么解决的?

medco501

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 49回
  • 年度积分:0
  • 历史总积分:143
  • 注册:2008年1月12日
发表于:2009-12-23 10:31:34
5楼
MODBUS协议规定消息帧结构为“T1-T2-T3-T4 8Bit 8Bit n个8Bit 16Bit T1-T2-T3-T4”,整个消息帧必须作为一连续的流转输。如果在帧完成之前有超过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续。这将导致一个错误,因为在最后的CRC域的值不可能是正确的。针对台达PLC,只需要在通讯发送接收完毕标志位M1127后加一个延时,例如延时20ms,然后再复位M1127,接着进行下一帧通讯,就OK了!

热门招聘
相关主题

官方公众号

智造工程师