中断声明
INTERRUPT DECL Prio WHEN $IN[1]==TRUE DO R_ALARM()
Prio: 中断的优先级,范围1、2、4-39、81-128.3和40-80是预留给系统用的,19用作制动测试。如果多个中断同时出现,先执行最高优先级的中断。
$IN[1]==TRUE : 触发中断的事件。
R_ALARM(): 中断触发后执行的程序。
INTERRUPT ON: 中断激活
INTERRUPT OFF: 中断关闭
限制
1、在子程序中声明的中断在主程序中无效,写有关键词GLOBAL的例外。
2、允许同时最多声明32个中断。
3、在同一时间最多允许有16个中断激活。
应用示例
DEF MAIN()
INI
;中断声明
INTERRUPT DECL 10 WHEN $IN[99]==TRUE DO ERROR()
;启用中断
INTERRUPT ON 10
WAIT FOR $IN[99]==FALSE
MOVE...
MOVE...
END
--------------------
DEF ERROR()
;关闭中断
INTERRUPT OFF 10
...
...
;启用中断
INTERRUPT ON 10
END