1、Stay Hungry,stay Foolish.第8章 利用机器人程序的逻辑功能逻辑编程入门8.1目录Content等待函数的编程2.2KUKA机器人数据的备份与恢复2.3KUKA机器人的手动操作2.4n 13.5 用KRL语言给等待函数编程KRL可为时间等待函数和信号等待函数编程。n 时间等待函数在过程可以继续运行前,时间等待函数等待指定的时间(time)。(1)时间等待函数指令格式(2)时间等待函数编程1)时间等待函数的单位为s。WAIT SEC timen 13.5 用KRL语言给等待函数编程2)最长时间为2147484s,相当于24天多。3)时间值也可用一个合适的变量来确定。4)最短
2、的有意义的时间单元是0.012s(插补(IPO)节拍)。5)时间等待函数触发预进停止,因此无法轨迹逼近。6)为了直接生成预进停止,可使用指令WAIT SEC 0。SPTP P1 Vel=100%PDAT1SPTP P2 Vel=100%PDAT2WAIT SEC 5.25SPTP P3 Vel=100%PDAT3(3)时间等待函数编程示例 1)具有固定时间的时间等待函数。n 13.5 用KRL语言给等待函数编程上述示例运行轨迹如下图所示,在点P2处中断运动5.25s。n 13.5 用KRL语言给等待函数编程2)具有计算出时间的时间等待函数。3)具有变量的时间等待函数。WAIT SEC 3*0.
3、25 DECL REAL timetime=12.75WAIT SEC timen 13.5 用KRL语言给等待函数编程n 信号等待函数信号等待函数在满足条件(condition)时才切换到继续进程,使过程得以继续。(1)信号等待函数指令格式(2)信号等待函数原理1)信号等待函数触发预进停止,因此无法轨迹逼近。2)尽管已满足了条件,仍生成预进停止。3)用指令CONTINUE可阻止预进停止。WAIT FOR condition 带预进的逻辑运动示例n 13.5 用KRL语言给等待函数编程带预进的逻辑运动及说明如下图和下表所示。n 13.5 用KRL语言给等待函数编程(3)给信号等待函数编程示例1
4、)带预进停止的WAIT FOR。如下图和下表所示。SPTP P1 Vel=100%PDAT1SPTP P2 CONT Vel=100%PDAT2WAIT FOR$IN20=TRUESPTP P3 Vel=100%PDAT3 位置位置备注备注1运动在 P2 点中断。精确暂停后对输入端 20 进行检查。如果输入端状态正确,则可直接继续运行,否则会等待正确状态。n 13.5 用KRL语言给等待函数编程2)在预进过程中加工的WAIT FOR(使用CONTINUE)。如下图和下表所示。SPTP P1 Vel=100%PDAT1SPTP P2 CONT Vel=100%PDAT2 CONTINUEWAIT
5、 FOR($IN10 OR$IN20)SPTP P3 Vel=100%PDAT3 输入输出的设置是为了机器人与外设设备的通讯(例如工具,传感器等。)n 逻辑编程Outputs:$OUT1$OUT4096Inputs:$OUT1$OUT4096$IN102=TRUE$IN103=False机器人控制柜外围设备n 可用逻辑指令下列逻辑指令可以被选择:时间等待功能时间等待功能信号相关等待功能信号相关等待功能开关功能开关功能注意:时间和信号等待功能以及单独开关,脉冲输出都会使前置判断停止注意:时间和信号等待功能以及单独开关,脉冲输出都会使前置判断停止n 等待时间逻辑指令(WAIT)如果选择“WAIT”
6、指令,等待时间可以被指定。这条命令会打断前置判断,即使等待时间是0秒。等待时间,=0,单位:秒(s)SPTP P1 Vel=100%PDAT1 Tool1 Base1SPTP P2 Vel=100%PDAT2 Tool1 Base1WAIT Time=2 secSPTP P3 Vel=100%PDAT3 Tool1 Base1 运动在P2点中断2sn 等待信号功能指令(WAIT FOR)如果“WAIT FOR”指令被选择,那么以下参数可以被设置:n 等待信号功能指令(WAIT FOR)如果“WAIT FOR”指令被选择,那么以下参数可以被设置:No.值值说明说明1“”插入一个外部逻辑运算(例如
7、:WAIT FOR(IN1)AND(IN2)“NOT”布尔表达式取反2“”插入一个内部逻辑运算(例如:WAIT FOR(IN1)AND(IN2)“NOT”布尔表达式取反3IN,OUT,TIMER,FLAG,CYCFLAG,user variable输入/输出,标志位。计时器,用户自定义的名字。41-4096输入/输出,标志位,计时器的编号5“”Existing long text name当系统处于专家模式时,编辑长文本名字(类似于注释)6“”不采用前置判断“CONT”采用前置判断n 等待信号功能指令(WAIT FOR)WAIT FOR(IN1 OR IN2 OR IN3)AND(NOT OU
8、T1 OR OUT2)OR NOT(IN4)内部逻辑运算:运算表达式要写在括号里外部逻辑运算:运算表达式写在两个括号之间.混合的逻辑运算是允许的,一条命令最多可以有12个操作符等待条件可以编写,例如以下的常用形式:n等待信号功能指令(WAIT FOR)如果WAIT FOR命令采用打断前置判断的形式,每一个点都会精确到达即使条件已经满足Example:PTP P1 VEL=100%PDAT1PTP P2 CONT VEL=100%PDAT2WAIT FOR IN 1 PTP P3 VEL=100%PDAT3P1P2P3运动会被中断直到INPUT1 被置位不采用前置判断n 等待信号功能指令(WAI
9、T FOR)如果WAIT FOR命令选择CONT模式,那么条件将会被前置判断,如果条件满足,那么就会采用逼近方式Example:PTP P1 VEL=100%PDAT1PTP P2 CONT VEL=100%PDAT2WAIT FOR IN 1 CONT PTP P3 VEL=100%PDAT3P1P2P3可能检查INPUT1采用前置判断=前置判断随后信号的变化将不再被关注n 输出功能以下功能按想键可以被选择:与路径相关的脉冲功能与路径相关的开关功能简单脉冲功能简单开关功能n 简单输出指令(OUT)如果“OUT”指令被选择,那么以下参数可以被设置:OUTPUT的开关状态TRUEFALSE3OU
10、TPUT编号1-40961不采用前置判断采用前置判断“”“CONT”4当系统处于专家模式时,编辑长文本名字(类似于注释)“”Existing long text name2RemarksValuesBox1234n 简单输出指令(OUT)Example:LIN P1 VEL=0.2 m/s PDAT1LIN P2 CONT VEL=0.2 m/s PDAT2LIN P3 CONT VEL=0.2 m/s PDAT3LIN P4 VEL=0.2 m/s PDAT4OUT 1 State=TRUEP1P2P3P4Output 1 在P3点会被置位P3精确到达,因为没采用前置判断n 简单输出指令(O
11、UT)Example:LIN P1 VEL=0.2 m/s PDAT1LIN P2 CONT VEL=0.2 m/s PDAT2LIN P3 CONT VEL=0.2 m/s PDAT3LIN P4 VEL=0.2 m/s PDAT4OUT 1 State=TRUE CONTP1P2P3P4可能在这个点OUTPUT1就被置位了,因为采用了前置判断P3点是逼近运动n 简单脉冲指令(PULSE)如果“PULSE”指令被选择,那么以下参数可以被设置:23451不采用前置判断采用前置判断“”“CONT”4OUTPUT的开关状态TRUEFALSE3Output 编号1-40961脉宽 单位:秒0.1 3
12、 5当系统处于专家模式时,编辑长文本名字(类似于注释)“”Existing long text name2RemarksValuesBoxn简单脉冲指令(PULSE)“高电平脉冲”:STATE=TRUE01TimeOUT 1Time01TimeOUT 1Time“低电平脉冲”:STATE=FALSE同步输出指令(基于 PTP,LIN,CIRC)可以与开始和结束点相关联而触发这些应用包括:在点焊时开关焊枪 在弧焊时起弧或断弧 在涂胶时关闭或打开胶枪.n同步输出指令“SYN OUT”n 在路径的开始或者结束处输出信号如果“OUT”指令被选择,那么以下参数可以被设置:(基于START or END)
13、12345基于起点还是结束点“START”“END”4OUTPUT的开关状态TRUEFALSE3Output 编号1-40961开关动作延时(单位 ms)-1000 +10005当系统处于专家模式时,编辑长文本名字(类似于注释)“”Existing long text name2RemarksValuesBoxn 在路径的开始或者结束处输出信号Example:LIN P1 VEL=0.3 m/s CPDAT1LIN P2 VEL=0.3 m/s CPDAT2SYN OUT 1 State=TRUE at START Delay=20 msSYN OUT 2 State=TRUE at END
14、Delay=-20 msLIN P3 VEL=0.3 m/s CPDAT3LIN P4 VEL=0.3 m/s CPDAT4P1P2P3P4+-起始点终点起始点和终点都是精确到达的点:Switching limit*)*)触发限制:如果信号发送的位置超出该限制位,控制器会自动调整成在该限位上发送.n 在路径的开始或者结束处输出信号Example:LIN P1 VEL=0.3 m/s CPDAT1LIN P2 VEL=0.3 m/s CPDAT2SYN OUT 1 State=TRUE at START Delay=20 msSYN OUT 2 State=TRUE at END Delay=-
15、20 msLIN P3 CONT VEL=0.3 m/s CPDAT3LIN P4 VEL=0.3 m/s CPDAT4P1P2P3P4+-+起始点终点起点是精确到达点,终点是逼近点:逼近范围的中心continuen 在路径的开始或者结束处输出信号Example:LIN P1 VEL=0.3 m/s CPDAT1LIN P2 CONT VEL=0.3 m/s CPDAT2SYN OUT 1 State=TRUE at START Delay=20 msSYN OUT 2 State=TRUE at END Delay=-20 msLIN P3 CONT VEL=0.3 m/s CPDAT3LI
16、N P4 VEL=0.3 m/s CPDAT4P1P2P3P4+-+起始点终点逼近范围的中心起点和终点都是逼近点:n 在路径任意位置输出信号 如果你使用路径相关的SYNOUT-PATH命令,你可以沿着程序路径上的指定距离的任意点触发开关量。和起始结束点相关同步指令一样,这种指令也可以提前或者延迟发送信号.路径相关的开关量控制只是被允许用在连续路径运动中(LIN or CIRC).SYNOUT-PATH 指令是针对下一个运动指令而言的。如果一个 SYNOUT-PATH 命令运用于一个PTP运动,那么当运动执行时会被软件拒绝。6n 路径相关同步输出指令如果“OUT”指令被选择,那么以下参数可以被设
17、置:(基于PATH)12345从结束点见到开关量动作开始点距离(i单位:mm)-2000 +20005基于路径“PATH”4OUTPUT的开关状态TRUEFALSE3Output 编号1-40961开关动作延时(单位:ms)-1000 +10006当系统处于专家模式时,编辑长文本名字(类似于注释)“”Existing long text name2RemarksValuesBoxn 路径相关同步输出指令Example:LIN P1 VEL=0.3 m/s CPDAT1SYN OUT 1 State=TRUE PATH=20 mm Delay=-5 msLIN P2 CONT VEL=0.3 m
18、/s CPDAT2LIN P3 CONT VEL=0.3 m/s CPDAT3LIN P4 VEL=0.3 m/s CPDAT4P1P2P3P4+-20 mm-+-5 ms结束点起始点是精确到达点,结束点是逼近点:n 路径相关同步输出指令Example:LIN P1 CONT VEL=0.3 m/s CPDAT1SYN OUT 1 State=TRUE PATH=20 mm Delay=-5 msLIN P2 CONT VEL=0.3 m/s CPDAT2LIN P3 CONT VEL=0.3 m/s CPDAT3LIN P4 VEL=0.3 m/s CPDAT4P1P2P4+-20 mmP3-+-5 ms结束点起始点和结束点都是逼近点:n 同步脉冲指令如果“SYN PULSE”指令被选择,那么以下参数可以被设置:状态输出点触发方式时间脉宽01TimeOUT 1Time01TimeOUT 1Time距离长文本n Interbus 部分耦合与解耦如果指令“IBUS-Seg.on/off”被选择,那么以下参数可以被设置:耦合/解耦3.0Bus terminal 3(fixed to the tool)2.02.12.21.01.11.2Bus terminal 1 Bus terminal 2