Processamento em ciclo

Se o programa de controlo do robô criado consistir em multitarefa e também tiver tarefas com ciclo infinito, o sistema pode tornar-se instável e a ligação ao Epson RC+ pode ser desligada.

O Controlador deteta tarefas com ciclo infinito. Se forem detetadas possibilidades de afetar o sistema, ocorre o seguinte erro e o programa é interrompido.
Se ocorrer o erro, modifique o programa e certifique-se de não definir um ciclo infinito.
Código de erro: 2556
Mensagem de erro: Foi detetado um ciclo excessivo. Reduza o número de tarefas em ciclo ou reinicie o Wait.

Evite executar qualquer processamento como ciclo infinito ou outro processamento semelhante, tanto quanto possível.

Execute o comando Wait ou um comando semelhante no processamento em ciclo e evite ocupar a CPU ao efetuar cálculos que exijam ciclo ou ao aguardar sinais de E/S.
Não há problema se for utilizado num ciclo que exija comandos Wait, como o comando Wait, comando de movimento do robô, comando Print e comando Wait Net.

PONTOS-CHAVE


O ciclo infinito é executado no seguinte caso:
Quando os comandos são criados apenas com comandos sem Wait no ciclo, como instrução de operação, comando de atribuição e comando de verificação de E/S.

Exemplo 1: Ao ligar a porta de saída "2" quando a porta de entrada "0" estiver ligada
Exemplo de um programa que pode causar um erro

               Do  
                  If Sw(0) = On Then  
                      On(2)  
                      Exit Do  
                  EndIf  
               Loop  

Exemplo de correção

               Wait Sw(0) = On  
               On(2)  

Exemplo 2: Ao efetuar uma grande quantidade de cálculos numa estrutura de ciclo
Exemplo de um programa que pode causar um erro

               For i = 0 To 10000  
                   For j = 0 To 10000  
                       a = a + 1  
                   Next  
               Next  

Exemplo de correção

               For i = 0 To 10000  
                   For j = 0 To 10000  
                       a = a + 1  
                   Next  
                   Wait 0.01     ' Execute o comando Wait para evitar ocupar a CPU  
               Next