Frage zur Zählschleife

  • Hallo,


    hat jemand ne Idee wie ich das am besten lösen kann.
    Und zwar der Roboter soll 5 rote Werkstücke abholen und aufs Band legen.
    Falls aber in dieser Zeit ein blaues Werkstück daneben liegt soll er sofort das abholen und auf ein anderes Band ablegen.
    Danach aber in der Reihenfolge wieder mit den roten Werkstücken weiter machen.
    :denk:
    Ich vermute ich muss irgendwie aus der Zählschleife rausspringen und dann wieder reinkommen
    danke
    LG

  • Schritt für Schritt zum Roboterprofi!
  • Servus,


    DECL INT nAktteilrot


    nAktteilrot=1


    REPEAT


    SWITCH nAktteilrot


    CASE 1
    ; Punkte Teil 1 holen


    ;Greifer schliessen


    ;Zaehler erhoehen
    nAktteilrot=nAktteilrot + 1


    ;Abfahren Abholposition


    CASE 2
    ; Punkte Teil 2 holen


    ;Greifer schliessen


    ;Zaehler erhoehen
    nAktteilrot=nAktteilrot + 1


    ;Abfahren Abholposition


    CASE 3
    ; Punkte Teil 3 holen


    ;Greifer schliessen


    ;Zaehler erhoehen
    nAktteilrot=nAktteilrot + 1


    ;Abfahren Abholposition


    CASE 4
    ; Punkte Teil 4 holen


    ;Greifer schliessen


    ;Zaehler erhoehen
    nAktteilrot=nAktteilrot + 1


    ;Abfahren Abholposition


    CASE 5
    ; Punkte Teil 1 holen


    ;Greifer schliessen


    ;Zaehler erhoehen
    nAktteilrot=nAktteilrot + 1


    ;Abfahren Abholposition


    DEFAULT



    WAIT FOR FALSE


    ENDSWITCH



    ;Ablageposition anfahren




    IF (di_blauesTeilholen == TRUE) THEN


    ;Hier blaues Teil abholen und ablegen




    ENDIF




    ;Schleife wiederholen bis 5 rote Teile geholt und abgelegt wurden, oder ein Blaues abgeholt und abgelegt werden muss
    UNTIL (nAktteilrot<=5)


    Grüße


    Martl

  • Versuchs mal mit einer while- oder repeat-Schleife, mit einer IF-ELSE Fallunterscheidung. Im Prinzip folgendermaßen:


    Zähler = 1
    WHILE: Zähler <=5
    IF blau THEN
    bearbeiteBlauesTeil()
    ELSE
    bearbeiteRotesTeil(Zähler)
    Zähler ++
    ENDIF
    ENDWHILE


    EDIT: ...also so wie bei Martl, nur in schreibfaul ^^;

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