0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ATTACH:将OB附加到中断事件

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-07-20 10:42 次阅读

说明

可以使用指令“ATTACH”为硬件中断事件指定一个组织块 (OB)。

在 OB_NR 参数中输入组织块的符号或数字名称。随后将其分配给 EVENT 参数中指定的事件。

在 EVENT 参数处选择硬件中断事件。已经生成的硬件中断事件列在“系统常量”(System constants) 下的 PLC 变量中。

如果在成功执行“ATTACH”指令后发生了 EVENT 参数中的事件,则将调用 OB_NR 参数中的组织块并执行其程序。

使用 ADD 参数指定应取消还是保留该组织块到其它事件的先前指定。如果 ADD 参数的值为“0”,则现有指定将替换为最新指定。

硬件中断事件

如果事件的未决时间不够长,则可使用硬件中断。在运行过程中,硬件中断将对这些事件进行响应。每个硬件中断可以分配给多个硬件中断 OB。这些 OB 包含对特定事件的响应。

可以为不同的事件创建硬件中断。例如:

检测数字量输入的上升沿或下降沿。

超出模拟量输入的既定下限和上限。

高速计数器的外部重置、上溢/下溢、方向反转等。

工作原理

每个硬件中断可以分配给一个硬件中断 OB,当发生硬件中断事件时,将该 OB 放入队列进行处理。OB 和事件的分配可以在组态时或运行时进行:

要在组态时将事件分配给 OB,请在“硬件中断”(Hardware interrupts) 下的硬件配置中为事件选择硬件中断 OB。

使用 ATTACH 指令在运行时进行分配。事件和硬件中断 OB 的分配通过 EVENT 和 OB_NR 参数进行。

参数

下表列出了“ATTACH”指令的参数:

参数 声明 数据类型 存储区 说明
OB_NR Input OB_ATT I、Q、M、D、L 或常量 组织块(最多支持 32767 个。)
EVENT Input EVENT_ATT I、Q、M、D、L 或常量 要分配给 OB 的硬件中断事件。
必须首先在硬件设备配置中为输入或高速计数器启用硬件中断事件。
ADD Input BOOL I、Q、M、D、L 或常量 对先前分配的影响:
ADD=0(默认值):该事件将取代先前为此 OB 分配的所有事件。
ADD=1:该事件将添加到此 OB 之前的事件分配中。
RET_VAL Return INT I、Q、M、D、L 指令的状态

参数 RET_VAL

错误代码*
(W#16#....)
说明
0 无错误
8090 OB 不存在
8091 OB 类型错误
8093 事件不存在
* 在程序编辑器中,错误代码将显示为整数或十六进制值。

示例

在以下示例中,将为创建的硬件中断事件指定一个硬件中断 OB (OB40)。

要求:

在“属性 > 输入 0-15 > ... > 通道 0”(Properties > Inputs 0-15 > ... > Channel 0) 中,创建一个输入模块 (DI) 并组态一个上升沿硬件中断事件。

677a4c38-2624-11ee-962d-dac502259ad0.png

所组态硬件中断事件的以下硬件 ID 将存储在输出参数 EVENT(“event”)中。

679275a6-2624-11ee-962d-dac502259ad0.png

数据存储

在全局数据块中,创建 9 个变量进行数据存储。通过指令“ATTACH”的输入参数 OB_NR(“obNbr”),可存储待分配 OB (OB40) 的编号。

67b60e80-2624-11ee-962d-dac502259ad0.png

要调用硬件中断事件,可创建带有 PLC 变量的变量表(地址“I0.0”)。

67d6e542-2624-11ee-962d-dac502259ad0.png

互连

互连该指令的参数,如下所示:

67f4cd0a-2624-11ee-962d-dac502259ad0.png

互连以下 PLC 变量,调用硬件中断事件。

程序段 2:

6815a3c2-2624-11ee-962d-dac502259ad0.png

程序段 3:

6839f57e-2624-11ee-962d-dac502259ad0.png

要进行复位,可互连“testValue2”和“SLI_ATTACH_force”,如下所示。

程序段 4:

684bfd82-2624-11ee-962d-dac502259ad0.png

在 OB40 中创建以下互连:

68723704-2624-11ee-962d-dac502259ad0.png

执行过程

当常开触点(“start”)的信号状态为“TRUE”时,执行“ATTACH”指令并将事件分配给该 OB。输入参数 ADD(“add”)的值“FALSE”时,该事件将取代先前为 OB40 分配的所有事件。输出参数 RET_VAL(“returnValue”)用于指示处理无错误。

当程序段 2 中常开触点(“signal”)的信号状态为“TRUE”时,PLC 变量“SLI_ATTACH_force”的信号状态将置为“TRUE”,并执行 OB40。调用 OB40 时,“testValue1”的值传送到“testValue2”中。

当常开触点(“start”和“signal”)的信号状态为“FALSE”时,在程序段 4 中将复位“testValue2”和“SLI_ATTACH_force”的值。

6885a92e-2624-11ee-962d-dac502259ad0.png






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    4975

    文章

    12254

    浏览量

    454912
  • 西门子
    +关注

    关注

    91

    文章

    2849

    浏览量

    113770
  • 计数器
    +关注

    关注

    32

    文章

    2121

    浏览量

    92977
  • 硬件中断
    +关注

    关注

    0

    文章

    11

    浏览量

    6768

原文标题:西门子博途:ATTACH: 将 OB 附加到中断事件

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用模拟看门狗时,只要加上滤波就不产生中断事件,为什么?

    请教大家一个问题,使用模拟看门狗时,只要加上滤波(AnalogWDGConfig.FilteringConfig= ADC_AWD_FILTERING_2SAMPLES;),当ADC转换的值不在模拟看门狗设置的阈值范围内也不产生中断事件,把滤波取消后就能正常进入中断,请问
    发表于 04-17 06:12

    STM32L431RCT6触发ADC模拟看门狗规则通道转换后,定时器中断事件无法触发注入通道事件,为什么?

    模拟看门狗配置如图,调试知定时器中断正常触发,但是定时器中断事件无法触发注入通道事件
    发表于 03-15 07:12

    IMC300A如何在 “口的初始化函数” 中指定响应接收器帧完成中断事件?

    (); imc_uart0_transment_Byte (receiveByte);} 这是例程中口接收中断的函数数,但是口的中断事件有很多,请问如何在 “口的初始化函数” 中指定响应接收器帧完成中断事件。
    发表于 01-29 06:09

    s3c2410中断控制模块的中断源状态寄存器是?

    S3C2410是一款由三星电子公司设计的具有多种功能的嵌入式处理器。其中的中断控制模块用于管理系统的中断请求和中断服务程序。在S3C2410中,中断源状态寄存器是用来标识当前正在发生的
    的头像 发表于 01-05 17:28 225次阅读

    使用OB2736V+OB2613NPD20V2.25A OB2736VIEP+OB2613 N的45W USB PD模块

    电子发烧友网站提供《使用OB2736V+OB2613NPD20V2.25A OB2736VIEP+OB2613 N的45W USB PD模块.pdf》资料免费下载
    发表于 12-22 10:00 2次下载

    单片机外部中断的好处

    外部中断是单片机实时地处理外部事件的一种内部机制。当外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理,中断完毕后返回被
    的头像 发表于 10-31 15:58 1075次阅读
    单片机外部<b class='flag-5'>中断</b>的好处

    时间中断函数的编程示例

    在以下示例中,将读取延时中断 OB (OB20) 的状态,设置新的延时并启动或禁用 OB20。
    的头像 发表于 09-01 09:47 629次阅读
    时间<b class='flag-5'>中断</b>函数的编程示例

    硬件中断事件的示例

    根据硬件中断模块触发的示例来说明 S7-1500 CPU 中面向事件的程序执行的功能原理。
    的头像 发表于 08-29 09:45 628次阅读
    硬件<b class='flag-5'>中断事</b>件的示例

    RTC的alarm中断事件能否唤醒standby或者shutdown模式?

    274页中有描述: 文档中是可以用RTC的中断事件来唤醒的。但是我在工程中配置好的PWR、RTC,却唤醒不了。只能在stop模式下唤醒。 查阅了RM0490《STM32C0x1 advanced
    发表于 08-08 07:22

    求助,定时器中断事件旗标何时被硬件设置以及如何清除该旗标?

    当24位向上计数器数值与定时器比较缓存器(TCMPR)值相同时,定时器中断事件旗标(TIF)将被硬件设置,而该旗标须由软件写入1来清除。
    发表于 06-27 06:35

    中断是什么?PLC的三大类中断事

    在200SMART系列PLC中共有三大类中断事件,分别是:I/O中断:I/O 中断包括上升/下降沿中断、高速计数器中断和脉冲串输出
    发表于 06-20 14:11 4453次阅读
    <b class='flag-5'>中断</b>是什么?PLC的三大类<b class='flag-5'>中断事</b>件

    中断是什么,PLC中断,单片机中断,那中断能干什么?

    中断程序连接到定时中断事件时,启用定时中断并且开始定时。连接期间,系统捕捉周期时间值,因此 SMB34 和 SMB35 的后续变化不会影响周期时间。要更改周期时间,必须修改周期时间值,然后将
    的头像 发表于 06-20 14:11 1483次阅读
    <b class='flag-5'>中断</b>是什么,PLC<b class='flag-5'>中断</b>,单片机<b class='flag-5'>中断</b>,那<b class='flag-5'>中断</b>能干什么?

    PLC中断的概念

    且必须立即响应的。需要执行中断程序必须要有中断源(引发中断的信号)每个中断信号都有一个编号加以识别,也就是我们说的中断事件号       
    的头像 发表于 06-16 17:17 1400次阅读
    PLC<b class='flag-5'>中断</b>的概念

    什么是中断?西门子S7-200 SMART如何编写中断程序?

         中断就是中止当前正在运行的程序,去执行为立刻响应的信号而编写的中断服务程序,执行完毕后再返回原来中止的程序并继续执行。西门子S7-200 SMART CPU最多支持38个中断事件,其中
    的头像 发表于 05-28 09:37 1376次阅读
    什么是<b class='flag-5'>中断</b>?西门子S7-200 SMART如何编写<b class='flag-5'>中断</b>程序?

    单片机中断程序是如何被中断的?

    中断一般是由硬件(例如外设、外部引脚)产生,当某种内部或外部事件发生时,MCU的中断系统将迫使 CPU 暂停正在执行的程序,转而去进行中断事件的处理
    的头像 发表于 05-16 14:06 915次阅读
    单片机<b class='flag-5'>中断</b>程序是如何被<b class='flag-5'>中断</b>的?