跳转至

GTN_SetGroupLookAheadFunc

指令原型:

GT_API GTN_SetGroupLookAheadFunc(short core,short group,short mode,void *pLookAheadFunc,TListInfo *pListInfo)

指令类型:

group指令。

指令说明:

设置前瞻模块相关功能的参数。

指令参数说明:

core 核号,正整数,取值范围请参照核号参数范围一栏。
group group号,正整数,取值范围请参照group号参数范围一栏。
mode 模式:前瞻功能。
LA_FUNC_MODE_DV_MAX_LIMIT(1):设置dvMax约束的相关参数。
LA_FUNC_MODE_SOFTLIMIT_CHECK(2):设置软限位检测参数。
LA_FUNC_MODE_DV_MAX_THRESHOLD(3): 设置dvmax约束的阈值。
pLookAheadFunc 对应各前瞻功能的参数结构体指针。
当mode为LA_FUNC_MODE_DV_MAX_LIMIT(1),约束dvMax的参数结构体。
详情说明请参照TGroupDvMaxLimit
TGroupDvMaxLimit
typedef struct GroupDvMaxLimit
{
    short type;
    short optMode;
}TGroupDvMaxLimit;
type:约束模式,参数范围:[0,1]。0模式用于保持兼容,建议使用1模式。
0: 老约束模式。
1:新约束模式。
optMode:轴约束优化模式,参数范围:[0,2]。
0:dvMax对所有段的终点速度约束都生效。
1:不建议使用。
2:dvMax除了约束终点速度,还会对目标速度进行约束。避免当dvMax设置的比较低时,
出现不断加减速导致加工抖动的问题。
当mode为LA_FUNC_MODE_DV_MAX_THRESHOLD(3)时:
约束dvMax阈值。数据类型为double。
当mode为LA_FUNC_MODE_SOFTLIMIT_CHECK(2)时:
设置插补软限位检测功能是否生效。数据类型为short。
0:不进行软限位的检测。
1:会在插补段运动前提前检测到运动段有可能超过软限位,提前报错。
软限位超限的详细信息可以通过调用GTN_GetLookAheadErrorInfo读取。
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。

指令返回值:

请参照通用返回值说明

注意事项:

Example

TGroupDvMaxLimit groupDvMaxLimit;
groupDvMaxLimit.type = 1;
groupDvMaxLimit.optMode = 0;
rtn = GTN_SetGroupLookAheadFunc(1,1,LA_FUNC_MODE_DV_MAX_LIMIT,(void *)&groupDvMaxLimit);

double dvMaxThreshold=0.5;
rtn = GTN_SetGroupLookAheadFunc(1,1,LA_FUNC_MODE_DV_MAX_THRESHOLD,(void *)&dvMaxThreshold);

short axisSoftLimitCheck=1;
rtn = GTN_SetGroupLookAheadFunc(1,1,LA_FUNC_MODE_SOFTLIMIT_CHECK,(void *)&axisSoftLimitCheck);