Skip to main content

图书馆:机电一体化

提示

Mechatronics 库旨在成为具有顺序执行功能的机电单元的简单(而非完整)实现的示例。它不能满足完整机电一体化应用程序可能具有的所有要求。相反,它旨在成为此类应用程序的入口点或基础。

所提出的机电一体化模型的核心基于以下模块结构:

65. 应用程序编辑器示例 Mechatronics
应用程序编辑器示例 Mechatronics


因此,假设任何机器都可能有多个机电子单元(例如:每个子单元代表一个夹具)。这样的子单元再次分为其执行器(相当于机械单元本身,也是其功能实现或 I/O 管理)和程序管理器。程序管理器旨在管理机电电子子单元的不同状态,例如其 Idle 或者 Execute 状态。最终,这些状态由控制执行器或正确执行所需的任何其他内容的程序序列来表示。

至此,对各部分进行简要详细介绍。使用该库时,在许多情况下需要实现您自己的执行器、流程步骤或程序序列,这也将在此处进行解释。

  1. 执行器:所有应该是执行器的模块必须由一个功能块来实现,该功能块又实现 IActuator 界面。该接口没有方法或属性,仅用于模块兼容性(请参阅 IActuator 图书馆中的文档)。对于致动器的实现没有给出任何限制或规则,因此这种致动器的移动或激活必须单独完成。通常,这是通过实现序列步骤模块来完成的,该模块可以将适当的致动器固定在参考槽中,从而以所需的方式移动后者(例如使用附加接口)。

  2. 步骤顺序

    强烈建议您将流程步骤的实现作为 StepBase 功能块。这提供了所有必要的基本实现 IProgramSequenceStep 界面。请参阅 IActuator 图书馆中的文档。使用基类时 StepBase,那么只需执行 Execute 方法。然后程序流程循环调用后者,直到变量 xDone 基类的设置为 TRUE。此外,为了获得正确的功能,该标志 xActive 应设置为 TRUE 只要该步骤处于活动状态。然而,与执行器的连接可以通过任何方式完成,例如通过建议的参考槽(参见 1.)。

  3. 程序顺序和程序管理器 程序序列是程序管理器的子模块,代表一种状态。这些状态以 OMAC 状态机的形式进行管理。它的实现再次基于方法“执行”(有关详细信息,请参阅库中的实现)。然而,在大多数情况下,用户不需要执行这样的程序流程。然而,状态机的行为在程序管理器中实现并由此执行程序序列的方式将在这里简要描述:

    有两种类型的状态:执行状态(以“ing”结尾)和等待/双重状态(其余)。等待状态由外部命令结束,而动作状态则自动执行并结束。可用命令取决于程序管理器当前所处的状态。 OMAC 状态图中给出了简短的概述:

    66. OMAC图
    OMAC图


    67. 模块: MovableBarrier
    模块: MovableBarrier


    该模块 MovableBarrier 实现方式如下: 对应的功能块 MovableBarrier 实现创建的接口 IMovableBarrier。后一个接口定义了移动障碍物的方法,而 IMovableBarrier 本身实现接口 IActuator,使得模块 MovableBarrier 可作为执行器插入机电一体化单元下方的模块树中:

    68. 模块的实现 MovableBarrier
    模块的实现 MovableBarrier


    然而,这个执行器“MovableBarrier”是由序列步骤模块移动的 MoveBarrierForTime,它本身是通过以下方式实现的:

    69. 模块的实现 MoveBarrierForTime
    模块的实现 MoveBarrierForTime


    模块实现功能块 MoveBarrierForTime 只是从库包含的基本功能块派生而来 AC_MEC.StepBase。由此功能块 MoveBarrierForTime 已经实现了该接口 IProgramSequenceStep。因此该模块 MoveBarrierForTime 可作为程序序列下的序列步骤插入。功能块的功能实现 MoveBarrierForTime 如下:通过为模块定义一个参考槽 MoveBarrierForTime,它可以容纳实现接口的执行器 IMovableBarrier,可以连接到现有的“MovableBarrier”执行器。该执行器的运动最终在 Execute 的功能 MoveBarrierForTime功能块,它只是调用(如图所示)移动防护罩的方法。该方法由引用的执行器提供,它实现 IMovableBarrier 。此外,该物业 Done 和变量 xActive 耦合到 TON,以便重复调用 的 move 函数 IMovableBarrier 直到经过一定时间 (TON) 后才完成 Done 设置为 TRUE 并且 xActive 为假。该物业 Done 是界面的一部分 IProgramSequenceStep 从而告诉上级程序序列,应执行下一个序列步骤。

    除了您自己实现的序列步骤之外, AC_Mechatronics.library 还提供了一些预先实现的步骤,可用于一般的逻辑操作。例如这意味着一步 BranchOnBool 提供了两个子序列/步骤分支,它们基于 BOOL 变量的值执行。这些子步骤的执行取决于布尔变量的值。此外,图书馆 AC_Mechatronics.library 包含并行流的流程步骤、条件跳转或简单的等待步骤以及更多任务。