Positionen um 1 Achse verschieben?

  • Hallo Leute,


    ich habe ein bestehendes Programm mit Tool1 und Base0 nun soll das selbe Programm (Duplikat => gleiche Tool / Base) lediglich um Achse 1 um 100° gedreht werden. kann mir jemand sagen wie das funktioniert ohne das ich jeden Punkt neu teachen muss.
    Habe einen KRC2 V5.5.16


    Danke im Voraus

  • Schritt für Schritt zum Roboterprofi!

  • lediglich um Achse 1 um 100° gedreht werden.


    Du meinst dass der Roboter um 100° verdreht wird? Oder steht der Robi genauso und die Komponenten drumherum sind um 100° gedreht?

    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.

  • Das sauberste wäre natürlich eine Base zu vermessen und die Positionen mit dieser Base neu zu teachen.
    Evtl. kannst du die einzelnen Positionen mit dem KRC-Editor verschieben - Positions-Transformation. Kann das jetzt aber gerade nicht testen.

    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.

  • Neu Base anlegen -> Numerische Eingabe -> Alle Werte auf Null
    Alle betroffenen Punkte in die neue Base legen. (Auf "Punkt ändern" klicken und die Basis von 0 auf die neue ändern.)
    Die neue Base ändern: a auf -100°


    (Damit hast Du alle Punkte um 100° in mathematisch negativer Richtung um die Roboterachse gedreht. A1 liegt in dieser Achse.)



    (Disclaimer: Es könnten auch +100° sein, nagel mich nicht darauf fest :mrgreen: )



    \edit: Alternative:
    In den Madas $MAMES[1] auf -100°
    Dann steht die A1 bei Justage (die Justagekerbe ist bei A1=0) auf -100°
    Dadurch steht die A1 wenn Du sie auf die "alten" 100° stellst dann auf 0°
    Aber Vorsicht !!! : Softwareendschalter anpassen. Der Roboter könnte jetzt auf "alt" 285 drehen und dabei gegen den Endanschlag fahren.


    \edit2: Alternative2:
    In den Madas $Robroot.a auf -100° (oder +100° ;) ) ändern.

    Einmal editiert, zuletzt von atw12az5 ()

  • Danke für die Antworten,


    habe mich entschlossen das bestehende Programm zu duplizieren, die Position anzufahren, eine Relativbewegung um A1 100° durchzuführen und dann einen Touchup zu machen.


    atw12az5 :bei deinen Alternativen würde sich alles um die 100° veschieben, bei mir ist es aber nur ein Anlagenkomponente die sich verändert, der Rest sollte so bleiben wie er war.


    IrrerPolterer: kann der KRC-Editor um nur 1 Achse verschieben? Ich glaube da gehen nur Kartesiche Koordinaten, oder?


    Trotzdem danke !! :danke:


  • atw12az5 :bei deinen Alternativen würde sich alles um die 100° veschieben, bei mir ist es aber nur ein Anlagenkomponente die sich verändert, der Rest sollte so bleiben wie er war.


    Dann fallen die 2 Alternativen weg. Der erste Weg geht dennoch.
    Programm duplizieren. Im Duplikat Punkte in eine "leere Base" -> diese Base um a drehen.



    IrrerPolterer: kann der KRC-Editor um nur 1 Achse verschieben? Ich glaube da gehen nur Kartesiche Koordinaten, oder?


    Drehung um A1 entspricht Rotation um z = Winkel a


  • IrrerPolterer: kann der KRC-Editor um nur 1 Achse verschieben? Ich glaube da gehen nur Kartesiche Koordinaten, oder?


    Nur Kartesisch. Da aber deine Aufgabenbeschreibung nicht sehr - wie soll ich sagen - verständlich ausgedrückt war, bin ich davon ausgegangen, dass durch ein Verschieben der betreffenden Koordinaten das richtige Ergebnis dabei herauskommen würde.



    Programm duplizieren. Im Duplikat Punkte in eine "leere Base" -> diese Base um a drehen.


    Kannst du auch über das kartesische Verschieben der Positionen erreichen. Ist im Prinzip das Gleiche.



    In den Madas $Robroot.a auf -100° (oder +100° ;) ) ändern.


    Dies ist übrigens mit vorsicht zu genießen - ist IMO nicht updatesicher. Sollte man also irgendwo sichtlich vermerken (z.B. Aufkleber auf dem Steuerungs-PC). Naja, kommt hier eh nicht in Frage.

    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.

  • Hallo Leute!


    Ich habe so ein ähnliches Problem.
    Sitze vor einem Agilus KR6 R700 sixx mit einer KRC4 Compact und der Sockel sollte jetzt um 90° verdreht werden (Platzmangel bei den Anschlussleitungen). Deshalb müsste ich jeden Punkt im Programm mit einer Verdrehung der Achse A1 umteachen.


    Ich habe 3 Basiskoordinatensystem vermessen und es wurden aber auch Punkte in $NULLFRAME geteacht zudem sind noch zwei Greifer (Rohteil- und Fertigteilgreifer) montiert und vermessen.


    Im Hauptprogramm rufe ich über eine Switch Anweisung 4 Unterschiedliche Unterprogramme auf und in den Unterprogrammen werden nochmals Unterprogramme aufgerufen in denen die meisten Punkte geteacht wurden. Habe auch ein Interruptprogramm geschrieben für eine Grundstellungsfahrt das im Hauptprogramm deklariert ist.


    Was wäre die einfachste Lösung damit alle Punkte 90° um die Achse 1 verdreht werden? :denk:


    Danke im Vorraus!

  • Hallo,


    wenn ich dich richtig verstanden habe ist dein Roboter in $WORLD jetzt um 90° in Achse 1 verdreht montiert. Eine Drehung um die Welt z-Achse kannst du über $ROBROOT.A in der R1/$machine.dat erreichen.


    Fubini

  • 1. Datensicherung machen


    2. Programm schreiben:
    BASE_DATA[1]={x 0, y 0, z 0, a 100, b 0, c 0}:$world
    ; ob + oder - muss man Testen -> darum datensicherung


    3. Programm nur EINMAL durchlaufen


    4. Fertig
    -> alle Punkte in Base=1 sind um 100° um die Achse 1 verdreht und verschoben


    5. im Kopierten Programm nur die Base auf 1 ändern und nichts teatschen :)

    Einmal editiert, zuletzt von Ser-G ()

  • Ich würde es mit OrangeEdit machen.


    Öffne in OrangeEdit "Positionstransformation", wähle die gewünschten Positionen, wähle den Reiter "Base", kopier die jeweiligen Base-Daten aus der config.dat in das Feld "Alte Base-Daten", dann "Ausführen".


    Jetzt beziehen sich diese Positionen auf den Nullframe und du kannst sie mit dem Editor um A drehen:


    Öffne in OrangeEdit "Positionstransformation", wähle die gewünschten Positionen, wähle den Reiter "Transformieren", wähle "Base-Offset", gib bei "A" 90° (plus oder minus je nachdem) ein, dann "Ausführen".


    Jetzt wieder das ganze für das alte Bezugssystem umrechnen:


    Öffne in OrangeEdit "Positionstransformation", wähle die gewünschten Positionen, wähle den Reiter "Base", kopier die jeweiligen Base-Daten aus der config.dat in das Feld "Neue Base-Daten", setzte im Feld "Alte Base-Daten" die Werte auf Nullframe, dann "Ausführen".


    Das ganze jeweils für die einzelnen Base. Die Positionen mit Nullframe kannst du direkt um A drehen.


    Jetzt könnte es noch Probleme mit dem Turn geben, was du aber auch recht fix mit dem Editor erledigen kannst.


    Funktioniert alles zuverlässig, hat sich bei mir schon häufig bewährt.


    Viel Erfolg

    Einmal editiert, zuletzt von zteve ()

  • Danke für die extrem schnellen Antworten :danke:


    Meine Home Position hat jetzt folgende Koordinaten: XHOME = {X 267.10, Y 78.39, Z 786.47, A 126.09, B -1.47, C 91.68}
    Die Position sollte nun auf XHOME = {X 267.10, Y 78.39, Z 786.47, A 36.09, B -1.47, C 91.68} geändert werden.
    Das sollte jetzt mit alle Punkte gemacht werden.


    fubini hat das dann auswirkungen auf die Justage des Roboter wenn ich in den Maschinen.dat das $ROBROOT.A verändere?


    Ser-G muss ich das dann für jede Base und auch für $NULLFRAME[0] machen?

  • Habe jetzt eine Datensicherung gemacht und in den $Maschinen.dat das FRAME $ROBROOT auf FRAME $ROBROOT={..., A -90.0, ....}geändert.
    Jetzt bekomme ich aber die Meldung "Positionsabweichung (Bewegungssteuerung <-> Sicherheitssteuerung)"??? :huh:

  • Hallo,


    Zitat

    "Positionsabweichung (Bewegungssteuerung <-> Sicherheitssteuerung)"???


    Mach einfach mal mit aktiver Nutzergruppe "Sicherheitsinbetriebnehmer" das Menü Konfiguration -> Sicherheitssteuerung auf. Dann sollte er eine Abweichung erkennen und die neuen Daten in die Sicherheitsstuerung übernehmen lassen.


    Sollte das direkt auf der Steuerung nicht klappen, musst die RobRoot-Drehung unter WorkVisual konfigurieren und das geänderte Projekt deployen.


    Fubini

  • Ser-G muss ich das dann für jede Base und auch für $NULLFRAME[0] machen?



    musst nur einmal für base 1, oder halt eine base, die frei ist machen, in der base du im "kopierten" programm fahren willst,
    nimm einfach mal die base 16 oder 32, die sind meistens frei.


    es gibt nur ein $NULLFRAME, somit brauchst du das nur einmal machen

  • Danke habe noch einen anderen Lösungsweg gefunden.


    Einfach das Programm markieren und unter Bearbeitung --> Markierter Bereich --> Markierten Bereich verschieben bei der Achse A1 90 Grad eingeben und schon war alles fertig.


    Danke für eure Lösungsvorschläge :danke:

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