使用 Cams - 基本方式

模块中参数的作用

Cam 特性

  • 参阅 特性 - Cam对话框。
  • 周期转换,期间转换
    一个周期的 cam 可以在没有‘跳出’的情况下从一个区间跳到另一个区间循环执行,只要“周期转换”前面的复选框被激活,从轮对应到主轮终止点的位置与从轮对应到主轮起始点的位置是一个倍数关系,然而从轮结束点的速度和加速度值与起点位置相同。 周期和速率是以从轴为标准的。即使是“过渡周期”对应的凸轮也可以实现连续处理。这种情况下,对于用户来说只要确认过渡周期中凸轮的描述是一样的即可。

模块 MC_CAMTableSelect

  • 参阅: “MC_CamTableSelect”
  • 周期:
    泽火革参数定义了一个电子凸轮是否在执行完一个周期后进行下一个循环。 当程序能够循环时此变量置为TRUE。当变量被置为FALSE时,功能块CamIn在主轴到达结束位置时输出变量EndOfProfile将被置为 TRUE从轴会被停止在当前位置,标注电子凸轮没有超过主轴定义的范围。当主轴再次进入有效范围内时,从轴将继续根据电子凸轮表继续运动。
  • 主轴绝对位置:
    如果这个输入值为TRUE,主轴会在当前位置启动。当这个点位于中央时结果一样。然而,如果这个点超出了电子凸轮定义的范围,将会产生一个错误信息。如果这个变量为FALSE,凸轮将会移动到主轴定义的零点之后的位置,移动的位置取决于当前主轴的位置。如果一个凸轮表,他的范围不包含"0"点,那么在这种方式下是不可用的,一个形如 ("...主轴离开指定的位置...") 的错误信息将产生。
  • 从轴绝对位置:
    参数 CamTableSelect.SlaveAbsolute影响从轴的输入变量 StartMode(主要影响参数 MC_CamIn.StartMode)。 这两个参数共同决定 StartMode 在表格中的显示形式。

输入变量 StartMode和电子凸轮的TableSelect.SlaveAbsolute

MC_CamIn.StartMode

MC_CamTableSelect.SlaveAbsolute

MC_CamIn.StartMode: New value

绝对位置

TRUE

绝对位置

绝对位置

FALSE

相对位置

相对位置

TRUE

相对位置

相对位置

FALSE

相对位置

ramp_in

TRUE

ramp_in 绝对位置

ramp_in

FALSE

ramp_in 相对位置

ramp_in_pos

TRUE

ramp_in_pos 绝对位置

ramp_in_pos

FALSE

ramp_in_pos 相对位置

ramp_in_neg

TRUE

ramp_in_neg 相对位置

ramp_in_neg

FALSE

ramp_in_neg 绝对位置

示例

如果输入 Periodic 被置为TRUE,重新启动电子凸轮表会导致周期的变化。

通过以下图片对周期时间有一个更清楚的了解:形象的说明,图片中就像一个传送带在连续的运送相同的物体,而主轴值的范围是从0到运动物体的长度。在这个范围内一个物体是相互靠近的并且同过一个工具被分离(例如一个刻印标记),位置是受从轮决定的(图中蓝线表示)。

当然,主轮的位置 (即定义的主轴的范围) 与主驱动器的周期(即示例中多次重复的显示)。 因此,表达式 'SlavePosition = CAM( 主轮位置 )',这是根据主轴的凸轮的位置定义的从轴的位置, 仅在第一次电子凸轮的扫描过程中是可行的。一个新对象的到达表示着电子凸轮新的扫描周期的开始。由于在传送带是的对象有一定的间距(该距离可能每次都不相同),生产率,也就是凸轮连续开始的时间,是与主轮的范围不同的。

有关模式的详细说明,请参阅: MC_Camin.StartMode.

模块 MC_CamIn

  • MasterOffset, MasterScaling:
    主轴输入转换的位置是根据以下公式进行的,并且使用转化后的X作为作为凸轮的输出: X = MasterScaling*MasterPosition + MasterOffset 因此,如果主轴的比例大约1,所述凸轮将会运行在一个更高的速率,如果比例值小于1,速率将会随之降低。
  • SlaveOffset, SlaveScaling:
    如果主轴的比例值大约1,电子凸轮将会以高速运行,如果此值小于1,速度值将会随之降低,计算公式:Y = SlaveScaling*CAM( X ) + SlaveOffset 值SlaveScaling > 1 导致凸轮效果的拉伸,从轴的范围将会增加;相应的,如果 SlaveScaling < 1 将会导致一个收缩。
  • StartMode: absolute/relative/ramp_in/ramp_in_pos/ramp_in_neg

示例

以下图片表示了“绝对位置”和“相对位置”在电子凸轮表中的不同。凸轮表中定义的一个主轴的范围在图中被一条绿色的虚线将左右两部分分开。正如我们看到的那样,对于一个周期性的凸轮,在主轴超出范围之后仍旧会回到原来的位置进行处理。

绝对位置:在一个新的凸轮周期开始时,凸轮重新从从轮的起始位置进行运动。对于结果中的跳跃,是因为从轮对应到主轮起始点的位置与其对应到主轮终止点的位置不同。

相对移动: 新的一个凸轮周期开始时,凸轮会继续在当前位置进行新的周期的开始;从轮在上次凸轮表周期结束时所处的位置将会作为“从轴偏移”量累加到新的凸轮周期上。然而,如果从轮对应到主轮起始位置为0,就会产生一个跳跃。

ramp_in:启动电子凸轮内部的跳跃将会产生一个补偿运动(根据限定的速度,加速度和减速度)。因此,如果从轮是旋转轴,选项ramp_in_pos 将只在正方向进行补偿,相应的 ramp_in_neg 只在反方向进行补偿。对于线性电机,补偿将会自动进行,这里的 ramp_in_posramp_in_negramp_in是一样的。

电子凸轮之间的切换

基本上两个凸轮直接可以在任何时候进行切换。但是也有时候会出现一些特殊情况。

在cam编辑器中,从轴的位置被定义为一个凸轮的输出,此输出是和包含主轴范围的主轴位置对应的,可以通过以下简单的公式进行表达:

SlavePosition = CAM( MasterPosition )

由于实际的主轮周期不同于定义范围内cam定义的周期,主轮位置将会被缩放到从轴定义的周期内:

SlavePosition = CAM( MasterScale*MasterPosition + MasterOffset )

模拟函数值(例如当前从轴位置)必须进行调整,如果凸轮模式为‘绝对位置’那么会导致一个跳跃:

SlavePosition = SlaveScale*CAM( MasterPosition ) + SlaveOffset

最坏的情况下俩种比例方式都将被采用,因此从轮位置实际上会变的更复杂

Slaveposition = SlaveScale*CAM( MasterScale*Masterposition + MasterOffset ) + SlaveOffset

在每个cam周期的结束时候可能会发生适当的缩放和偏移。

不幸的是,cam模块 MC_CamIn 的重启过程将会清除它的内存以及缩放和偏移值。因此,定义的 cam 函数值将会被应用于一般从站值的不同区域。由于这个原因,建议只在不同的凸轮进行处理的过程中重新启动 MC_CamIn-功能块。

示例

以下是从 CAM1 到 CAM2跳转的一个示例:

CAM1是由两行五次多项式构成的曲线。

CAM2是由五次多项式构成的两行曲线。

两个凸轮之间的切换应该遵循以下规则:

  • 在第一个凸轮结束点的速度和加速度应该与第二个凸轮表中起始位置的速度和加速度匹配,否则会产生一个跳跃。在该示例中,满足以下要求: CAM1 结束点以及 CAM2 的起始点都具有速度 1 和加速度 0。
  • 如果从站位置启动点为0,第二个凸轮可以通过“相对”方式启动。然而,之前的电子凸轮必须运行在非周期模式下,否则,如果第一个凸轮是周期性的,在经过第一个扫描周期之后从站位置就不会再相等了:

右侧框中详细描述从 CAM1 到 CAM2 的转化过程。蓝线表示主轴凸轮功能在位置 x1 和 x2的详细值。

让我们首先考虑一下定期循环方式:

MasterAbsolute := TRUE; SlaveAbsolute := FALSE;

 

CAM(x1, CAM1, PERIODIC:=TRUE);

这个调用值发生在主轴位置 x1处,比在CAM1范围内的结束位置要小。所以 CAM1 会以通常的方式进行处理并会到达从轴位置的点1处。

CAM(x2, CAM1, PERIODIC:=TRUE);

当模块在下一次调用的时候,主轴位置 x2 将会在 CAM1 结束位置进行处理(以绿色虚线定义的位置与点 3p的位置相同)。因此, EndOfProfile 点将会上升。 CAM1 是以周期模式启动的,它将会在 CAM1范围内的结束位置重新启动并在点 2p 作为调用的返回值。

CAM(EXECUTE:=FALSE);

切换到新的凸轮

CAM(x2, CAM2, PERIODIC:=TRUE);  

第二次评估发生在主位置 x2。这次新的电子凸轮 CAM2 将会被计算值。CAM2 将会在从站相对模式下的 (2p) 位置启动并添加一个偏移到 CAM2映射中。 所以启动点偏移到图标中的点 3p位置处。与主轴位置 x2 处的点 4p相同,从而导致一个不良的跳跃。

选择非周期模式避免跳跃

MasterAbsolute := TRUE; SlaveAbsolute := FALSE;

 

CAM(x1, CAM1, PERIODIC:=FALSE);

在主轴位置 x1处的电子凸轮调用,这个值比CAM1范围内结束值要小。所以 CAM1 的值在通常情况下与从轴位置处的点 1 值相同。

CAM(x2, CAM1, PERIODIC:=FALSE);

当模块在下一次调用的时候,主轴位置 x2 将会在 CAM1 的最后位置进行处理(绿色虚线的点等同于点 3n)。因此预编译结束点将会上升。CAM1 以非周期方式启动,从轴位置相当于 x2 (2n) CAM1主轴范围结束点的从轴位置点 3n。

CAM(EXECUTE:=FALSE);

跳转到新的 cam

CAM(x2, CAM2, PERIODIC:=FALSE);  

主轴位置x2处的第二次评估。这次评估中新的 cam CAM2 将会被测量。CAM2 以相对模式启动时,从轴当前位置 (2n) 将作为一个偏移值添加到 CAM2 映射中。所以表格中的点将偏移到 3n。在主轴中的测评结果 x2 点 4n 与 1 和3n处于同一直线上。

警告以 ‘绝对’方式启动cam时,要注意从站的启动位置。如果主轴范围等于从轴定义位置,那么之间不应该有切换并且对于是否是周期模式并不在意。

在上述例子中 CAM2 可以通过绝对方式启动,这两个周期根据CAM2 的主轴范围(主从轴位置)都为 360° 。

否则,如果从轴的运动范围是270° (图中蓝色虚线表示),绝对选项是不会被允许的:

如果从轮的位置位在从CAM1 到CAM2转换的过程中位于 90° 。以绝对方式启动的 CAM2 将会导致一个灰线所示的到 0° 的一个跳转。

然而可以通过将从轴偏移设置为 90°来避免这种情况的发生。