TwinCAT3-读取NC中变量

如下图所示,读取NC轴编码器的数值,这是硬件返回的数据(电机反馈的脉冲数)

变量的定义

adsRead: ADSREAD;

AxisEncoder1_nHardIncs: DINT;

功能块初始化

adsRead(

NETID:= ,

PORT:= 501,

IDXGRP:= ,

IDXOFFS:= ,

LEN:= ,

DESTADDR:= ,

READ:= ,

TMOUT:= ,

BUSY=> ,

ERR=> ,

ERRID=> );

程序实现

(*读取电机上传的编码器数据*)

2000:

adsRead.IDXGRP := 16#5100 + Axis.NcToPlc.AxisId;

adsRead.IDXOFFS := 16#7;

adsRead.LEN := SIZEOF(AxisEncoder1_nHardIncs);

adsRead.DESTADDR := ADR(AxisEncoder1_nHardIncs);

adsRead.READ := TRUE;

IF adsRead.BUSY THEN

eFirstSetStep := 2100;

END_IF


(*判断数据读取成功*)

2100:

IF NOT adsRead.BUSY AND NOT adsRead.ERR THEN

adsRead.READ := FALSE;

eFirstSetStep := 3000;

END_IF

IF adsRead.ERR THEN

adsRead.READ := FALSE;

ErrorMsg := 'Read Encoder Hardware Counts Error!';

eFirstSetStep := 9999;

END_IF

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章