Skip to main content

Sincronización con un sistema de coordenadas en movimiento

La función de seguimiento integrada permite la programación de movimientos relativos a un sistema de coordenadas en movimiento. Un caso de uso típico es recoger un producto de una cinta transportadora y colocarlo en una cinta transportadora diferente. Después de definir un sistema de coordenadas dinámico para cada banda, el usuario puede simplemente proporcionar posiciones de destino para los movimientos que son relativos a este sistema de coordenadas. CODESYS SoftMotion se encarga de superponer el movimiento comandado del grupo de ejes y el movimiento de la correa.

Un movimiento de seguimiento típico consta de tres fases:

  • Seguimiento de entrada: pasar de otro sistema de coordenadas al sistema de coordenadas dinámicas. Una vez alcanzada la posición de destino, el grupo de ejes seguirá el movimiento del sistema de coordenadas dinámicas.

  • Movimiento de seguimiento: Moverse a una posición diferente dentro del mismo sistema de coordenadas dinámicas. Se superpondrán el movimiento comandado y el movimiento del sistema de coordenadas dinámicas.

  • Seguimiento: Pasar del sistema de coordenadas dinámicas a un sistema de coordenadas diferente. Una vez alcanzada la posición de destino, el movimiento del grupo de ejes ya no se verá afectado por el movimiento del sistema de coordenadas dinámicas.

Definición de un sistema de coordenadas dinámico

El primer paso para implementar una aplicación de seguimiento dinámico es definir un sistema de coordenadas dinámico. CODESYS SoftMotion proporciona cuatro bloques de funciones para definir sistemas de coordenadas dinámicas:

  • MC_TrackConveyorBelt: un bloque de funciones fácil de usar para el caso de uso común de seguimiento de una cinta transportadora. Se proporciona una referencia al cinturón real a través del ConveyorBelt input, que espera un eje SoftMotion de tipo AXIS_REF_SM3.

  • MC_TrackRotaryTable: un bloque de funciones fácil de usar para el caso de uso común de seguimiento de una mesa giratoria. Se proporciona una referencia a la mesa giratoria real a través del RotaryTable input, que espera un eje SoftMotion de tipo AXIS_REF_SM3.

  • MC_SetDynCoordTransform: El bloque de funciones funciona de forma similar a MC_TrackConveyorBelt y MC_TrackRotaryTable, pero, en lugar de estar controlado por un solo eje, está controlado por un grupo de ejes completo. Esto permite implementar un sistema de coordenadas dinámico con hasta seis grados de libertad.

  • SMC_SetDynCoordTransformEx: El bloque de funciones permite implementar un sistema de coordenadas dinámico completamente personalizado.

Cada uno de los cuatro bloques de funciones tiene un CoordSystem entrada que esencialmente permite dar un nombre al sistema de coordenadas, ya sea PCS_1 o PCS_2. Al ordenar un movimiento, el sistema de coordenadas se referencia con este nombre.

Ordenar un movimiento a una posición en un sistema de coordenadas dinámico

Después de haber definido un sistema de coordenadas dinámico, es fácil comandar un movimiento a una posición en este sistema de coordenadas. Cada bloque de función de movimiento, por ejemplo MC_MoveLinearAbsolute, tiene un CoordSystem aporte. Esta entrada debe configurarse con el nombre (PCS_1 o PCS_2) dado al sistema de coordenadas dinámicas. los Position la entrada se puede establecer en la posición deseada en relación con el origen del sistema de coordenadas dinámicas. La ejecución del bloque de función de movimiento conducirá a un movimiento a la posición dentro del sistema de coordenadas en movimiento. Una vez que se ha alcanzado la posición de destino, el grupo de ejes seguirá el sistema de coordenadas dinámicas mientras permanece en esta posición relativa.

La salida "InUse" de los bloques de funciones del sistema de coordenadas dinámicas

Cada bloque de función del sistema de coordenadas dinámicas (MC_TrackConveyorBelt, MC_TrackRotaryTable, MC_SetDynCoordTransform, y SMC_SetDynCoordTransformEx) tiene un InUse producción. No se permite reiniciar un bloque de funciones mientras el sistema de coordenadas todavía está en uso y dará como resultado el error SMC_AXIS_GROUP_PCS_STILL_IN_USE. Se utilizará un sistema de coordenadas dinámico tan pronto como se ordene un movimiento a una posición en el sistema de coordenadas. Permanecerá en uso hasta que se alcance una posición de destino en un sistema de coordenadas diferente.

Límites de ejes para movimientos de seguimiento

Los límites de los ejes tienen que tener en cuenta tanto el movimiento del sistema de coordenadas como el movimiento ordenado en relación con el sistema de coordenadas. Si se requiere una dinámica de eje alta para seguir el sistema de coordenadas, el movimiento relativo al sistema de coordenadas puede ser lento o no ser posible en absoluto. Si el grupo de ejes está cerca de una singularidad de la cinemática, esto puede suceder incluso con un sistema de coordenadas de movimiento relativamente lento.

Para más información, ver: Pestaña: General

Dinámica de trayectoria de los movimientos de CP durante el seguimiento

Se debe prestar especial atención a la dinámica de la trayectoria de los movimientos del PC. Esto incluye el Velocity, Acceleration, Deceleration, y Jerk entradas de MC_MoveLinearAbsolute, MC_MoveLinearRelative, MC_MoveCircularAbsolute, y MC_MoveCircularRelative. Si la posición inicial y de destino están en el mismo sistema de coordenadas dinámico, la dinámica de la ruta será relativa a este sistema de coordenadas. Sin embargo, si la posición inicial y final están en sistemas de coordenadas diferentes, la dinámica de la trayectoria se combina desde la dinámica relativa al primer sistema de coordenadas hasta la dinámica relativa al segundo sistema de coordenadas. Es importante que la dinámica de la trayectoria se establezca por encima del valor absoluto de la diferencia de dinámica entre los dos sistemas de coordenadas. En particular, al pasar de un sistema de coordenadas estático a uno dinámico, la dinámica de la trayectoria debe establecerse por encima del valor absoluto de la dinámica del sistema de coordenadas.

Importante

La velocidad de trayectoria no puede ser monitoreada con SMC_GroupReadPathDynamics al moverse entre sistemas de coordenadas (seguimiento hacia adentro, hacia afuera o entre diferentes sistemas de coordenadas dinámicos).

SMC_GroupReadPathDynamics calcula la dinámica de la ruta en relación con un sistema de coordenadas específico. En el caso de seguimiento de entrada o salida o movimiento entre sistemas de coordenadas dinámicas, este es un movimiento que depende de dos sistemas de coordenadas (los sistemas de coordenadas de inicio y destino difieren). Como resultado, el SMC_GroupReadPathDynamics El bloque de funciones no es adecuado para calcular la dinámica de trayectoria en estos casos.

Evite los errores SMC_AXIS_GROUP_MAX_AXIS_LAG_EXCEEDED, SMC_AXIS_GROUP_MAX_POSITION_LAG_EXCEEDED o SMC_AXIS_GROUP_MAX_ORIENTATION_LAG_EXCEEDED.

Los errores SMC_AXIS_GROUP_MAX_AXIS_LAG_EXCEEDED, SMC_AXIS_GROUP_MAX_POSITION_LAG_EXCEEDED, o SMC_AXIS_GROUP_MAX_ORIENTATION_LAG_EXCEEDED se informan si no es posible seguir la ruta ordenada sin violar los límites del eje configurados o la dinámica de la ruta. Si se produce este error, primero se debe verificar si los límites del eje y la dinámica de la trayectoria están configurados de acuerdo con las dos secciones anteriores. La desviación del recorrido se puede controlar con las salidas PositionLag y OrientationLag del MC_GroupReadStatus bloque de funciones.

Las posibles soluciones son las siguientes:

  • Aumente los límites del eje.

  • Aumente la dinámica de la ruta de los movimientos de CP al realizar un seguimiento en un sistema de coordenadas dinámicas.

  • Reducir la dinámica del sistema de coordenadas.

  • Evitar movimientos cercanos a una singularidad de la cinemática, por ejemplo reposicionando el robot.

Si el sistema de coordenadas dinámicas está controlado por la salida de un codificador ruidoso, podría ser útil filtrar la señal del codificador mediante un eje lógico. Para más información, verPestaña: Ejes Lógicos.

Se puede configurar una tolerancia aceptable para el retraso de posición y orientación mediante el SMC_GroupSetPathTolerance bloque de funciones