Loopschleife

  • MOIN MOIN,


    hab da ein Problem mit ner LOOP Schleife.


    Bin grad dabei unsere KUKA ne Endstelle ausräumen zu lassen und die Pakete auf eine Palette zu stapeln. Hab auch alle soweit fertig, nur mit der LOOP Funktion komm ich nicht klar. Bekomm immer wieder die Fehlermeldung: Anweisung unzulässig


    Hab ne KRC1 mit Sortwarestand 4.1.5 und einen KR6/2. Der Roboter bekommt von der Endtstelle Entnahme- und Ablagekoordianten und soll zyklisch immer wieder die Pakete umpacken. Die KRC sollte aber erst den Bewegungsablauf abgeschlossen haben bevor der nächste Wert gelesen wird.


    Hab euch mal mein kleines Testprogramm angefügt. Bin ein wenig Ratlos. :nocheck:


    Testprogramm:

    $VEL_AXIS [1]=20
    $VEL_AXIS [2]=20
    $VEL_AXIS [3]=20
    $VEL_AXIS [4]=20
    $VEL_AXIS [5]=20
    $VEL_AXIS [6]=20
    $ACC_AXIS [1]=20
    $ACC_AXIS [2]=20
    $ACC_AXIS [3]=20
    $ACC_AXIS [4]=20
    $ACC_AXIS [5]=20
    $ACC_AXIS [6]=20


    COPEN(:SER_2, HANDLE)


    LOOP


    MODR=#ABS
    TIMEOUT=1.0
    OFFSET=0


    WAIT FOR $DATA_SER2>0
    CREAD(HANDLE,STATR,MODR,TIMEOUT,OFFSET,"%d",TEST)


    IF TEST>0 THEN
    PTP {AXIS: A1 0,A2 -90,A3 90,A4 0,A5 90,A6 -90}
    PTP P1 Vel= 20 % PDAT6 Tool[1] Base[0]
    PTP P2 Vel= 20 % PDAT7 Tool[1] Base[0]
    SET Schmalzsaug Greifer State= Vacuum CONT at START Delay= 0 ms
    PTP P3 Vel= 20 % PDAT8 Tool[1] Base[0]
    PTP P4 Vel= 20 % PDAT9 Tool[1] Base[0]
    PTP P5 Vel= 20 % PDAT11 Tool[1] Base[0]
    SET Schmalzsaug Greifer State= BLOW GDAT1
    SET Schmalzsaug Greifer State= OFF GDAT2
    PTP {AXIS: A1 0,A2 -90, A3 90,A4 0,A5 90,A6 -90}
    ENDIF


    ENDLOOP


    CCLOSE(HANDLE,STAT)
    END


    Bin für jeden Tip dankbar. :merci:

  • Schritt für Schritt zum Roboterprofi!
  • Wichtig zu wissen, wäre ja die Zeile in der Anweisung unzulässig steht.


    Wenn es beim Loop ist, dann kann das eigentlich nur sein, wenn du im angewählten Programm LOOP schreibst. Befehle wie IF, LOOP, FOR usw. funktioniern nur wenn man ein Programm öffnet.


    'Anweisung unzulassig' tritt IMO nur im angewählten Programm auf.
    Hast du vielleicht im CREAD aufruf irgendetwas nicht deklariert?

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

  • Sorry, das ich so lang nichts von mir hab hören lassen, hatte ein mittleres EDV Problem.


    Zu euren fragen:


    In die Fehlermeldung kommt beim LOOP Befehl, das Programm ohne Loop funktioniert.


    While hab ich noch nicht probiert. Dachte das Mittel zur Lösung meiner Sorgen währe Loop.

  • Hallo,


    wenn "loop .. endloop" nicht tut, funktioniert weder "while true .. endwhile", noch "repeat .. until false".


    Ich denke, die Sache liegt (wie schon zuvor festgestellt) daran, dass Du im Angewaehlten Programm editierst.
    Fuegts du im angewahlten Programm eine Zeile ein, wird diese sofort uebersetzt (der Programmlaufzeiger steht dann auch darauf).
    Waere es zum Besipiel moeglich halbe Kontrollstrukturen einzufuegen, gaebe es ein hoellen Chaos - daher wird das verhindert.
    Das Einfuegen von nicht declarierten Variablen ist beispielsweise erlaubt und fuehrt erst im Programmlauf zum Fehler.


    Machst du die Änderung im Editor, wird eine Syntaxueberpruefung gemacht. Da kannst du dann auch alle moeglichen Kontrollstrukturen einfuegen.


    Gruss Stefan

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden