Ejemplo 4
En este ejemplo, en la primera ejecución del bucle (i = 1) de la instrucción FOR se produce un
evento externo al ejecutar el movimiento lineal de la cinemática. La variable de portapapeles
Clipboard Variable $IPR.clipboard.cbBool[1] registra el evento externo.
El evento (ajuste de la variable $IPR.Clipboard.cbBool[1] a TRUE) se produce durante el
movimiento actual ("linAbs()" hacia "p1"), para ejecutar la siguiente instrucción y suavizar la
transición al movimiento lineal ("linAbs()" hacia "p2"). A continuación, se ejecuta un
movimiento lineal ("linAbs()" hacia "(x = 0, y = 0, z = 0)").
Sin embargo, en la segunda ejecución del bucle de la instrucción FOR (i = 2), si no se ha
producido el evento externo durante el movimiento actual ("linAbs()" hacia "p1"), se ejecuta
el movimiento hacia "p1" y se detiene allí.
"waitEvent" espera entonces hasta el momento programado del rebase de tiempo ("timeout"
= T#1s) a que se ejecute la condición del evento en la ejecución del programa. Puesto que el
evento no se produce en el plazo de 1 segundo, la variable de salida "isTimeout" se ajusta a
TRUE. La siguiente instrucción "preHalt" es necesaria para sincronizar la ejecución y la
preparación.
①
②
MCL
VAR
i : DINT := 0;
isTimeout : Bool := FALSE;
p1 : TO_Struct_Ipr_Position;
p2 : TO_Struct_Ipr_Position;
END_VAR
...
p1 := ( x := 100.0, y := 0.0, z := 0.0, A := 0.0 );
p2 := ( x := 100.0, y := 0.0, z := -50.0, A := 0.0 );
...
setBlendDist( 30.0 );
setBlend( 2 );
setTrans( 0 );
setCs( 0 );
...
FOR i := 1 TO 2 DO
preHalt(); // synchronize execution and preparation
S7-1500T Funciones de intérprete V8.0 a partir de STEP 7 V19
Manual de funciones, 11/2023, A5E53131983-AA
In loop run 1
In loop run 2
Instrucciones MCL (S7-1500T)
6.6 Otras instrucciones (S7-1500T)
297