回复:同一个FB块使用同一个背景数据块多次调用,结果如何执行?

已锁定

yming

西门子1847工业学习平台

  • 帖子

    23200
  • 精华

    881
  • 被关注

    1254

论坛等级:至圣

注册时间:2004-03-06

钻石 钻石 如何晋级?

发布于 2022-07-04 16:56:40

6楼

展开查看
以下是引用Setrarin在2022-07-04 09:27:10的发言 >3楼

那第三次的调用结果为什么刚好输出给第三次呢?难道块知道同一周期被调用的次数?

以下是引用史德利古尔在2022-07-04 08:39:08的发言 >2楼:指令执行之后要几个...

引用2楼详细内容:

指令执行之后要几个周期才会给出完成信号

这个MB_CLIENT功能块的背景数据块,可以认为是Modbus TCP通讯处理器的数据缓冲块。

当REQ上升沿出现时,将所有输入接口参数,传送到背景数据块中;然后激活此协议的通讯处理过程。

这是异步通讯,BUSY=1;经过N个扫描周期,内部通讯任务才能完成。即:BUSY=0;Done/ERR=1(仅置位1个扫描周期。你必须在此周期内,处理、移动完成了的数据。)

若此时,REQ仍然=1;将开始下一次完全相同的通讯过程。(连续读或写);

此例中,利用上一次的Done/ERR,将此MB_CLIENT的REQ置一,把输入传送到它的背景数据块;启动通讯过程。BUSY=1;经过数个扫描周期等待,直到完成Done或者出错ERR。


早期的MB_CLIENT这样写法是不允许的。它要求在通讯期间,REQ上升沿激活后 - Done/ERR完成前,功能块的调用期间,输入应保持不变。

可能新版本有所改变?




学而时习之,不亦说乎?温故而知新,不亦乐乎?
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10698条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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