程序结构与控制指令
主程序与子程序:使用DEF(定义)创建程序、CALL调用子程序,模块化编程
条件语句:学习使用IF、ELSE、ENDIF语句进行程序逻辑判断
循环结构:使用FOR、WHILE、REPEAT等语句创建程序循环,控制机器人重复任务
kukawait time 1.00 sec #等待1s 指令 编辑 WAIT SEC 1
kukawait for (in 10"door_signal") #等待信号10
kukapulse 45"pick" state = true cont time = 0.5 sec #信号45的脉冲持续时间0.5s signal dilint $in[1] #输入 signal doclose $out[2] #输出 out 88 ‘ ’state = true #当输出信号88为真时 ‘ ’信号备注
R1 System $config #全局变量 即使没有程序在运行也始终可以被显示
局部DAT文件中的变量
在相关SRC文件的程序运行时可以一直被显示 在局部子程序中也可以使用
死循环
无Exit 永久执行P1和P2的运动指令
跳出循环
kuka带exit 一直执行对P1和P2的运动指令 直到输入端30为true 则跳出循环 loop ptp p1 vel=100% PDAT1 ptp p2 vel=100% PDAT1 if $IN[30]=true then exit endif endloop
指令 逻辑 out 脉冲
kukaPULSE 1 () State=true cont time = 0.1 sec #1 脉冲输出序号 State状态 高电平 低电平 cont是否有逼近效果 time持续时间
相关信息
计时器 $TIMER[Nr] 的数值输入 / 显示都以毫秒 ms 为单位
kukaint A A=0 $timer[30]=0 #初始化计时器 $timer_stop[30]=false #计时开始 ......... $timer_stop[30]=true #计时结束 A=$timer[30] #将30号计时器结果赋值给A
kuka$timer[1]=0 #初始化计时器 $timer_stop[1]=false #计时开始 wait sec 5 wait sec 8 $timer_stop[1]=true #计时结束 $timer[2]=$timer[1]/1000 #13 单位为ms 要转换为s 所以要/1000
kukaint i ...... #码垛使用较多 for i = 1 to 5 $out[i]=true endfor
while 先判断型循环
kukawhile $IN[22]== TRUE #仅当循环前满足$IN[22]= TRUE时才成立 $OUT[17]=TRUE $OUT[18]=FALSE PTP HOME endwhile
kukarepeat #一直循环,直到输出端 17 被切换为 TRUE,而输出端 18 被切换为FALSE,并且机器人移入 Home 位置,这时才会检测条件跳出循环 $OUT[17]=TRUE $OUT[18]=FALSE ptp home until $IN[22]== TRUE
注意
赋值用一个= 判断用两个=
kukaIF $IN[30]==TRUE THEN PTP P3 ELSE PTP P4 ENDIF
kukaDEF MY_PROG( ) DECL INT error_nr ... INI error_nr = 4 ... ; 仅在 error_nr 1 或 10 或大于 99 时驶至 P21 IF ((error_nr == 1) OR (error_nr == 10) OR (error_nr > 99)) THEN PTP P21 Vel=100% PDAT21 ENDIF ... END
kukaINT Status #整型变量 ..... switch status CASE 1 #如果变量值为1 则执行 PTP P5 #机器人运动到P5 CASE 2 #如果变量值为2 则执行 PTP P6 #机器人运动到P6 ..... DEFAULT #如果变量值未在CASE中列出 ERROR-MSG #则执行 故障信息 endswitch
带枚举数据类型的 switch-case 分支
kukaDEF MY_PROG( ) ENUM COLOR_TYPE red, yellow, blue, green DECL COLOR_TYPE my_color ... INI my_color = #red ... SWITCH my_color CASE #red PTP P21 Vel=100% PDAT21 CASE #yellow PTP P22 Vel=100% PDAT22 CASE #green PTP P23 Vel=100% PDAT23 CASE #blue PTP P24 Vel=100% PDAT24 ENDSWITCH