西门子200 Modbus_MSG 指令DONE完成位的困惑

程序如图,自己是按照循环周期来分析的程序,
周期1:M0.1置1,在网络7执行一次MBUS_MSG,这时VB801,VD802,VW806,还没有被赋值,应该默认为0,M0.3为1,将网络9中M0.2置1,进入第二扫描周期。
周期2:M0.3为1,C0计数一次,执行网络5进行赋值,在网络7中,M0.1已失效,用上周期被置位的M0.2执行一次MBUS_MSG,进行读数据,此时的DONE(m0.3)是上周期的1还是别的?就这个知识点弄不清,导致后续分析不对。网络8是如何执行的?网络8执行后M0.1 M0.2被置位,第三个周期及以后周期程序是如何循环进行读写的?
在论坛查询了一下DONE的问题,小弟愚钝,还是没看明白,求教各位师傅了,谢谢。

问题补充:
非常感谢WWCWWC老师的回答,通过200PLC做实验,已经理解了,将程序贴上来,希望帮助像我一样有困惑的朋友。

图片说明:

西门子200  Modbus_MSG 指令DONE完成位的困惑    西门子200  Modbus_MSG 指令DONE完成位的困惑   

最佳答案

关于done位的含义是指当该读、写指令完成后,一直为ON;需要等待下一个msg指令被执行时才会OFF。
此时done位值是前一次执行msg时的。
网络8的程序是执行msg期间的状态标志,是被复位。因为modbus rtu是轮询扫描机制,所以这个M0.1是作为第一次轮询周期的开始位,等第二次周期开始时失效了的。
当第二次扫描周期时,执行读,第三次扫描周期时,执行写,如此循环。

提问者对于答案的评价:
非常感谢.

专家置评

modbusRTU主站,与多个从站通讯或者与一个从站进行多个读写操作
建议:调用多个MSG,使用轮询方式,本个MSG的done位触发下一个MSG,并且复位本身MSG的触发条件
参考https://support.industry.siemens.com/cs/cn/zh/view/84175754
路径:s7-200plc-->通信章节-->modbus通信

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc182689.html

(5)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月27日
下一篇 2017年6月27日

相关推荐

  • S7-200和变频器的PID功能比较

    用S7-200带ABB变频器,要用到PID功能,请问,二者都有PID功能,用哪个更好一些? 最佳答案 不过我感觉各有不同。S7200的是通过编程来实现的,比较灵活,也就是要编程所以…

    SIMATIC S7-200 2021年7月5日
  • HMI网络连接问题

    请问,如何用一台电脑监控5个S7-200PLC?     我的一个方案是用VB和5个S7-200PLC做串口通信,PLC走自由口协…

    SIMATIC S7-200 2021年7月5日
  • pid指令中,如何将高速计数器的计数值转换成模拟量输入到PV-I

    小弟现在想用pid来控制恒流量,流量是高速计数器读取的每秒计数值,请问高手如何把HC0的每秒计数的值转换成模拟量反馈给PV_I 最佳答案 把高计的计数增量转换成整数。例如,每秒采集…

    SIMATIC S7-200 2020年11月1日
  • S7-200与s7-300通信

    (cpu224 cn) 200plc编程口 与300plc编程口通过mpi协议能否通信? 最佳答案 S7200与S7300之间采用MPI通讯方式时,&…

    SIMATIC S7-200 2021年7月5日
  • 怎样实现几台USS装置的轮流控制?

    在一台CPU226XP上面带了4台通过USS驱动的MM420变频器,这4台变频器当然是要轮流和CPU226XP通讯的,但是,在USS_INIT和USS_CTRL这两条指令里面,哪一…

    SIMATIC S7-200 2020年11月1日
  • 请教s7-200与上位机通讯问题

    我是初学者,S7-200PLC与PC机距离1200米左右,PC机用组态王6.53与S7-200通讯,请教各位高手用那种协议和通讯方法最好?拜托指点. 问题补充:我初步想用光纤通讯,…

    SIMATIC S7-200 2021年7月5日
  • 求西门子博途V15的编程软件

    求西门子博途V15的编程软件下载链接 最佳答案 https://support.industry.siemens.com/cs/ww/en/view/109752566 文档链接 …

    2021年7月5日
  • s7200时钟比较有bug

    vw38vw40是开机时分,vw42vw44是关机时分,vw32vw34是实时时分,如果我开机是9.0,关机是8.0,九点到自动开机,八点到关机,可是调试发现这样v0.0不能得电。…

    2021年7月5日
  • 请教彩灯控制

    用循环移位指令控制8位彩灯循环可以,现在想控制5位不知该如何编程,请高手指点。 最佳答案 1、增加一个计数器,通过计数器来控制循环指令。2、用普通的方法,一个定时器和计数器来控制彩…

    SIMATIC S7-200 2020年10月31日
  • 怎样选存储卡?

    我做了程序,是S7-200 224XP CPU,现在我想知道自己的程序有多大?在哪里看?选多大的存储卡?谢谢 最佳答案 在编译栏中,程序编译后在那有程序的大小。…

    SIMATIC S7-200 2021年7月5日