跳转至

GTN_MoveCircularAbsolute

指令原型:

GT_API GTN_MoveCircularAbsolute(short core,short group,double endPoint[]TCircularParameter *pCircularPrm,TGroupMoveParameter *pPrm,TListInfo *pListInfo)

指令类型:

group指令。

指令说明:

绝对位置模式的圆弧插补。

指令参数说明:

core 核号,正整数,取值范围请参照核号参数范围一栏。
group group号,正整数,取值范围请参照group号参数范围一栏。
endPoint 圆弧的终点位置。大小为8的数组,单位:mm或度。位置的意义通过 GTN_SetGroupCommandPosDefine指令指定。
pCircularPrm 圆弧参数结构体指针。详情说明请参照TCircularParameter
TCircularParameter
typedef struct CircularModeUnion
{
    short arcMode;
    short pad[3]; //对齐
    TCircularModeUnion data;
}TCircularParameter;
arcMode:圆弧描述模式。
CIRCULAR_MODE_PLANE_CENTER_DIR(0):终点+圆心+方向模式,只能用于描述平面圆弧。此模式下,需要给定圆弧插补平面,终点位置,圆心坐标,圆弧插补方向。
CIRCULAR_MODE_PLANE_RELATIVE_CENTER_DIR(5):终点+相对圆心+方向模式,只能用于描述平面圆弧。此模式下,需要给定圆弧插补平面,终点位置,圆心坐标,圆弧插补方向。
CIRCULAR_MODE_PLANE_RADIUS_DIR(1):终点+半径+方向,只能用于描述平面圆弧。此模式下,需要给定圆弧插补平面,终点位置,圆弧半径(大于0为劣弧,小于0为优弧),圆弧插补方向。
CIRCULAR_MODE_SPACE_BORDER(2):终点+中间辅助点模式,用于描述空间圆弧。此模式下,需要给定终点位置和圆弧中间的某个辅助点坐标。
CIRCULAR_MODE_SPACE_BORDER_FOUR(6):终点+中间辅助点+起点辅助点模式,用于描述空间圆弧。此模式下,需要给定终点位置,圆弧中间的某个辅助点位置,起点位置的信息,通过这三个点描述出圆弧的信息,其中,若起点位置和圆弧运动时真正的起点位置相同时,等同于CIRCULAR_MODE_SPACE_BORDER(2)模式,若起点位置不是圆弧运动时真正的起点位置时,则起点仅用于描述圆弧,圆弧运动可以不经过起点。
CIRCULAR_MODE_PLANE_CENTER_DIR_SPIRAL(10):终点+圆心+方向涡旋模式,用于描述涡旋线。此模式下,需要给定圆弧插补平面,终点位置,圆心坐标,圆弧插补方向。起点半径和终点半径不一样形成涡旋插补。
CIRCULAR_MODE_PLANE_RELATIVE_CENTER_DIR_SPIRAL(11):终点+相对圆心+方向涡旋模式,用于描述涡旋线。此模式下,需要给定圆弧插补平面,终点位置,圆心坐标,圆弧插补方向。起点半径和终点半径不一样形成涡旋插补。
pad:保留参数,必须为0。
data:不同圆弧描述模式参数联合体。详情说明请参照TCircularModeUnion
TCircularModeUnion
typedef union TCircularModeUnion
{
    TCircularPlaneCenterDirData centerDir;
    TCircularPlaneRadiusDirData radiusDir;
    TCircularSpaceBorderData spaceBorder;
    TCircularSpaceBorderFourData spaceBorderFour;
    TCircularPlaneCenterDirSpiralData spiral;
    double data[32];
} TCircularModeUnion;
centerDir:平面圆弧圆心+方向。详情说明请参照TCircularPlaneCenterDirData
TCircularPlaneCenterDirData
typedef struct TCircularPlaneCenterDirData
{
    short endPointMode;
    short arcPlane;
    short arcPathChoice;
    short pad; //对齐
    double centralAngle;
    double centerPoint[8];
}TCircularPlaneCenterDirData;
endPointMode:终点指定模式。
CIRCULAR_END_POINT_MODE_END_POINT(0):终点由终点位置指定。
CIRCULAR_END_POINT_MODE_CENTRAL_ANGLE(1):终点由圆心角指定。
arcPlane:圆弧插补平面/螺旋线插补平面。
CIRCULAR_PLANE_XY(0):XY平面圆弧。
CIRCULAR_PLANE_YZ(1):YZ平面圆弧。
CIRCULAR_PLANE_ZX(2):ZX平面圆弧。
CIRCULAR_PLANE_XY_HELIX(10):基于XY平面的螺旋线。
CIRCULAR_PLANE_YZ_HELIX(11):基于YZ平面的螺旋线。
CIRCULAR_PLANE_ZX_HELIX(12):基于ZX平面的螺旋线。
arcPathChoice:圆弧插补方向。
CIRCULAR_PATH_CHOICE_CW(0):顺时针。
CIRCULAR_PATH_CHOICE_CCW(1):逆时针。
centralAngle:圆心角,单位:度。当终点指定模式为CIRCULAR_END_POINT_MODE_CENTRAL_ANGLE(1)时需要指定。
centerPoint:圆弧的圆心点位置。单位:mm。

radiusDir:平面圆弧半径+方向模式的描述参数。详情说明请参照TCircularPlaneRadiusDirData
TCircularPlaneRadiusDirData
typedef struct TCircularPlaneRadiusDirData
{
    short endPointMode;
    short arcPlane;
    short arcPathChoice;
    short pad; //对齐
    double centralAngle;
    double arcRadius;
}TCircularPlaneRadiusDirData;
endPointMode:终点指定模式。
CIRCULAR_END_POINT_MODE_END_POINT(0):终点由终点位置指定。
CIRCULAR_END_POINT_MODE_CENTRAL_ANGLE(1):终点由圆心角指定。
arcPlane:圆弧插补平面/螺旋线插补平面。
CIRCULAR_PLANE_XY(0):XY平面圆弧。
CIRCULAR_PLANE_YZ(1):YZ平面圆弧。
CIRCULAR_PLANE_ZX(2):ZX平面圆弧。
CIRCULAR_PLANE_XY_HELIX(10):基于XY平面的螺旋线。
CIRCULAR_PLANE_YZ_HELIX(11):基于YZ平面的螺旋线。
CIRCULAR_PLANE_ZX_HELIX(12):基于ZX平面的螺旋线。
arcPathChoice:圆弧插补方向。
CIRCULAR_PATH_CHOICE_CW(0):顺时针。
CIRCULAR_PATH_CHOICE_CCW(1):逆时针。
pad:保留参数,必须为0。
centralAngle:圆心角,单位:度。当终点指定模式为CIRCULAR_END_POINT_MODE_CENTRAL_ANGLE(1)时需要指定。
arcRadius:圆弧半径。单位:mm。

spaceBorder:三点空间圆弧模式的描述参数。详情说明请参照TCircularSpaceBorderData
TCircularSpaceBorderData
typedef struct TCircularSpaceBorderData
{
    short endPointMode;
    short pad[3]; //对齐
    double centralAngle;
    double auxPoint[8];
}TCircularSpaceBorderData;
endPointMode:终点指定模式。
CIRCULAR_END_POINT_MODE_END_POINT(0):终点由终点位置指定。
CIRCULAR_END_POINT_MODE_CENTRAL_ANGLE(1):终点由圆心角指定。
pad:保留参数,必须为0。
centralAngle:圆心角,单位:度。当终点指定模式为CIRCULAR_END_POINT_MODE_CENTRAL_ANGLE(1)时需要指定。
auxPoint:圆弧的辅助点位置,表示圆弧上的某个点坐标。单位:mm。

spaceBorderFour:四点空间圆弧模式的描述参数。详情说明请参照TCircularSpaceBorderFourData
TCircularSpaceBorderFourData
typedef struct CircularSpaceBorderFourData
{
    short endPointMode;
    short auxPointCommandCoord;
    short auxPointOrientationMode;
    short auxPointConfigIndex;
    short auxStartPointCommandCoord;
    short auxStartPointOrientationMode;
    short auxStartPointConfigIndex;
    short pad;
    double centralAngle;
    double auxPoint[8];
    double auxStartPoint[8];
}TCircularSpaceBorderFourData;
endPointMode:终点指定模式。
CIRCULAR_END_POINT_MODE_END_POINT(0):终点由终点位置指定。
CIRCULAR_END_POINT_MODE_CENTRAL_ANGLE(1):终点由圆心角指定。
auxPointCommandCoord:中间点位置描述坐标系。
auxPointOrientationMode:中间点位置描述姿态。
auxPointConfigIndex:中间点构型解。
auxStartPointCommandCoord:辅助起点位置描述坐标系。
auxStartPointOrientationMode:辅助起点位置描述姿态。
auxStartPointConfigIndex:辅助起点构型解。
centralAngle:圆心角,单位:度。 当终点指定模式为CIRCULAR_END_POINT_MODE_CENTRAL_ANGLE(1)时需要指定。
auxPoint:圆弧的辅助点位置,表示圆弧上的某个点坐标。单位:mm。
auxStartPoint:圆弧的辅助起点位置,圆弧通过辅助起点,辅助点和终点确定,包括圆弧运动的方向,若起点位置和圆弧运动时真正的起点位置相同时,等同于CIRCULAR_MODE_SPACE_BORDER模式,若起点位置不是圆弧运动时真正的起点位置时,则辅助起点仅用于描述圆弧,圆弧运动可以不经过辅助起点。单位:mm。

spiral:涡旋线的描述参数。详情说明请参照TCircularPlaneCenterDirSpiralData
TCircularPlaneCenterDirSpiralData
typedef struct CircularPlaneCenterDirSpiralData
{
    short endPointMode;
    short arcPlane;
    short arcPathChoice;
    short periodCount;
    double centralAngle;
    double centerPoint[8];
    double periodDeltaRadius;
}TCircularPlaneCenterDirSpiralData;
endPointMode:终点指定模式。
CIRCULAR_END_POINT_MODE_END_POINT(0):终点由终点位置指定。
CIRCULAR_END_POINT_MODE_CENTRAL_ANGLE(1):终点由圆心角指定。
arcPlane:圆弧插补平面/螺旋线插补平面。
CIRCULAR_PLANE_XY(0):XY平面圆弧。
CIRCULAR_PLANE_YZ(1):YZ平面圆弧。
CIRCULAR_PLANE_ZX(2):ZX平面圆弧。
CIRCULAR_PLANE_XY_HELIX(10):基于XY平面的螺旋线。
CIRCULAR_PLANE_YZ_HELIX(11):基于YZ平面的螺旋线。
CIRCULAR_PLANE_ZX_HELIX(12):基于ZX平面的螺旋线。
arcPathChoice:圆弧插补方向。
CIRCULAR_PATH_CHOICE_CW(0):顺时针。
CIRCULAR_PATH_CHOICE_CCW(1):逆时针。
periodCount:圈数。范围:大于等于-1的整数。当periodCount为-1时,圈数由periodDeltaRadius决定,当圈数为0时,只运动一圈。注意:设置的圈数包含不到360度的那一圈。
centralAngle:圆心角,单位:度。当终点指定模式为CIRCULAR_END_POINT_MODE_CENTRAL_ANGLE(1)时需要指定。
centerPoint:圆弧的圆心点位置。单位:mm。 periodDeltaRadius:每转一圈半径的变化值,单位:mm,范围:大于0的值。根据起点半径和终点半径,可以自动计算出圈数。只有在periodCount为-1时生效。


pPrm 运动参数结构体指针。详情说明请参照TGroupMoveParameter
TGroupMoveParameter
typedef struct GroupMoveParameter
{
    double velocity;
    double acceleration;
    double reserve1[3];
    double deceleration;
    short overrideSelect;
    short endVelocityMode;
    short orientationDir;
    short reserve2[3];
    long reserve3[3];
} TGroupMoveParameter;
velocity:速度。当规划坐标系为COORD_SYSTEM_PCS或COORD_SYSTEM_MCS,且空间位置有运动量时,单位为mm/s。 当空间位置不动,只有姿态插补时,速度参数意义由纯姿态插补速度定义模式决定。当规划坐标系为COORD_SYSTEM_ACS时,速度参数意义为各个轴的合成速度。
acceleration:加速度。当规划坐标系为COORD_SYSTEM_PCS或COORD_SYSTEM_MCS,且空间位置有运动量时,单位为,单位mm/s2。 当空间位置不动,只有姿态插补时,加速度参数意义由纯姿态插补加速度定义模式决定。当规划坐标系为COORD_SYSTEM_ACS时,加速度参数意义为各个轴的合成加速度。
reserve1:保留参数,必须为0。
deceleration:减速度。当规划坐标系为COORD_SYSTEM_PCS或COORD_SYSTEM_MCS,且空间位置有运动量时,单位为,单位mm/s2。 当空间位置不动,只有姿态插补时,减速度参数意义由纯姿态插补减速度定义模式决定。当规划坐标系为COORD_SYSTEM_ACS时,减速度参数意义为各个轴的合成减速度。
overrideSelect:倍率选择,范围:[0,16],0表示不受倍率影响。
endVelocityMode:终点速度模式,范围:[0,1],0:前瞻使能时,终点速度由前瞻模块决定,1:终点速度为0。
orientationDir:姿态变化方向,范围:[0,1],0:短路径方向,1:长路径方向。
reserve2:位置有效轴掩码,0:所有轴的位置都生效,非0:按位生效, 对应指定位的轴的终点位置pos生效。
reserve3:起点位置模式,范围:[0,1],0:默认模式,1:执行到该指令时,根据当前的位置作为起点位置进行插补运动,仅在指令流模式下生效。
pListInfo 指令流信息结构体指针。详情说明请参照TListInfo
TListInfo
typedef struct  
{
    short list; 
    short reserve1[2];
    short modal;
    long segNum;
    long reserve2[3];
    double reserve3[4];
} TListInfo;
list:指令压入的指令流号,取值范围:[0, 4]。
当pListInfo为空或者list=0时,指令为立即指令,调用后立即生效。
当list>0时,指令为list指令,调用后被发送到指令流中,在启动指令流后顺序执行到该指令才生效。
modal:为1时表示阻塞指令流,等待当前指令完成。本指令不需要设置此参数。
segNum:指令段号,取值范围:[-2147483648, 2147483647]。
reserve1:保留参数,必须为0。
reserve2:保留参数,必须为0。
reserve3:保留参数,必须为0。

指令返回值:

请参照通用返回值说明

注意事项: