详细介绍下载附件,frame目前支持1-SCARA方式,可以定制。
肯请大家提改进建议!
--------------------------------------------------
CONNFRAME
类型:同步运动指令
语法:CONNFRAME(frame,tablenum, viraxis0, viraxis1)
描述:将当前关节坐标系的目标位置与虚拟坐标系的位置关联;关节坐标系的运动最大速度受SPEED参数的限制;当关节轴告警等出错时,此运动会被CANCEL。当虚拟坐标系的位置超过范围时,此运动也会被CANCEL。
参数:
frame: 坐标系类型, 1- scara。
tablenum: 存储转换参数的TABLE位置,frame=1时,以此存放:第一个关节轴长度, 第二个关节轴长度, 第一个关节轴一圈脉冲数. 第二个关节轴一圈脉冲数。
viraxis0:虚拟坐标系第一个轴
viraxis1:虚拟坐标系第二个轴
FRAME描述:
Frame = 1,SCARA,如图,旋转轴为关节轴,末端对应位置为虚拟的位置。
坐标方向:当关节轴为0的位置时,虚拟轴的坐标为(l1+l2,0),如下所示。
举例:下面数据L1L2,360要根据实际的情况修改。UNITS(0),UNITS(1)=1,修改时也要调整程序。
L1=10’第一个关节轴长度
L2=10’第二个关节轴长度
BASE(6,7)
atype=0,0 ’设置为虚拟轴
TABLE(0,L1,L2,360,360) '参数存储在TABLE0开始的位置,电机一圈360个脉冲。
UNITS(6)=1000'此脉冲当量要提前设置,中途不能变化
UNITS(7)=1000'此脉冲当量要提前设置,中途不能变化
'提前设置好虚拟轴起始位置
DPOS(6)=L1*COS(dpos(0)*2*PI/360) + L2*COS(dpos(0)*2*PI/360+dpos(1)*2*PI/360)
DPOS(7)=L1*SIN(dpos(0)*2*PI/360) + L2*SIN(dpos(0)*2*PI/360+dpos(1)*2*PI/360)
BASE(0,1) '假设关节轴号是0/1
speed=100000,100000’设置关节轴的最高速度
CONNFRAME(1,0,6,7) '第6/7轴作为虚拟的XY轴,启动连接。
'第三步:运动虚拟轴
BASE(6,7)
MOVEABS(10,10) ‘关节轴会运动到 0,90的位置
CONNFRAME
类型:同步运动指令
语法:CONNFRAME(frame,tablenum, viraxis0, viraxis1,[…])
描述:将当前关节坐标系的目标位置与虚拟坐标系的位置关联;关节坐标系的运动最大速度受SPEED参数的限制。
当关节轴告警等出错时,此运动会被CANCEL。
不要在虚拟轴高速运动中CANCEL此运动,会引起轴高速运动中停止。
此命令LOAD时会自动修改虚拟轴的坐标,使得与关节轴一致,因此调用后需要WAIT LOADED后才开始运动。
参数:
frame: 坐标系类型, 1- scara,(如需针对特殊的机械手类型定制,请联系厂家)。
tablenum: 存储转换参数的TABLE位置,frame=1时,依次存放:第一个关节轴长度, 第二个关节轴长度, 第一个关节轴一圈脉冲数. 第二个关节轴一圈脉冲数。
viraxis0:虚拟坐标系第一个轴
viraxis1:虚拟坐标系第二个轴
[… ] 虚拟坐标系第N个轴,此运动轴可以是实际轴。
FRAME描述:(特殊的机械结构如需支持请联系厂家)
Frame = 1,SCARA,如图,旋转轴为关节轴,末端对应位置为虚拟的位置。
TABLE(tablenum, L1,L2, Pules1OneCircle, Pules2OneCircle[,Pules3OneCircle])
依次存放:
L1:第一个关节轴长度,
L2:第二个关节轴长度,
Pules1OneCircle:第一个关节轴一圈脉冲数.
Pules2OneCircle:第二个关节轴一圈脉冲数。
Pules3OneCircle:末端旋转轴W轴的一圈脉冲数,虚拟轴viraxis2的设置自动与此相同,此参数可选。
CONNFRAME(1,tablenum, viraxis0, viraxis1[,viraxis2])
viraxis0:虚拟X轴编号。
Viraxis1:虚拟Y轴编号。
Viraxis2:虚拟末端旋转轴编号,可选,不填时只做两个关节轴与XY的转换。
坐标方向:两个关节轴的0点时成一条直线,此时指向虚拟X轴的正向,当关节轴为0的位置时,虚拟轴的坐标为(l1+l2,0),两个关节轴的正向必须一致,如下所示。
当使用末端旋转轴W时,W的正向与关节轴一致。
举例:下面数据L1,L2,当量等要根据实际的情况修改。
L1=10’第一个关节轴长度
L2=10’第二个关节轴长度
BASE(0,1) '假设关节轴号是0/1
UNITS=10,10 ‘这里以度为单位
Dpos=0,0’设置关节轴的位置,此处要根据实际情况来修改。
BASE(6,7)
atype=0,0 ’设置为虚拟轴
TABLE(0,L1,L2,3600,3600) '参数存储在TABLE0开始的位置,电机一圈360个脉冲。
UNITS=1000,1000'此脉冲当量要提前设置,中途不能变化
BASE(0,1) '假设关节轴号是0/1
speed=10000,10000'设置关节轴的速度限制
accel=100000,100000'设置关节轴的加速度限制
CONNFRAME(1,0,6,7) '第6/7轴作为虚拟的XY轴,启动连接。
WAIT LOADED '等待运动加载,此时会自动调整虚拟轴的位置。
'第三步:运动虚拟轴
BASE(6,7)
MOVEABS(10,10) '关节轴会运动到 0,90的位置
Frame = 2,Delta,预留
Frame = 3,码垛,
TABLE(tablenum, LargeX,LargeZ, PulesLargeOneCircle, L1,L2, Pules1OneCircle, Pules2OneCircle,SmallX,SmallZ [,PulesSmallOneCircle])
依次存放:
LargeX:底座的水平方向偏移。
LargeZ:底座的垂直方向偏移。
PulesLargeOneCircle:底座轴一圈脉冲数。
L1: 大臂轴长度,
L2: 小臂轴长度,
Pules1OneCircle:大臂轴一圈脉冲数。
Pules2OneCircle:小臂轴一圈脉冲数。
SmallX:末端的水平偏移.
SmallZ:末端的垂直偏移,一般为负数,末端加工装时可改变这个参数。
PulesSmallOneCircle:末端轴的一圈脉冲数,虚拟轴viraxis3的当量设置自动与此相同,此参数可选。
CONNFRAME(3,tablenum, viraxis0, viraxis1,viraxis2[,viraxis3])
viraxis0:虚拟X轴编号。
Viraxis1:虚拟Y轴编号。
Viraxis2:虚拟Z轴编号。
Viraxis3:虚拟小旋转轴编号,可选,不填时只进行XYZ的转换,此时TABLE里面的对应数据也可以不填。
坐标零点方向:
底座:指向虚拟X轴的方向为0点,转向虚拟Y轴的方向为正。
大臂:垂直为0点,向下转为正。
小臂:水平为0点,向下转为正。
当使用末端小旋转轴W时,W的正向与大旋转轴一致,转向虚拟Y轴的方向为正。
举例:
BASE(0,1,2,3) '假设关节轴号是0/1/2/3
UNITS=10,10,10,10'度为单位
Dpos=0,0,0,0’设置关节轴的位置,此处要根据实际情况来修改。
BASE(6,7,8,9)
atype=0,0 ,0,0’设置为虚拟轴
TABLE(0,10,10,3600,100,100,3600,3600,10,-10,3600) '参数存储在TABLE0开始的位置,电机一圈3600个脉冲。
UNITS=1000,1000,1000,10'此脉冲当量要提前设置,中途不能变化
BASE(0,1,2,3) '关节轴号是0/1/2/3
speed=10000,10000,10000,10000'设置关节轴的速度限制
accel=100000,100000,100000,10000’设置关节轴的加速度限制
CONNFRAME(3,0,6,7,8,9) '第6/7/8/9轴作为虚拟的XYZW轴,启动连接。
WAIT LOADED '等待运动加载,此时会自动调整虚拟轴的位置。
'第三步:运动虚拟轴
BASE(6,7,8,9)
MOVEABS(100,100,100)
Frame = 100,5轴特殊类型,直角坐标加一垂直旋转和一个末端摆动旋转。
TABLE(tablenum, Lw, PulesVOneCircle, PulesWOneCircle)
依次存放:
Lw: 摆动轴长度,负数时表示Z的正向向下。
PulesVOneCircle:垂直旋转轴一圈脉冲数。
PulesWOneCircle:摆动旋转轴一圈脉冲数。
CONNFRAME(100,tablenum, viraxisx, viraxisy,viraxisz,viraxisv,viraxisw)
viraxisx:虚拟X轴编号。
viraxisy:虚拟Y轴编号。
viraxisz:虚拟Z轴编号。
viraxisv:垂直旋转轴编号,非虚拟轴。
viraxisw:摆动旋转轴编号,非虚拟轴。
零点方向:旋转轴的零点指向X正向,旋转正向指向Y轴正向。摆动轴零点向下,正向指向X正向。