触发事件任务 (EVENT)
此信息适用于
CompactLogix
5370、ControlLogix
5570、Compact GuardLogix
5370、GuardLogix
5570、Compact GuardLogix
5380、CompactLogix
5380、ControlLogix
5580、GuardLogix
5580 和 ControlLogix 5590 控制器。EVENT 指令可触发执行一次事件任务。
可用语言
梯形图

功能块
此指令不可用于功能块中。
结构化文本
EVENT(task_name);
操作数
梯形图
操作数 | 类型 | 格式 | 说明 |
任务 | TASK | 名称 | 要执行的事件任务。如果指定的任务不是事件任务,则不执行指定的任务。 |
结构化文本
操作数 | 类型 | 格式 | 说明 |
任务 | TASK | 名称 | 要执行的事件任务。如果指定的任务不是事件任务,则不执行指定的任务。 |
有关结构化文本中表达式语法的详细信息,请参见结构化文本语法部分。
说明
EVENT 指令可用于以程序方式执行事件任务。
每次执行指令时,指令都会触发指定的事件任务。
应确保在再次触发前为事件任务留出充足的执行时间。否则,将发生重叠。
如果在事件任务执行期间执行 EVENT 指令,控制器将重叠计数器的计数递增,但不会触发事件任务。
EVENT 指令可用于触发所有触发类型的事件任务。
以程序方式确定 EVENT 指令是否触发了任务
要确定 EVENT 指令是否触发了事件任务,应使用“获取系统值”(GSV) 指令来监控任务的 Status 属性。
属性 | 数据类型 | 指令 | 说明 | |
状态 | DINT | GSV SSV | 提供有关任务的状态信息。一旦控制器将某个位置位,则必须手动将该位清零,以便确定是否发生了另一个该类型故障。 | |
要确定 | 检查此位 | |||
EVENT 指令是否触发了任务(仅限事件任务) | 0 | |||
任务的触发是否超时(仅限事件任务) | 1 | |||
该任务是否发生重叠 | 2 | |||
Status 属性的相关位置位后,控制器不会将这些位清零。要使某个位真实反映新的状态信息,必须手动将其清零。可使用“设置系统值”(SSV) 指令将该属性设置为其他值。
影响数学状态标志
否
故障条件
没有特定于此指令的故障。有关操作数相关的故障,请参见通用属性部分。
执行
梯形图
条件 | 执行的操作 |
预扫描 | 不适用 |
梯级输入条件为假 | 不适用 |
梯级输入条件为真 | 指令执行。 |
后扫描 | 不适用 |
结构化文本
条件 | 执行的操作 |
预扫描 | 不适用 |
正常执行 | 指令执行。 |
后扫描 | 不适用 |
示例
示例 1
一个控制器可使用多个程序,但却使用一个公用的关闭程序。每个程序都使用一个名为 Shut_Down_Line 的程序专属标签,当程序检测到需要执行关闭的条件时,该标签置位。每个程序中的逻辑均按如下方式执行。
如果 Shut_Down_Line = 置位(条件要求执行关闭),则
执行一次 Shut_Down 任务
梯形图
程序 A

程序 B

结构化文本
程序 A
IF Shut_Down_Line AND NOT Shut_Down_Line_One_Shot THEN
EVENT (Shut_Down);
END_IF;
Shut_Down_Line_One_Shot:=Shut_Down_Line;
程序 B
IF Shut_Down_Line AND NOT Shut_Down_Line_One_Shot THEN
EVENT (Shut_Down);
END_IF;
Shut_Down_Line_One_Shot:=Shut_Down_Line;
示例 2
在下面的示例中,使用 EVENT 指令初始化一个事件任务。通常情况下,该事件任务由另一类型的事件触发。
连续任务
IF Initialize_Task_1 = 1 THEN
ONS 指令限制 EVENT 指令执行一次扫描。
EVENT 指令触发 Task_1(事件任务)的执行。

Task_1(事件任务)
GSV 指令设置 Task_Status(DINT 标签)= 事件任务的 Status 属性。在 Instance Name 属性中,THIS 表示指令所在任务的 TASK 对象(如 Task_1)。

如果 Task_Status.0 = 1,说明 EVENT 指令触发了事件任务(即,连续任务执行 EVENT 指令来初始化事件任务)。
RES 指令将事件任务所使用的计数器复位。

Status 属性的相关位置位后,控制器不会将这些位清零。要使某个位真实反映新的状态信息,必须手动将其清零。
如果 Task_Status.0 = 1,则将该位清零。
OTU 指令设置 Task_Status.0 = 0。
SSV 指令设置 THIS 任务 (Task_1) 的 Status 属性 = Task_Status。其中包括已清零的位。

提供反馈