GTN_ConditionStopCommandList
指令原型:
GT_API GTN_ConditionStopCommandList(short core,TWatchCondition *pWatchConditionList,short
conditionCount,short operation,TTaskStopCommandList *pTask,TListInfo *pListInfo=NULL)
指令类型:
指令流指令。
指令说明:
设定的条件触发以后,停止指令流。
指令参数说明:
| core |
核号,正整数,取值范围请参照核号参数范围一栏。
|
| pWatchConditionList |
条件参数结构体指针。详情说明请参照TWatchCondition
TWatchCondition
typedef struct
{
TWatchVar var;
unsigned short condition;
double value;
} TWatchCondition;
var:条件变量,详情说明请参照TWatchVar
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事件监控的数据的二级索引(不是所有类型都用二级索引)。
condition:比较条件。
WATCH_CONDITION_EQ(1):变量值等于设定值。
WATCH_CONDITION_NE(2):变量值不等于设定值。
WATCH_CONDITION_GE(3):变量值大于等于设定值。
WATCH_CONDITION_LE(4):变量值小于等于设定值。
WATCH_CONDITION_GT(5):变量值大于设定值。
WATCH_CONDITION_LT(6):变量值小于设定值。
WATCH_CONDITION_CHANGE_TO(11):变量值改变成设定值。
WATCH_CONDITION_CHANGE(12):变量值改变。
WATCH_CONDITION_UP(13):变量值增大。
WATCH_CONDITION_DOWN(14):变量值减小。
WATCH_CONDITION_CHANGE_BEYOND(15):变量值增量超过设定值。
WATCH_CONDITION_REMAIN_AT(21):变量值保持为设定值不变。
WATCH_CONDITION_REMAIN(22):变量值保持不变。
WATCH_CONDITION_CROSS_POSITIVE(23):变量值正向穿越设定值。
WATCH_CONDITION_CROSS_NEGATIVE(24):变量值负向穿越设定值。
WATCH_CONDITION_DELTA(32):变量值增量达到设定值。
value:比较值。
|
| conditionCount |
条件数量,取值范围:[1,16]。
|
| operation |
操作类型。0:与操作,1:或操作。目前只支持单一操作,条件变量之间只能全部与操作或者全部或操作。
|
| pTask |
停止指令流任务描述参数结构体指针。详情说明请参照TTaskStopCommandList
TTaskStopCommandList
typedef struct
{
short stopList;
short stopMode;
short triggerSource;
short reserve[5];
TCommandListStopParameter prm;
} TTaskStopCommandList;
stopList:
指令流序号,正整数,取值范围请参照指令流序号参数范围一栏。
stopMode:停止模式。0:平滑停止, 1:紧急停止,2:停在段末。
triggerSource:捕获源。
MC_PROFILE(31):规划器。
MC_ENCODER(23):编码器。
prm:停止参数。详情说明请参照TCommandListStopParameter
TCommandListStopParameter
typedef struct
{
short halt;
short reserve1[15];
} TCommandListStopParameter;
halt:停止过程中是否允许再次启动,0:不允许,1:允许。
条件触发后,再次调用启动指令流无效,只有清除指令流数据时后,重新压数据才允许再次启动指令流。
reserve1:保留参数,必须为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。
|
指令返回值:
请参照通用返回值说明。
指令示例:
注意事项:
如果需要关闭条件暂停指令流的任务,调用GTN_ConditionTaskEnable设置索引为32,设置启动参数中的enable为0,
就可以关闭。