运动控制中的位置反馈是怎么计算的?一文给你讲清楚!

文摘   科技   2024-09-19 17:30   山东  


在运动控制应用中,周期同步位置模式无疑是最为广泛采用的一种模式,这种模式下,上位控制器规划位置,随后将这些规划好的目标位置(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


模数轴位置反馈计算方法
参与计算的变量有:
 1.对象字典0x6064(实际反馈脉)。
 2.Axis.dwPosOffsetForResiduals (剩余位置偏移)
 3.Axis.dwRatioTechUnitsDenom(比例单位分母)。
 4.Axis.iRatioTechUnitsNum(比例单位分子)。
 5.Axis.fOffsetPosition(位置偏移)。

计算公式:
 fActPosition = [(0x6064) - dwPosOffsetForResiduals) * iRatioTechUnitsNum / dwRatioTechUnitsDenom)] – fOffsetPosition 。


数轴,由于其固有的周期性运动特性,不需要直接利用Axis.iTurn参数来跟踪轴的完整旋转圈数。相反,模数轴在控制过程中,会用到Axis.dwPosOffsetForResiduals(剩余位置偏移)变量,用于处理在模数轴运动过程中可能产生的微小位置偏差或残余误差。

比参数除了在软件中预设外,还可以通过功能块来写入,后续的文章分享。
您的支持是我持续分享的动力


工控大侠
关注我,持续分享工控技术干货、行业动态!笔者20余年的自动化从业经验相信可以帮到您,有问题可留言。