tcp koordinaten system

  • hi leute!
    hab ein großes problem! arbeite noch nicht solange mit fanuc! und komm einfach nicht drauf wie man im programm sagt das der roboter im tcp koordinatensystem fahren sollen?!?!
    bitte um eure hilfe!
    danke mfg

  • ANZEIGE
  • Moin rastarocket,


    versuche es mal mit:


    UTOOL_NUM=


    Gruß HERMO

    Wenn bereits der Ansatz falsch ist, so führt strenge Logik unweigerlich zum falschen Ergebnis. Nur Unlogik gibt Dir jetzt noch die Chance, wenigstens zufällig richtig zu liegen.<br /><br />Alle sagten: das geht nicht. Dann kam einer, der wusste das nicht und hat´s gemacht.

  • ach irgendwie haut das alles nicht so hin wie ich mir das vorgestellt hab!!


    ich muss für mein studium ein projekt machen und ich weis das ein fanuc eigentlich nicht dafür ausgelegt is aber egal!


    mein programm muss im tcp koordinatensystem (also wie oben schon gesagt) fahren, weil der endeffektor nur in x richtung vor und zurück fahren soll und dabei durch die z drehung, die x richtung verdrehen!


    das is mein programm:


    1: LBL[1] ;
    2: UTOOL_NUM=1 ;
    3: PR[80]=UTOOL[1] ;
    4: PR[80,1]=0 ;
    5: PR[80,2]=0 ;
    6: PR[80,3]=0 ;
    7: PR[80,4]=0 ;
    8: PR[80,5]=0 ;
    9: PR[80,6]=0 ;
    10: LBL[2] ;
    11: IF DI[5]=ON,JMP LBL[3] ;
    12: IF DI[6]=ON,JMP LBL[4] ;
    13: IF DI[7]=ON,JMP LBL[5] ;
    14: IF DI[4]=ON,JMP LBL[6] ;
    15: IF DI[8]=ON,JMP LBL[7] ;
    16: JMP LBL[2] ;
    17: LBL[3] ;
    18: DO[13]=ON ;
    19: PR[80,10]=PR[80,10]+5 ;
    20:J P[1] 0.5sec CNT100 Tool_Offset,PR[80] ;
    21: DO[13]=OFF ;
    22: JMP LBL[2] ;
    23: LBL[4] ;
    24: DO[13]=ON ;
    25: PR[80,10]=PR[80,10]-5 ;
    26:J P[1] 0.5sec CNT100 Tool_Offset,PR[80] ;
    27: DO[13]=OFF ;
    28: JMP LBL[2] ;
    29: LBL[5] ;
    30: DO[13]=ON ;
    31: PR[80,9]=PR[80,9]+5 ;
    32:J P[1] 0.5sec CNT100 Tool_Offset,PR[80] ;
    33: DO[13]=OFF ;
    34: JMP LBL[2] ;
    35: LBL[6] ;
    36: DO[13]=ON ;
    37: PR[80,9]=PR[80,9]-5 ;
    38:J P[1] 0.5sec CNT100 Tool_Offset,PR[80] ;
    39: DO[13]=OFF ;
    40: JMP LBL[2] ;
    41: LBL[7] ;
    42: ABORT ;
    43: JMP LBL[7] ;


    aber irgendwie funktionierts nicht!
    für ideen und verbesserungsvorschläge bin ich gerne offen!
    weil ich weis schön langsam nicht mehr wie ich das machen soll, weil auch die zeit knapp wird!
    also bitte bitte helft mir
    danke


    achja es is eine RJ3iB steuerung

    Einmal editiert, zuletzt von rastarocket ()

  • Moin rastarocket,


    ich glaube den Fehler in deinem Programm gefunden zu haben.


    Du machst eine Offsetberechnung z.B. in Zeile 19 wo du wahrscheinlich den X-Offset berechnen willst?! Dann solltest da aber PR[80,1]=PR[80,1]+5 rechnen. Und um die Drehung um Z zu berechnen musst du PR[80,6]=PR[80,6]+5 rechnen.


    Hier die einzelnen Werte in einem Positionsregister:
    PR[X,1] -> X-Koordinate
    PR[X,2] -> Y-Koordinate
    PR[X,3] -> Z-Koordinate
    PR[X,4] -> W (Winkel um X)
    PR[X,5] -> P (Winkel um Y)
    PR[X,6] -> R (Winkel um Z)


    Die Anweisung (PR[80]=UTOOL[1]) brauchst du meiner Meinung nach auch nicht, da du ja in der Zeile 2 das UTOOL schon zuweist mit dem du fahren willst.


    Versuche es mal damit:


    1: LBL[1] ;
    2: UTOOL_NUM=1 ;
    3: Anweisung gelöscht
    4: PR[80,1]=0 ;
    5: PR[80,2]=0 ;
    6: PR[80,3]=0 ;
    7: PR[80,4]=0 ;
    8: PR[80,5]=0 ;
    9: PR[80,6]=0 ;
    10: LBL[2] ;
    11: IF DI[5]=ON,JMP LBL[3] ;
    12: IF DI[6]=ON,JMP LBL[4] ;
    13: IF DI[7]=ON,JMP LBL[5] ;
    14: IF DI[4]=ON,JMP LBL[6] ;
    15: IF DI[8]=ON,JMP LBL[7] ;
    16: JMP LBL[2] ;
    17: LBL[3] ;
    18: DO[13]=ON ;


    --Berechnung X Richtung--
    19: PR[80,1]=PR[80,1]+5 ;


    20:J P[1] 0.5sec CNT100 Tool_Offset,PR[80] ;
    21: DO[13]=OFF ;
    22: JMP LBL[2] ;
    23: LBL[4] ;
    24: DO[13]=ON ;


    --Berechnung X Richtung--
    25: PR[80,1]=PR[80,1]-5 ;


    26:J P[1] 0.5sec CNT100 Tool_Offset,PR[80] ;
    27: DO[13]=OFF ;
    28: JMP LBL[2] ;
    29: LBL[5] ;
    30: DO[13]=ON ;


    --Berechnung der Drehung um Z--
    31: PR[80,6]=PR[80,6]+5 ;


    32:J P[1] 0.5sec CNT100 Tool_Offset,PR[80] ;
    33: DO[13]=OFF ;
    34: JMP LBL[2] ;
    35: LBL[6] ;
    36: DO[13]=ON ;


    --Berechnung der Drehung um Z--
    37: PR[80,6]=PR[80,6]-5 ;


    38:J P[1] 0.5sec CNT100 Tool_Offset,PR[80] ;
    39: DO[13]=OFF ;
    40: JMP LBL[2] ;
    41: LBL[7] ;
    42: ABORT ;
    43: JMP LBL[7] ;




    Vielleicht hilft dir das weiter?!?!?


    Gruß HERMO

    Wenn bereits der Ansatz falsch ist, so führt strenge Logik unweigerlich zum falschen Ergebnis. Nur Unlogik gibt Dir jetzt noch die Chance, wenigstens zufällig richtig zu liegen.<br /><br />Alle sagten: das geht nicht. Dann kam einer, der wusste das nicht und hat´s gemacht.

    Einmal editiert, zuletzt von hermo ()

  • Moin,


    kannst du mir mal die Winkelwerte von deinem P1 mitteilen?
    Wie hast du das Tool eingemessen?


    Gruß HERMO

    Wenn bereits der Ansatz falsch ist, so führt strenge Logik unweigerlich zum falschen Ergebnis. Nur Unlogik gibt Dir jetzt noch die Chance, wenigstens zufällig richtig zu liegen.<br /><br />Alle sagten: das geht nicht. Dann kam einer, der wusste das nicht und hat´s gemacht.

  • morgen
    mein punkt P1 sieht so aus:
    P[1:""]{
    GP1:
    UF : 0, UT : 1, CONFIG : 'N U T, 0, 0, 0',
    X = 700.00 mm, Y = 200.00 mm, Z = 400.00 mm,
    W = 180.00 deg, P = .00 deg, R = 45.00 deg
    };


    derzeit ist noch kein tool vorhanden, da es erst konstruiert wird.
    danke
    mfg

  • Köntest du mir den Robotertypen sagen, dann probiere ich es mal im Roboguide?!


    Gruß HERMO

    Wenn bereits der Ansatz falsch ist, so führt strenge Logik unweigerlich zum falschen Ergebnis. Nur Unlogik gibt Dir jetzt noch die Chance, wenigstens zufällig richtig zu liegen.<br /><br />Alle sagten: das geht nicht. Dann kam einer, der wusste das nicht und hat´s gemacht.

  • Ich habe es mal im Roboguide versucht. Bei mir hat es funktioniert!
    Hier meine Programm:


    1: LBL[1] ;
    2: UTOOL_NUM=1 ;
    3: PR[81,1]=0 ;
    4: PR[81,2]=0 ;
    5: PR[81,3]=0 ;
    6: PR[81,4]=0 ;
    7: PR[81,5]=0 ;
    8: PR[81,6]=0 ;
    9: ;
    10: LBL[2] ;
    11: IF DI[5]=ON,JMP LBL[3] ;
    12: IF DI[6]=ON,JMP LBL[4] ;
    13: IF DI[7]=ON,JMP LBL[5] ;
    14: IF DI[4]=ON,JMP LBL[6] ;
    15: IF DI[8]=ON,JMP LBL[7] ;
    16: JMP LBL[2] ;
    17: ;
    18: LBL[3] ;
    19: DO[13]=ON ;
    20: PR[60]=UTOOL[1] ;
    21: PR[80]=PR[60] ;
    22: ;
    23: PR[80,10]=PR[80,10]+5 ;
    24: JMP LBL[10] ;
    25: ;
    26: LBL[4] ;
    27: DO[13]=ON ;
    28: PR[60]=UTOOL[1] ;
    29: PR[80]=PR[60] ;
    30: ;
    31: PR[80,10]=PR[80,10]-5 ;
    32: JMP LBL[10] ;
    33: ;
    34: LBL[5] ;
    35: DO[13]=ON ;
    36: ;
    37: PR[81,6]=PR[81,6]+5 ;
    38: JMP LBL[10] ;
    39: ;
    40: LBL[6] ;
    41: DO[13]=ON ;
    42: ;
    43: PR[81,6]=PR[81,6]-5 ;
    44: JMP LBL[10] ;
    45: ;
    46: LBL[10] ;
    47: UTOOL[1]=PR[80] ;
    48: UTOOL_NUM=1 ;
    49:J P[1] 100% FINE Tool_Offset,PR[81] ;
    50: JMP LBL[2] ;
    51: ;
    52: ;
    53: LBL[7] ;
    54: ABORT ;
    55: JMP LBL[7] ;
    56:J P[1] 100% FINE ;
    /POS
    P[1]{
    GP1:
    UF : 0, UT : 1, CONFIG : 'N U T, 0, 0, 0',
    X = 700.00 mm, Y = 200.00 mm, Z = 400.00 mm,
    W = -180.00 deg, P = .00 deg, R = 45.00 deg
    };


    Ich habe dir mal das TP-Programm aus Roboguide angehängt. Vielleicht kannst du es ja mal in deinen Roboter laden?!


    Viel Erfolg
    HERMO

    Wenn bereits der Ansatz falsch ist, so führt strenge Logik unweigerlich zum falschen Ergebnis. Nur Unlogik gibt Dir jetzt noch die Chance, wenigstens zufällig richtig zu liegen.<br /><br />Alle sagten: das geht nicht. Dann kam einer, der wusste das nicht und hat´s gemacht.

  • Moin,


    nachdem ich ne Nacht drüber geschlafen habe ist mir aufgefallen, dass ich einen kleinen Fehler gemacht habe. Ich verschiebe das ganze Toolframe und das wolltest du wahrscheinlich nicht?!


    Hier nun die endgültige Lösung die funktioniert:


    /PROG TEST
    /ATTR
    OWNER = MNEDITOR;
    COMMENT = "";
    PROG_SIZE = 1391;
    CREATE = DATE 08-11-23 TIME 14:55:11;
    MODIFIED = DATE 08-11-24 TIME 10:13:08;
    FILE_NAME = ;
    VERSION = 0;
    LINE_COUNT = 67;
    MEMORY_SIZE = 1851;
    PROTECT = READ_WRITE;
    TCD: STACK_SIZE = 0,
    TASK_PRIORITY = 50,
    TIME_SLICE = 0,
    BUSY_LAMP_OFF = 0,
    ABORT_REQUEST = 0,
    PAUSE_REQUEST = 0;
    DEFAULT_GROUP = 1,*,*,*,*;
    CONTROL_CODE = 00000000 00000000;
    /MN
    1: LBL[1] ;
    2: UTOOL_NUM=1 ;
    3: UFRAME_NUM=1 ;
    4: PR[80,1:OFFSET X]=0 ;
    5: PR[80,2:OFFSET X]=0 ;
    6: PR[80,3:OFFSET X]=0 ;
    7: PR[80,4:OFFSET X]=0 ;
    8: PR[80,5:OFFSET X]=0 ;
    9: PR[80,6:OFFSET X]=0 ;
    10: ;
    11: PR[81,1:OFFSET R]=0 ;
    12: PR[81,2:OFFSET R]=0 ;
    13: PR[81,3:OFFSET R]=0 ;
    14: PR[81,4:OFFSET R]=0 ;
    15: PR[81,5:OFFSET R]=0 ;
    16: PR[81,6:OFFSET R]=0 ;
    17: ;
    18: PR[82:LPOS 1]=P[1] ;
    19: PR[83:LPOS 2]=P[1] ;
    20: ;
    21: LBL[2] ;
    22: IF DI[5:X OFFSET]=ON,JMP LBL[3] ;
    23: IF DI[6:X OFFSET]=ON,JMP LBL[4] ;
    24: IF DI[7:R OFFSET]=ON,JMP LBL[5] ;
    25: IF DI[4:R OFFSET]=ON,JMP LBL[6] ;
    26: IF DI[8:ABORT]=ON,JMP LBL[7] ;
    27: JMP LBL[2] ;
    28: ;
    29: LBL[3] ;
    30: DO[13]=ON ;
    31: PR[80,1:OFFSET X]=PR[80,1:OFFSET X]+5 ;
    32: JMP LBL[11] ;
    33: ;
    34: LBL[4] ;
    35: DO[13]=ON ;
    36: ;
    37: PR[80,1:OFFSET X]=PR[80,1:OFFSET X]-5 ;
    38: JMP LBL[11] ;
    39: ;
    40: LBL[5] ;
    41: DO[13]=ON ;
    42: ;
    43: PR[81,6:OFFSET R]=PR[81,6:OFFSET R]+5 ;
    44: JMP LBL[10] ;
    45: ;
    46: LBL[6] ;
    47: DO[13]=ON ;
    48: ;
    49: PR[81,6:OFFSET R]=PR[81,6:OFFSET R]-5 ;
    50: JMP LBL[10] ;
    51: ;
    52: LBL[10] ;
    53: UTOOL_NUM=1 ;
    54:L PR[83:LPOS 2] 5deg/sec FINE Offset,PR[81:OFFSET R] ;
    55: PR[82:LPOS 1]=LPOS ;
    56: JMP LBL[2] ;
    57: ;
    58: LBL[11] ;
    59: UTOOL_NUM=1 ;
    60:L PR[82:LPOS 1] 100mm/sec FINE Tool_Offset,PR[80:OFFSET X] ;
    61: PR[83:LPOS 2]=LPOS ;
    62: JMP LBL[2] ;
    63: ;
    64: LBL[7] ;
    65: ABORT ;
    66: JMP LBL[7] ;
    67:J P[1] 100% FINE ;
    /POS
    P[1]{
    GP1:
    UF : 0, UT : 1, CONFIG : 'N U T, 0, 0, 0',
    X = 700.00 mm, Y = 200.00 mm, Z = 400.00 mm,
    W = -180.00 deg, P = .00 deg, R = 45.00 deg
    };
    /END



    Ich habe dir wieder meine Programm aus Roboguide angehängt.


    Gruß
    HERMO

    Wenn bereits der Ansatz falsch ist, so führt strenge Logik unweigerlich zum falschen Ergebnis. Nur Unlogik gibt Dir jetzt noch die Chance, wenigstens zufällig richtig zu liegen.<br /><br />Alle sagten: das geht nicht. Dann kam einer, der wusste das nicht und hat´s gemacht.

  • danke :danke: für dein bemühen!


    wie du vielleicht oben schon gesehen hast kämpf ich mittlerweile mit einem anderen problem! letzte woche hat noch alles so funktioniert wies sollte und heute will ich die steuerung auf drehen und nichts geht mehr!!


    es kommen error meldungen die nicht in der bedieungsanleitung stehen!
    wie zb chain 2 (0V) abnormal


    danke nochmals

  • hi leute!
    fragen über fragen*gg*
    und ich bin schon fast dabei den roboter beim fenster raus zuwerfen!! :uglyhammer_2:


    nun zu meiner frage:
    könnte mir bitte jemand erklären wie ich ein tool koordinatensystem anlege?
    mfg

  • Hey Rastarocket,


    schmeiß ihn nicht raus, wär schade darum... ;)


    Ein Tool Frame kannst Du unter:


    Menü --> "6" Setup --> "F1" Frames --> "F3" Other --> Tool Frame


    einrichten.
    In diesem Menü solltest Du die 10 möglichen "Tool Frames" sehen.
    Dort hast Du dann verschiedene Möglichkeiten das Koordinatensystem einzurichten. Wie Du bei den Verfahren vorgehen musst kannst Du im Handbuch nachlesen.


    Welches "Tool Frame" Du dort einrichtest ist eigentlich völlig egal, hauptsache Du gibst das eingerichtete "Tool Frame" im jeweiligen Programm mit dem Befehl "UTOOL_NUM=..." an (wie hermo schon geschrieben hat), damit der Roboter weiß in welchem Koordinatensystem er verfahren soll.


    Achso und gutes neues Jahr noch. =)


    Gruß
    Fred

    Hoffnung ist der erste Schritt auf dem Pfad der Enttäuschung.<br /><br />Java programmers wear glasses, because they can&#039;t C#.

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