Instrucciones MCL (S7-1500T)
6.6 Otras instrucciones (S7-1500T)
Reglas
• El parámetro "timeout" es efectivo si no se cumple la condición del evento en la
preparación. La ejecución posterior del programa se detiene hasta que se cumpla la
condición de evento (parámetro "event"), o hasta que haya transcurrido el tiempo de
espera definido en el parámetro "timeout". El tiempo de espera comienza con el final de la
orden anterior en la ejecución del programa. Una vez transcurrido tiempo especificado,
continúan la preparación y la ejecución con independencia de la condición del evento.
• Si se ajusta el parámetro "timeout" a T#0ms, no se espera a que se cumpla la condición del
evento, y la ejecución del programa continúa inmediatamente.
• Si se determina un parámetro "timeout" negativo, se espera indefinidamente a que se
cumpla la condición del evento en la ejecución del programa.
• Con el parámetro de salida "timeoutState" puede comprobarse si se ha producido un
"timeout". Si es ese el caso, la variable de salida correspondiente devuelve TRUE.
• Si se cumple la condición del evento mientras "waitEvent" se encuentra en la preparación
del programa con el parámetro "mode" = 1, continúa la preparación del programa
inmediatamente. Si la condición del evento no se cumple durante la preparación, se activa
"waitEvent" y, con ello, la comprobación cíclica del evento en la ejecución del programa.
• Si "waitEvent" con "mode" = 1 sigue a una orden de movimiento con suavizado de
transición, está definido el siguiente comportamiento:
– Si la condición del evento se cumple a tiempo, antes de que haya finalizado la orden de
– Si la condición del evento se cumple demasiado tarde, se ejecuta una parada precisa.
• Si "waitEvent" con "mode" = 0 sigue a una orden de movimiento con suavizado de
transición, se ejecuta una parada precisa.
Ejemplo 1
En este ejemplo, se ha programado waitEvent (parámetro "mode" = 0 como valor
predeterminado) tras una orden de trayectoria con suavizado de transición. El suavizado de
transición de la instrucción no es posible, pues "waitEvent" se ejecuta en el programa. Tras
una parada precisa en pos1 la ejecución pone en pausa las posteriores instrucciones hasta
que la variable de interfaz $IPR.Clipboard.cbBool[1] devuelva TRUE.
MCL
linAbs( pos1, trans := 1 );
waitEvent( $IPR.Clipboard.cbBool[1] );
linAbs( pos2, trans := 0 );
294
movimiento precedente, se ejecuta el movimiento de suavizado de transición
programado como corresponda a la secuencia de programación.
S7-1500T Funciones de intérprete V8.0 a partir de STEP 7 V19
Manual de funciones, 11/2023, A5E53131983-AA