GTN_GetTask
指令原型:
GT_API GTN_SetTask(short core,short taskType,void *pTaskData,short taskIndex)
指令类型:
立即指令,调用后立即生效。
指令说明:
设置用户添加的Task任务的类型。
指令参数说明:
| core |
核号,正整数,取值范围请参照核号参数范围一栏。
|
| taskType |
任务的类型。
TASK_ADJUST_MOVE_JOG_ANGLE_VELOCITY:根据参考源的线速度,调整MoveJog轴(旋转轴)的角速度,
使参考源线速度保持恒定。
TASK_SAVE_MC_VAR:Event触发时锁存指定运动控制变量(编码器、规划器位置、IO值)。
TASK_SET_DO_BIT:按位设置DO。
TASK_SET_DAC:设置DAC。
TASK_STOP:运动停止。
TASK_UPDATE_POS:更新目标位置。
TASK_UPDATE_VEL:更新目标速度。
TASK_UPDATE_DISTANCE:更新捕获为实际捕获位置+用户设置的距离。
TASK_PT_START:启动PT运动。
TASK_PVT_START:启动PVT运动。
TASK_MOVE_ABSOLUTE:启动MoveAbsolute。
TASK_GEAR_START:启动Gear运动。
TASK_FOLLOW_START:启动Follow运动。
TASK_FOLLOW_SWITCH:启动Follow的FIFO切换。
TASK_CRD_START:启动插补坐标系运动。
TASK_CRD_OVERRIDE:设置插补坐标系倍率。
|
| pTaskData |
不同的任务对应不同的结构体,通过定义与事件对应的结构体变量的值,声明相应的事件。
(1) Event触发时锁存指定运动控制变量。
TTaskSaveMcVar
typedef struct
{
short count;
TWatchVar var[TASK_SAVE_MC_VAR_MAX];
}TTaskSaveMcVar;
count:该任务需要保存的运控变量个数。
var:该任务需要保存的运控变量信息结构体数组,数组大小为count。
TWatchVar
typedef struct
{
unsigned short type;
unsigned short index;
unsigned short id;
} TWatchVar;
type:Event事件监控的数据类型。
WATCH_VAR_CLOCK(1200):时钟,以ms为单位。
WATCH_VAR_PRF_LOOP(1201):时钟,以中断周期为单位。
WATCH_VAR_PRF_POS(6000):Profile规划器的位置。
WATCH_VAR_PRF_VEL(6001):Profile规划器的速度。
WATCH_VAR_PRF_ACC(6002):Profile规划器的加速度。
WATCH_VAR_PRF_RUN(6200):Profile规划器的运动状态。
WATCH_VAR_CRD_PRF_POS(8000):插补运动合成规划位置。
WATCH_VAR_CRD_PRF_VEL(8001):插补运动合成规划速度。
WATCH_VAR_CRD_PRF_ACC(8002):插补运动合成规划加速度。
WATCH_VAR_CRD_RUN(8200):插补运动状态。
WATCH_VAR_CRD_SEGMENT_NUMBER(8202):插补段号。
WATCH_VAR_CRD_SEGMENT_NUMBER_USER(8203):插补用户段号。
WATCH_VAR_CRD_COMMAND_RECEIVE(8204):插补接收指令。
WATCH_VAR_CRD_COMMAND_EXECUTE(8205):插补执行指令。
WATCH_VAR_SCAN_PRF_POS(18000):SCAN振镜合成的规划位置。
WATCH_VAR_SCAN_PRF_VEL(18001):SCAN振镜合成的规划速度。
WATCH_VAR_SCAN_PRF_ACC(18002):SCAN振镜合成的规划加速度。
WATCH_VAR_SCAN_PRF_POS_X(18010):SCAN振镜的X轴规划位置。
WATCH_VAR_SCAN_PRF_POS_Y(18020):SCAN振镜的Y轴规划位置。
WATCH_VAR_SCAN_RUN(18200):SCAN振镜运动状态。
WATCH_VAR_SCAN_SEG_NUMBER(18201):SCAN振镜段号。
WATCH_VAR_LASER_HSIO(18600):激光开关信号HSIO。
WATCH_VAR_LASER_POWER(18601):激光能量。
WATCH_VAR_AXIS_PRF_POS(20000):AXIS轴规划位置。
WATCH_VAR_AXIS_PRF_VEL(20001):AXIS轴规划速度。
WATCH_VAR_AXIS_PRF_ACC(20002):AXIS轴规划加速度。
WATCH_VAR_ENC_POS(30000):编码器位置。
WATCH_VAR_GPI(31000):通用输入GPI。
WATCH_VAR_GPO(32000):通用输出GPO。
WATCH_VAR_TRIGGER_STATUS(38001):捕获状态。
WATCH_VAR_POS_LOOP_ERROR(40000):位置环跟随误差。
index:Event事件监控的数据的一级索引。
id:Event事件监控的数据的二级索引(不是所有类型都用二级索引)。
(2) 根据参考源的线速度,调整MoveJog轴(旋转轴)的角速度,使参考源线速度保持恒定。
TTaskAdjustMoveJogAngleVelocity
typedef struct
{
short profile;
short refType;
short refIndex;
short refSubIndex;
short reserve1[4];
double refPosition;
double refLinearVelocity;
double minAngleVelocity;
double maxAngleVelocity;
double reserve2[4];
}TTaskAdjustMoveJogAngleVelocity;
profile:需要调整角速度的MoveJog的规划器号。
refType:参考源的类型。
refIndex:参考源的索引,索引从1开始,没有对用户设置的数据做处理。
refSubIndex:参考源的二级索引,不是所有参考源都有二级索引,索引从1开始。
reserve1:保留参数,必须为0。
refPosition:参考位置,用于与参考源单签位置相减,得到圆半径,单位:mm。
refLinearVelocity:参考源目标线速度,调整旋转轴角速度的目的是保持线速度维持这个值不变,单位:mm/s。
minAngleVelocity:线速度最小限制,低于最小值按照最小值调整,单位:。/s。
maxAngleVelocity:线速度最大限制,高于最大值按照最大值调整,单位:。/s。
reserve2:保留参数,必须为0。
(3) 设置DO输出。
TTaskSetDoBit
typedef struct
{
short doType;
short doIndex;
short doValue;
short mode;
long parameter[8];
} TTaskSetDoBit;
doType:DO输出类型。
doIndex:DO序号。
doValue:DO输出数值。
mode:保留参数,必须为0。
parameter:保留参数,必须为0。
(4) 设置模拟量输出。
TTaskSetDac
typedef struct
{
short dac;
short value;
} TTaskSetDac;
dac:模拟量输出序号。
value:模拟量输出数值,[-32768, 32767]对应[-10V, 10V]。
(5) 停止运动。
TTaskStop
typedef struct
{
long mask;
long option;
} TTaskStop;
mask:请参考指令GTN_Stop参数mask说明。
option:请参考指令GTN_Stop参数option说明。
(6) 更新目标位置。
TTaskUpdatePos
typedef struct
{
short profile;
long pos;
} TTaskUpdatePos;
profile:规划器序号。
pos:目标位置。
(7) 更新目标速度。
TTaskUpdateVel
typedef struct
{
short profile;
double vel;
} TTaskUpdateVel;
profile:规划器序号。
vel:目标速度。
(8) 更新捕获距离。
TTaskUpdateDistance
typedef struct
{
short profile;
short triggerIndex;
long distance;
} TTaskUpdateDistance;
profile:规划器序号。
triggerIndex:trigger序号。
distance:距离。
(9) 启动PT运动。
TTaskPtStart
typedef struct
{
long mask;
long option;
} TTaskPtStart;
mask:请参考指令GTN_PtStart说明中的mask参数。
option:请参考指令GTN_PtStart说明中的option参数。
(10) 启动PVT运动。
TTaskPvtStart
typedef struct
{
long mask;
} TTaskPvtStart;
mask:请参考指令GTN_PvtStart说明中的mask参数。
(11) 启动MoveAbsolute运动。
TTaskMoveAbsolute
typedef struct
{
short profile;
long pos;
double vel;
double acc;
double dec;
short percent;
} TTaskMoveAbsolute;
profile:规划器序号。
其他参数请参考指令GTN_MoveAbsoluteEx对应的参数说明。
(12) 启动Gear运动。
TTaskGearStart
typedef struct
{
long mask;
} TTaskGearStart;
mask:请参考指令GTN_GearStart说明中的mask参数。
(13) 启动Follow运动
TTaskFollowStart
typedef struct
{
long mask;
long option;
} TTaskFollowStart;
mask:请参考指令GTN_FollowStartEx说明中的mask参数。
option:请参考指令GTN_FollowStartEx说明中的option参数。
(14) 切换Follow缓存区。
TTaskFollowSwitch
typedef struct
{
long mask;
} TTaskFollowSwitch;
mask:请参考指令GTN_FollowStartEx对应的参数说明。
(15) 启动插补运动。
TTaskCrdStart
typedef struct
{
short mask;
short option;
} TTaskCrdStart;
请参考指令GTN_CrdStart对应的参数说明。
(16) 调整插补速度倍率。
TTaskCrdOverride
typedef struct
{
short crd;
double synVelOverride;
} TTaskCrdOverride;
crd:插补坐标系序号。
synVelOverride:插补速度倍率。
|
| taskIndex |
Task任务对应的索引值。
|
指令返回值:
请参照通用返回值说明。