Lusverwerking

Als het gemaakte robotbesturingsprogramma uit meerdere taken bestaat en ook taken met een oneindige lus bevat, kan het systeem onstabiel worden en kan de verbinding met Epson RC+ verbroken worden.

De Controller detecteert taken met oneindige lussen. Als de mogelijkheden om het systeem te beïnvloeden worden gedetecteerd, treedt de volgende foutmelding op en wordt het programma gestopt.
Als de fout optreedt, wijzig dan het programma en zorg ervoor dat u geen oneindige lus instelt.
Foutcode: 2556
Foutbericht: Er is een te lange lus gedetecteerd. Verminder het aantal taken die in een lus lopen of reset Wait

Voer indien mogelijk geen bewerkingen uit zoals een oneindige lus of andere soortgelijke bewerkingen.

Voer de opdracht Wait of een soortgelijke opdracht uit in de lusverwerking en voorkom dat de CPU bezet wordt wanneer u berekeningen uitvoert waarvoor een lus nodig is of wanneer u op I/O-signalen wacht.
Het is geen probleem als het wordt gebruikt in een lus die Wait-opdrachten vereist, zoals de opdracht Wait, de opdracht voor robotbeweging, de opdracht Print en de opdracht Wait Net.

BELANGRIJKE PUNTEN


In het volgende geval wordt een oneindige lus uitgevoerd:
Wanneer opdrachten alleen worden gemaakt met opdracht zonder Wait in de lus, zoals bewerkingsinstructie, toewijzingsopdracht en I/O-controleopdracht

Voorbeeld 1: Wanneer de uitvoerpoort “2” wordt ingeschakeld wanneer invoerpoort “0” is ingeschakeld
Voorbeeld van een programma dat een fout kan veroorzaken

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

Correctievoorbeeld

               Wait Sw(0) = On  
               On(2)  

Voorbeeld 2: Bij het uitvoeren van een grote hoeveelheid berekeningen in een lusstructuur
Voorbeeld van een programma dat een fout kan veroorzaken

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

Correctievoorbeeld

               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