关于西门子200smart plc实现modbus rtu通讯的指令实测

已锁定

WWCWWC

西门子1847工业学习平台

  • 帖子

    9106
  • 精华

    157
  • 被关注

    1472

论坛等级:至圣

注册时间:2008-07-26

钻石 钻石 如何晋级?

关于西门子200smart plc实现modbus rtu通讯的指令实测

2369

7

2016-10-25 09:19:16

                             关于西门子200smart plc实现modbus rtu通讯的指令实测

   西门子200smart PLC集成的基于RS-485口(prot0),当实现modbus rtu主站通讯时(以S7-200 SMART PLUS帮助手册中的主站程序,未连接从站3#为例),调用主站初始化指令启动cpu,主站初始化指令的状态如图:

这时,主站初始化完成。Done位始终为1,Error标志字节状态值为0。

当启动modbus rtu轮询工作机制后,如果MBUS_MSG指令调用读、写时,该Error标志字节状态值清零,并实现MBUS_MSG指令的读、写;指令结束后,输出指令执行的状态值。(因测试时未连接3#从站),当指令执行结束后,Error标志字节状态值为3(3=接收超时(从站无响应)),如图:

监控程序,得到如下结论:

1)MBUS_MSG指令在执行指令过程中,无论前一次指令执行情况如何,当读、写指令被重新调用时,前Error值被清除。

2)MBUS_MSG指令执行完毕后Done位由执行过程的0值,跳变为1,并输出指令被执行过程的Error标志状态值。(Error = 3)

3)此Done位状态值,如果没有被复位将一直保持,并保持Error的状态值结果。一般常用做法是下一个调用的MBUS_MSG指令的使能位由上一个Done位的完成状态位触发,并复位上一个MBUS_MSG指令的使能位,并实现闭环轮询工作机制。

由此,一些网友的提问,“当从站故障或者通讯中断时,轮询工作机制会停止”工作,可能的原因应该是通讯的轮询机制没有做完整引起。官方的轮询机制不会因从站故障而通讯停止,网友可以参考官方做法。

轮询工作机制图示:

   如果出现了网友所说的通讯指令被意外中断,可以试着采用Error标志字节的状态值比较结果来继续轮询,图示:(Error通讯正常时 = 0)

关于西门子200smart plc实现modbus rtu通讯的指令实测 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8936条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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