USERFRAME relativ zu anderen USERFRAME teachen

  • An die Gemeinde,
    ich habe folgendes Problem: In unserem Schulungszentrum habe ich ein Handlingsroboter aufgebaut mit einem Greifer zum üben.
    Der Roboter steht vor einem Tisch. Diesen Tisch habe ich mit dem USERFRAME Nr. 1 versehen. Nun ist an dem Tisch eine Rutsche angebaut. Diese wollte ich unter dem USERFRAME Nr. 2 abspeichern. Dieses FRAME Nr. 2 wollte ich aber relativ zu USERFRAME Nr. 1 machen. Nun habe ich aber keinen offensichtlichen Weg gesehen dieses so einzugeben. Bei Motoman kenne ich das, das man die Frames beliebig verschachteln kann.
    Dann habe ich angefangen die UFRAMes auszulesen in Positionsregister zu packen und damit zu rechnen. Dabei bin ich verzweifelt.
    Offensichtlich ist nach dem Befehl PR[1]=UFRAME[1] das Positionsregister anders aufgebaut. Ich habe herausgefunden, dass dann die Verschiebungen in X-Y-Z nicht unter 1-2-3 sondern unter 10-11-12 zu finden sind. Aber bei den Verdrehungen in W-P-R sehe ich nicht mehr durch. Ich dachte zunächst es ist 7-8-9, das stimmt jedoch nicht.
    Ich wollte mir sozusagen ein kleines Programm machen, was das erste USERFRAME ausliest und dann einen Offset dazupacken, um es dann als USERFRAME Nr. 2 abzuspeichern.
    Ich bitte um Lösungsansätze für dieses Problem.
    Ich habe einen alten Roboter mit Software 5.30 P


    Matthias

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Einmal editiert, zuletzt von rob76 ()

  • ANZEIGE
  • Hallo Matthias,
    versuch mal folgenden Lösundsansatz:
    Frames werden im "Matrix-Format" angegeben.
    Die Matrix müßte aus folgende Elemente aufgebaut sein


    Nx Ny Nz
    Ox Oy Oz
    Ax Ay Az
    Lx Ly Lz


    N ist der Normalenvektor(Einheitsvektor in X-Richtung)
    O ist der Ortsvektor (Einheitsvektor in Y-Richtung)
    A ist der Aprochvektor (Einheitsvektor in Z-Richtung)
    L ist der Locationvektor (Ortsvektor)

  • Hallo Ali,
    zunächst erstmal danke für die Information. Nun bin ich gerade dabei mich mit dieser Berechnung zu beschäftigen. Ich surfe dazu im Internet und kämpfe mich langsam voran. Vielleicht kennt jemand einen Link, wo das Ganze ganz gut erklärt wird.
    Matthias

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Hallo Ali und wen es sonst noch interessiert,



    ich habe es jetzt soweit verstanden.


    X von Nx Ny Nz
    Y von Ox Oy Oz
    Z von Ax Ay Az


    X( cos( Winkel lokal x, global x ), cos( Winkel lokal x, global y ), cos( Winkel lokal x, global z ))
    Y( cos( Winkel lokal y, global x ), cos( Winkel lokal y, global y ), cos( Winkel lokal y, global z ))
    Y( cos( Winkel lokal z, global x ), cos( Winkel lokal z, global y ), cos( Winkel lokal z, global z ))


    Jetzt habe ich verstanden, wie die Matrix aufgebaut ist. Ich habe es nachgerechnet und es gibt mir eindeutig die Richtung des Koordinaten-Pfeiles der jeweiligen Achse an.
    Aber wie kann ich jetzt das Ganze verknüpfen.
    Zur Erinnerung: Ich möchte ein zweites USER-Frame mit den ersten USER-Frame verheiraten. Ich habe aber keine Möglichkeit der Eingabe gefunden, wo ich sagen kann: USER2 ist relativ zu USER1. Also wollte ich eine Möglichkeit suchen das mathematisch zu tun.



    Matthias

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Es ist viel einfacher!
    Probiers mal so.
    Die Werte aus dem P[1] ist in dem Fall dein Offset.
    Wenn du den P1 variabel halten möchtest und dort mit PR Offsets arbeitest kannst auch den LPOS in ein Frame laden.


    1: UFRAME[1]
    2: P[1].....
    3: P[1]=UFRAME[2]

  • Hallo Theanny,
    irgentwie verstehe ich es nicht, oder stimmt der Syntax nicht ganz?
    1: UFRAME[1] ist klar
    2: P[1]..... soll das vielleicht PR[1] heissen?
    3: P[1]=UFRAME[2] umgekehrt? UFRAME[2]=PR[1]
    Vielleicht könntest Du es ein Bisschen mehr erklären. Ich interpretiere bis jetzt, dass ich mir den Offset zu USER[1] per Hand ausrechne und in ein Positionsregister packe. Danach verstehe ich den Sinn nicht.
    Matthias

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Stimmt!
    UFRAME[2]=P[1]
    Ja der Syntax ist nicht ganz richtig ich tipp das freehand´s.
    Wenn du das UF2 immer um den gleichen wert verschoben haben möchtest dann pack das in einen Punkt nicht PR!
    Der Punkt bezieht sich zu deinem UF1, und wenn du den Punkt in ein UF2 packst wird das in relation zum Robby angelegt.
    Somit ergibt sich jede Verschiebung von UF1 auch zu UF2.
    Nicht über PR´s machen denn die tragen die Info zu welchen Frame nicht mit.

  • Hallo Theanny,
    ich traue es mir kaum zu sagen, aber ich bekomme das so nicht eingegeben. Ich habe gar nicht die Auswahl einen Punkt zu nehmen. Mache ich etwas grundlegendes verkehrt? Von der Sache her habe ich es verstanden, nun scheitert es an der Eingabe.
    Matthias

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Aus dem Handbuch!


    Abb. 4.3 Bewegungsanweisungen
    Beim Teachen von Bewegungs-Anweisungen wird eine Standard-Bewegungsanweisung über die
    Funktionstasten F1 oder F5 ausgewählt. (Zum Ändern einer Standard-Bewegungsanweisung siehe
    Unterabschnitt 5.3.2. Zum Teachen einer Bewegungs-Anweisung siehe Unterabschnitt 5.3.3. Zum
    Ändern einer Bewegungs-Anweisung siehe Unterabschnitt 5.4.2.)


    • Drücken Sie F1 POINT zum Programmieren einer Arbeitsanweisung.

    Einmal editiert, zuletzt von theanni ()

  • Hallo Theanni,
    wie man einen Punkt teacht bzw. verändert weiß ich.
    Ich habe keine Möglichkeit folgendes einzugeben:
    [size=2][font=Verdana, Arial, Helvetica, sans-serif]UFRAME[2]=P[1][/font][/size]
    [size=2][font=Verdana, Arial, Helvetica, sans-serif]Matthias[/font][/size]

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Ich muss gestehn, als P[*] hab ich es noch nicht probiert.
    Werd ich heut im laufe des Tages mal.
    Bisher hab ich es so gelöst:
    Dort sind 2 Messwertaufnehmer mit deren Hilfe richtet sich der Robby parallel und mit Abstand dazu aus.


    1: UTOOL_NUM=4 ;
    2: UFRAME_NUM=0 ;
    3: PAYLOAD[1] ;
    4:J P[5] 100% FINE ;
    .
    .
    23: WAIT 1.00(sec) ;
    24: PR[85]=LPOS ;
    25: !------------------------------ ;
    26: !MESWERTE ;
    27: !------------------------------ ;
    28: LBL[1] ;
    29: IF (GI[2]>500 AND GI[3]>500),JMP LBL[99] ;
    30: IF (GI[2]<310 OR GI[3]<310),JMP LBL[100] ;
    31: IF ((GI[2]>500 AND GI[3]<500) OR (GI[2]<500 AND GI[3]>500)),JMP LBL[100] ;
    32: IF (PR[85,6]<(-95) OR PR[85,6]>(-85)),JMP LBL[100] ;
    33: IF (PR[85,2]<(-400) OR PR[85,6]>(-600)),JMP LBL[100] ;
    34: ;
    35:L PR[85] 2000mm/sec CNT10 ACC100 ;
    36: ;
    37: R[200:Arbeits-Reg. 4]=GI[2]-GI[3] ;
    38: IF R[200:Arbeits-Reg. 4]>1,JMP LBL[10] ;
    39: IF R[200:Arbeits-Reg. 4]<(-1),JMP LBL[20] ;
    40: JMP LBL[30] ;
    41: ;
    42: !------------------------------ ;
    43: !MESWERTE Links ;
    44: !------------------------------ ;
    45: LBL[10] ;
    46: PR[85,6]=PR[85,6]-.1 ;
    47: JMP LBL[1] ;
    48: ;
    49: !------------------------------ ;
    50: !MESWERTE rechts ;
    51: !------------------------------ ;
    52: LBL[20] ;
    53: PR[85,6]=PR[85,6]+.1 ;
    54: JMP LBL[1] ;
    55: ;
    56: !------------------------------ ;
    57: !MESWERTE gleich ;
    58: !------------------------------ ;
    59: LBL[30] ;
    60: ;
    61: IF (GI[2]<398),PR[85,2]=PR[85,2]-1 ;
    62: IF (GI[2]>402),PR[85,2]=PR[85,2]+1 ;
    63: IF (GI[2]<398 OR GI[2]>402),JMP LBL[1] ;
    64: ;
    65: PR[85]=LPOS ;
    66: PR[85,1]=PR[85,1]+0 ;
    67: PR[85,2]=PR[85,2]+0 ;
    68: PR[85,3]=PR[85,3]+(-10) ;
    69: PR[85,4]=PR[85,4]+0 ;
    70: PR[85,5]=PR[85,5]+0 ;
    71: PR[85,6]=PR[85,6]+5 ;
    72: UFRAME[5]=PR[85] ;
    73: ;
    74: UFRAME_NUM=5 ;
    75:L P[3] 2000mm/sec CNT50 ACC100 ;
    [/*]

  • Hallo Theanni,


    zunächst vielen Dank für die Mühe.
    Das Programm habe ich soweit verstanden. Ich habe jetzt das Problem so gelöst, dass ich mir ein Init File gemacht habe. Das klappt ganz gut. Dann gebe ich einfach den Offset als Konstante dazu und schon passt es. Vielleicht ist es auch die sauberste Art ein Userframe zu benutzen. Es wird ja mit jedem Init neu überschrieben.


    Matthias

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

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