码垛程序一般常见语言说明
SPEED/SP 速度 ALWAYS
指定下一条动作命令的运动速度,若追加ALWAYS则此命令指定的速度值将持续到执行下一条SPEED命令为止。
程序速度通常以百分比(0.01%~100%)指定,也可以通过指定速度单位MM/S(毫米/秒)或MM/MIN(毫米/分)来指定绝对速度。
示例: SPEED 50 将下一条运动的速度指定为最大速度的50% SPEED 100 将下一条运动的速度指定为最大速度 SPEED 200 将下一条运动的速度指定为最大速度(速度超过100%时被看作为100%) SPEED 20MM/S ALWAYS 工具坐标系原点的速度被指定为20MM/S,直到它被另一SPEED命令改变。 SPEED 6000MM/MIN 将下一条运动中工具坐标系原点的速度被指定为6000MM/MIN SPEED 5S 设定下一条机器人运动的速度,使其在5S中到达
SPEED 100MM/S,50 指定下一条运动的速度。到达目标位姿所需时间长者优先 ACCURACY/ACCU 距离 ALWAYS
指定下一条动作命令中判断机器人位姿时的精度,若追加ALWAYS则此命令指定的精度值将持续到执行下一条ACCURACY命令为止。
其中参数距离的单位为毫米。
示例: ACCURACY 50 ALWAYS 将所有后继运动命令的精度范围设定为50毫米。 BREAK/BRE 暂停程序中的下一步骤的执行,直到当前机器人运动完成后再继续。
示例: …… LMOVE a BREAK SIGNAL 9
…… 上述命令当机器人移动到a点时,输出外部信号9为ON。如果去掉BREAK命令,则有可能机器人在向a点运动的过程中(未达到a点时),提前输出外部信号9。 JMOVE/JM 位姿变量
LMOVE/LM 位姿变量
移动机器人到指定位姿
JMOVE:机器人以关节插补动作移动
LMOVE:机器人以直线插补动作移动
示例: JMOVE #pick 以关节插补移动到关节位移值“#pick”描述的位姿。 LMOVE ref+place 以直线插补移动到复合变换值“ref+place” 描述的位姿 HOME/HO 原点位姿编号
以关节插补动作,移动至以HOME或HOME2定义的位姿处
示例:
HOME 以关节插补移动到用SETHOME命令设定的原点处。 HOME 2 以关节插补移动到用SET2HOME命令设定的第2原点处。 OPEN 夹紧编号
OPENI夹紧编号
输出夹紧打开信号,夹紧编号省略时,默认为1。
对于OPEN:不输出信号,要到下一动作开始时才输出信号
对于OPENI:a)如果机器人当前正在运动中,信号在运动结束后输出
B)如果机器人不在运动中,信号被立即输出。
CLOSE 夹紧编号
CLOSEI 夹紧编号
输出夹紧闭合信号,夹紧编号省略时,默认为1。
对于CLOSE:不输出信号,要到下一动作开始时才输出信号
对于CLOSEI:a)如果机器人当前正在运动中,信号在运动结束后输出
B)如果机器人不在运动中,信号被立即输出。
GOTO 标签 IF 条件
跳转到带指定标签(不是步骤编号)的程序步骤处。标签为0至32767之间的任意整数
示例: GOTO 100 无条件跳转到标签100处,若无标签100,则报错。 GOTO 100 IF n==3 当变量n等于3时,程序跳转到标签100处,如果不等于3,则执行下一步骤,,若无标签100,则报错。 IF 条件 GOTO 标签
当给定的条件满足时,跳转到带指定标签(不是步骤编号)的程序步骤处。
示例: IF n==3 GOTO 100 当变量n等于3时,程序跳转到标签100处,如果不等于3,则执行下一步骤,,若无标签100,则报错。 IF flag GOTO 200 当变量flag不等于0时,程序跳转到标签200处,否则执行下一步骤,,若无标签200,则报错。
CALL 程序名
暂停当前程序的执行,并跳转到一个新的程序。且当心程序执行完后自动返回并继续执行CALL命令后的程序步骤。
示例: CALL sub1 跳入名为sub1de子程序,当执行到子程序中的RETURN命令时,返回原来的程序并执行CALL后面的程序。 RETURNE
结束子程序的执行,并返回到子程序的调用程序中的CALL命令的下一步(如果该子程序不是被其他程序调用的,则程序结束)。
TWAIT 时间
暂停程序的执行,直到指定的时间流逝,单位:秒。
示例: TWAIT 0.5 等待0.5秒 TWAIT deltat 等待变量deltat设置的时间 IF 逻辑表达式 THEN
程序命令(1)
ELSE
程序命令(2)
END
如果逻辑表达式为真,则执行程序命令(1);如果逻辑表达式为假,则执行程序命令(2)
示例: IF n〉5 THEN sp=10 ELSE sp=20 END 如果变量n大于5,则将10赋值给变量sp,否则将20赋值给变量sp。 *逻辑表达式可以是逻辑表达式或实数表达式,测试该值为真(/非0)或假(0),例
如: IF SIG(1001) THEN 程序命令 END 如果外部输入信号1001为ON,则执行随后的程序命令。 IF SIG(1001,1002)==TRUE THEN 程序命令 END 如果外部输入信号1001和1002都为ON,则执行随后的程序命令。 IF m THEN 程序命令 END 如果m的值不为0,则执行随后的程序命令。
FOR 循环变量=起始值 TO 结束值 STEP 步进值
程序命令
END
此程序将重复执行位于FOR和END语句之间的程序命令,在每次循环执行之后,循环变量增加给定的步进值(默认为1),并与结束值进行比较,若不等于结束值则继续循环,知道与结束值相等时跳出循环。该结构多用于已知循环次数的循环中。
示例: FOR n=1 TO 10 …… LMOVE a [n] …… END 机器人将从数组变量a [1],a [2],a [3],……依次移动到数组变量a [10]所描述的位
姿。
CASE 索引变量 OF
VALUE 情况值1,……:
程序命令
VALUE 情况值2,……:
程序命令
……
VALUE 情况值n,……:
程序命令
ANY
程序命令
END
该命令使程序从多个命令组中选择需要执行的命令组并执行。在码垛程序中主要用于对同一层中不同位置的工件的位姿进行赋值。
示例: 例如假设每层3个工件,程序如下:
…… CASE n OF VALUE 0: POINT putb[a] = SHIFT(put BY 0,0,2*b) VALUE 1: POINT putb[a] = SHIFT(put BY -343.5,0,2*b) VALUE 2: POINT putb[a] = SHIFT(put BY -5,0,2*b) END …… 上述程序通过对变量n取不同的值,从而实现对同一层不同位置的三个工件的位姿的数组变量putb[a]进行赋值,当变量a,b与n具备一定逻辑关系时,即可以批量对不同位置工件的位姿变量putb[a]进行赋值。 SIGNAL/SIG 信号编号,……
开启或关闭指定的外部信号或内部信号。
示例: SIGNAL -1,reset,2010 外部输出信号1为OFF,如果变量reset的值为正值,由那个值决定的输出信号为ON,内部信号2010为ON。 PULSE/PU 信号编号,时间
开启指定的信号维持给定的时间长度。若省略时间,默认为0.2秒。 示例: PULSE 1,0.5 外部输出信号1为ON,时间为0.5秒 SWAIT/SW 信号编号,……
在指定的外部信号或内部信号满足条件之前,一直等待。
示例: SWAIT 1001,-2001 在外部输入信号1001为ON内部信号2001为OFF之前,暂停程序继续执行。 TYPE/TY 设备编号:打印数据,……
在终端上显示参数中指定的打印数据。其中设备编号1:为个人计算机 2:为示教器。未指定则表示当前设备。
示例: …… TIMER1=0 对计时器1初始化 …… 中间动作步骤程序 TYPE TIMER(1) 显示计时器时间 …… 通过上述命令即可以实现对机器人运动进行计时。 HERE 位姿变量
以当前的位姿定义一个位姿变量。位姿变量可以是变换值、关节位移值或复合变换值。
示例: HERE place 定义机器人的当前位姿为place(变换值) POINT/PO 位姿变量1=位姿变量2,关节位移值变量
POINT/Z变换值变量1=变换值变量2
将“=”右边的变量2或Z轴分量赋值给“=”左边的变量1或对应的分量
示例: POINT pick1=pick POINT pos0=#pos0 pos0。 POINT/Z temp=tempz 的Z分量 …… HERE tt POINT/Z tt = gen LM tt HOME …… 将pick的变换值赋值给pick1的变换值变量。 将关节位移值变量#pos0转换成变换值并赋值给变量 将变换值tempz中的Z分量赋值给变换值temp中将当前位姿定义为tt 将变换值变量gen的Z分量赋值给tt的Z分量 移动到tt点 返回HOME点
上述命令可以在码垛实例中,若程序意外中断后恢复运行时,将机器人手臂在任意位置先移动到安全位置,再返回原点。 SHIFT(变换值变量 BY X平移量,Y平移量,Z平移量)
返回将参数变换值变量描述的位姿沿着个基础坐标轴(X,Y,Z)平移指定的距离而得到的位姿的变换值。
示例: POINT y=SHIFT(X BY 5,-5,10) 如果X的变换值为(200,150,100,10,20,30),那么y的变换值将被赋值为(205,145 ,110,10,20,30) DECOMPOSE 数组变量[元素符号]=位姿变量
将指定的位姿变量值得每个分量存储到一个数组变量的各个元素中。
示例: DECOMPOSE po[0]=#part POINT #pu= #PPOINT(po[0],po[1]-10,po[2]/2,po[3]+10, po[4],0) 如果#part的值为(10,20,30,40,50,60),那么:
po[0]=10 po[1]=20 po[2]=30 po[3]=40 po[4]=50 po[5]=60 #pu的值为(10,10,15,40,50,0) WEIGHT 负荷质量,重心位置X,重心位置Y,重心位置Z,绕X轴的惯性力矩,绕Y轴的惯性力矩,绕Z轴的惯性力矩
设定负荷的质量数据。
a.负荷质量指工具和工件的总质量,单位为KG
b.重心位置X、重心位置Y、重心位置Z分别指工具坐标系中x,y,z的值。
c.实际使用中,若未指定有关参数,将以该型号机器人最大负载能力作为默认值来确定手臂的最佳加速度/减速度。
TIMER(计时器编号)
以秒为单位返回指定计时的值。计时器允许编号为0~10。(编号0的计时用作系统计时,返回系统启动后的时间)
示例: …… TIMER(1)=0 对计时器1初始化
CALL test 调用子程序 TYPE TIMER(1) 显示计时器时间 (即子程序test的运行时间) …… 通过上述命令即可以实现对机器人运动进行计时。 DZ(变换值变量)
返回指定位姿的变换值的Z分量。
示例: zpic = DZ(pic) 如果pic的变换值为(5,10,15,20,25,30),那么 Zpic=15 AVE_TRANS(变换值变量1,变换值变量2)
返回两个变换值的平均值。(对于XYZ分量,平均值为各分量分别相加并除以2而得到。对于OAT分量,不能用这种方式获得。)
示例:
POINT put00 = AVE_TRANS(put,pic) 如果pic的变换值为(5,10,15,0,0,0) put的变换值为(15,20,25,0,0,0),那麽 put00的变换值为(10,15,20,0,0,0) 运算符
MOD 求余数
INT(数值表达式) 返回指定数值表达式的整数值
示例: counta = 0 设定count的初始值为0 10 设定标签 a= counta/10 如果每层10个工件,求a值(层数) b = INT(a) 对a取整,求层数 c = b MOD 2 计算奇偶层,c为0时为奇数层,c为1时为偶数层
d =counta MOD 10 计算每层工件的位置。d为0时是第1个,d 为1时是第2个,…… …… 各种应用程序 counta = counta+1 对counta加1后从新赋值 IF counta<80 THEN 假设每跺共80个工件,设定counta的上限值 GOTO 10 如果counta小于80,返回标签进行下一组循环 ELSE counta = 0 循环结束,恢复counta初始值 END 上述程序为一般请况下码垛程序的位姿计算程序实例,该实例中假设每跺80个工件,每层10个,通过上述计算再结合其他命令可以对每个工件的位姿进行赋值,同时通过c值的不同还可以对奇偶层加以区别,设定不同的码放方式。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- azee.cn 版权所有 赣ICP备2024042794号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务