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命令使用三维花键函数独立计算指定各点的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,使起点和终点平滑顺畅地连接。