如下图所示,读取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
本文暂时没有评论,来添加一个吧(●'◡'●)