品牌:ABB
上架时间:2021-11-2 发布者:上海仰光
产品描述:可针对一项或多项任务来启动事件例程。 当按下FlexPendant示教器上的启动按钮或通过某系统I/O调用开始命令时,已停止 的事件例程便会从停止处继续运行。 按执行“停止事件例程”时按下停止按钮并不会生成新的停止事件,不过如果事件例程 出现问题,那么按下停止按钮将迫使系统在10秒后脱离该事件例程。 要想从系统I/O取消一则已停止的事件例程,唯一的办法就是启动主例程的相关程序。 事件例程中的Stop指令(不含可选自变数-All)或Break指令都将停止程序的执行 过程,这意味着位于Stop指令或Break指令之后的指令将永远不会执行。
概述:
本节描述了主题Controller下的类型Event Routine,其中会通过一个单独的信息主题 来描述该类型中的每个参数。
配置名称:
CAB_EXEC_HOOKS
类型说明:
类型Event Routine包含了事件处理所需的参数。程序停止等专用系统事件可与一则 RAPID例程连接起来。当发生事件时,系统便会自动执行所连接的事件例程。 一则事件例程由一条或多条指令组成。该例程会在参数Task 或 All Tasks指定的任务 中运行。
事件例程:
有以下事件例程可用:
• PowerOn
• Start
• Step
• Restart
• Stop
• QStop
• Reset
可针对一项或多项任务来启动事件例程。
当按下FlexPendant示教器上的启动按钮或通过某系统I/O调用开始命令时,已停止 的事件例程便会从停止处继续运行。
按执行“停止事件例程”时按下停止按钮并不会生成新的停止事件,不过如果事件例程 出现问题,那么按下停止按钮将迫使系统在10秒后脱离该事件例程。 要想从系统I/O取消一则已停止的事件例程,唯一的办法就是启动主例程的相关程序。 事件例程中的Stop指令(不含可选自变数-All)或Break指令都将停止程序的执行 过程,这意味着位于Stop指令或Break指令之后的指令将永远不会执行。
事件例程的执行示例 :
下图是下述示例代码的图解。下例展示了按下FlexPendant示教器上各种按钮时所执 行的事件例程。
PROC main()
MoveJ p20, v100, fine, tool0;
MoveJ p10, v100, fine, tool0;
ENDPROC
例 1 :
从以下无返回值程序来看,当按下FlexPendant示教器上的“启动(Start)”和“停止 (Stop)”按钮时,系统便执行了“启动(START)”、“停止(STOP)”和“重启 (RESTART)”事件例程。
例 2 :
从以下无返回值程序来看,当按下FlexPendant示教器上的“启动(Start)”、“停止 (Stop)”和“步进(Step)”按钮时,系统便执行了“启动(START)”、“停止 (STOP)”和“重启(RESTART)”事件例程。
例 3 :
从以下无返回值程序来看,当按下FlexPendant示教器上的“步进(Step)”和“停止 (Stop)”按钮时,系统便执行了“启动(START)”、“停止(STOP)”和“步进 (Step)”事件例程。
系统重启 :
待正常重启后,系统便会激活事件例程配置中的所有更改。
例 1 :
此例说明了在一则例程中使用一条Stop指令后的结果。 重启后mydo会被设置成1。由于执行过程会在停止指令后停止,因此mydo永远都不会 被设置成0。
myexample2有序列号(SeqNo)1,因此系统永远不会执行指令TPWrite。
MODULE example(SYSMODULE)
PROC myexample1()
SetDO mydo, 1;
Stop;
SetDO mydo, 0;
ENDPROC
PROC myexample2()
TPWrite "This is an example";
ENDPROC
ENDMODULE
CAB_EXEC_HOOKS:
-Routine "myexample1" -Shelf "RESTART"
-Routine "myexample2" -Shelf "RESTART" -SeqNo 1
例 2 :
此例展示了Start和Step事件如何使用同一例程。
MODULE example(SYSMODULE)
PROC myexample2()
TEST RunMode()
CASE RUN_CONT_CYCLE:
! PLAY button pressed
...
CASE RUN_INSTR_FWD:
! FORWARD STEP button pressed
...
CASE RUN_INSTR_BWD:
! BACKWARD STEP button pressed
...
ENDTEST
ENDPROC
ENDMODULE
CAB_EXEC_HOOKS:
-Routine "myexample2" -Shelf "START"
-Routine "myexample2" -Shelf "STEP"