
4.6 其他指令
定义“中断程序”指令——Def Act
(1)【功能】
本指令用于定义“中断程序”,定义执行中断程序的条件及中断程序名称。
(2)【指令格式】
Def Act<中断程序级别><条件><执行动作><类型>
(3)【术语解释】
①<中断程序级别>——设置中断程序的级别(优先)。设置范围:1~8。
②<条件>——是否执行“中断程序”的判断条件。
作为条件,按以下的格式记述:
a.<数值型数据><比较运算符><数值型数据>或
b.<数值型数据><逻辑运算符><数值型数据>
<数值型数据>是指以下的数值类型
<数值型常数>/<数值变量>/<数值数组>/<成分数据>
③<执行动作>——中断程序动作内容。
为了执行中断程序,必须以GoTo指令或GoSub指令调用子程序。
④<类型>——中断程序的执行时间点,即主程序的停止类型。
a.省略:停止类型1——以100%速度倍率正常停止。
b.S:停止类型2——以最短时间、最短距离减速停止。
c.L:停止类型3——执行完当前程序行后才停止。
(4)力觉停止
①“力觉停止”不按外部速度倍率,以最短时间/最短距离减速停止。力觉控制ON的时候,机器人的动作为:如果直线速度小于50mm/s或旋转速度小于50(°)/s时立即在该点停止。如图4-3所示。

图4-3 力觉控制的停止方式
②对应“力觉停止”,在自变量<类型>上标注“F”。
③力觉控制OFF的时候,停止方式与停止类型2(S)相同。
④对于附加伺服轴,不论力觉控制ON/OFF,停止方式与停止类型2(S)相同。
⑤“力觉停止”(F)时,如果力觉控制OFF(包含伺服OFF),设置“Act=0”,禁止中断,执行力觉控制的位置补偿,保持停止时的状态。
(5)【程序样例】
1 Def Act 1,M_In(17)=1 GoSub *L100 '——定义Act 1中断程序为:如果输入信号17=ON,则跳转到子程序*L100。
2 Def Act 2,MFG1 And MFG2 GoTo *L200 '——定义Act 2中断程序:如果“MFG1与MFG2”的“逻辑AND”运算=真,,则跳转到子程序*L200。
3 Def Act 3,M_Timer(1)>10500 GoSub *LBL '——定义Act 3中断程序为:如果计时器时间大于10500ms,则跳转到子程序*LBL。
10 *L100:M_Timer(1)=0 '——计时器M_Timer(1)设置=0。
11 Act 3=1 '——Act3中断区间起点。
12 Return 0 '——中断程序结束。
:
20 *L200:Mov P_Safe '——子程序*L200。
21 End'——结束。
:
30 *LBL '——子程序*LBL。
31 M_Timer(1)=0 '——设置计时器M_Timer(1)=0。
32 Act 3=0 '——Act3中断区间终点。
32 Return 0 '——中断程序结束。
(6)说明
①中断程序从“跳转起始行”到“Return”结束。
②中断程序级别以号码1~8表示,数字越小越优先,如Act 1优先于Act 2。
③执行中断程序时,主程序的停止类型有3种,如图4-4、图4-5所示。
a.停止类型1:停止过程中的行程相同。
b.停止类型2:以最短时间、最短距离减速停止。
c.停止类型3:执行完主程序当前行后,再执行中断程序。

图4-4 停止类型1

图4-5 停止类型2和停止类型3
④只能使用<式>等单纯的逻辑运算或比较运算。运算符号为1个,括号也无法使用。
⑤以通信插入(COM)优先级比任何一个Def Act指令定义的中断插入优先顺序高。
⑥在<式>中无法以(M1 And &H001)=1的逻辑运算的组合条件来表示。
⑦在执行圆或圆弧插补(Mvc,Mvr,Mvr2,Mvr3)时,执行中断插入,以Return0返回原单步控制时,机器人会返回到圆或圆弧的起点,再次执行圆、圆弧插补。
(7)【关联指令】
机器人执行移动指令的时候,如果需要中断插入以最短时间/最短距离将机器人停止,则应该将停止种类设定为“S”。