运动控制

任务概念

控制器在与计算运动轨迹且发生 Sercos 通讯的实时运动任务分开的任务中运行调用运动控制功能块的用户应用程序。这两种任务的循环时间可能不同。用户应用程序任务的循环时间通常为 10 毫秒,但也可能是短至 1 毫秒的循环时间。实时任务的循环时间有 1 毫秒、2 毫秒或 4 毫秒,具体取决于 Sercos 循环时间和机器配置(控制器类型、轴的数量等)。

这种分离非常有助于提升性能。用户应用程序可以根据需要缓慢运行,以便(比如)兼顾文件系统操作或网络通讯。(通常较不注重时间的)应用程序的事件处理、决策制定和命令处理可以在这些能够慢速运行的任务中执行。但也可以通过提前执行并缓存功能块,来以最大速度执行运动轨迹修改。

这种成熟的方法也被 Schneider Electric PacDrive 系统所采用。

熟悉诸如 SoftMotion(其在实时进程中执行用户应用程序)等系统以及标准 PLCopen 编程的编程人员需要反复考虑多种常用做法以便发挥这种方法的最大潜力。一种典型的 PLCopen 编程方法是,等待功能块“完成”(比如,输出 DoneinVelocityEndOfProfileInGear)并使用相应的信号来执行下一个功能块。

如要在不突然跳转的情况下实现预期的运动(尤其是在一个运动作业结束时速度和/或加速度值不等于零的情况下),必须在 MC_Buffer_Mode 设置为 Buffered 的情况下提前执行功能块。这样就能够在前一个功能块完成的同一实时循环中激活功能块的运动轨迹。

如果通过(比如)前一个功能块的 EndOfProfile 信号而不是通过缓存此信号来触发下一个功能块的启动 (Execute),则会导致一个或多个延迟循环,在此延迟循环期间,没有功能块被激活,且轴保持在静止状态,直到下一个应用程序任务循环启动下一个功能块。

Axis_Ref

如 PLCopen 中定义的那样,Axis_Ref 用作运动功能块的输入,用于指定要用作此功能块的主轴或从轴的轴。

Modicon M262 Motion Controller 提供了三种 Axis_Ref 实现类型:

  • 驱动器轴

    驱动器轴由(比如)LXM32S 驱动器或通用 Sercos 驱动器设备对象提供。它可以通过(比如)DRV_X.Axis 来访问。在使用相应输入的情况下,驱动器轴可以用作任何功能块的主轴或从轴。驱动器轴的位置、速度和/或加速度值通常是目标值。唯一的例外是 Modicon M262 Motion Controller 不控制轴运动的情况(比如,在执行基准点定位期间、在驱动器自发执行的停止期间、或者在禁用了驱动器输出级时)。在这些情况下,轴的位置是反馈位置,速度/加速度则基于反馈位置来计算。即使在主轴当前不受 Modicon M262 Motion Controller 控制时,从轴仍能够沿循主轴。

  • 虚拟轴

    虚拟轴表示(比如)虚拟机轴,或者用于主轴与从轴之间的复杂关系的任何其他中间轴。虚拟轴可以通过在应用程序中的任何地方声明 FB_ControlledAxis 类型的 VAR 来创建。在使用相应输入的情况下,虚拟轴可以用作任何功能块的主轴或从轴。

    Modicon M262 Motion Controller 不限制虚拟轴的数量。但是,应注意,虚拟轴对 Modicon M262 Motion Controller 的性能影响不亚于驱动器轴的影响。

  • 编码器输入轴

    编码器输入轴由 Modicon M262 Motion Controller 的机载编码器输入提供。编码器输入只能用作主轴,不能用作从轴。编码器提供的反馈值被用作主轴位置。

在主轴不可用(比如,编码器断开连接或者无法工作)的情况下,沿循此主轴的任何从轴都会转换至 PLCopen 运行状态 ErrorStop。在这种情况下,如要同步停止从轴,需在轴之间实施中间虚拟轴。

如果主轴不可用,中间虚拟轴会转换至 PLCopen 运行状态 ErrorStop。沿循中间轴的轴保持在 PLCopen 运行状态 SynchronizedMotion,并在其减速度斜坡期间继续沿循此中间虚拟轴。

轴配置

Modicon M262 Motion Controller 支持由 PLCopen 定义的两种轴类型:

  • 模数轴

  • 线性/有限轴(有或无运动限制)

轴通过调用 Axis_Ref 的相应方法来配置。

无论是什么作业或轴状态(比如,即便在禁用了轴的情况下),也会保持被定义为模数轴的轴的模数。

即使在绝对模式下启动凸轮,轴模数与凸轮应用周期之间(无论是在 X 方向,还是在 Y 方向)都不一定要存在关系。有关详细信息,请参阅功能块描述。

参考位置和实际位置在模数跳转的同一侧。因此,比如在轴以模数 360 向前运动的情况下,当参考位置为 1 时,实际位置的值可能为 -2(而不是 358)。

绝对位置、基准点定位和绝对运动

在执行了电源重置之后,驱动器轴或编码器轴通常会通过存储的编码器位置来恢复其绝对位置。其具体方式是,将编码器位置乘以驱动器的比例调整系数,并将所得值与模数位置相关(如果使用了模数轴)。但控制器无法检验这个存储的绝对位置是否正确。如果(比如)机械位置已更改(例如,已更换电机、编码器和/或变速箱,或者在断电期间已手动执行运动),那么这个位置可能不正确。此外,必须以机械方式将轴的运动范围限制在小于一个编码器溢出的范围内。另外,机械变速箱的齿轮比和/或驱动器的比例调整系数的选择必须使得编码器周期的编码器位置可以被解析为应用周期的整数倍。

为了有助于避免绝对位置不正确的情况,Modicon M262 Motion Controller 会恢复绝对位置,但不会自动将轴视为已执行基准点定位。只有在成功执行了功能块 MC_Home 或功能块 MC_SetPosition(其中 Relative = FALSE)或者标志 isHomed 已被控制器应用程序设置为 TRUE 之后,才会将轴视为已执行基准点定位。

 警告
意外的设备操作
  • 每次执行电源重置之后,以及每次执行人工干预之后,应确认轴已正确执行基准点定位,然后才能执行任何其他运动。
  • 在执行任何类型的绝对运动之前,确认轴已正确执行基准点定位。
  • 除非通过适当的方式肯定且确认所恢复的绝对位置是正确的,否则不要在控制器应用程序中将标志 isHomed 设置为 TRUE
  • 充分阅读并理解应用/过程中使用的所有软件和设备的所有相关文档资料。
未按说明操作可能导致人身伤亡或设备损坏等严重后果。

使用浮点数的运动范围和位置计算

Modicon M262 Motion Controller 为绝对轴位置使用浮点数。浮点数的固有特性是,分辨率(就绝对量而言)随数值与零的绝对差值增大而减小。另一方面,驱动器的位置由整数(编码器增量)来表示,这样,无论数值与零的绝对差值有多大,分辨率也始终相同。在一段时间后,这会导致控制准确度降低,最终导致轴因检测到的错误而停止(即便浮点分辨率仍然足够)。

 警告
意外的设备操作
  • 为仅沿一个方向运动且持续增加其位置的轴(如输送机轴)使用模数轴类型。
  • 仅为运动范围(比如藉由限位开关)受到物理限制的轴使用线性/有限轴类型。
未按说明操作可能导致人身伤亡或设备损坏等严重后果。