跳转至

GTN_EllipseEx

指令原型:

GT_API GTN_EllipseEx(short core, short crd, TEllipseParameter *pEllipse, double synVel, double synAcc, double velEnd, long segNum, short fifo)

指令类型:

插补缓冲区指令。

指令说明:

椭圆插补指令。

指令参数说明:

core 核号,正整数,取值范围请参照核号参数范围一栏。
crd 插补坐标系号,正整数,取值范围请参照插补坐标系号参数范围一栏。
pEllipse 椭圆插补参数结构体指针。详情说明请参照TEllipseParameter
TEllipseParameter
typedef struct
{
    double endPoint[INTERPOLATIONN_AXIS_MAX];
    short plane;
    short dir;
    short overrideSelect;
    short mode;
    TEllipseParameterUnion data;
}TEllipseParameter;
endPoint:椭圆插补终点位置。
INTERPOLATIONN_AXIS_MAX(8):插补坐标系最大维数。
plane:椭圆平面选择。
INTERPOLATIONN_CIRCLE_PLAT_XY(0):XY平面椭圆。
INTERPOLATIONN_CIRCLE_PLAT_YZ(1):YZ平面椭圆。
INTERPOLATIONN_CIRCLE_PLAT_ZX(2):ZX平面椭圆。
dir:圆方向。
INTERPOLATIONN_CIRCLE_DIR_CW(0):顺时针。
INTERPOLATIONN_CIRCLE_DIR_CCW(1):逆时针。
overrideSelect:倍率选择,0:第一组倍率,1:第二组倍率。
mode:椭圆描述方式。
ELLIPSE_MODE_AUX_POINT(0):辅助点描述模式。
ELLIPSE_MODE_STANDARD(1):标准描述模式。
data:椭圆描述参数。详情说明请参照TEllipseParameterUnion
TEllipseParameterUnion
typedef union
{
    TEllipseAuxPoint auxPoint;
    TEllipseStandard standard;
    double reserve[60];
}TEllipseParameterUnion;
auxPoint:椭圆辅助点描述模式参数。详情说明请参照TEllipseAuxPoint
TEllipseAuxPoint
typedef struct
{
    double pos[ELLIPSE_AUX_POINT_COUNT][ INTERPOLATIONN_AXIS_MAX];
} TEllipseAuxPoint;
pos:椭圆上辅助点位置坐标,单位:pulse。
ELLIPSE_AUX_POINT_COUNT(5):椭圆辅助点描述所需辅助点个数。
INTERPOLATIONN_AXIS_MAX(8):插补坐标系最大维数。
standard:椭圆标准描述模式参数。详情说明请参照TEllipseStandard
TEllipseStandard
typedef struct
{
    double centerPoint[INTERPOLATIONN_AXIS_MAX];
    double theta;
    double a;
    double b;
} TEllipseStandard;
centerPoint:椭圆圆心坐标。
INTERPOLATIONN_AXIS_MAX(8):插补坐标系最大维数。
theta:椭圆旋转角度。
a:椭圆长轴长度,单位:pulse。
b:椭圆短轴长度,单位:pulse。
reserve:保留参数,必须为0。
synVel 插补段的目标合成速度。取值范围:(0, 65536],单位:pulse/ms。
synAcc 插补段的合成加速度。取值范围:(0, 32767],单位:pulse/ms^2。
velEnd 插补段的终点速度。取值范围:[0, 32767],单位:pulse/ms。该值只有在没有使用前瞻预处理功能时才有意义,否则该值无效。默认值为:0。
segNum 用户段号。
fifo 插补缓存区序号。默认值为0,整数,取值范围请参照插补缓存区序号参数范围一栏。

指令返回值:

若返回值为1:
(1) 检查当前坐标系是否映射了相关轴。
(2) 检查是否向fifo1中传递数据,若是,则检查fifo0是否使用并运动,若运动,则返回错误。
(3) 检查相应的fifo是否已满。

其他返回值请参照通用返回值说明

指令示例:

注意事项: