KUKA机器人系统变量$flag和$cycflag

在KUKA机器人系统变量中有布尔型旗标系统变量,包括普通的旗标$flag和周期性旗标$cycflag,对于普通的旗标$flag有999个,而周期性旗标$cycflag则有256个。在机器人系统KSS 8.7中,在主菜单下可以查看两种旗标的数量,如下图所示,其中标识器就是指普通的旗标。

周期性旗标适用于循环程序控制、定时任务触发,而标识器用于普通逻辑控制、临时状态存储。在KRL程序中,$CYCFLAG可用于实时状态检测或逻辑控制。通常应用于监控或触发特定条件(如焊接故障、激光功率异常等),在RoboTeam或复杂应用中协调多个机器人的动作。

程序中$CYCFLAG$FLAG的区别:

$CYCFLAG:

在机器人程序中,通过赋值布尔表达式可以激活循环标志的循环求值。而在提交程序中对布尔表达式进行赋值,并不会触发循环求值。

这种赋值操作会让右侧表达式在后台进行循环求值。也就是说,一旦右侧某个子表达式的值发生变化,$CYCFLAG的值也会随之改变。

机器人程序或触发器赋值可以随时覆盖赋给循环标志的布尔表达式。只要给循环标志赋值为 FALSE,循环处理就会立即停止。

$FLAG:

在机器人程序或提交程序中,可将布尔表达式自由赋值给该变量。与$CYCFLAG不同,此布尔表达式仅在赋值时进行求值。

在程序中测试:

在程序中使用系统变量时是不用声明的,可以直接使用,使用时注意格式:$FLAG[n]和$CYCFLAG[n](n为编号)。对$CYCFLAG进行简单的运算,程序如下:

对$CYCFLAG变量的监控可以看出变化:

①当$flag[1] 和$flag[2]都为true时,$cycflag[1]也为true;

①当$flag[1]变为false,$flag[2]不变,依然为true时,$cycflag[1]则自动更新为false,符合逻辑。