跳转至

GTN_LoadWatchConfig

指令原型:

GT_API GTN_LoadWatchConfig(short core,char *pFile)

指令类型:

立即指令,调用后立即生效。

指令说明:

下载Watch配置信息至运动控制器。

指令参数说明:

core 核号,正整数,取值范围请参照核号参数范围一栏。
pFile 配置文件地址。配置文件解析详见"注意事项"。

指令返回值:

请参照通用返回值说明

注意事项:

配置文件例程

watch变量:第一个轴的WATCH_VAR_PRF_POS和WATCH_VAR_PRF_VEL。
watch事件:当第一个轴的WATCH_VAR_PRF_POS≥0时开始启动watch。

[setting]
group=WATCH_GROUP_TIME
mode=WATCH_MODE_LOOP 
interval=0
[var1]
type=WATCH_VAR_PRF_POS 
index=1         
id=1                            
[var2]
type=WATCH_VAR_PRF_VEL
index=1
id=1 
[event1]
type=WATCH_EVENT_START
loop=0                
watchCount=0  
varType=WATCH_VAR_PRF_POS
varIndex=1  
varId=1 
condition=WATCH_CONDITION_GE
value=0

配置文件各字段解释说明:

[setting]

group:watch的数据所在区域。WATCH_GROUP_TIME(0):中断,WATCH_GROUP_BACKGROUND:背景。
mode:设置watch模式。

WATCH_MODE_STATIC(0):静态模式,静态模式下Watch缓冲区放满以后自动停止。
WATCH_MODE_LOOP(1):循环模式,循环模式下Watch缓冲区放满以后返回到缓冲区头部重新开始。
interval:采集数据间隔。group=WATCH_GROUP_BACKGROUND,该参数无实际意义。group=WATCH_GROUP_TIME,数据间隔为(interval+1)*中断周期。

[varX]

设置变量类型,最多可同时观测32组变量。根据实际需求选择需要Watch的变量。
详情说明请参照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事件监控的数据的二级索引(不是所有类型都用二级索引)。

[eventX]

详情说明请参照TWatchEvent

TWatchEvent
typedef struct WatchEvent
{
    unsigned short type;
    unsigned short loop;
    unsigned short watchCount;
    TWatchVar var;
    unsigned short condition;
    double value;
} TWatchEvent;

type:设置事件类型,可以设置为以下值(最多可同时增加8个触发事件)。

WATCH_EVENT_RUN(1):当条件成立时采集数据,不成立时停止采集数据。
WATCH_EVENT_START(10):当条件成立时启动数据采集。
WATCH_EVENT_STOP(20):当条件成立时停止数据采集。
WATCH_EVENT_OFF(30):当条件成立时关闭数据采集。
loop:设置事件触发次数,为0时表示不限制事件的触发次数。
watchCount:设置事件触发以后采集数据的次数。对于不同的事件类型,有相应的处理方式。
WATCH_EVENT_RUN(1):设置停止以后采集的次数,0表示不采集。
WATCH_EVENT_START(10):设置启动以后采集次数,0表示一直采集(条件不成立状态下,继续采集的个数)。
WATCH_EVENT_STOP(20):设置停止以后采集次数,0表示不采集。
var:watch变量参数结构体。详情说明请参照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事件监控的数据的一级索引。

<b>id</b>: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:设置事件比较值。