GTN_WriteDigitalOutputPro
指令原型:
GT_API GTN_WriteDigitalOutputPro(short core, TDigitalOutputPro *pDo, TListInfo *pListInfo)
指令类型:
立即指令,调用后立即生效。
指令说明:
设置数字IO输出状态。
若do有挂接轴,则对应的不能直接输出。默认驱动器使能与轴挂接,所以用户不能调用该指令设置驱动器使能输出的电平。
指令参数说明:
| core |
核号,正整数,取值范围请参照核号参数范围一栏。
|
| pDo |
DO输出参数结构体指针,详情说明请参照TDigitalOutputPro
TDigitalOutputPro
typedef struct DigitalOutputPro
{
short mode;
short doType;
short doIndex;
short doCount;
short *pValue;
short reverse1[2];
long reserve2[2];
TWriteDigitalOutputProPrmUnion prm;
}TDigitalOutputPro;
mode:DO输出模式。
1:延时一段时间后输出。纯延时输出,指令流中执行到该指令后,延时设定的时间后立即do输出。
2:执行下一条插补指令时,按照设定的距离,段前延迟输出或者段末提前输出。
3:执行下一条插补指令时,按照设定的时间,段前延迟输出或者段末提前输出。
模式2和模式3与插补指令相关联,执行下一条插补指令时才开始计时或者计算距离。
doType:DO输出类型。
MC_ENABLE(10):使能信号。
MC_CLEAR(11):报警清除信号。
MC_GPO(12):通用输出。
doIndex:DO输出的索引,和参数doType有关。
MC_ENABLE(10):使能信号。
MC_CLEAR(11):报警清除信号。
正整数,取值范围请参照轴号参数范围一栏。
取值范围请参照通用输出(MC_GPO)参数范围一栏。
doCount:DO输出的个数。
pValue:DO输出的值。默认情况下,1表示高电平,0表示低电平。
reserve1:保留参数,必须为0。
reserve2:保留参数,必须为0。
prm:不同DO输出模式下对应的参数意义。详情说明请参照TWriteDigitalOutputProPrmUnion
TWriteDigitalOutputProPrmUnion
typedef union WriteDigitalOutputProPrmUnion
{
double data[30];
TDigitalOutputProDelay delay;
TDigitalOutputProByMoveTime moveTime;
TDigitalOutputProByMoveDistance moveDistance;
}TWriteDigitalOutputProPrmUnion;
data:保留参数,必须为0。
delay:延时一段时间后输出模式。详情说明请参照TDigitalOutputProDelay
TDigitalOutputProDelay
typedef struct DigitalOutputProDelay
{
double time;
}TDigitalOutputProDelay;
time:延时输出的时间,单位:ms。
moveTime:执行下一条插补指令时,按照设定的时间,段前延迟输出或者段末提前输出。详情说明请参照TDigitalOutputProByMoveTime
TDigitalOutputProByMoveTime
typedef struct DigitalOutputProByMoveTime
{
short type;
short motionType;
short reserve1[2];
double delayTime;
}TDigitalOutputProByMoveTime;
type:模式。
type=0: 开始运动后延时delayTime后Do输出。
type=1: 运动结束前提前delayTimeDo输出。
motionType:保留参数,必须为0,目前只支持插补运动指令。
reserve1:保留参数,必须为0。
delayTime:时间,单位:ms。
moveDistance:执行下一条插补指令时,按照设定的距离,段前延迟输出或者段末提前输出。详情说明请参照TDigitalOutputProByMoveDistance
TDigitalOutputProByMoveDistance
typedef struct TDigitalOutputProByMoveDistance
{
short type;
short motionType;
long delayTime;
double distance;
}TDigitalOutputProByMoveDistance;
type:模式。
0:距离起点distance后Do输出。
1:距离终点distance时Do输出。
motionType:保留参数,必须为0,目前只支持插补运动指令。
reserve1:保留参数,必须为0。
distance:运动distance后Do输出,单位mm。
|
| 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。
|
指令返回值:
请参照通用返回值说明。