Codesys实现非线性函数关系的轴联动控制
Codesys提供了轴位置跟随的控制指令followposition,该指令可以实现从动轴跟随主轴运行,而主从轴之间的相互关系在理论上可以是任意函数,比如正弦,余弦,椭圆,抛物线,指数曲线等,本文主要介绍followposition功能块的应用以及非线性函数曲线的多轴联动控制实现方法,并通过可视化仿真验证结果。
1、序言
在伺服应用中,多轴联动的控制需求已经越来越多,精度要求也越来越高。目前PLC常用的联动控制有直线插补,圆弧插补,实现方法可以用专用的插补指令,G代码等功能。但是直线插补和圆弧插补毕竟功能有限,无法完成所有图形。电子凸轮也能实现联动控制,但实际上电子凸轮的功能只是通过多项式去拟合,并非真正的按函数曲线运行,存在一定的局限性。Codesys使用G代码和电子凸轮功能可以参考以下文章:
Codesys提供了轴位置跟随的控制指令followposition,该指令可以实现从动轴跟随主轴运行,而主从轴之间的相互关系在理论上可以是任意函数,比如正弦,余弦,椭圆,抛物线,指数曲线等,本文主要介绍followposition功能块的应用以及非线性函数曲线的多轴联动控制实现方法,并通过可视化仿真验证结果。
2、指令功能
bExecute的上升沿为启动功能块,功能块执行中可以重新触发上升沿,每次上升沿都会重新载入功能块的输入参数,重新执行功能块。
本功能块用于直接指定轴每个同步周期要运动到的目标位置,不会做速度、加速度等检查,故使用时要注意处理好fSetPosition的值,实现轴运行速度的连续性变化。
功能块执行时,轴处于Synchronized Motion。 如要停止本功能块的执行,可以通过MC_Halt、MC_GearOut、MC_CamOut等功能打断。
3、应用
3.1、正弦函数关系
程序:建立使能,X轴按绝对模式运行,前进和后退,Y轴沿X轴的正弦轨迹运行,如图建立程序:
可视化仿真结果:
codesys跟随指令使用之正弦跟随
3.2、椭圆关系
椭圆关系与正弦关系控制方式不同,正弦函数,每一个X点都能对应唯一的一个Y值,而椭圆关系不行,存在一个X点对应两个Y值的情况,因此我们需要进行转换,用极坐标方程可以实现角度与X轴,Y轴都是一一对应,即X=a*cosα;Y=b*sinα;以此函数关系建立两个followposition指令,Z轴作为角度α的移动轴,α动作,X轴Y轴跟着动作,(使能和停止不再列出)程序如图所示
可视化仿真结果如下:
codesys跟随指令使用之椭圆
4、注意事项
followposition指令在使用时需要注意一些数学上的问题;
a、followposition指令虽然可以实现一些非线性的函数关系,能够完成G代码或电子凸轮无法实现的东西,但其运行时不会检查轴的速度和加速度,如果位置函数关系不连续,则会出现速度跳变的情况,甚至直接从正向运行到反向运行的情况。在实际运行中,此类情况下,伺服电机无法实现,轻则伺服驱动器报警停机,重则可能导致伺服撞击,损坏设备,因此在建立函数关系时需要注意其连续性和可导性;
b、建立函数关系时,需要确保跟随轴与主轴之间的关系,必须是每一个主轴的点都只能对应一个跟随轴的值,如果无法一对一(比如椭圆函数,一个X点对应有两个Y值,渐开线函数一个X点可对应多个Y值),就需要进行数学转换,必要时添加虚轴,做到一个X轴对应一个Y值。
因此在使用此指令时务必当心,且调机时要小心验证,确认无误后方可运行。
本文所设计程序依旧使用V3.5.14.10版本,程序源代码下载地址:
Codesys跟随指令实现非线性函数(正弦、椭圆)的轴联动功能源程序--CSDN文库https://download.csdn.net/download/qq_19979629/76533217
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)