WaitTime en robots ABB: que es y como usarla en RAPID

WaitTime en robots ABB: que es, como se usa en RAPID y cuando no usarla

Por Marco  ·  Actualizado el 8 de septiembre de 2026  ·  7 min de lectura

Respuesta directa: WaitTime es una instruccion del lenguaje RAPID de ABB que pausa la ejecucion del programa del robot un tiempo determinado en segundos. Se inserta desde el FlexPendant dentro de una rutina, y su sintaxis basica es WaitTime 0.5; donde el numero indica los segundos de espera. Se usa para dar tiempo a que un actuador, un sensor o un dispositivo externo responda antes de que el robot continue el ciclo.

FlexPendant de robot ABB mostrando instruccion WaitTime en programa RAPID
WaitTime controla los tiempos dentro del ciclo de robot ABB. Usarla mal es una de las fuentes mas comunes de errores de sincronizacion en planta.

Hay instrucciones en RAPID que parecen simples pero que cuando se usan mal generan problemas que tardan horas en diagnosticar. WaitTime es una de ellas. No porque sea complicada, sino porque es facil usarla de forma incorrecta y no darse cuenta hasta que el ciclo falla en condiciones que nadie esperaba.

Este articulo explica que hace WaitTime, como se inserta desde el FlexPendant, en que situaciones tiene sentido usarla y, igual de importante, en que situaciones no es la herramienta correcta.

WaitTime es el tipo de instruccion que alguien aprende en su primer dia con RAPID y que, si nadie la explica bien, sigue usando de forma incorrecta durante meses. No porque quiera hacerlo mal. Porque nadie le dijo cuando no usarla.

Que hace WaitTime en RAPID

WaitTime es una instruccion del lenguaje RAPID de ABB que detiene la ejecucion del programa del robot durante un tiempo fijo. El robot termina su ultimo movimiento, espera el tiempo indicado y luego continua con la siguiente instruccion del programa.

A diferencia de las instrucciones de movimiento, WaitTime no mueve el robot. Solo detiene la ejecucion del programa. El robot queda fisicamente detenido en la posicion en que estaba mientras espera que el tiempo transcurra.

Es una instruccion de proposito general incluida en el manual tecnico oficial de instrucciones RAPID de ABB y esta disponible en todos los controladores IRC5 y OmniCore sin necesidad de opciones adicionales.

Sintaxis y parametros

La sintaxis basica de WaitTime es la siguiente:

WaitTime Time [\InPos];

Donde:

  • Time - el tiempo de espera en segundos. Puede ser un numero decimal. WaitTime 0.5; espera medio segundo. WaitTime 2; espera dos segundos.
  • \InPos (opcional) - si se incluye este argumento, el robot espera a que el eje haya llegado completamente a su posicion antes de empezar a contar el tiempo. Sin este argumento, el tiempo empieza a correr en cuanto la instruccion anterior termina, aunque el robot todavia este desacelerando.

Ejemplo practico dentro de una rutina de pick and place:

PROC PickPart()
  MoveL pickPos, v100, fine, gripper;
  SetDO DO_GripperClose, 1;     ! Cierra el gripper
  WaitTime 0.5;                   ! Espera a que el gripper cierre
  MoveL approachPick, v200, z50, gripper;
ENDPROC

En este ejemplo, el programa activa la salida del gripper y espera medio segundo antes de mover el robot hacia arriba. Ese medio segundo le da tiempo al actuador neumatico de cerrarse completamente antes de que el robot intente llevarse la pieza.

El numero de segundos correcto en WaitTime no es un valor universal. Es el tiempo real que tarda el actuador en responder en tu celda. Si el gripper tarda 300 milisegundos en cerrar, WaitTime 0.3 es suficiente. Si tarda 600, necesitas WaitTime 0.6. Adivinarlo sin medirlo es la primera fuente de errores de sincronizacion.

Como insertar WaitTime desde el FlexPendant

Para insertar WaitTime en un programa desde el FlexPendant del IRC5:

  1. Abre el programa en el editor del FlexPendant.
  2. Posiciona el cursor en la linea donde quieres insertar la instruccion.
  3. Toca Agregar instruccion (el boton en la parte inferior de la pantalla del editor).
  4. En la lista de categorias de instrucciones, selecciona Wait.
  5. Selecciona WaitTime de la lista.
  6. El FlexPendant inserta la instruccion con un valor de tiempo por defecto. Toca el valor para editarlo e introduce los segundos que necesitas.
  7. Si necesitas el argumento opcional \InPos, toca la instruccion insertada y selecciona los argumentos opcionales disponibles.

El video de RoboTraining Academy muestra este proceso paso a paso directamente en el FlexPendant, que es la forma mas clara de verlo si es la primera vez que insertas instrucciones RAPID desde el pendant.

Cuando tiene sentido usar WaitTime

WaitTime es la herramienta correcta en estas situaciones:

Activacion de actuadores neumaticos o electricos

Cuando el robot activa una salida digital para cerrar un gripper, abrir una valvula o activar un soplador, hay un tiempo de respuesta del actuador antes de que el efecto fisico ocurra. WaitTime da ese margen antes de que el robot continue el ciclo.

Estabilizacion de sensores

Algunos sensores de vision o de presencia necesitan un tiempo de estabilizacion despues de activarse antes de que su lectura sea confiable. Una espera corta con WaitTime antes de leer la senal del sensor evita lecturas incorrectas por transitorio.

Sincronizacion con procesos externos de tiempo fijo

Si el proceso externo siempre tarda el mismo tiempo y ese tiempo es predecible y constante (un dispensado de adhesivo, una camara fotografica, un ciclo de soldadura de duracion fija), WaitTime es una forma valida de sincronizacion.

Pausas de diagnostico durante pruebas

Durante el desarrollo y prueba de un programa nuevo, WaitTime puede usarse para insertar pausas temporales que permitan observar el comportamiento del robot en puntos especificos del ciclo. En produccion estas pausas se eliminan o se sustituyen por condiciones reales.

Cuando no usar WaitTime

Este es el punto que mas se omite en los primeros programas. WaitTime tiene casos donde no es la instruccion correcta y donde su uso genera problemas reales en produccion.

Cuando la condicion puede variar

Si el tiempo que tarda un actuador en responder puede cambiar dependiendo de la temperatura, la presion del sistema, el desgaste del componente o las condiciones de la pieza, un WaitTime fijo eventualmente va a ser insuficiente en alguna condicion de planta. En esos casos, la instruccion correcta es WaitUntil con una condicion logica.

Como sustitucion de una senal de retroalimentacion

Si el gripper tiene un sensor de confirmacion de cierre, la logica correcta es esperar a que ese sensor confirme el cierre, no esperar un tiempo arbitrario. Usar WaitTime en lugar de esperar la confirmacion del sensor es asumir que el gripper siempre va a cerrar en ese tiempo. Cuando no lo hace, el robot agarra la pieza de forma incompleta o no la agarra y el error se detecta varios pasos despues, cuando el diagnostico ya es mas dificil.

El programa que usa WaitTime donde deberia usar WaitUntil funciona bien durante meses. Hasta que el gripper empieza a desgastarse y tarda un poco mas. Ese dia el tiempo fijo ya no es suficiente y el problema parece "de la nada". No es de la nada. Era una suposicion que finalmente dejo de cumplirse.

Para compensar errores de logica

Si el programa falla porque una senal no llega a tiempo y la solucion que alguien propone es "agregar un WaitTime mas largo", eso no es una solucion. Es una forma de ocultar el problema real. El WaitTime largo puede hacer que el error sea menos frecuente, pero el problema subyacente sigue ahí.

WaitTime vs WaitUntil: cual usar en cada caso

Son las dos instrucciones de espera mas usadas en RAPID y se complementan, no se excluyen.

  • WaitTime espera un tiempo fijo sin importar lo que pase en el sistema. El programa continua cuando el tiempo transcurre, haya pasado lo que haya pasado.
  • WaitUntil espera hasta que una condicion logica se cumpla. El programa continua cuando la condicion es verdadera, sin importar cuanto tiempo tarde.

La regla general: si tienes retroalimentacion disponible (un sensor, una senal de confirmacion, un estado de I/O), usa WaitUntil. Si el tiempo es genuinamente fijo y predecible y no hay retroalimentacion posible, WaitTime es valida.

Un ejemplo de la diferencia en codigo:

! Con WaitTime (tiempo fijo, sin confirmar)
SetDO DO_GripperClose, 1;
WaitTime 0.5;

! Con WaitUntil (espera confirmacion real)
SetDO DO_GripperClose, 1;
WaitUntil DI_GripperClosed = 1;

El segundo fragmento no avanza hasta que el sensor de gripper cerrado confirma que el cierre ocurrio. Si el gripper tarda mas por cualquier razon, el programa espera. Si el gripper no cierra por una falla, el programa queda esperando y el operador puede detectar el problema antes de que el ciclo continue con una pieza mal agarrada.

Ver el proceso en video

Este video del canal de RoboTraining Academy muestra como usar WaitTime en un programa de robot ABB directamente desde el FlexPendant, paso a paso. Si es la primera vez que insertas instrucciones RAPID desde el pendant, el video aclara donde esta cada opcion en la interfaz:

El canal de RoboTraining Academy en YouTube tiene mas recursos sobre programacion RAPID, diagnostico de fallas y PLC Siemens y Allen Bradley aplicados a robots industriales.

WaitTime es una instruccion util cuando se entiende bien

La instruccion no es el problema. El problema es no saber en que contexto aplica y en cual no. Con esa claridad, WaitTime hace exactamente lo que debe: dar tiempo al sistema para que responda antes de que el robot continue.

Si tu equipo esta aprendiendo a programar robots ABB y quieres que entienda RAPID desde el principio, con las instrucciones correctas en el contexto correcto, el curso de programacion ABB IRC5 en RoboTraining cubre WaitTime, WaitUntil y el resto de instrucciones de sincronizacion con robot real y casos de planta.

Preguntas frecuentes

¿WaitTime detiene el movimiento del robot o solo la ejecucion del programa?

WaitTime detiene la ejecucion del programa, lo que implica que el robot no recibe ninguna instruccion de movimiento nueva durante ese tiempo. Si el robot ya estaba detenido en una posicion, permanece ahi. Si se usa el argumento opcional \InPos, el controlador espera ademas a que el robot haya llegado completamente a su posicion antes de empezar a contar el tiempo de espera.

¿Cual es el tiempo minimo y maximo que acepta WaitTime?

WaitTime acepta valores en segundos de tipo num. El valor minimo practico es 0 (que equivale a no esperar nada) y no hay un maximo tecnico definido en la documentacion oficial, aunque valores muy largos en produccion son senales de que probablemente se deberia usar WaitUntil con una condicion logica en su lugar.

¿Que diferencia hay entre WaitTime y WaitUntil en RAPID?

WaitTime espera un tiempo fijo en segundos sin importar lo que ocurra en el sistema. WaitUntil espera hasta que una condicion logica se cumpla, sin importar cuanto tiempo tarde. WaitTime es util cuando el tiempo es fijo y predecible. WaitUntil es mejor cuando hay retroalimentacion disponible, como un sensor que confirma que un actuador completo su accion.

¿WaitTime funciona igual en el controlador IRC5 y en OmniCore?

Si. WaitTime es una instruccion base de RAPID y funciona de la misma forma en ambos controladores. La sintaxis y el comportamiento son identicos. Lo que cambia entre IRC5 y OmniCore es la interfaz del pendant y algunos aspectos de configuracion del sistema, pero no el comportamiento de las instrucciones RAPID estandar.

¿Se puede usar WaitTime dentro de una rutina TRAP en RAPID?

Si, tecnicamente es posible usar WaitTime dentro de una rutina TRAP (rutina de interrupcion). Sin embargo, hay que tener cuidado porque las rutinas TRAP deben ser lo mas cortas y rapidas posible. Una espera larga dentro de un TRAP puede causar comportamientos inesperados en el manejo de interrupciones del sistema. En general es mejor usar WaitTime fuera de rutinas TRAP o con valores muy pequeños si es necesario dentro de ellas.

Instructor de robotica industrial en RoboTraining Academy

Mas de 20 anos programando robots ABB en planta. Instructor en RoboTraining Academy. Ha visto lo que pasa cuando alguien usa WaitTime donde debia usar WaitUntil. El robot siempre lo demuestra en el momento menos conveniente.

Ver perfil completo
Compartir

Te puede interesar