在凸轮之间切换
基本上,您可以随时在不同的凸轮之间切换。但是,您应该考虑以下几点:
在凸轮编辑器中,从站的位置被唯一地定义为凸轮函数的函数值。该函数定义在主值范围内,可表示如下:
SlavePosition = CAM( MasterPosition )由于主驱动器的当前位置通常偏离主值范围,因此您必须在凸轮函数的定义范围内缩放主位置以表示有效参数:
SlavePosition = CAM( MasterScale*MasterPosition + MasterOffset )以类似的方式,如果凸轮在模式下开始,则必须缩放功能值(从位置)
Absolute会导致跳跃:SlavePosition = SlaveScale*CAM( MasterPosition ) + SlaveOffset您可能必须同时应用这两个缩放值,这会导致以下结果:
Slaveposition = SlaveScale*CAM( MasterScale*Masterposition + MasterOffset ) + SlaveOffset缩放和偏移参数的适当值可能因周期而异。
凸轮之间的切换可以通过三种方式完成:
通过第二个实例启动第二个凸轮
MC_CamIn和BufferMode = MC_BUFFER_MODE.Buffered,StartMode = relative,MasterAbsolute = FALSE, 和SlaveAbsolute = FALSE。重要
作为 CODESYS SoftMotion 版本 4.17.0.0
通过分配启动新凸轮
MC_CamIn.CamTableID到新凸轮(不重新启动MC_CamIn需要功能块)。如果以下几点适用于您的用例,则建议使用此变体:
以下所有凸轮都应相对执行
MasterAbsolute = FALSE或者SlaveAbsolute = FALSE.新凸轮应该正好在前一个凸轮的末尾开始。
没有更改其他参数(例如:
SlaveOffset)。重要
跳转,在以下示例中对周期性凸轮和
SlaveAbsolute = FALSE, 做 不是 应用于此变体,因为下一个凸轮正好放置在前一个凸轮的末端位置。仅当在前一个凸轮报告时在同一循环中完成到新凸轮的切换时,新凸轮才会准确放置在前一个凸轮的末尾
EndOfProfile = TRUE.
通过重新启动新凸轮来启动
MC_CamIn功能块。如果必须为新凸轮的正确功能更改参数(例如,
SlaveOffset从下面的例子)。以下示例的限制适用。
在以下示例中,它从 CAM1 到 CAM2:
CAM1 由一个 5 阶多项式和两个线段组成。

CAM2 由两条线段和一个 5 阶多项式组成。

在两个凸轮之间切换时,应考虑以下事项:
为防止跳跃,第一个凸轮终点处的速度和加速度值应与第二个凸轮起点处的值一致。在这个例子中,这个条件是满足的,因为相同的速度(=1)和加速度(=0)被分配到终点
CAM1和起点CAM2.您可以启动第二个凸轮
Relative当您将从站的起始位置定义为 0 时的模式。但是,第一个凸轮必须在non-periodic模式。否则,如果CAM1是周期性的,那么Relative设置会导致跳转。

放大率显示从 CAM1 到 CAM2.蓝线标记在主位置对凸轮功能的评估 x1 和 x2.
现在,我们来看看不利的情况 periodic:
| |
| 该调用在主位置开始评估凸轮 |
| 为了模块的后续调用,主位置 |
| 切换到新凸轮 |
| 主位的二次评价 |
选择 non-periodic 模式以防止跳跃:
| |
| 该调用在主位置开始评估凸轮 |
| 为了模块的后续调用,主位置 |
| 切换到新凸轮。 |
| 主位的二次评价 |
启动凸轮 Absolute 模式下,您必须确保从站处于适当的起始位置。如果主站的取值范围与从站的周期一致,那么无论凸轮是否周期性,凸轮之间的切换都没有任何复杂性。
在上面的例子中,你可以开始 CAM2 在 Absolute 主从周期与主控值范围一致时的模式 CAM2 (每个都是 360°)。
如果不是,例如从机的周期是 270° (由浅蓝色线表示),然后 Absolute 如果不采取其他措施,则不允许使用该选项。

在这种情况下,从站切换时从站处于 90° CAM1 到 CAM2.开始 CAM2 在 Absolute 模式会导致跳转到 0°(由灰线表示)。
但是,可以通过将从属偏移设置为 90° 的适当值来防止跳跃。