Skip to main content

Biblioteca: Mechatronics

Sugerencia

los Mechatronics La biblioteca pretende ser un ejemplo de una implementación simple (y no completa) de una unidad mecatrónica con ejecución secuencial. No cumple con todos los requisitos que podría tener una aplicación mecatrónica completa. Más bien, pretende ser un punto de entrada o base para una aplicación de este tipo.

El núcleo esencial del modelo de mecatrónica propuesto se basa en la siguiente estructura de módulos:

figura 65. Ejemplo de Compositor de aplicaciones Mechatronics
Ejemplo de Compositor de aplicaciones Mechatronics


Por lo tanto, se supone que cualquier máquina posiblemente tenga varias subunidades mecatrónicas (ejemplo: cada una representando una pinza). Tal subunidad nuevamente se divide en sus actuadores (equivalente a la propia unidad mecánica, también su implementación funcional o gestión de E/S) y un administrador de programas. El administrador de programas está destinado a administrar los diferentes estados de una subunidad mecatrónica, por ejemplo, su Idle o Execute estado. Eventualmente, esos estados están representados por secuencias de programas que controlan los actuadores o cualquier otra cosa necesaria para una ejecución adecuada.

En este punto, las diversas partes se describirán brevemente en detalle. Al usar la biblioteca, en muchos casos será necesario implementar sus propios actuadores, pasos de flujo o secuencias de programa, que también se explicarán aquí.

  1. Actuadores: Todos los módulos que deberían ser actuadores deben implementarse mediante un bloque de funciones que a su vez implemente el IActuator interfaz. Esta interfaz no tiene métodos ni propiedades y se usa solo para la compatibilidad del módulo (ver el IActuator documentación en la biblioteca). No se dan restricciones ni reglas para las implementaciones del actuador, por lo que el movimiento o la activación de dicho actuador debe realizarse por separado. Normalmente, esto se hace mediante la implementación de un módulo de pasos de secuencia, que puede mantener los actuadores adecuados en una ranura de referencia y, por lo tanto, mover estos últimos de la manera deseada (por ejemplo, utilizando interfaces adicionales).

  2. Pasos de secuencia

    Se recomienda enfáticamente que ejecute la implementación de pasos de flujo como clases derivadas del StepBase bloque de funciones Esto proporciona todas las implementaciones básicas necesarias del IProgramSequenceStep interfaz. Ver el IActuator documentación en la biblioteca. Al usar la clase base StepBase, entonces solo es necesario implementar el Execute método. Este último es llamado cíclicamente por el flujo del programa hasta que la variable xDone de la clase base se establece en TRUE. Además, para una correcta funcionalidad, la bandera xActive debe establecerse en TRUE mientras el paso esté activo. Sin embargo, la conexión a los actuadores se puede realizar de cualquier manera, por ejemplo, mediante las ranuras de referencia propuestas (ver 1.).

  3. Secuencia de programas y administrador de programas Una secuencia de programa es un submódulo de un administrador de programas, que representa un estado. Estos estados se gestionan en forma de una máquina de estado OMAC. Sus implementaciones nuevamente se basan en un método "Ejecutar" (para más detalles, consulte la implementación en la biblioteca). Sin embargo, la implementación de dicho flujo de programa por parte del usuario no es necesaria en la mayoría de los casos. Sin embargo, la forma en que el comportamiento de la máquina de estado se implementa en el administrador de programas y, por lo tanto, ejecuta las secuencias del programa se describirá brevemente aquí:

    Hay dos tipos de estados: estados de actuación (que terminan en "ing") y estados de espera/dual (el resto). Los estados de espera finalizan mediante comandos externos, mientras que los estados de actuación se ejecutan y finalizan automáticamente. Los comandos disponibles dependen del estado en el que se encuentre el administrador del programa en ese momento. En el diagrama de estado OMAC se proporciona una breve descripción general:

    figura 66. diagrama OMAC
    diagrama OMAC


    figura 67. Módulo: MovableBarrier
    Módulo: MovableBarrier


    El módulo MovableBarrier se implementa de la siguiente manera: El bloque de función correspondiente MovableBarrier implementa la interfaz creada IMovableBarrier. La última interfaz define métodos para mover una barrera, mientras que IMovableBarrier en sí mismo implementa la interfaz IActuator, para que el módulo MovableBarrier se puede insertar como actuador en el árbol de módulos debajo de una unidad mecatrónica:

    figura 68. Implementación del módulo MovableBarrier
    Implementación del módulo MovableBarrier


    Sin embargo, este actuador "MovableBarrier" es movido por el módulo de pasos de secuencia MoveBarrierForTime, que a su vez se implementa de la siguiente manera:

    figura 69. Implementación del módulo MoveBarrierForTime
    Implementación del módulo MoveBarrierForTime


    El módulo que implementa el bloque de funciones MoveBarrierForTime simplemente se deriva del bloque de función base contenido en la biblioteca AC_MEC.StepBase. Por eso el bloque de funciones MoveBarrierForTime ya implementa la interfaz IProgramSequenceStep. En consecuencia, el módulo MoveBarrierForTime se puede insertar como paso de secuencia en una secuencia de programa. La implementación funcional del bloque de funciones. MoveBarrierForTime es el siguiente: definiendo un slot de referencia para el módulo MoveBarrierForTime, que puede contener un actuador que implementa la interfaz IMovableBarrier, uno obtiene una conexión a un actuador "MovableBarrier" existente. El movimiento de este actuador se realiza finalmente en el Execute función de la MoveBarrierForTimebloque de función, que simplemente llama al método para (pictóricamente) mover la cubierta protectora. Este método lo proporciona el actuador referenciado, que implementa IMovableBarrier . Además la propiedad Done y la variable xActive están acoplados a un TON, de modo que llama repetidamente a las funciones de movimiento de IMovableBarrier se realizan hasta que transcurre cierto tiempo (TON), después del cual Done se establece en VERDADERO y xActive a FALSO. La propiedad Done es parte de la interfaz IProgramSequenceStep y por lo tanto le dice a la secuencia de programa superior que se ejecutará el siguiente paso de secuencia.

    Además de su propia implementación de pasos de secuencia, el AC_Mechatronics.library también proporciona algunos pasos pre-implementados, que se pueden usar para operaciones lógicas generales. Por ejemplo, esto significa un paso BranchOnBool se proporciona, que tiene dos subsecuencias / ramas de pasos, que se ejecutan en función del valor de una variable BOOL. Estos subpasos se ejecutan según el valor de una variable booleana. Además, la biblioteca AC_Mechatronics.library contiene pasos de flujo para flujos paralelos, saltos condicionales o pasos de espera simples y muchas más tareas.