ALARM_8P: 创建不带 8 个信号关联值的 PLC 报警 (S7-400) 说明 此指令是“ALARM(页 7867)”的扩展,用于包括 8 个信号。只要没有启用由确认触发的报告,在一个或多个信号中检测到信号转换时,就始终会生成报警 (例外: 在第一次块调用时始终发送报警)。 所有8 个信号具有一个公共报警 ID,划分为 显示设备上的 8 个单独报警。 可单独确认每个报警,或一次确认一组报警。 使用输出参数ACK_STATE 可处理程序中特定报警的确认状态。 如果启用或发出指令“ALARM_8P”的报警,则此操作始终会影响整个指令“ALARM_8P”。无法禁用和启用单个信号。一个报警存储器具有两个存储位置,可用于“ALARM_8P”的每个实例。 有关对信号变化进行 缓存的更多信息,请参见 使用指令生成PLC 报警简介 (页 7853)。 参数 下表列出了指令“ALARM_8P”的参数: 参数 声明 数据类型 存储区 说明EN_R Input BOOL I、Q、M、D、L 控制参数 enabled to receive 确定在调 用块时是(EN_R=1) 否 (EN_R=0) 对输 出 ACK_STATE 更新。 SIG_i, 1≤i ≤8 Input BOOLI、Q、M、D、L 要监视的第 i 个信号 ID Input WORD I、Q、M、D、L 或 常数 报警数据通道:仅在第一次调用时对W#16#EEEE ID 进行评估。
参数声明 数据类型 存储区 说明 EV_ID Input C_ALARM_8P I、Q、M、D、L 报警编号(不允许: 0);仅在第一次调 用时对 EV_ID 进行评估。随后,第一次 调用时使用的报警编号适用于使用相应 实例 DB进行的每次“ALARM_8P”调用。 报警编号是自动分配的。这样可确保报 警编号的一致性。报警编号在用户程序 中必须是唯一的。SEVERITY Input WORD I、Q、M、D、L 或 常数 事件的权重 可能的值: 0 至 127(值 0 表示Zui高权 重)此参数与处理此报警无关。 DONE Output BOOL I、Q、M、D、L 状态参数 DONE: 报警生成完成。 ERROROutput BOOL I、Q、M、D、L 状态参数 ERROR ERROR=TRUE 指示在处理期间发生了错 误。有关详细信息,请参见参数 STATUS。 STATUS Output WORD I、Q、M、D、L 状态参数 STATUS:显示错误信息 ACK_STATE Output WORD I、Q、M、D、L 带有全部 8 个报警的当前确认状态的位 数组(1:事件已确认,0: 事件未确 认): • 位 0 至 7 映射到 SIG_1 至 SIG_7 的进 入事件 • 位 8 至 15 映射到SIG_1 至 SIG_7 的 离开事件 • 初始化状态: W#16#FFFF,也就是 说,已确认所有进入和离开的事件 SD_j,1≤ j ≤10 InOut ANY I、Q、M、D、T、 C 第 j 个相关值 相关值适用于所有报警。仅允许使用 BOOL数据类型(不允许使用: 位数 组),BYTE, CHAR, WORD, INT, DWORD, DINT, REAL, DATE,TOD, TIME, S5TIME, DATE_AND_TIME。 注: 如果 ANY 指针访问某个 DB,则必 须始终指定该DB(例如: P# DB10.DBX5.0 字节 10)。ERROR 和 STATUS 参数 下表列出了关于由"ALARM_8P" 指令的参数 ERROR 和 STATUS 输出的所有特定错误信息。 ERROR STATUS (十进制) 说明0 11 报警丢失: 无法发送前一个信号变化或前一个报警,当前报警会将其取代。 0 22 • 指向相关值 SD_i 的指针中的错误:– 与数据长度或数据类型有关 – 无法访问用户存储器中的相关值,例如,由于已删除 DB 或存在区域长度错误 –发送不带相关值的已启用报警。 • 为 SEVERITY 选择的实际参数高出允许的范围。 通过 SEVERITY=127 来发送已启用的报警。 0 25 已开始通信。 正在处理报警。 1 1 通信问题: 连接终止或未登录。 已激活由确认触发的报告:临时显示,如果显示设备不支持由确认触发的报告。 1 4 第一次调用时: • 指定的 EV_ID 超出允许范围;或 • ANY 指针SD_i 具有形式错误。 • 已超过可按“ALARM_8P”为 CPU 发送的Zui大存储器区域。 1 10不能访问本地用户存储器(例如,不能访问已删除的 DB)。 1 12 调用该指令时: • 指定了不属于“ALARM_8P”的实例 DB• 指定了全局数据块,而不是背景数据块。 1 18 EV_ID 已经由指令“NOTIFY(页 7865)”、“NOTIFY_8P (页 7857)”、“ALARM(页 7867)”、“ALARM_8 (页 7860)”或“ALARM_8P”使用。 1 20工作存储器空间不足。 1 21 禁用了具有指定 EV_ID 的报警。 说明 第一次调用之后,设置输出 ACK_STATE的所有位,并假定输入 SIG_i, 1< i < 8 之前的值都是 “0”。NOTIFY: 报告信号变化 (S7-400)说明 此指令用于对信号进行监视。 该指令在上升沿(到达事件)和下降沿(离去事件)上都生 成报警。 可随此报警发送Zui多 10 个相关值。该报警将发送到为此目的而登录的所有站。 第 一次调用 SFB 时,将发送一个带有当前信号状态的报警。检测到边沿时将查询相关值并将其分配到报警。 一个报警存储器具有两个存储位置,可用于指令的每个实例。有关对信号变化进行缓存的更多信息,请参见 使用指令生成 PLC 报警简介 (页 7853)。 指令“NOTIFY”符合 IEC 1131-5。 参数下表列出了指令“NOTIFY”的参数: 参数 声明 数据类型 存储区 说明 SIG Input BOOL I、Q、M、D、L要监视的信号 ID Input WORD I、Q、M、D、L 或常 数 报警数据通道:仅在第一次调用时对 W#16#EEEE ID进行评估。 EV_ID Input C_NOTIFY I、Q、M、D、L 报警编号(不允许:0)仅在第一次调用 时对 EV_ID进行评估。随后,第一次调用时 使用的报警编号适用于使用相应实例 DB 进行的每次“NOTIFY”调用。报警编号是自动分配的。这样可确保报 警编号的一致性。报警编号在用户程序 中必须是唯一的。 SEVERITY Input WORDI、Q、M、D、L 或常 数 事件权重 可能值:0 至 127(值 0 表示Zui高权重) 此参数与处理此报警无关。 DONEOutput BOOL I、Q、M、D、L 状态参数 DONE: 报警生成完成。参数 声明 数据类型 存储区 说明 ERROROutput BOOL I、Q、M、D、L 状态参数 ERROR ERROR=TRUE 指示在处理期间发生了错 误。有关详细信息,请参见参数 STATUS。 STATUS Output WORD I、Q、M、D、L 状态参数 STATUS:显示错误信息 SD_i, 1≤i ≤10 InOut ANY I、Q、M、D、T、C 第 i 个相关值 仅允许使用 BOOL数据类型(不允许使 用: 位数组),BYTE, CHAR, WORD, INT, DWORD, DINT, REAL, DATE,TOD, TIME, S5TIME, DATE_AND_TIME。 注:ANY 指针访问某个数据块时,必须 始终指定该数据块。(例如: P# DB10.DBX5.0 字节 10) 有关有效数据类型的更多信息,请参见“有效数据类型概述ERROR 和 STATUS参数 下表列出了可通过参数 ERROR 和 STATUS 输出的所有特定错误信息。 ERROR STATUS (十进制) 说明 011 报警丢失: 无法发送前一个信号变化或前一个报警,当前报警会将其取代。 0 22 • 指向相关值 SD_i 的指针中的错误: –与数据长度或数据类型有关 – 无法访问用户存储器中的相关值,例如,由于已删除 DB 或存在区域长度错误 –已启用的报警在传送时可具有或不具有Zui大数目的相关值(根据需要)。 • 为 SEVERITY 选择的实际参数高出允许的范围。 通过SEVERITY=127 来发送已启 用的报警。 0 25 已开始通信。 正在处理报警。 1 1 通信问题: 连接终止或未登录 1 4第一次调用时: • 指定的 EV_ID 超出允许范围;或 • ANY 指针 SD_i 具有形式错误。 • 已超过可按“NOTIFY”为CPU 发送的Zui大存储器区域。ERROR STATUS (十进制) 说明 1 10 不能访问本地用户存储器(例如,不能访问已删除的DB)。 1 12 调用该指令时: • 指定了不属于“NOTIFY”的实例 DB • 指定了全局数据块,而不是背景数据块。 1 18EV_ID 已经由指令“NOTIFY”、“NOTIFY_8P (页 7857)”、“ALARM(页 7867)”、 “ALARM_8 (页 7860)”或“ALARM_8P (页 7862)”使用。1 20 工作存储器空间不足。 1 21 禁用了具有指定 EV_ID 的报警。