arbeiten im toolsystem

  • Hallo
    Bei der Programmierung des Roboters im Editor haben wir das Problem, dem Programm das Tool-System als zu verwendendes Koordinatensystem bekannt zu machen. Er arbeitet immer im World-Koordinatensystem.
    Danke für Eure Infos


    Mit frdl. Grüssen :hilfe:

  • Schritt für Schritt zum Roboterprofi!
  • Hallo.


    Ich verstehe die Frage nicht ganz.


    Wenn ihr keine Base Koordinatensysteme vermessen habt, könnt ihr nur im Weltkoordinatensystem fahren (im Programm).


    Oder wollt ihr mit einem feststehendem TCP (externer TCP) fahren ?


    :kopfkratz: :kopfkratz: :kopfkratz:
    mfg SyncMa

    Ob orange oder blau, die können nerven wie die Sau.

  • Wir haben im Vorfeld das Tool eingemessen.Bei Eingabe über die Normale Maske innerhalb der Eingabe von Bewegungen und dem Eintrag des angewählten Tools legt er auch das Koordinatensystem auf die Werkzeugspitze.
    Jetzt führen wir eine Programmierung im Editor durch ohne Eingabemaske.Geschwindikkeit Bewegung und Zählschleife sind eingegeben und werden auch abgearbeitet.Uns fehlt die Befehlszeile zur Eingabe, damit auch hier das Toolsystem benutzt wird.

  • So, ausgehend von der Annahme das du mit
    Eingabemaske = Inlineformular
    Weltkoordinate = Werkzeugspitze am Anschraubflansch A6
    Koordinatensystem an der Werkzeugspitze = TCP
    meinst, ist die Zeile die du suchst vermutlich

    Code
    $TOOL=TOOL_DATA[1]


    wobei die 1 mit dem Tool übereinstimmen muß, welches du anwählen willst...


    Das das mit der Eingabemaske funktioniert, liegt daran das dort jedes mal die Daten für das angegebene Tool automatisch gesetzt werden und eigendlich auch aktive bleiben sollten bis dieses neu gesetzt wird.


    Wenn jetzt natürlich noch kein Bewegungssatz abgearbeitet ist der durch einen Eingabemaske erstellt wurde, wird wahrscheinlich $TOOL=$NULLFRAME (Mittelpunkt Anschraubflansch Achse 6) sein...

  • Vielleicht meint pdiddl aber das, was bei ABB unter "RelTool" bekannt ist. Und zwar das man bezogen auf die aktuelle Stellung des Tool-Koordinatensystems verfahren kann.
    Z.B. man möchte 100mm in x-Richtung fahren. Aber nicht bezogen auf das Weltkoordinatensystem, sondern auf die aktuelle Stellung des Werkzeuges (Toolkoordinatensystem) bezogen.


    Nur leider weiß ich auch nicht wie man das bei KUKA realisiert :(
    Vielleicht hat ja jemand eine Idee.


    Gruß HarryH

  • Hallo,


    ich denke Spacefire hat das Problem begriffen.


    Das Tool laesst sich mit $Tool=tool_data[x] setzen, alternativ mit Bas(#tool,x).
    x ist die Nummer des Tools.
    Vorteil bei Verwendung von bas.src - es werden die Werkzeuglastdaten beruecksichtigt.
    Kann man aber auch manuell machen. Mit $Load = Load_data[x].


    KaiN:
    Lin_rel ist so in Weltkoordinaten
    Eine Bewegung in Toolkoordinaten kann man so machen:
    ;----------------------------
    def beispiel()
    decl frame aktpos
    decl frame neupos
    decl frame offset


    aktpos = {x 400,y 290,z 754 ,a 0,b 0,c 0}
    offset = {x 0,y 0,z 100 ,a 0,b 0,c 0}
    neupos = aktpos:offset
    bas(#initmov,0)
    $tool = Tool_data[1]
    $base = base_data[1]
    ptp aktpos
    lin neupos ; bewegung um 100 mm in z vom Toolkoordinatensystem
    end
    ;----------------------------


    verwendet man neupos = offset : aktpos, bedeutet das eine Bewegung um 100 mm in Z des Toolkoordinatensystem.


    Gruss Stefan

  • Ich glaube beides klappt. In meinem Code setze ich ja die Base-Daten auf die Koordinaten der aktuellen Position. In diesem Base-System ist dann ein LIN_REL {x 100} in der X-Richtung des TOOL.

    If you and DEAD people can read Hex, how many people can read Hex?


  • In diesem Base-System ist dann ein LIN_REL {x 100} in der X-Richtung des TOOL.


    die Loessung klappt schon,
    man musst dabei nur aufpassen, dass $Pos_act in einem nicht zu Nullframe verdrehten Base eingelesen wird, sonst sieht die Sache komisch aus.


    Gruss Stefan

  • Guter Einwand! :danke:
    Also geht das so:


    Sollte gehen.

    If you and DEAD people can read Hex, how many people can read Hex?

    Einmal editiert, zuletzt von kai_n ()

  • Wobei es mit Deinem Vorschlag viel kürzer und eleganter geht: :grinser043:

    Code
    DEF LIN_TOOL(ort:IN)
    FRAME ort
    
    
    ort=$pos_act : ort; Umrechnen in Tool
    LIN_REL ort
    
    
    END


    Hab wohl beides nicht getestet. Nur als Warnung für Probierwillige.

    If you and DEAD people can read Hex, how many people can read Hex?

  • :grinser043: :merci:


    Hallo
    Möchte mich für Eure infos bedanken.Habe die Variante von kai_n gewählt. Geht wunderbar.
    Allen ein schönes Osterfest!!!!!!!!!!

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