Está en la página 1de 3

1 Instrucciones

1.236. WaitUntil - Espera hasta que se cumple una condición


RobotWare - OS

1.236. WaitUntil - Espera hasta que se cumple una condición

Utilización
WaitUntil se usa para esperar hasta que se cumpla una condición lógica. Por ejemplo, puede
usarse para esperar hasta que se activan una o varias entradas.

Ejemplos básicos
A continuación aparecen algunos ejemplos básicos de la instrucción WaitUntil.
Consulte también Más ejemplos en la página 704.

Ejemplo 1
WaitUntil di4 = 1;
La ejecución del programa sólo continúa después de que se ha activado la entrada di4.

Argumentos
WaitUntil [\InPos] Cond [\MaxTime] [\TimeFlag] [\PollRate]

[\InPos]
Tipo de dato: switch
Si se usa este argumento, los ejes del robot y los ejes externos deben detener su movimiento
antes de que comience a evaluarse la condición. Este argumento sólo puede usarse si la tarea
controla las unidades mecánicas.

Cond
Tipo de dato:bool
La expresión lógica que debe esperarse.

[\MaxTime]
Tipo de dato: num
© Copyright 2004-2009 ABB. Reservados todos los derechos.

El periodo máximo permitido para el tiempo de espera, expresado en segundos. Si el tiempo


se agota antes de que se active la condición, se llama al gestor de errores si lo hay, con el
código de error ERR_WAIT_MAXTIME. Si no hay ningún gestor de errores, se detiene la
ejecución.

[\TimeFlag]
Timeout Flag
Tipo de dato: bool
El parámetro de salida que contiene el valor TRUE si se agota el tiempo máximo de espera
permitido antes de que se cumpla la condición. Si se incluye este parámetro en la instrucción,
no se considera un error si llega a agotarse el tiempo límite. Este argumento no se tiene en
cuenta si el argumento MaxTime no se incluye en la instrucción.

Continúa en la página siguiente


3HAC16581-5 Revisión: H 703
1 Instrucciones
1.236. WaitUntil - Espera hasta que se cumple una condición
RobotWare - OS
Continuación

[\PollRate]
Polling Rate
Tipo de dato: num
La frecuencia de sondeo en segundos para la comprobación si la condición del argumento
Cond es TRUE. Esto significa que WaitUntil comprueba primero la condición una vez, y si
no es TRUE, la comprueba cada segundo especificado hasta que sea TRUE. El valor mínimo
de la frecuencia de sondeo es 0,01 s. Si no se usa este argumento, se cambia la tasa de sondeo
predeterminada a 0,1 s.

Ejecución de programas
Si no se cumple la condición programada al ejecutar una instrucción WaitUntil, la
condición se comprueba de nuevo cada 100 ms (o según el valor especificado en el argumento
Cond).
Cuando el robot se encuentra en espera, se supervisa el tiempo y, si sobrepasa el valor de
tiempo máximo, el programa continúa si se especifica un TimeFlag o genera un error si no
se especifica el indicador. Si se especifica un TimeFlag, éste cambia a TRUE si se supera el
tiempo. De lo contrario cambia a FALSE.
En el modo manual, tras esperar más de 3 s, aparecerá una ventana de alerta que pregunta si
desea simular la instrucción. Si no desea que aparezca la ventana de alerta, puede cambiar el
valor del parámetro del sistema SimMenu a NO (Manual de referencia técnica - Parámetros
del sistema, sección Controller - System Misc).

Más ejemplos
A continuación aparecen más ejemplos de cómo usar la instrucción WaitUntil.

Ejemplo 1
VAR bool timeout;
WaitUntil start_input = 1 AND grip_status = 1\MaxTime := 60

© Copyright 2004-2009 ABB. Reservados todos los derechos.


\TimeFlag := timeout;
IF timeout THEN
TPWrite "No start order received within expected time";
ELSE
start_next_cycle;
ENDIF
Si no se cumplen las dos condiciones de entrada en un plazo de 60 segundos, se escribe un
mensaje de error en la pantalla del FlexPendant.

Ejemplo 2
WaitUntil \Inpos, di4 = 1;
La ejecución del programa espera hasta que el robot se ha detenido y hasta que se activa la
entrada di4.

Continúa en la página siguiente


704 3HAC16581-5 Revisión: H
1 Instrucciones
1.236. WaitUntil - Espera hasta que se cumple una condición
RobotWare - OS
Continuación

Limitación
El argumento \Inpos no puede usarse junto con el servo suave.
Si esta instrucción va precedida de una instrucción de movimiento, ésta última debe
programarse con un punto de paro (zonedata fine), no un punto de paso. De lo contrario, no
será posible reanudar la ejecución tras una caída de suministro eléctrico.
WaitUntil \Inpos no puede ejecutarse en rutinas de RAPID que estén conectadas a los
siguientes eventos especiales del sistema: PowerOn, Stop, QStop o Restart.

Sintaxis
WaitUntil
[’\’InPos’,’]
[Cond ’:=’] <expression (IN) of bool>
[’\’MaxTime’ :=’<expression (IN) of num>]
[’\’TimeFlag’ :=’<variable (VAR) of bool>]
[’\’PollRate’ :=’<expression (IN) of num>]’;’

Información relacionada

Para obtener más información sobre Consulte


Espera hasta que se activa o desactiva una WaitDI - Espera hasta que se activa una
entrada señal digital de entrada en la página 677
Espera durante un tiempo determinado WaitTime - Espera una cantidad de tiempo
determinada en la página 701
Expresiones Manual de referencia técnica - Descripción
general de RAPID, sección Características
básicas - Expresiones
© Copyright 2004-2009 ABB. Reservados todos los derechos.

3HAC16581-5 Revisión: H 705

También podría gustarte