ABB Programmierung IRB6620 TCPs

  • Hallo zusammen,


    ein Freund von mit hat sich einen gebrauchten IRB6620 M2004 gekauft.

    Es ist auch noch ein Programm drauf, bei dem der Roboter Kartons an einer Stelle aufnimmt und an 2 unterschiedlichen Stellen auf einer Palette stapelt.

    Das Programm wurde sehr professionell mit jeweiliger Erklärung geschrieben. Jedoch habe ich bei der Zuordnung der TCPs Verständnisprobleme.


    !** Werkobjekte**

    PERS wobjdata wPP1:=[FALSE,TRUE,"",[[575,1565,-380],[0.00440107,0.00229812,-0.00306717,0.999983]],[[0,0,0],[1,0,0,0]]];

    PERS wobjdata wPP2:=[FALSE,TRUE,"",[[558,-767,-389],[0.00247539,0.00203106,0.000587579,0.999995]],[[0,0,0],[1,0,0,0]]];

    PERS wobjdata wBP1:=[FALSE,TRUE,"",[[735.347,-144.898,470.592],[0.999996,-0.000256781,0.00130629,0.00238001]],[[0,0,0],[1,0,0,0]]];

    PERS wobjdata wAkt:=[FALSE,TRUE,"",[[0,0,0],[1,0,0,0]],[[0,0,0],[1,0,0,0]]];


    Hier sind die TCPs wPP1 für die linke Palette wPP2 für die rechte Palette und wBP1 für die Aufnahme der Kartons hinterlegt.


    !** Positionen **

    CONST robtarget pHomePos:=[[1207.07,160.01,1375.01],[0.000107243,-0.70723,0.706983,-9.96773E-05],[-1,0,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];


    ! Palettierplatz links vom Roboter

    ! In Paletten-Mitte

    CONST robtarget pPP1_0:=[[600,400,150],[0,0,1,0],[0,-1,-2,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

    CONST robtarget pPP1_Vor:=[[166,625,1700],[0.00342309,-0.397848,-0.917444,-0.00143714],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];


    ! Palettierplatz rechts vom Roboter

    CONST robtarget pPP2_0:=[[600,400,150],[0,0,1,0],[-1,-1,1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

    CONST robtarget pPP2_90:=[[270.81,24.06,1666.56],[0.862921,-0.0362729,0.500522,0.0594093],[0,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

    CONST robtarget ppp2_180:=[[270.81,24.06,1666.56],[0.862921,-0.0362729,0.500522,0.0594093],[0,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

    CONST robtarget pPP2_270:=[[270.81,24.06,1666.56],[0.862921,-0.0362729,0.500522,0.0594093],[0,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

    CONST robtarget pPP2_Vor:=[[103.44,6.38,1739.27],[0.00152502,0.238218,-0.971208,0.00249035],[-1,0,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];


    ! Bereitstellplatz auf Zuführband

    CONST robtarget pBP1:=[[163.73,410,90.71],[0.00132994,-0.710105,0.704093,-0.000834942],[0,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

    CONST robtarget pBP1_Vor:=[[170,570,800],[0.00121214,-0.70556,0.708648,-0.000840328],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

    ! Anschiebe-Positionen des Gürtels

    CONST robtarget pBP1_An01:=[[169.87,572.14,288.54],[0.166083,0.682624,-0.689737,0.175223],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

    CONST robtarget pBP1_An02:=[[170.27,572.22,134.59],[0.16608,0.682625,-0.689736,0.175224],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

    CONST robtarget pBP1_An03:=[[169.46,402.60,134.50],[0.166079,0.682626,-0.689736,0.175225],[0,-1,-1,0],

    [9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

    CONST robtarget pBP1_An04:=[[169.46,402.60,134.50],[6.14052E-06,0.704712,-0.709493,0.00011602],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];


    Hier sind die einzelnen Positionen als Konstante dargestellt.


    Meine Probleme sind nun folgende:


    1. Ich würde gerne die TCPs ändern, da die Annahme und die Ablage geändert werden soll. Sind die TCPs nur in dem Programm hinterlegt?

    2. Kann ich die TCPs auch anfahren? Die Konstanten kann ich über das Pendant einzeln anfahren.

    3. Arbeite ich in anderen Bereichen, wenn ich die Positionen über das Programm anfahre?

    MoveJ pBP1_Vor,vLeerMax,z200,tGr\WObj:=wBP1;

    Würde ich die X,Y,Z Werte in pBP1 in WObJ, oder in wBP1 angeben, wenn ich diesen Punkt anfahren, oder neu anlegen möchte.


    Hier fehlt mir noch das Verständnis.


    Wer kann mir bei der Bewältigung meiner Probleme behilflich sein?


    Über Ratschläge oder Beispiele würde ich mich sehr freuen.


    Danke im Voraus.

  • ANZEIGE
  • Die TCPs die Du da anführst sind in Wirklichkeit Werkobjekte.

    TCP heisst ToolCenterPoint, übersetzt so was wie Werkzeugmittelpunkt. Das ist in Deinem Fall das tGr.


    Die Werkobjekte (von Dir TCP genannten wPP1, wPP2) können problemlos geändert werden, die sind genau einmal in dem Programm hinterlegt, sonst nirgends.


    Die weiteren Fragen verstehe ich nicht wirklich.

    zu 3. vielleicht: Jeder Punkt stellt immer die Koordinaten des TCP in dem aktuellen Werkobjekt dar:


    CONST robtarget pBP1_An04:=[[100,200,300],[6.14052E-06,0.704712,-0.709493,0.00011602],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];


    bei

    MoveJ pBP1_An04,vLeerMax,fine,tGr\WObj:=wBP1;

    Fährt der Roboter mit dem TCP des Tools tGr die Koordinaten (100,200,300) im Werkobjekt wBP1 an, bei:


    MoveJ pBP1_An04,vLeerMax,fine,tGr\WObj:=wBP2;

    Fährt der Roboter mit dem TCP des Tools tGr die Koordinaten (100,200,300) im Werkobjekt wBP2 an.


    Und Vorsicht: der Roboter kann lebensgefährlich sein, soviel Verständnis sollte schon vorhanden sein ;)

  • Go to each position as it is currently stored and programmed, then move the Robot (Torch Center Point = Tool attached to the Robot) to the new position and modify the positions one by one. Safest way.


    OR


    If you know where the Wobj's are located, you can modify the Wobj's one by one and each robtarget, who is referenced to that specific wobj, will be reference to the new updated wobj frame. Quickest way if you know where the location of the wobj should be.


    BE CAREFUL PLEASE!!!! If you do not have the knowledge for this to be done correctly, please get someone to assist with the right knowledge in this because Hermann is correct. It could be life-threatening when done wrong or could lead to serious damages.

  • Hallo erst mal,


    veilleicht als erstes mal kurz, zum Verständniss, wir reden über die Robtargets und nicht über die Tooldaten? Ist das richtig?

    zu 1.:

    Die Robtargets kannst du mit Position Korregieren ändern. Zuvor musst du den Roboter auf die neue Possition bewegen.

    nach der obigen deklaration sind die Robtargets oben global, d.h. du kannst sie in jeder Routine und jedem Modul verwenden.


    zu 2.:

    Du kannst die Robtargets auf verschieden weisen an fahren: z.B. wie oben Menü, ProgrammEditor, Test, PZ auf Routine und dann dort auf die jeweilige Zeile auswählen und mit PZ->Curser den Programmzeiger auf die Zeile setzen. Jetzt kannst du den Punkt anfahren.

    Oder:

    Menü, Bewegen

    Bwegen zu nun Punkt auswählen und zur Position bewegen den Punkt anfahren.

    Wichtig hierbei ist, dass das richtige Tool und Werkobjekt ausgewühlt ist.



    Zu 3.

    Das kommt darauf an, wie du den Punkt angefahren hast. Wenn du ihn in einem Anderen Werkopjekt angefahren hast z.B. in wPP2 und jetzt im Programm auf in wBP1 dann liegt der Punkt wo anderster.

    die X,Y,Z Werter beziehen sich auf den Ursprung des jeweiligen Werkobjektes in deiner Bewegungszeile oben auf wBP1. Werkobjekt bezieht sich auf das Werkobjekt wobj0, dieses leigt in der Regel im Sockel des Roboters. Hier ist die Hilfe in Robotstudio nicht schlecht.



    In Rapid-Überblick kannst du dir mal folgendes ansehen:


    Gruß Stingray

  • Hallo zusammen


    Ich bin total überwältigt, wie groß die Hilfe hier im Forum ist.

    An allen recht herzliche Dank.

    Ich werde in dieser Woche all meine Hilfestellungen von Euch / Ihnen ausprobieren und auch hier im Forum berichten.

    Danke:S:P

  • Hallo zusammen,


    Ich habe gestern Abend mit der Programmierung wie oben beschrieben weiter gemacht. Es hat alles super geklappt.

    Die Annahme, also WPB1 ist von den Koordinaten geändert und der weitere Programmablauf funktioniert.

    Aus der Stellung Home Position fährt der Roboter die Annahme in den einzelnen Schritten an und greift den Karton.


    Die Ablage auf die erste Palette zeigt sich jedoch von seiner komplizierten Seite.

    Im eigentlichen Programm wird wie folgt gearbeitet:




    Hierbei wurden die Kartons jedoch alle in eine Richtung gepackt.


    In meinem Fall werden die einzelnen Lagen folgendermaßen gepackt:



    Die Zahlen zeigen die Reihenfolge und der blaue Pfeil ist die Richtung in der sich der Greifer öffnet.

    Also muss die 6. Achse um 90 Grad gedreht werden, was in der oberen Programmierung nicht mit berücksichtigt wurde.


    Das ist meine nächste Hürde, die ich zu überwinden habe.


    Für mich ist die einfachste Lösung folgende:


    Ich fahre jede Position incl. Vorposition an und baue ein Zähler mit ein, der bei 6 die nächste Lage anfährt. Und das ganze für 6 Reihen. Bzw. könnte ich eine Variabel für die weiteren Lagen einbauen.




    Die SMB Batterie im Roboter ist wahrscheinlich defekt. Wo finde ich diese bei dem Model IRB 6620 M2004?



    Über Anregungen würde ich mich super freuen. Jetzt schon mal vielen Dank.

  • Hallo Tamas,


    gibt es noch eine genauere Beschreibung?

    Ich habe an der Kalibrieranzeige bei der 6. Achse in den Behälter geschaut, jedoch nichts gesehen.


    Gruß Frank

  • Hallo


    Achse 1 ist unten.Dort muss es sein.Ist ziemlich hinten auf die SMB board befestigt mit kabelbinder.Oder hinten beim kleinen fach nur 2 schrauben.Frage ist ob die 7.2V drinnen ist oder die 10.8V.


    MFG


    Tamas

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

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