Curve
为通过自由曲线进行CP控制而创建数据和点。定义多个点数据,正确设置路径。
格式
Curve 文件名, 打开/关闭动作曲线, 模式指定, 坐标轴数, 连续点数据指定
参数
- 文件名
- 以字符串指定保存点数据的文件名。扩展名固定为“CVT”。省略了扩展名时,将自动添加.CVT的扩展名。如果执行Curve命令,将创建文件。不能指定路径。另外,也不受ChDisk等的影响。详情请参阅ChDisk。
- 打开/关闭动作曲线
- 在曲线动作结束时,指定打开/关闭动作曲线。此参数指定以下几个值。
- C -要生成的曲线是闭曲线
- O -要生成的曲线是开曲线
- 如果指定开曲线,Curve命令将在连续点数据的最后的点上停止机械臂。如果指定为闭曲线,Curve命令即使通过最后的点也继续动作,并使机械臂返回连续点数据的起点后停止动作。
- 模式指定
- 指定是否进行姿势修正(机械臂是否自动向U轴的切线方向内插)。可以使用高可以使用前面4位指定ECP编号。
模式指定 姿势修正 ECP编号 16进制数 10进制数 &H00 0 不实施 0 &H10 16 1 &H20 32 2 … … … &HA0 160 10 &HB0 176 11 &HC0 192 12 &HD0 208 13 &HE0 224 14 &HF0 240 15 &H02 2 实施 0 &H12 18 1 &H22 34 2 … … … &HA2 162 10 &HB2 178 11 &HC2 194 12 &HD2 210 13 &HE2 226 14 &HF2 242 15 - 指定姿势修正时,机械臂仅使用连续点数据起点的U轴坐标。姿势修正将维持姿势轴在XY平面始终与曲线相切的姿势。在像切刀那样需要继续向切线方向实施控制的工具时进行指定。在向U轴的切线方向指定圆弧自动内插的闭曲线时,U轴将从起点开始旋转360度。因此,在执行CVMove命令之前,为防止U轴的旋转导致的错误,请通过Range命令指定U轴的动作范围。
如果使用ECP,请在前4位上指定ECP编号。
考虑到包括点数据的附加轴的位置,在生成自由曲线时,请将第9位指定为“1”。例如,不使用姿势修正和ECP,在生成考虑了附加轴位置的自由曲线时,指定“&H100”。
如果通过附加轴生成自由曲线,S关节和T关节将各自独立与连续点数据关联,而与机器人坐标系无关。
但是,附加轴由PG轴构成时,不能通过连续点生成自由曲线,将在最后的点上生成动作数据。 - 坐标轴数
- 以2、3、4、6的整数指定在曲线动作中控制的坐标轴数。
- 2 -在不包括姿势的XY平面上生成自由曲线。(垂直6轴型(包括N系列)以外)
- 3 -在不包括姿势的XYZ平面上生成自由曲线。(垂直6轴型(包括N系列)以外)
- 4 -在包括姿势的XYZ空间上生成自由曲线。(垂直6轴型(包括N系列)以外)
- 6 -在包括姿势的XYZ空间上生成自由曲线。(仅限垂直6轴型(包括N系列))
- 未在控制对象中选择的轴将保持上次编码器脉冲位置,并且在Curve动作过程中不进行动作。
- 连续点数据指定 { 点数据|点编号(开头:结尾)} [,输出命令] ...
- 用逗号(,)分隔指定此参数各自的点数据。点数据没有遗漏并按升序或降序排列时,可用冒号连接2个点编号进行指定,比如P(1:5)。
与动作同步在中途打开和关闭I/O的输出端口时,可以用逗号(,)分隔并记述输出命令。
连续点数据一般像下面那样用逗号分隔指定。Curve "MyFile", O, 0, 4, P1, P2, P3, P4
或者,像下面那样使用冒号指定。
Curve "MyFile", O, 0, 4, P(1:4)
在上例中,使用P1、P2、P3、P4指定曲线。输出命令可以省略,在曲线动作中控制输出操作时使用。此命令用于指定I/O或存储器I/O的ON/OFF。输出命令将在机械臂通过之前的连续点数据的特定点后执行。在1个Curve语句中可以包含的输出命令数最多为16个。在下例中,在机械臂通过P2后将执行“On2”命令,此后机械臂将通过P3~P10的所有点。
Curve "MyFile", C, 0, 4, P1, P2, ON 2, P(3:10)
说明
此命令将创建一个文件,以根据指定的点数据,使机器人机械臂进行自由曲线CP动作,并将其数据保存到控制器的文件中。根据此命令创建的数据将在根据CVMove命令执行CP动作时使用。
曲线文件被保存在控制器内的小型闪存卡中。如果执行Curve,则会向小型闪存卡执行写入操作。过于频繁地向小型闪存卡执行写入会影响到卡的使用寿命。建议只在需要时执行建议只在必要情况下执行Curve。
Curve命令使用三维花键函数独立计算指定各点的X、Y、Z、U、V、W坐标值,并据此生成轨迹。因此,如果点间的间隔过大或姿势变化大,生成的轨迹将很难估计。
动作时的速度和加减速度不需要在Curve命令前指定。在执行CVMove前,可以使用SpeedS和AccelS等命令进行变更。
如果在Curve命令参数的点群中使用在本地坐标系中设置的点,可以设置通过此位置的曲线。如果通过指定的点数据使其拥有本地属性,继Curve命令之后,可以变更Local语句的本地坐标系上的点。
注意
请尽量实施姿势修正
建议尽量实施姿势修正。特别是使用CVMove使相同点群连续循环时,请实施姿势修正。如果不实施姿势修正,特别是以高速使机器人动作时,可能无法保持正确的位置。
开曲线上的点群的点数范围
请在开曲线上指定3~1000个点。
闭曲线上的点群的点数范围
RC700、RC90系列的控制器,请对闭曲线指定3~1000点。
T/VT,请对闭曲线指定3~300点。(如果在模拟器上指定了T/VT,则最多可以工作到1000点,但在T/VT的实际机器环境中,最多可以工作到300点。)
点数多时处理时间将变长
如果以最大点数执行Curve命令,则开曲线需要几秒钟,而闭曲线则需要几十秒钟。
尤其是闭曲线需要较长的处理时间,因此,建议在点数较多时使用开曲线。
在Curve使用示例2中记载使用开曲线创建接近闭曲线的轨迹的使用示例。
但是,如果用Curve命令生成自由曲线文件,并对同一文件进行多次CVMove动作,则仅在执行Curve命令的这1次需花费上述的时间。
文件兼容性
使用Ver.7.5.1或更高版本固件创建的文件,不能用于较早版本的固件。但是,使用固件Ver.7.5.1 或更早版本创建的文件可以用于固件Ver.7.5.1或更高版本。
易引起的错误
想要使机械臂在移动范围外动作时
Curve命令无法在设置的曲线动作范围外进行检查。这意味着在机器人机械臂的动作过程中,以后设置的曲线轨迹可能会偏出移动范围外。这种情况下,将显示“动作范围外”错误。
点的间隔不均匀时
如果点间隔不均匀,则生成曲线的加速度可能会异常高。在这种情况下,可能会出现异常加速度错误。
将以下设置设为On,则可正常动作。
垂直6轴型机器人(包括N系列)、RS系列:AvoidSingularity SING_VSD
水平多关节机器人(不包括RS系列):VSD
参阅
AccelS函数、Arc、CVMove、ECP、Move、SpeedS
Curve使用示例1
在下例中,使用名为MYCURVE.CVT的自由曲线文件,跟踪通过P1~P7的曲线,在此期间通过P2打开输出端口并通过P7使机械臂减速。
设置自由曲线
> curve "mycurve", O, 0, 4, P1, P2, On 2, P(3:7)
以直线使机械臂向P1移动
> jump P1
以定义的自由曲线“mycurve”移动机械臂
> cvmove "mycurve"
Curve使用示例2
以下示例表示(1)开曲线、(2)闭曲线、(3)以开曲线执行接近闭曲线的动作。
示教点如下所示。
P0 = XY(0, 300, -50, 0)'起点、终点
P1 = XY(300, 200, -50, 0)
P2 = XY(300, 400, -50, 0)
P3 = XY(-300, 400, -50, 0)
P4 = XY(-300, 200, -50, 0)
P10 = XY(10, 299.7, -50, 0) '起点的后一个点
P11 = XY(-10, 299.7, -50, 0) '终点的前一个点
(1) 开曲线
设置开曲线的自由曲线
> Curve "mycurve_O", O, 0, 2, P(0:4), P0
使手臂沿直线向P0移动
> jump P0
使手臂沿定义的开曲线的自由曲线“mycurve_O”移动
> CVMove "mycurve_O"
由于是开曲线,起点和终点相同,但无法平滑顺畅地连接。
(2) 闭曲线
设置闭曲线的自由曲线
> Curve "mycurve_C", O, 0, 2, P(0:4)
使手臂沿直线向P0移动
> jump P0
使手臂沿定义的闭曲线的自由曲线“mycurve_C”移动
> CVMove "mycurve_C"
由于是闭曲线,起点与终点平滑连接。
(3) 以开曲线执行接近闭曲线的动作
设置开曲线的自由曲线。设置起点的后一个点和终点的前一个点。
> Curve "mycurve_O_mod", O, 0, 2, P0, P10, P(1:4), P11, P0
使手臂沿直线向P0移动
> jump P0
使手臂沿定义的开曲线的自由曲线“mycurve_O_mod”移动
> CVMove "mycurve_O_mod"
虽然是开曲线,但通过经过P10、P11,使起点和终点平滑顺畅地连接。