Skip to main content

Errores comunes

Esta página describe errores comunes al usar CODESYS Softmotion Basic, sus causas y posibles acciones a tomar para corregir el error. Para obtener una lista de todos los errores posibles con una breve descripción, consulte la documentación de la biblioteca: SMC_ERROR

tabla 40.

Código de error

Descripción y causas

Comportamiento

SMC_DI_AXIS_ERROR

La unidad ha informado de un error.

Posibles Causas:

  • Retraso de posición

  • Límite de cambio

  • Sobrecarga (error I²t)

Compruebe qué error informa la unidad. El error se puede leer en la pantalla de la unidad (si está disponible) o buscándolo con el MC_ReadAxisError bloque de funciones.

SMC_AXIS_ERROR_DURING_MOTION

La unidad ha informado de un error. Durante un movimiento, el bloque de movimiento activo devuelve este error.

Ver las acciones para el error. SMC_DI_AXIS_ERROR.

SMC_FB_WASNT_CALLED_DURING_MOTION

El bloque de funciones que controla el movimiento activo no ha sido llamado en el ciclo actual.

Posibles causas:

  • El orden de llamada para los movimientos almacenados en búfer o los movimientos de combinación es incorrecto. La instancia del bloque funcional del movimiento posterior no debe invocarse antes que la instancia del bloque funcional que ordenó el movimiento anterior

  • A partir de SoftMotion En la versión 4.15.0.0, el mensaje de registro de este error contiene la ruta de la instancia al bloque de funciones afectado.

  • Compruebe en la aplicación por qué el bloque de funciones no se ha llamado cíclicamente.

  • Arregle la llamada para que se realice cíclicamente (al menos mientras el bloque esté en uso).

SMC_BLOCKING_MC_STOP_WASNT_CALLED

Durante una parada activa, el bloque de funciones asociado MC_Stop no fue convocado en el ciclo actual.

Ver las acciones para el error. SMC_FB_WASNT_CALLED_DURING_MOTION.

SMC_AXIS_NOT_READY_FOR_MOTION

El eje no está listo para su uso y no puede ejecutar el movimiento deseado.

Posibles Causas:

  • El eje no se encuentra en estado operativo para el movimiento respectivo (p. ej. power_off o errorstop).

  • El eje está en estado de error y todos los movimientos almacenados en búfer devuelven este error.

  • El eje está en el stopping estado (durante una actividad MC_Stop) y se ordena un nuevo movimiento de aborto.

Comprobar el estado del eje:

  • ¿Está el eje en estado operativo según MC_Power?

  • ¿Está el eje en el errorstop ¿estado? Si es así, identifique el error del eje y corríjalo.

  • ¿El estado del eje coincide con el movimiento ordenado? Por ejemplo, MC_CamOut Sólo se puede ordenar cuando el eje está en estado de movimiento sincronizado.

SMC_FB_CALLED_FROM_WRONG_TASK

El SoftMotion El bloque fue llamado desde una tarea que no corresponde a la tarea de bus del eje.

Porque el SoftMotion Los bloques cambian los valores en el eje, pueden ocurrir estados inconsistentes si las llamadas se realizan desde tareas distintas a la tarea del bus. Esto puede provocar errores indefinidos, lo que se evita con este error.

  • Compruebe el registro: se registran el eje afectado y la instancia de bloque.

  • Elimine la llamada de la tarea incorrecta.

SMC_DI_FIELDBUS_LOST_SYNCRONICITY

Ocurre cuando se usa EtherCAT con relojes distribuidos si la trama del controlador a la unidad no se recibió a tiempo (dentro de la ventana de tiempo definida ("SyncWindow") o no se recibió en absoluto.

Posibles Causas:

  • Problemas en tiempo real:

    • La inquietud de la tarea es demasiado alta.

    • La prioridad de la tarea del EtherCAT La tarea es demasiado baja.

    • Otros buses de campo (por ejemplo, Modbus) u operaciones prolongadas además de las tareas de control (por ejemplo, acceso a archivos) en el EtherCAT tarea

    • Modbus se ejecuta en otra tarea, pero los canales de E/S que utiliza también se hacen referencia en la EtherCAT tarea.

    • Especialmente con los sistemas operativos Linux, la configuración del sistema (por ejemplo, prioridades IRQ)

  • problema de comunicación con el EtherCAT esclavo: Conexión interrumpida, problemas de compatibilidad electromagnética (EMC), etc.

Verifique la causa del comportamiento. Las siguientes funciones pueden ayudarle con esto:

Posibles acciones para problemas en tiempo real:

SMC_DI_SWLIMITS_EXCEEDED

El eje se mueve en dirección al final de carrera por software positivo o negativo y lo sobrepasará con la dinámica actual. El error también se produce antes de la posición real del final de carrera, ya que en el cálculo también se incluye la distancia de frenado necesaria.

  • Compruebe si se desea o no el movimiento en este rango de posiciones.

  • Si es necesario, ajuste la posición del interruptor de límite de software negativo y/o positivo. Ver Pestaña: General

SMC_DI_HWLIMITS_EXCEEDED

El final de carrera por hardware positivo o negativo se ha disparado y el eje se mueve en la dirección de este final de carrera.

  • Comprobar la posición comandada del movimiento. Esto no debe exceder las posiciones de los interruptores de límite de hardware.

  • Si el movimiento es correcto, verifique las señales de los finales de carrera de hardware.

SMC_MOVING_WITHOUT_ACTIVE_MOVEMENT

No hay movimiento activo, pero la velocidad ajustada no es igual a cero y el eje se encuentra en un estado operativo en el que se siguen los valores ajustados.

Posibles Causas:

  • Cuando usas MC_PositionProfile, MC_VelocityProfile, o MC_AccelerationProfile, el eje debe detenerse al final de este movimiento o se debe ordenar un movimiento posterior en el mismo ciclo. De lo contrario, se devuelve este error.

Verifique la causa del problema:

  • Orden de llamada incorrecto para movimientos almacenados en búfer y combinados: ajuste el orden de llamada. Para más información, consulte la sección Orden de ejecución de los bloques de funciones de movimiento.

  • MC_PositionProfile, MC_VelocityProfile, o MC_AccelerationProfile se utiliza y al final no se llega a la parada: ajustar el perfil correspondientemente para que se alcance la parada al final. O en su lugar usar Cámaras, que cubren un caso de uso similar a estos bloques de funciones, pero son más flexibles y fáciles de usar.