在运动控制应用中,周期同步位置模式无疑是最为广泛采用的一种模式,这种模式下,上位控制器规划位置,随后将这些规划好的目标位置(607A)以周期性的方式发送给伺服驱动器。每个同步周期内,系统都会发送一个新的目标位置,并期望在当前周期内完成该位置的移动。因此,实时反馈的位置(6064)与目标位置(607A)之间的差值保持在极小范围内,否则会报错。
轮廓位置模式主要用于点对点定位应用,此模式下,上位机设定目标位置、运行速度、加减速,伺服内部的位置轨迹发生器将根据设置生成位置曲线指令,驱动器内部完成位置控制,速度控制,转矩控制。相较周期同步位置模式而言,轮廓位置模式在位置控制上,对位置反馈的即时性要求相对较低。
CODESYS平台将轴类型分为模数轴和限定轴,模数轴采用单圈(或称为周期性)运动模式,其运行范围被严格限定在0到模值的范围内,线性轴支持多圈(或无限制)运动模式,其运行范围不受固定模值的限制。两种模式下计算方法是不同的。
前文讲到获取实时位置反馈的方法,见:如何最高效获取轴的实时反馈位置?
我们看到的fActPosition实际是经过一系列换算过来的,用到的变量:
1.对象字典0x6064(实际反馈脉冲)。
2.Axis.iTurn(溢出次数,PLC记录的伺服运动距离大于编码器分辨率时加1)。
3.Axis.dwRatioTechUnitsDenom(比例单位分母,在轴对象中设定)。
4.Axis.iRatioTechUnitsNum(比例单位分子,在轴对象中设定)。
5.Axis.fOffsetPosition(位置偏移)。
计算公式:
fActPosition = [(iTurn *编码器分辨率 + 0x6064)* iRatioTechUnitsNum]/ dwRatioTechUnitsDenom – fOffsetPosition
模数轴,由于其固有的周期性运动特性,不需要直接利用Axis.iTurn参数来跟踪轴的完整旋转圈数。相反,模数轴在控制过程中,会用到Axis.dwPosOffsetForResiduals(剩余位置偏移)变量,用于处理在模数轴运动过程中可能产生的微小位置偏差或残余误差。
您的支持是我持续分享的动力!