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。
|
指令返回值:
请参照通用返回值说明。
注意事项: