MODBUS通讯MBUS_MSG读写问题

已锁定

Atlas_Dynamics

  • 帖子

    15
  • 精华

    0
  • 被关注

    2

论坛等级:游民

注册时间:2016-07-02

普通 普通 如何晋级?

MODBUS通讯MBUS_MSG读写问题

3299

5

2016-07-24 18:49:57

请教一下MODBUS通讯问题


MBUS_MSG功能块里面的输出位Done是在RTU读或写完成后才置为1,还是完成仅仅调用(功能块后台执行?)、不等待读或者写真正完成便置为1?


下面是两对程序是我根据西门子RTU主站和从站示例程序而改写的,其中修改前程序主要思路为:

(以主站读、从站写为例)

主站读——保持寄存器VW108的读操作完成后,M2.1变为1,将保持寄存器VW108复制至暂存字VW1108,同时保持寄存器VW108清零,为下一个读操作准备;若检测位V109.0==0持续3s则将暂存字VW1108清零(否则会出现通讯断开但主站仍“收到”从站DI点信号的情况);最后将暂存字VW1108内容逐位输出置DO点。

从站写——DI点逐位输入保持寄存器VW208(其中V209.0为1,作为检测位),调用MBUS_SLAVE写保存寄存器VW208。

运行结果显示,在从站某一个DI点有信号输入后,主站那边对应的DO点高频闪烁;检测位V109.0经常是0,偶尔为1。


对程序进行修改,修改后程序主要思路变化:

(以主站读、从站写为例)

主站读——保持寄存器VW108的读操作后,保持寄存器VW108及暂存字VW1108不马上清零,而是各设置了一个计时器,检测位V109.0==0和读完成位M2.1==0持续3s则清零。

从站写——基本不变。

程序运行结果正常。


根据两对程序对比,似乎代表MBUS_MSG的输出Done变为1不代表读、写完成。不知道是否这样理解?请问有没有办法判断该次MBUS_MSG操作真正完成?


附件是程序。


Modbus 问题.zip


MODBUS通讯MBUS_MSG读写问题 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33307条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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