回复:探讨下 ,触摸屏手动按钮按下,程序计数会触发么

已锁定

水煮花生

  • 帖子

    287
  • 精华

    4
  • 被关注

    8

论坛等级:侠圣

注册时间:2011-04-14

白金 白金 如何晋级?

发布于 2021-02-26 09:01:18

7楼

这个问题涉及到数据一致性。

之前一直以为HMI的通信等级最低,在OB1扫描完成之后,更新HMI通信数据。


刚翻了一下S7-1200的系统手册,上有这么两段话:

说明

包括HMI 通信在内的通信不能中断程序循环OB 以外的其它OB。

(//   是否可以这样理解:HMI通信可以中断 OB1的扫描 ?)


HMI 设备或另一个CPU 发出的通信请求也能够中断程序循环OB 的执行。通信请求也会导

致与数据一致性相关的问题。CPU 确保基本数据类型始终由用户程序指令执行一致地读取

和写入。由于通信会周期性地中断用户程序,因而不能保证HMI 能够同时更新CPU 中的

多个值。例如,给定HMI 画面上显示的值可能来自CPU 的不同扫描周期。

PtP(Point-to-Point,点到点)指令、PROFINET 指令(例如,TSEND_C 和TRCV_C)和

PROFINETS 分布式I/O 指令(页385)和PROFIBUS 分布式I/O 指令(页385)可用于传送

被中断的数据缓冲区。通过避免对程序循环OB 和中断OB 中的缓冲区进行任何读/写操作,

可以确保数据缓冲区的数据一致性。如果需要在中断OB 中修改这些指令的缓冲区值,请使

用DIS_AIRT 指令延迟所有中断(中断OB 或源自HMI 或另一个CPU 的通信中断),直到

执行了EN_AIRT 指令。

说明

使用DIS_AIRT 指令延迟中断OB 的处理,直到执行了EN_AIRT 指令,以此影响用户程序

的中断等待时间(从事件发生到执行中断OB 的时间)。



多学长知识 多问长见识
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15367条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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