Palettieren mit UR10.

  • Hallo zusammen! Ich bin neu in diesem Forum und brauche Hilfe beim UR10.Ich realisiere das projekt, dass der Roboter 12 Teile vom Förderband nimmt und sie in gerader Richtung auf die Palette legt. Danach nimmt der Roboter 10 Teile vom Förderband und legt sie diagonal auf die anderen. Nächster Schritt, soll die Roboter den ersten Zyklus wiederholen, aber + 120mm höher und so weit.Ich weiß, dass ich eine variable Position brauche, aber ich weiß nicht, wie ich es realisieren soll.
    Jetzt mein Programm siegt so aus:
    Anzahl: = 0
    für 0 <Anzahl <12
    Palettierzyklus gerade aufrufen;
    für 13 <Anzahl <23
    Aufruf Palettierzyklus Diagonale;
    Anzahl:= anzahl+1;


    Aber wie realisiere ich den nächsten Zyklus mit z = +120?
    Vielleicht kann mir jemand helfen ?! Vielen Dank..

  • ANZEIGE
  • Hallo!
    Ich würde die mit 2 neue routinen machen wo die positionen mit offs z+120 verschoben sind.
    Jetzt mein Programm siegt so aus:
    Anzahl: = 0
    für 0 <Anzahl <12
    Palettierzyklus gerade aufrufen;
    für 13 <Anzahl <23
    Aufruf Palettierzyklus Diagonale;
    Anzahl:= anzahl+1;
    für 24 <Anzahl <36
    Palettierzyklus gerade aufrufenz120;
    für 37<Anzahl<47
    Aufruf Palettierzyklus Diagonalez120;


    Wenn du deine Module hier zeigen würdest wäre einfacher.


    MFG
    Tamas

    Einmal editiert, zuletzt von padostms ()


  • Hallo Tamas,Ich brauche mehr als 2 Routinen, weil ich ungefähr 150 Teile palettieren muss


  • Wenn du deine Module hier zeigen würdest wäre einfacher.


    Die Module sind Standard-Palettierassistenten von UR.
    Ich poste das ganze Programm:



    def aaa():
    while (True):
    Schleife_1 = 0
    while (Schleife_1 < 12):
    $ 3 "Palettieren"
    Pose_2 = interpolate_pose(p[.120426602016, -.440190251002, .286110081682, -3.123016443266, .027484417219, -.070240871091],p[.120534394730, -.689790352592, .286686032829, -3.122986450373, .027238983624, -.070339493798], cnt_2/2.0)
    if (cnt_2 >= 2):
    cnt_2 = 0
    else:
    cnt_2 = cnt_2 + 1
    end
    $ 8 "Herangehenswe_1"
    movel(pose_trans(Pose_2, pose_trans(pose_inv(p[.120439458377, -.440207460590, .286127914811, -3.123050206445, .027389459666, -.070230175385]),p[.120564436728, -.440200240257, .316955698222, -3.123079966487, .027199925276, -.070461069086])), a=1.2, v=0.25)
    $ 9 "MusterPunkt_1"
    movel(Pose_2, a=1.2, v=0.25)
    $ 10 "Einstellen DO[0]=Ein"
    set_standard_digital_out(0, True)
    $ 11 "Warten: 1.0"
    sleep(1.0)
    $ 12 "Einstellen DO[0]=Ein"
    set_standard_digital_out(0, True)
    $ 13 "Beenden_1"
    movel(pose_trans(Pose_2, pose_trans(pose_inv(p[.120439458377, -.440207460590, .286127914811, -3.123050206445, .027389459666, -.070230175385]),p[.120575110647, -.440204134012, .316936531329, -3.123023042021, .027238961937, -.070426741584])), a=1.2, v=0.25)
    Schleife_1 = Schleife_1 + 1
    end
    $ 14 "Schleife 3 Mal"
    Schleife_2 = 0
    while (Schleife_2 < 12):
    $ 15 "offset?p[0,0,0.1,0,0,0]"
    global offset=p[0,0,0.1,0,0,0]
    $ 16 "x?pose_add(Herangehenswe_1,offset)"
    global x=pose_add(p[.120564436728, -.440200240257, .316955698222, -3.123079966487, .027199925276, -.070461069086],offset)
    $ 17 "y?pose_add(MusterPunkt_1,offset)"
    global y=pose_add(p[.120439458377, -.440207460590, .286127914811, -3.123050206445, .027389459666, -.070230175385],offset)
    $ 18 "z?pose_add(Beenden_1,offset)"
    global z=pose_add(p[.120575110647, -.440204134012, .316936531329, -3.123023042021, .027238961937, -.070426741584],offset)
    $ 19 "Palettieren"
    Pose_3 = interpolate_pose(p[.120446975294, -.440174300163, .386105743017, -3.122987072271, .027180023431, -.070180129829],p[.120412846630, -.689779079141, .407124937411, -3.123039817541, .027413468209, -.070154413182], cnt_3/2.0)
    if (cnt_3 >= 2):
    cnt_3 = 0
    else:
    cnt_3 = cnt_3 + 1
    end
    $ 24 "x"
    movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], x), a=1.2, v=0.25)
    $ 25 "y"
    movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], y), a=1.2, v=0.25)
    $ 26 "Einstellen DO[0]=Ein"
    set_standard_digital_out(0, True)
    $ 27 "Warten: 1.0"
    sleep(1.0)
    $ 28 "Einstellen DO[0]=Ein"
    set_standard_digital_out(0, True)
    $ 29 "z"
    movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], z), a=1.2, v=0.25)
    Schleife_2 = Schleife_2 + 1
    end
    end

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