跳转至

GTN_ScanArcMotionPro

指令原型:

GT_API GTN_ScanArcMotionPro(short core,short scanCrd,short motionMode,TScanArcMotionPro *pPrm,TListInfo *pListInfo)

指令类型:

指令流指令。

指令说明:

振镜圆弧圆心描述方式运动指令。

指令参数说明:

core 核号,正整数,取值范围请参照核号参数范围一栏。
scanCrd 振镜插补坐标系索引,正整数,取值范围请参照振镜坐标系序号参数范围一栏。
motionMode 振镜圆弧运动模式,仅支持开激光的模式,取值范围如下:
SCAN_MOTION_MODE_MARK(5):MARK模式。
SCAN_MOTION_MODE_MARK_TIME(6):MARK_TIME模式。
pPrm 振镜圆弧运动圆心描述方式参数结构体指针。详情说明请参照TScanArcMotionPro
TScanArcMotionPro
ypedef struct
{
    double endPos[3];
    double centerPos[3];
    short circleDir;
    short pad[3];
    TScanMotionPrmUnionPro motionPrm;
}TScanArcMotionPro;
endPos:振镜圆弧运动终点坐标值。
centerPos:振镜圆弧运动圆心点相对于起点位置的偏移量。
circleDir:振镜圆弧运动圆弧方向。
INTERPOLATION_CIRCLE_DIR_CW(0):顺时针圆弧。
INTERPOLATION_CIRCLE_DIR_CW(1):逆时针圆弧。
pad:保留值,必须为0。
motionPrm:振镜运动参数联合体。详情说明请参照TScanMotionPrmUnionPro
TScanMotionPrmUnionPro
typedef union
{
    TVelModePro velMode;
    TTimeModePro timeMode;
    TVelPointModePro velPointMode;
    TTimePointModePro timePointMode;
    double data[8];
}TScanMotionoPrmUnionPro;
velMode:速度模式参数结构体。详情说明请参照TVelModePro
TVelModePro
typedef struct
{
    double acc;
    double dec;
    double vel;
}TVelModePro;
acc:加速度,单位:pulse/ms^2。
dec:减速度,单位:pulse/ms^2。
vel:速度,单位:pulse/ms,取值范围:(0, 32767]。
timeMode:时间模式参数结构体。详情说明请参照TTimeModePro
TTimeModePro
typedef struct
{
    double acc;
    double dec;
    unsigned long time;
    long pad;
}TTimeModePro; 
acc:加速度,单位:pulse/ms^2。
dec:减速度,单位:pulse/ms^2。
time:运动时间,单位:μs,取值范围:[1, 65535]。
pad:保留参数,必须为0。
velPointMode:速度打点模式参数结构体。详情说明请参照TVelPointModePro
TVelPointModePro
typedef struct
{
    double acc;
    double dec;
    double vel;
    unsigned long motionDelayTime;
    unsigned long laserDelayTime;
}TVelPointModePro; 
acc:加速度,单位:pulse/ms^2。
dec:减速度,单位:pulse/ms^2。
vel:速度,单位:pulse/ms,取值范围:(0, 32767]。
motionDelayTime:运动延时时间,单位:μs,取值范围:[32, 2147483646]。
laserDelayTime:激光延时时间,单位:μs,取值范围:[32, 2147483646]。
timePointMode:时间打点模式参数结构体。详情说明请参照TTimePointModePro
TTimePointModePro
typedef struct
{
    double acc;
    double dec;
    unsigned long time;
    unsigned long motionDelayTime;
    unsigned long laserDelayTime;
    long pad;
} TTimePointModePro; 
acc:加速度,单位:pulse/ms^2。
dec:减速度,单位:pulse/ms^2。
time:运动时间,单位:μs,取值范围:[1, 65535]。
motionDelayTime:运动延时时间,单位:μs,取值范围:[32, 2147483646]。
laserDelayTime:激光延时时间,单位:μs,取值范围:[32, 2147483646]。
pad:保留参数,必须为0。
data:保留参数,必须为0。
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。

指令返回值:

请参照通用返回值说明

注意事项:

只有特定轴模块版本才支持振镜圆弧指令。