数字报警 (ALMD)
此信息适用于
CompactLogix
5370、ControlLogix
5570、Compact GuardLogix
5370、GuardLogix
5570、Compact GuardLogix
5380、CompactLogix
5380、ControlLogix
5580、GuardLogix
5580 和 ControlLogix 5590 控制器。在适用的情况下会注明控制器的差异。数字报警 (ALMD) 指令可对任意离散布尔值提供报警。
可用语言
梯形图

功能块

结构化文本
ALMD (ALMD,In,ProgAck,ProgReset,ProgDisable,ProgEnable)
操作数
梯形图
操作数 | 类型 | 格式 | 说明 |
|---|---|---|---|
ALMD tag | ALARM_DIGITAL | 结构 | ALMD 结构 |
ProgAck | BOOL | 标签 立即数 | 由假跳变为真时,应答报警(如果需要应答)。 |
ProgReset | BOOL | 标签 立即数 | 由假跳变为真时,复位报警(如果需要复位)。 |
ProgDisable | BOOL | 标签 立即数 | 此参数为真时,禁用报警(不会优先于启用命令)。 |
ProgEnable | BOOL | 标签 立即数 | 此参数为真时,启用报警(优先于禁用命令)。 |
MinDurationPRE | DINT | 立即数 | 指定满足报警条件多长时间(毫秒)后进行报告。 |
MinDurationACC | DINT | 立即数 | 指示报警 MinDuration 计时器累加器的当前值。V29 和更高版本的 Logix Designer 应用程序中不使用此值。此值始终为 0。 |
功能块
操作数 | 类型 | 格式 | 说明 |
|---|---|---|---|
ALMD tag | ALARM_DIGITAL | 结构 | ALMD 结构 |
结构化文本
操作数 | 类型 | 格式 | 说明 |
|---|---|---|---|
ALMD tag | ALARM_DIGITAL | 结构 | ALMD 结构 |
ProgAck | BOOL | 标签 立即数 | 由假跳变为真时,应答报警(如果需要应答)。 |
ProgReset | BOOL | 标签 立即数 | 由假跳变为真时,复位报警(如果需要复位)。 |
ProgDisable | BOOL | 标签 立即数 | 此参数为真时,禁用报警(不会优先于启用命令)。 |
ProgEnable | BOOL | 标签 立即数 | 此参数为真时,启用报警(优先于禁用命令)。 |
MinDurationPRE | DINT | 立即数 | 指定满足报警条件多长时间(毫秒)后进行报告。 |
MinDurationACC | DINT | 立即数 | 指示报警 MinDuration 计时器累加器的当前值。V29 和更高版本的 Logix Designer 应用程序中不使用此值。此值始终为 0。 |
有关结构化文本中表达式语法的详细信息,请参阅结构化文本语法。
ALMD 结构
输入参数
输入参数 | 数据类型 | 说明 |
|---|---|---|
EnableIn | BOOL | 梯形图: 对应于梯级状态。不影响处理。 功能块: 如果为假,该指令不会执行,也不会更新输出。 如果置位,则执行指令。 默认值为真。 结构化文本: 不影响。指令始终执行。 |
In | BOOL | 指令的数字信号输入。 默认值为假。 梯形图: 遵从梯级条件。如果梯级条件为真,则设置为真。如果梯级条件为假,则设置为假。 结构化文本: 从指令操作数中复制而来。 |
InFault | BOOL | 输入不良状况指示器。用户应用程序可以将 InFault 置位以指示输入信号有误。该参数置位时,指令会将 InFaulted (Status.1) 置位。该参数设置为假时,指令会将 InFaulted (Status.1) 设置为假。无论在哪种情况下,指令都继续评估 In 是否满足报警条件。 默认值为假(状况良好)。 |
Condition | BOOL | 指定报警的激活方式。如果将 Condition 设置为真,则 In 设置为真时激活报警条件。如果将 Condition 设置为假,则 In 设置为假时激活报警条件。 默认值为真。 |
AckRequired | BOOL | 指定是否需要应答报警。设置为真时,需要应答。设置为假时,无需应答且 Acked 始终设置为真。 默认值为真。 |
Latched | BOOL | 指定是否锁定报警。当报警条件变为假时,锁定的报警将保持 InAlarm 状态,直到收到重置命令。设置为真时,锁定报警。设置为假时,解锁报警。 默认值为假。 仅当报警条件为假时,才可复位锁定报警。 |
ProgAck | BOOL | 由用户程序设置为真可应答报警。仅当报警未应答时才会生效。需要出现假到真跳变。 默认值为假。 梯形图: 从指令操作数中复制而来。 结构化文本: 从指令操作数中复制而来。 |
OperAck | BOOL | 由操作员界面设置为真可应答报警。仅当报警未应答时才会生效。指令会将此参数清零。 默认值为假。 |
ProgReset | BOOL | 由用户程序设置为真可复位锁定的报警。只有当锁定的报警处于 InAlarm 状态以及报警条件为假时,才会生效。需要出现假到真跳变。 默认值为假。 梯形图: 从指令操作数中复制而来。 结构化文本: 从指令操作数中复制而来。 |
OperReset | BOOL | 由操作员界面设置为真可复位锁定的报警。只有当锁定的报警处于 InAlarm 状态以及报警条件为假时,才会生效。报警指令会将此参数设置为假。 默认值为假。 |
ProgSuppress | BOOL | 由用户程序设置为真可抑制报警。 默认值为假。 |
OperSuppress | BOOL | 由操作员界面设置为真可抑制报警。报警指令会将此参数设置为假。 默认值为假。 |
ProgUnsuppress | BOOL | 由用户程序设置为真可取消抑制报警。优先于抑制命令。 默认值为假。 |
OperUnsuppress | BOOL | 由操作员界面设置为真可取消抑制报警。优先于抑制命令。报警指令会将此参数设置为假。 默认值为假。 |
OperShelve | BOOL | 由操作员界面设置为真可延迟或重新延迟报警。需要从一次程序扫描中的“假”状态跳变为下一次程序扫描中的“真”状态。报警指令会将此参数设置为假。 默认值为假。 取消延迟命令优先于延迟命令。 延迟报警会推迟对报警的处理。延迟报警与抑制报警类似,但延迟具有时间限制。如果报警处于延迟状态时该报警已应答,即使其再次变为激活状态,仍保留已应答状态。当延迟持续时间结束时,假设此时报警仍处于激活状态,则将变为未应答状态。 |
ProgUnshelve | BOOL | 由用户程序设置为真可取消延迟报警。优先于延迟命令。 默认值为假。 有关延迟报警的更多信息,请参见 OperShelve 参数的相关说明。 |
OperUnshelve | BOOL | 由操作员界面设置为真可取消延迟报警。报警指令会将此参数设置为假。优先于延迟命令。 默认清零。 有关延迟报警的更多信息,请参见 OperShelve 参数的相关说明。 |
ProgDisable | BOOL | 由用户程序设置为真可禁用报警。 默认值为假。 梯形图: 从指令操作数中复制而来。 结构化文本: 从指令操作数中复制而来。 |
OperDisable | BOOL | 由操作员界面设置为真可禁用报警。报警指令会将此参数设置为真。 默认值为假。 |
ProgEnable | BOOL | 由用户程序设置为真可启用报警。优先于禁用命令。 默认值为假。 梯形图: 从指令操作数中复制而来。 结构化文本: 从指令操作数中复制而来。 |
OperEnable | BOOL | 由操作员界面设置为真可启用报警。优先于禁用命令。报警指令会将此参数设置为假。 默认值为假。 |
AlarmCountReset | BOOL | 由操作员界面设置为真可将报警计数复位为零。报警指令会将此参数设置为假。 默认值为假。 |
UseProgTime | BOOL | 指定是使用控制器的时钟还是使用 ProgTime 值为报警状态更改事件提供时戳。设置为真时,使用 ProgTime 值提供时戳。设置为假时,使用控制器的时钟提供时戳。 默认值为假。 |
ProgTime | LINT | 如果 UseProgTime 设置为真,则使用此值提供所有事件的时戳值。因此,应用程序会应用从报警源(如事件序列输入模块)获取的时戳。 |
Severity | DINT | 报警的严重程度。此参数不会影响控制器处理报警,但可在报警订阅者上用于排序和过滤功能。 有效值 = 1...1000(1000 = 严重程度最高;1 = 严重程度最低)。 默认值 = 500。 |
MinDurationPRE | DINT | 在报警被标记为 InAlarm 并向客户端发送报警通知之前,报警条件保持为真的最短持续时间预置值(以毫秒计)。一旦检测到报警条件,控制器就会立即收集报警数据;因此在等待达到最短持续时间期间不会丢失任何数据。 有效值 = 0...2147483647。 默认值 = 0。 |
ShelveDuration | DINT | 延迟报警的时间长度,以分钟为单位。延迟报警会推迟对报警的处理。延迟报警与抑制报警类似,但延迟具有时间限制。如果报警处于延迟状态时该报警已应答,即使其再次变为激活状态,仍保留已应答状态。当延迟持续时间结束时(假设此时报警仍处于激活状态),它将变为未应答状态。 最短时间是一分钟。最长时间由 MaxShelveDuration 定义。 |
MaxShelveDuration | DINT | 报警可以延迟的最长持续时间,以分钟为单位。有关延迟报警的更多信息,请参见 ShelveDuration 参数的相关说明。 |
输出参数
输出参数 | 数据 类型 | 说明 |
|---|---|---|
EnableOut | BOOL | 启用输出。 |
InAlarm | BOOL | 报警激活状态。报警激活时设置为真。报警未激活时设置为假(正常状态)。 |
Acked | BOOL | 报警应答状态。报警已应答时设置为真。报警未应答时设置为假。 当 AckRequired 设置为假时,Acked 始终设置为真。 |
InAlarmUnack | BOOL | 报警激活和应答的组合状态。当报警激活(InAlarm 为真)且未应答(Acked 为假)时设置为真。当报警未激活和/或已应答时设置为假。 |
Suppressed | BOOL | 报警的抑制状态。报警被抑制时设置为真。报警未被抑制时设置为假。 |
Shelved | BOOL | 报警的延迟状态。已延迟报警时设置为真。取消延迟报警时设置为假。 延迟报警会推迟对报警的处理。延迟报警与抑制报警类似,但延迟具有时间限制。如果报警处于延迟状态时该报警已应答,即使其再次变为激活状态,仍保留已应答状态。当延迟持续时间结束时才会变为未应答状态。 |
Disabled | BOOL | 报警的禁用状态。报警未启用时设置为真。报警启用时设置为假。 |
Commissioned | BOOL | 报警的已使用状态。报警已使用时设置为真。报警停止使用时设置为假。目前始终设置为真。 |
MinDurationACC | DINT | 指示报警 MinDuration 计时器累加器的当前值。V29 和更高版本的 Logix Designer 应用程序中不使用此值。此值始终为 0。 |
AlarmCount | DINT | 报警的激活次数(InAlarm 置位)。如果达到最大值,计数器会使值保持在最大计数值。 |
InAlarmTime | LINT | 报警检测的时戳。 |
AckTime | LINT | 报警应答的时戳。如果报警不需要应答,则此时戳等于报警时间。 |
RetToNormalTime | LINT | 报警恢复正常状态的时戳。 |
AlarmCountResetTime | LINT | 指示复位报警计数时间的时戳。 |
ShelveTime | LINT | 指示上次延迟报警的时间的时戳。如果报警已延迟,则该值由控制器设置。报警可多次延迟或取消延迟。每次延迟报警时,时戳都将设置为当前时间。 有关延迟报警的更多信息,请参见 Shelved 参数的相关说明。 |
UnshelveTime | LINT | 指示何时取消延迟报警的时戳。在每次延迟报警时都会对该值进行设置(即使报警已延迟)。时戳由 ShelveDuration 与当前时间的和确定。如果通过编程方式或由操作员取消延迟报警,则该值将设置为当前时间。 有关延迟报警的更多信息,请参见 Shelved 参数的相关说明。 |
Status | DINT | 组合状态指示器: Status.0 = InstructFault Status.1= InFaulted Status.2 = SeverityInv |
InstructFault (Status.0) | BOOL | 存在指令错误状况。这不是轻微或严重的控制器错误。检查其他状态位以确定发生的情况。 |
InFaulted (Status.1) | BOOL | 由用户程序将 InFault 置位以说明输入数据不良。报警继续评估 In 是否符合报警条件。 |
SeverityInv (Status.2) | BOOL | 报警严重程度配置。 如果严重程度 <1,指令则使用严重程度 = 1。 如果严重程度 >1000,指令则使用严重程度 = 1000。 |
数字报警状态图



数字报警时序图
ALMD 报警需要应答且已锁定

ALMD 报警需要应答且未锁定

ALMD 报警无需应答且已锁定

ALMD 报警无需应答且未锁定


将按钮连接至 OperShelve 标签
要防止报警意外延迟,仅当 OperShelve 标签在两次程序扫描之间由假跳变为真时,报警指令才会处理此标签。如果操作员在 ProgUnshelve 标签为真时按下按钮以延迟报警,则报警不会被延迟,因为 ProgUnshelve 标签优先。但是,由于多次程序扫描会在几毫秒内完成,在此过程中操作员可能仍然按住按钮,因此,即使 ProgUnshelve 标签已设置为假,OperShelve 标签在多次程序扫描过程中也会保留为真的状态。这意味着报警不会被延迟。
要延迟报警,操作员可以松开按钮,然后再次按下
影响数学状态标志
否
严重/轻微故障
没有特定于此指令的故障。对于数组索引故障,请参阅 通过数组建立索引。
执行
梯形图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | EnableOut 设置为假 InAlarm 输出设置为假 Shelved 输出设置为假 Acked 输出设置为真。 应答所有报警条件。 将所有操作员请求清零 将所有时戳清零 |
梯级输入条件为假 | 梯级设置为假。 In 参数设置为假 指令执行。 |
梯级输入条件为真 | 梯级设置为真。 In 参数设置为真 指令执行。 |
后扫描 | 梯级位设置为假。 |
功能块
条件/状态 | 执行的操作 |
|---|---|
预扫描 | Tag.EnableOut 清除为假。 InAlarm 输出设置为假 Shelved 输出设置为假 Acked 输出设置为真 将所有操作员请求清零 将所有时戳清零 |
Tag.EnableIn 为假 | Tag.EnableOut 设置为假 |
Tag.EnableIn 为真 | 指令执行 Tag.EnableOut 设置为真 |
指令首次运行 | 不适用 |
指令首次扫描 | 不适用 |
后扫描 | Tag.EnableOut 清除为假。 |
结构化文本
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 请参阅“梯形图”表中的“预扫描”行。 |
正常执行 | 请参见“梯形图”表中的“梯级输入条件为真”行。 |
后扫描 | 请参见“梯形图”表中的“后扫描”行。 |
示例
梯形图

功能块

结构化文本
以下所示为结构化文本形式的 ALMD 指令的示例。在此示例中,将两个电机故障信号相组合,只要发生其中一个故障,就会激活电机故障报警。Motor101Ack 标签可用于对报警进行应答。
Motor101FaultConditions := Motor101Overtemp OR Motor101FailToStart;
ALMD(Motor101Fault,Motor101FaultConditions,Motor101Ack,0,0,0 );
提供反馈