Codesys实现非线性函数关系的轴联动控制

1、序言

在伺服应用中,多轴联动的控制需求已经越来越多,精度要求也越来越高。目前PLC常用的联动控制有直线插补,圆弧插补,实现方法可以用专用的插补指令,G代码等功能。但是直线插补和圆弧插补毕竟功能有限,无法完成所有图形。电子凸轮也能实现联动控制,但实际上电子凸轮的功能只是通过多项式去拟合,并非真正的按函数曲线运行,存在一定的局限性。Codesys使用G代码和电子凸轮功能可以参考以下文章:

codesys采用G代码实现圆弧插补和螺旋插补的可视化仿真

Codesys使用电子凸轮实现追剪功能

Codesys提供了轴位置跟随的控制指令followposition,该指令可以实现从动轴跟随主轴运行,而主从轴之间的相互关系在理论上可以是任意函数,比如正弦,余弦,椭圆,抛物线,指数曲线等,本文主要介绍followposition功能块的应用以及非线性函数曲线的多轴联动控制实现方法,并通过可视化仿真验证结果。

2、指令功能

Codesys实现非线性函数关系的轴联动控制_第1张图片

 bExecute的上升沿为启动功能块,功能块执行中可以重新触发上升沿,每次上升沿都会重新载入功能块的输入参数,重新执行功能块。
本功能块用于直接指定轴每个同步周期要运动到的目标位置,不会做速度、加速度等检查,故使用时要注意处理好fSetPosition的值,实现轴运行速度的连续性变化。
功能块执行时,轴处于Synchronized Motion。 如要停止本功能块的执行,可以通过MC_Halt、MC_GearOut、MC_CamOut等功能打断。

3、应用

3.1、正弦函数关系

程序:建立使能,X轴按绝对模式运行,前进和后退,Y轴沿X轴的正弦轨迹运行,如图建立程序:

Codesys实现非线性函数关系的轴联动控制_第2张图片Codesys实现非线性函数关系的轴联动控制_第3张图片Codesys实现非线性函数关系的轴联动控制_第4张图片Codesys实现非线性函数关系的轴联动控制_第5张图片Codesys实现非线性函数关系的轴联动控制_第6张图片Codesys实现非线性函数关系的轴联动控制_第7张图片

 可视化仿真结果:

codesys跟随指令使用之正弦跟随

 3.2、椭圆关系

椭圆关系与正弦关系控制方式不同,正弦函数,每一个X点都能对应唯一的一个Y值,而椭圆关系不行,存在一个X点对应两个Y值的情况,因此我们需要进行转换,用极坐标方程可以实现角度与X轴,Y轴都是一一对应,即X=a*cosα;Y=b*sinα;以此函数关系建立两个followposition指令,Z轴作为角度α的移动轴,α动作,X轴Y轴跟着动作,(使能和停止不再列出)程序如图所示

Codesys实现非线性函数关系的轴联动控制_第8张图片Codesys实现非线性函数关系的轴联动控制_第9张图片Codesys实现非线性函数关系的轴联动控制_第10张图片Codesys实现非线性函数关系的轴联动控制_第11张图片

 可视化仿真结果如下:

codesys跟随指令使用之椭圆

  4、注意事项

followposition指令在使用时需要注意一些数学上的问题;

a、followposition指令虽然可以实现一些非线性的函数关系,能够完成G代码或电子凸轮无法实现的东西,但其运行时不会检查轴的速度和加速度,如果位置函数关系不连续,则会出现速度跳变的情况,甚至直接从正向运行到反向运行的情况。在实际运行中,此类情况下,伺服电机无法实现,轻则伺服驱动器报警停机,重则可能导致伺服撞击,损坏设备,因此在建立函数关系时需要注意其连续性和可导性;

b、建立函数关系时,需要确保跟随轴与主轴之间的关系,必须是每一个主轴的点都只能对应一个跟随轴的值,如果无法一对一(比如椭圆函数,一个X点对应有两个Y值,渐开线函数一个X点可对应多个Y值),就需要进行数学转换,必要时添加虚轴,做到一个X轴对应一个Y值。

因此在使用此指令时务必当心,且调机时要小心验证,确认无误后方可运行。

本文所设计程序依旧使用V3.5.14.10版本,程序源代码下载地址:

Codesys跟随指令实现非线性函数(正弦、椭圆)的轴联动功能源程序--CSDN文库icon-default.png?t=M0H8https://download.csdn.net/download/qq_19979629/76533217

你可能感兴趣的:(模块测试,几何学)