AM600配合绝对值电机使用注意事项
1.不需要更新程序:
AM600的轴配置为旋转模式,缩放比能被256(2^31(数据最大计数范围)/2^23(绝对值电机的分辨率)的一半),
并且伺服设置为旋转模式,伺服的旋转周期设置值与PLC旋转周期值相同。这种情况不需要更新!
2.必须更新程序和伺服配置:
缩放比不能被256整除。PLC轴设置旋转周期模式,伺服选择绝对值线性模式,同时屏蔽绝对值溢出报警,PLC应用程序必须使用绝对值掉电保持功能块,
这种情况必须更新!
建议:涉及到绝对值应用,无论缩放比是否能被256整除,第2种选择实现方法都适用。不推荐第1种方案!
补充知识:
AM600控制总线式伺服,通过周期读写对象字典方式实现。607A、6064 分别是PLC轴的目标位置和实际位置计算基础,数据大小都为32bit。
1.PLC线性模式:
当目标位置数据607A大于2^32-1溢出时,PLC将以iTurn记忆607A溢出次数(线性模式)。当0->2^32-1递增变化,每溢出一次iTurn变量加1,而2^32-1 ->0递减变化,每溢出一次iTurn变量减1。
轴目标位置(fSetPosition)、反馈位置(fActPosition计算方法:
fSetPosition = ((iTurn 2^32 + dwLastPosition) iRatioTechUnitsNum)/ dwRatioTechUnitsDenom
fActPosition = ((iTurn 2^32 + dwActPosition) iRatioTechUnitsNum)/ dwRatioTechUnitsDenom
其中变量:
iTurn :溢出次数
dwLastPosition :上一次命令位置(每个周期会同步607A的值)
dwActPosition :当前周期6064的值
iRatioTechUnitsNum :缩放比例分子
dwRatioTechUnitsDenom : 比例缩放分母
由于iTurn属于轴内存变量,掉电数据不保持。所以PLC重启、热复位、下载程序操作导致iTurn值为据默认值0。因而导致目标位置(fSetPosition)、反馈位置(fActPosition)与断电前不一致。
2.PLC旋转模式:
AM600线性模式与旋转模式计算完全不同,当目标位置数据607A增量大于旋转周期值)dwOneTurn)时,PLC将记忆剩余偏差变量(dwPosOffsetForResiduals)。当607A以0->2^32-1递增变化,每运转一个旋转周期剩余偏差变量(dwPosOffsetForResiduals)自加一个旋转周期值(dwOneTurn),而2^32-1 ->0递减变化,每运转一个旋转周期剩余偏差变量(dwPosOffsetForResiduals)自减一个旋转周期值(dwOneTurn)。
轴目标位置(fSetPosition)、反馈位置(fActPosition)计算方法:
fSetPosition = ((dwLastPosition - dwPosOffsetForResiduals)* iRatioTechUnitsNum)/ dwRatioTechUnitsDenom
fActPosition = ((dwActPosition - dwPosOffsetForResiduals)* iRatioTechUnitsNum)/ dwRatioTechUnitsDenom
其中变量:
dwPosOffsetForResiduals:剩余偏差。
dwLastPosition :上一次命令位置(每个周期会同步607A的值)
dwActPosition :当前周期6064的值
iRatioTechUnitsNum :缩放比例分子
dwRatioTechUnitsDenom : 比例缩放分母
由于dwPosOffsetForResiduals属于轴内存变量,掉电数据不保持。当dwPosOffsetForResiduals值溢出后,PLC重启、热复位、下载程序操作导致dwPosOffsetForResiduals值为据默认值0。因而导致目标位置(fSetPosition)、反馈位置(fActPosition)与断电前可能不一致。
2.1.为什么有可能一致呢?
下图是607A数据宽度与绝对编码器宽度图,当电机运转2^9 = 2^32/2^23圈后,607A将会溢出一次。在607A溢出位置时,轴的命令位置有可能不为0或者旋转周期值。如果此位置断电重启,轴位置为0或者旋转周期值。
2.2.溢出位置什么时候不为0呢?
机械运转一个旋转周期电机所产生的编码器增量不能被607A数据宽度(2^32)整除时候。 如果能够整除,607A溢出时刻,目标位置、反馈位置都为0或者周期值。
例如:
旋转周期值:360;
缩放比:16#800000 *3 : 360;
电子齿轮比: 1 : 1;根据数据得出机械旋转一圈电机编码器旋转增量为3_2^23(3圈),2^32除以3_2^23
将产生余数2^23。因此607A溢出位置轴目标位置、实际位置= (余数/机械旋转一圈的编码器单位)_旋转周期值,通过公式得出溢出时刻位置为120 = (2^23/(3_2^23))*360。如果余数为0,则位置为0或者360。