Procesamiento de bucles
Si el programa de control robótico creado consiste en múltiples tareas y también tiene tareas con bucle infinito, el sistema puede volverse inestable y la conexión con Epson RC+ puede desconectarse.
El controlador detecta tareas en bucle infinito. Si se detectan posibilidades de afectar al sistema, se produce el siguiente error y se detiene el programa.
Si se produce el error, modifique el programa y asegúrese de no establecer un bucle infinito.
Código de error: 2556
Mensaje de error: se ha detectado un bucle excesivo. Reduzca el número de tareas en bucle o restablezca Wait
No realice ningún procesamiento como bucles infinitos o cualquier otro procesamiento similar en la medida de lo posible.
Ejecute el comando Wait o un comando similar en el procesamiento del bucle y evite ocupar la CPU al realizar cálculos que requieran un bucle o esperar señales de E/S.
No hay ningún problema si se utiliza en un bucle que requiera comandos Wait, como el comando Wait, el comando de movimiento del robot, el comando Print y el comando Wait Net.
PUNTOS CLAVE
El bucle infinito se ejecuta en el siguiente caso:
Cuando los comandos se crean solo con comando sin Wait en el bucle, como instrucciones de operación, comandos de asignación y comandos de comprobación de E/S
Ejemplo 1: al activar el puerto de salida "2" cuando el puerto de entrada "0" está activado
Ejemplo de un programa que puede causar un error
Do
If Sw(0) = On Then
On(2)
Exit Do
EndIf
Loop
Ejemplo de corrección
Wait Sw(0) = On
On(2)
Ejemplo 2: al realizar una gran cantidad de cálculos en una estructura de bucle
Ejemplo de un programa que puede causar un error
For i = 0 To 10000
For j = 0 To 10000
a = a + 1
Next
Next
Ejemplo de corrección
For i = 0 To 10000
For j = 0 To 10000
a = a + 1
Next
Wait 0.01 ' Execute Wait to avoid occupying the CPU
Next