Activador Ejemplo 2: Proceso de encolado
El Robotics_Trigger_Advanced.project
El proyecto de ejemplo descrito aquí se encuentra en el directorio de instalación de CODESYS bajo..\CODESYS SoftMotion\Examples
.
Los activadores se pueden utilizar para realizar acciones en posiciones específicas de la ruta, como encender y apagar una boquilla de encolado.
Este ejemplo incluye los siguientes componentes:
La configuración de una previsión garantizada de la trayectoria por parte del
fPlanningForecastDuration
parámetro de laSMC_TuneCPKernel
bloque de funcionesEl comando de diferentes disparadores. Aquí, se utilizan los tres métodos disponibles para definir la posición de la ruta (ver SMC_TriggerPositionType).
El uso de disparadores con cambio de tiempo. La aplicación de ejemplo contiene el
TriggerWithTimeShift
bloque de función, que puede reaccionar al alcanzar la posición de la ruta con un desfase de tiempo (anterior y posterior).
Estos componentes se muestran en una aplicación de muestra para un proceso de encolado. Se ejecuta (con blending) el movimiento que se muestra en rojo en la siguiente imagen.

Los activadores se han definido en las posiciones marcadas en verde:
Posición 1: Encienda el dispositivo de encolado 0,05 s antes de llegar a la posición.
Posición 1: Encienda la lámpara UV cuando se alcance la posición.
Posición 2: llene el contenedor de suministro de pegamento cuando se alcance la posición.
Posición 3: Apague el dispositivo de encolado y deje de llenar el contenedor de suministro de pegamento 0,05 s antes de llegar a la posición.
Posición 3: Apague la lámpara UV 1,5 s después de llegar a la posición
Estructura de la aplicación
La aplicación consta de las siguientes partes.
GlueApplication
: Este programa contiene la aplicación de muestra que muestra cómo usar los disparadores para un proceso de encolado.Planning_PRG
: En este programa se configura una previsión de la trayectoria.TriggerWithTimeShift
: Este bloque de funciones contiene la lógica para disparadores con un cambio de tiempo y se utiliza en elGlueApplication
programa de muestraTrace
: La traza muestra la dinámica de los ejes y también las salidas de losGlueApplication
programa que son conmutados por los activadores.
Configuración de un pronóstico
Si desea reaccionar antes de que se alcance un disparo, por ejemplo, 0,05 s antes, entonces el fPlanningForecastDuration
parámetro del SMC_SMC_TuneCPKernel
el bloque de funciones debe ajustarse al menos a 0,05 s. Debido a que el parámetro tiene un impacto directo en la latencia, su valor no debe ser mayor de lo necesario (consulte la documentación de fPlanificaciónPronósticoDuración). Tenga en cuenta que SMC_TuneCPKernel
tiene que ser llamado en el SoftMotion tarea de planificación. Por este motivo, la configuración no se ejecuta en el programa principal. GlueApplication
, pero en el Planning_PRG
programa.
En esta aplicación de ejemplo, se requiere la evaluación del disparador como mínimo 0,05 s antes de que se alcance una posición. Por esta razón, el parámetrofPlanningForecastDuration
=0.05 se establece en el Planning_PRG
programa.
Bloque de funciones: TriggerWithTimeShift
El TriggerWithTimeShift
El bloque de funciones proporciona una interfaz simplificada para usar disparadores. Además, se puede definir un cambio de tiempo para que el disparador pueda reaccionar antes de que se alcance una posición (valor positivo) así como después de que se alcance una posición (valor negativo). Dependiendo de la precisión de tiempo requerida en una aplicación, la reacción al alcanzar un disparador puede ser la siguiente:
Precisión de tiempo requerida >= ciclo de tarea de bus: En este caso, el
TriggerWithTimeShift.TriggerReachedThisCycle
Se puede utilizar la salida.Precisión de tiempo requerida < ciclo de tarea de bus: en este caso, el tiempo restante exacto
TriggerWithTimeShift.TriggerTime
hasta que se alcance el gatillo se puede utilizar.
Internamente, TriggerWithTimeShift
usa el SMC_GroupPrepareTrigger
y SMC_GroupReadTrigger
bloques de funciones
Disparadores de mando
En el GlueApplication
programa, se comandan los movimientos y disparadores. El orden de llamada es particularmente importante para los disparadores porque los disparadores preparados usando SMC_GroupPrepareTrigger
se asignan al siguiente movimiento comandado en el mismo ciclo. Por lo tanto, en cada aplicación debe prestar atención a lo siguiente:
Los bloques de funciones para el comando de disparadores siempre se llaman antes que los bloques de funciones de movimiento.
Los gatillos y el respectivo movimiento son comandados siempre en el mismo ciclo.
Los activadores utilizan todos los tipos de SMC_TriggerPositionType
:
Los disparadores en la Posición 1 usan la definición de una distancia relativa (
SMC_TriggerPositionType.MvtRelative
) y como Posición 0.5. Debido a que el movimiento respectivo tiene una distancia de 10, los disparadores están ubicados en X=5.El disparador en la Posición 2 usa la definición de una distancia en unidades de usuario u (
SMC_TriggerPositionType.MvtDistance
) y como Posición 5. Como resultado, el gatillo también se encuentra en X=5.Los disparadores en la Posición 3 usan la intersección con un plano (
SMC_TriggerPositionType.PlaneIntersection
). El plano se ha definido de modo que los disparadores estén ubicados en X=5.
GlueApplication
tiene el EnableGlue
, EnableUVLamp
, y RefillGlueStorage
salidas. Estos se activan en los disparadores apropiados en GlueApplication.EvaluateTriggers()
. El movimiento y el estado de estas salidas se pueden monitorear y evaluar en la traza.