品牌: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"