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:
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í.
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 elIActuator
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).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 delIProgramSequenceStep
interfaz. Ver elIActuator
documentación en la biblioteca. Al usar la clase baseStepBase
, entonces solo es necesario implementar elExecute
método. Este último es llamado cíclicamente por el flujo del programa hasta que la variablexDone
de la clase base se establece enTRUE
. Además, para una correcta funcionalidad, la banderaxActive
debe establecerse enTRUE
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.).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 OMACfigura 67. Módulo:MovableBarrier
El módulo
MovableBarrier
se implementa de la siguiente manera: El bloque de función correspondienteMovableBarrier
implementa la interfaz creadaIMovableBarrier
. La última interfaz define métodos para mover una barrera, mientras queIMovableBarrier
en sí mismo implementa la interfazIActuator
, para que el móduloMovableBarrier
se puede insertar como actuador en el árbol de módulos debajo de una unidad mecatrónica:figura 68. Implementación del móduloMovableBarrier
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óduloMoveBarrierForTime
El módulo que implementa el bloque de funciones
MoveBarrierForTime
simplemente se deriva del bloque de función base contenido en la bibliotecaAC_MEC.StepBase
. Por eso el bloque de funcionesMoveBarrierForTime
ya implementa la interfazIProgramSequenceStep
. En consecuencia, el móduloMoveBarrierForTime
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óduloMoveBarrierForTime
, que puede contener un actuador que implementa la interfazIMovableBarrier
, uno obtiene una conexión a un actuador "MovableBarrier" existente. El movimiento de este actuador se realiza finalmente en elExecute
función de laMoveBarrierForTime
bloque 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 implementaIMovableBarrier
. Además la propiedadDone
y la variablexActive
están acoplados a un TON, de modo que llama repetidamente a las funciones de movimiento deIMovableBarrier
se realizan hasta que transcurre cierto tiempo (TON), después del cualDone
se establece en VERDADERO yxActive
a FALSO. La propiedadDone
es parte de la interfazIProgramSequenceStep
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 pasoBranchOnBool
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 bibliotecaAC_Mechatronics.library
contiene pasos de flujo para flujos paralelos, saltos condicionales o pasos de espera simples y muchas más tareas.