Elaborazione in loop
Se il programma di controllo del robot creato è multitasking e contiene anche attività con loop infinito, il sistema potrebbe diventare instabile e la connessione con Epson RC+ potrebbe interrompersi.
Il controller rileva le attività con loop infinito. Se viene individuata la possibilità di influenzare il sistema, si verifica il seguente errore e il programma viene arrestato.
Se si verifica l'errore, modificare il programma e assicurarsi di non impostare un loop infinito.
Codice di errore: 2556
Messaggio di errore: è stato rilevato un loop eccessivo. Ridurre il numero di attività in loop o reimpostare Wait
Evitare il più possibile l'elaborazione con loop infiniti o altre elaborazioni simili.
Eseguire il comando Wait o un comando simile nell'elaborazione in loop ed evitare di occupare la CPU quando si eseguono calcoli che richiedono loop o durante l'attesa di segnali I/O.
Non vi sono problemi se viene utilizzato in un loop che richiede comandi con attesa, come il comando Wait, il comando di movimento del robot, il comando Print e il comando Wait Net.
PUNTI CHIAVE
Il loop infinito viene eseguito nel seguente caso:
Quando i comandi vengono creati solo con un comando senza Wait nel loop, come istruzioni operative, comandi di assegnazione e comandi di verifica I/O
Esempio 1: attivazione della porta di uscita "2" quando la porta di ingresso "0" è attiva
Esempio di programma che potrebbe causare un errore
Do
If Sw(0) = On Then
On(2)
Exit Do
EndIf
Loop
Esempio di correzione
Wait Sw(0) = On
On(2)
Esempio 2: quando si esegue un numero elevato di calcoli in una struttura a loop
Esempio di programma che potrebbe causare un errore
For i = 0 To 10000
For j = 0 To 10000
a = a + 1
Next
Next
Esempio di correzione
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