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