用于生成块相关报警的指令所需的工作存储器 为了正常运行,用于生成 PLC 报警的指令需要使用 CPU的工作存储器(代码区域)中的一 个通信数据缓冲区,该缓冲区一般取决于相关的值。有关所用存储器大小的信息,请参见下 表。可传输的数据量可使用指令“NOTIFY (页 7865)”、“NOTIFY_8P (页 7857)”、“ALARM(页 7867)”和 “ALARM_8P (页 7862)”的相关值 SD_i传送的数据量不得超过一个Zui大长度。该Zui大数据长 度可以如下计算: maxleng = min (pdu_local,pdu_remote) - diff - 4 * 所用 SD_i 参数的数目 其中: • min (pdu_local,pdu_remote) 是 pdu_lokal 和 pdu_remote 中的Zui低值 • pdu_local 是本地 CPU的Zui大字段长度(参见 CPU 的技术数据) • pdu_remote:显示设备数据块的Zui大长度 • diff =48,如果启用了确认触发报告功能;diff = 44,如果禁用该功能。 示例 CPU 414-2 通过工业以太网向 HMI发送报警。禁用确认触发报告功能。 使用相关值 SD_1、SD_2 和 SD_3。 pdu_local = 480字节,pdu_remote = 480 字节 所使用的 SD_i 参数数目:3 结果:
NOTIFY_8P: 报告Zui多8 个信号变化 (S7-400) 说明 指令“NOTIFY_8P”可将指令“NOTIFY (页 7865)”扩展以包括 8个信号。 如果检测到至少一个信号转换,则生成报警。 第一次调用“NOTIFY_8P”时,总会生成报警。 所有 8个信号具有一个公共报警 ID,划分为显示设备上的 8 个单独报警。一个报警存储器具有两个存储位置,可用于“NOTIFY_8P”的每个实例。有关对信号变化进行 缓存的更多信息,请参见 使用指令生成PLC 报警简介 (页 7853)。 说明 显示设备将显示Zui后两个信号转换,而不管是否丢失报警。 警告调用“NOTIFY_8P” 在自动化系统中调用“NOTIFY_8P”之前,必须确保所有连接的显示设备都熟悉此块。 如果不注意这一问题,则自动化系统和所连接的显示设备之间的通信将会终止。 在此情况下, 无法再通过连接的显示设备对系统进行访问。 参数下表列出了指令“NOTIFY_8P”的参数: 参数 声明 数据类型 存储区 说明 SIG_i, 1 ≤ i ≤ 8 InputBOOL I、Q、M、D、L 要监视的第 i 个信号 ID Input WORD I、Q、M、D、L 或 常数 报警数据通道:仅在第一次调用时对 W#16#EEEE ID 进行评估。参数 声明 数据类型 存储区 说明 EV_ID InputC_NOTIFY_8P I、Q、M、D、L 报警编号(不允许:0)仅在第一次调用 时对 EV_ID 进行评估。随后,第一次调用时使用的报警编号适用于使用相应实例 DB 进行的每次“NOTIFY_8P”调用。 报警编号是自动分配的。这样可确保报警编号的一致性。报警编号在用户程序 中必须是唯一的。 SEVERITY Input WORD I、Q、M、D、L 或 常数 事件权重可能值:0 至 127(值 0 = Zui高权 重); 默认值:64 此参数与处理报警无关。 DONE Output BOOLI、Q、M、D、L 状态参数 DONE: 报警生成完成。 ERROR Output BOOL I、Q、M、D、L 状态参数ERROR: ERROR=TRUE 指示在处理期间发生了错 误。 有关详细信息,请参见参数 STATUS。 STATUS OutputWORD I、Q、M、D、L 状态参数 STATUS: 显示错误信息 SD_i, 1 ≤ i ≤ 10 InOut ANYI、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 输出的“NOTIFY_8P”的所有特定错误信息。 ERROR STATUS (十进制) 说明 0 11 报警丢失:无法发送前一个信号变化或前一个报警,当前报警会将其取代。 0 22 • 指向相关值 SD_i 的指针中的错误: –与数据长度或数据类型有关 – 无法访问用户存储器中的相关值,例如,由于已删除 DB 或存在区域长度错 误 –已启用的报警在传送时可具有或不具有Zui大数目的相关值(根据需要)。 • 为 SEVERITY 选择的实际参数高出允许的范围。通过SEVERITY=127 来发送已启 用的报警。 0 25 已开始通信。 正在处理报警。 1 1 通信问题: 连接终止或未登录 1 4第一次调用时: • 指定的 EV_ID 超出允许范围;或 • ANY 指针 SD_i 具有形式错误。 •已超过可按“NOTIFY_8P”为 CPU 发送的Zui大存储器区域。 1 10 不能访问本地用户存储器(例如,不能访问已删除的 DB)。1 12 调用该指令时 • 指定了不属于“NOTIFY_8P”的实例 DB • 指定了全局数据块,而不是背景数据块。 1 18EV_ID 已经由指令“NOTIFY (页 7865)”、“NOTIFY_8P”、“ALARM(页 7867)”、 “ALARM_8 (页 7860)”或“ALARM_8P (页 7862)”使用。1 20 工作存储器空间不足。 1 21 禁用了具有指定 EV_ID 的报警。ALARM_8: 创建不带 8 个信号关联值的 PLC报警 (S7-400) 说明 除了不存在关联值 SD_1 ... SD_10 之外,此指令与指令“NOTIFY_8P(页 7857)”完全相同。 参数 下表列出了指令“ALARM_8”的参数: 参数 声明 数据类型 存储区 说明 EN_RInput BOOL I、Q、M、D、L 控制参数 enabled to receive 确定在调 用块时是 (EN_R=1) 否(EN_R=0) 对输 出 ACK_STATE 更新。 SIG_i, 1≤i ≤8 Input BOOL I、Q、M、D、L要监视的第 i 个信号 ID Input WORD I、Q、M、D、L 或 常数 报警数据通道:仅在第一次调用时对 W#16#EEEEID 进行评估。 EV_ID Input C_ALARM_8 I、Q、M、D、L 报警编号(不允许: 0) 仅在第一次调用 时对EV_ID 进行评估。随后,第一次调 用时使用的报警编号适用于使用相应实 例 DB 进行的每次“ALARM_8”调用。报警编号是自动分配的。这样可确保报 警编号的一致性。报警编号在用户程序 中必须是唯一的。 SEVERITY Input WORDI、Q、M、D、L 或 常数 事件的权重 可能的值: 0 至 127(值 0 表示Zui高权 重) 此参数与处理此报警无关。 DONEOutput BOOL I、Q、M、D、L 状态参数 DONE: 报警生成完成。 ERROR Output BOOLI、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_8 的进 入事件 • 位 8 至 15 映射到SIG_1 至 SIG_8 的 离开事件 • 初始化状态: W#16#FFFF,也就是 说,已确认所有进入和离开的事件有关有效数据类型的更多信息,请参见“有效数据类型概述 (页 255)”。 ERROR 和 STATUS 参数下表包括有关可通过参数 ERROR 和 STATUS 输出的指令“ALARM_8”的所有特定错误信息。 ERROR STATUS(十进制) 说明 0 11 报警丢失: 无法发送前一个信号变化或前一个报警,当前报警会将其取代。 0 22 为 SEVERITY选择的实际参数高出允许的范围。 通过 SEVERITY=127 来发送已启用 的报警。 0 25 已开始通信。 正在处理报警。 1 1通信问题: 连接终止或未登录 已激活由确认触发的报告: 临时显示,如果显示设备不支持由确认触发的报告 1 4 第一次调用时,指定的EV_ID 位于允许范围之外。 1 10 不能访问本地用户存储器(例如,不能访问已删除的 DB)。 1 12 调用该指令时 •指定了不属于“ALARM_8”的实例 DB • 指定了全局数据块,而不是背景数据块。 1 18 EV_ID 已经由指令“NOTIFY(页 7865)”、“NOTIFY_8P (页 7857)”、“ALARM(页 7867)”、“ALARM_8”或“ALARM_8P (页 7862)”使用。 1 20工作存储器空间不足。 1 21 禁用了具有指定 EV_ID 的报警。