Beiträge von michaelwiesinger@me.com

    Bei nur 2 Robotern brauchst du kein SNUM Sync. Ich würde mal folgendes ausprobieren. Starte mal parallel die beiden Jobs die synchron laufen sollen. Am Nahtbeginn, Roboter 1 teachen und mit Tsync natürlich so wie du es gemacht hast aufeinander warten und gleichzeitig zu schweißen beginnen. Mit der Page Taste Roboter 2 teachen. Immer wieder zwischen Rob 1 und Rob 2 springen. Wichtig dabei, den Totmann Taster nicht loslassen. Das Problem dabei ist, wenn du den Totmann loslässt und danach die Servos wieder anziehen, hast du immer wieder eine kleine Differenz in den Pulsdaten. Das mag der Synchron Parallel Job nicht besonders. Da gibts immer wieder Schwierigkeiten. Bin mir ziemlich sicher das es so funktionieren wird.

    Ich würde vielleicht noch den Hinweis geben, das bei der Aktion der Speicher der Robotersteuerung neu organisiert wird und somit ziemlich sicher sämtliche Roboterjobs, Variablen usw. weg sind. Ziemlich fahrlässig so eine Anleitung Online zu stellen. Ich wette mit dir, das derjenige der das macht 100% keine Datensicherung VORHER erstellt hat, und damit meine ich keine kleine Jobsicherung. Wer übernimmt hierfür die Verantwortung?

    Genau, also 2 Byte Variablen und nicht 1000. Ich persönlich finde es etwas bedenklich wenn man jemanden dadurch in den Maintenance Mode schickt oder zum Parameter ändern animiert. Fairerweise muss man aber auch sagen, das die Fragestellung nicht wirklich konkret war. Aber ist nur meine persönliche Meinung..... :pfeif:

    Was hältst du hiervon? Hätte den Vorteil, das du dir am Programmanfang deine Reihenfolge in LB Variablen zusammenbasteln kannst.
    [size=2]Voraussetzung natürlich, daß deine Punkte/Labels so miteinander verbunden sind, das du sie auch tatsächlich von überall aus anfahren kannst.....[/size]


    [size=2]/JOB[/size]
    [size=2]//NAME 5_TI_U[/size]
    [size=2]//POS[/size]
    [size=2]///NPOS 56,0,0,5,0,0[/size]
    [size=2]///TOOL 1[/size]
    [size=2]///POSTYPE PULSE[/size]
    [size=2]///PULSE[/size]


    [size=2]//INST[/size]
    [size=2]///DATE 2016/02/24 13:50[/size]
    [size=2]///COMM FOLIEN TISCH UNTEN[/size]
    [size=2]///ATTR SC,RW[/size]
    [size=2]///GROUP1 RB1[/size]
    [size=2]NOP[/size]
    [size=2]REFP 1 C00000[/size]
    [size=2]GETS PX080 $PX011[/size]
    [size=2]REFP 2 C00001[/size]
    [size=2]GETS PX081 $PX012[/size]
    [size=2]REFP 3 C00002[/size]
    [size=2]GETS PX082 $PX013[/size]
    [size=2]REFP 4 C00003[/size]
    [size=2]GETS PX083 $PX014[/size]
    [size=2]'--------------------------------[/size]
    [size=2]MACRO1 MJ#(1) ARGF73 ARGF74 ARGF0 ARGF0 ARGF0 ARGFI000[/size]
    [size=2]'--------------------------------[/size]
    [size=2]WAIT IN#(81)=ON[/size]
    [size=2]MOVJ P081 VJ=100.00[/size]
    [size=2]DOUT OG#(104) 81[/size]
    [size=2]MOVJ P082 VJ=100.00[/size]
    [size=2]DOUT OG#(104) 82[/size]
    [size=2]MOVJ P083 VJ=100.00[/size]
    [size=2]DOUT OG#(104) 83[/size]
    [size=2]'--------------------------------[/size]
    [size=2]SET LB015=0[/size]


    [size=2]DOUT OT#(142) OFF[/size]


    [size=2]Reihenfolge Schweißnaht:[/size]
    [size=2]SET LB000=10[/size]
    [size=2]SET LB001=1[/size]
    [size=2]SET LB002=2[/size]
    [size=2]SET LB003=4[/size]
    [size=2]SET LB004=3[/size]
    [size=2]SET LB005=5[/size]
    [size=2]SET LB006=6[/size]
    [size=2]SET LB007=7[/size]
    [size=2]SET LB008=8[/size]
    [size=2]SET LB009=9[/size]
    [size=2]SET LB010=13[/size]
    [size=2]SET LB011=11[/size]
    [size=2]SET LB012=12[/size]



    [size=2]SET B071 LB000[/size]


    [size=2]*00[/size]
    [size=2]DOUT OT#(142) OFF[/size]
    [size=2]JUMP * 15 IF LB015>12 Sprung ans Programmende[/size]
    [size=2]JUMP LABEL:B071[/size]


    [size=2]'--------------------------------[/size]
    [size=2]'POSITION UNTEN 1[/size]
    [size=2]*1[/size]
    [size=2]REFP 6 C00004[/size]
    [size=2]GETS PX085 $PX016[/size]
    [size=2]'-----[/size]
    [size=2]MOVL P085 V=1500.0[/size]
    [size=2]DOUT OG#(104) 85[/size]
    [size=2]MOVL C00005 V=1500.0 PL=0[/size]
    [size=2]MOVL C00006 V=200.0 PL=0[/size]
    [size=2]DOUT OT#(142) ON[/size]
    [size=2]WAIT IN#(141)=ON T=0.50[/size]
    [size=2]MOVL C00007 V=200.0[/size]
    [size=2]MOVL P085 V=1500.0[/size]
    [size=2]DOUT OG#(104) 85[/size]


    [size=2]INC LB015[/size]
    [size=2]SET B071 LB[LB0015][/size]


    [size=2]JUMP *00 IF IN#(141)=OFF[/size]
    [size=2]JUMP *14[/size]
    [size=2]'--------------------------------[/size]
    [size=2]'POSITION UNTEN 2[/size]
    [size=2]*2[/size]
    [size=2]REFP 6 C00008[/size]
    [size=2]GETS PX085 $PX016[/size]
    [size=2]'-----[/size]
    [size=2]MOVL P085 V=1500.0[/size]
    [size=2]DOUT OG#(104) 85[/size]
    [size=2]MOVL C00009 V=1500.0 PL=0[/size]
    [size=2]MOVL C00010 V=200.0 PL=0[/size]
    [size=2]DOUT OT#(142) ON[/size]
    [size=2]WAIT IN#(141)=ON T=0.50[/size]
    [size=2]MOVL C00011 V=200.0[/size]
    [size=2]MOVL P085 V=1500.0[/size]
    [size=2]DOUT OG#(104) 85[/size]
    [size=2]SET B071 3[/size]


    [size=2]INC LB015[/size]
    [size=2]SET B071 LB[LB0015][/size]


    [size=2]JUMP *00 IF IN#(141)=OFF[/size]
    [size=2]JUMP *14[/size]
    [size=2]'--------------------------------[/size]
    [size=2]'POSITION UNTEN 3[/size]
    [size=2]*3[/size]
    [size=2]REFP 6 C00012[/size]
    [size=2]GETS PX085 $PX016[/size]
    [size=2]'-----[/size]
    [size=2]MOVL P085 V=1500.0[/size]
    [size=2]DOUT OG#(104) 85[/size]
    [size=2]MOVL C00013 V=1500.0 PL=0[/size]
    [size=2]MOVL C00014 V=200.0 PL=0[/size]
    [size=2]DOUT OT#(142) ON[/size]
    [size=2]WAIT IN#(141)=ON T=0.50[/size]
    [size=2]MOVL C00015 V=200.0[/size]
    [size=2]MOVL P085 V=1500.0[/size]
    [size=2]DOUT OG#(104) 85[/size]


    [size=2]INC LB015[/size]
    [size=2]SET B071 LB[LB0015][/size]


    [size=2]JUMP *00 IF IN#(141)=OFF[/size]
    [size=2]JUMP *14[/size]


    [size=2]und so weiter...[/size]


    [size=2]*14[/size]
    [size=2]JUMP *15 IF IN#(141)=OFF[/size]
    [size=2]MACRO1 MJ#(0) ARGF1 ARGF1 ARGF0 ARGF0 ARGF0 ARGFI000 ARGFI003[/size]
    [size=2]*15[/size]
    [size=2]MOVJ P083 VJ=100.00[/size]
    [size=2]DOUT OG#(104) 83[/size]
    [size=2]MOVJ P082 VJ=100.00[/size]
    [size=2]DOUT OG#(104) 82[/size]
    [size=2]MOVJ P081 VJ=100.00[/size]
    [size=2]DOUT OG#(104) 81[/size]
    [size=2]MOVJ P080 VJ=100.00[/size]
    [size=2]DOUT OG#(104) 80[/size]


    [size=2]END[/size]

    Die sicherste Methode ist, Roboter - Überlauf Berührungssensor - den richtigen Roboter /Koordinatensystem auswählen - Roboter frei fahren (am besten nur mit Z+ wenn möglich)- Problem beheben und wieder ungefähr an die Stelle zurückfahren 1-2 mm sind kein Problem. Somit hat man im Programm die Cursor Zeile nicht verändert alles steht dort wo es aufgehört hat.

    Ich hatte mal ein ähnliches Problem. 2 Roboter auf Portal + Externe Achse - 2 Synchron geschweißte Rundnähte. Wie schon oben erwähnt, den ersten Roboter teachen. Danach den 2. Roboter dazuteachen - die externe Achse muss bei jedem Schritt die gleiche Position haben. Ich hab dann die Anfahrstwege zum ersten Schweißpunkt getrennt in einem extra Job aufgerufen. Um sicher zu gehen dass alle Roboter den gleichen Weg fahren, hab ich mir den ersten Schweißpunkt kopiert und beide Roboter mit Parallel Shift 30 mm in Z und Y verschoben(Gleich hoher Sicherheitspunkt vor Schweißbeginn). Oft reichen minimale Pulsabweichungen und deine Synchronfahrt funktioniert nicht mehr.


    Bsp.:


    PSTART JOB:R1-POS-VOR-SN SUB1 Position vor Schweißnaht/Anfahrtsweg
    PSTART JOB:R2-POS-VOR-SN SUB2
    PWAIT SUB1
    PWAIT SUB2
    ---------------------------------------
    PSTART JOB:SN-1 SUB1 SYNC SUB2 Hier beginnt sofort die Rundnaht
    PSTART JOB:SN-1 SUB2
    PWAIT SUB1
    PWAIT SUB2

    Beim Kauf einer neuen Roboterzelle sollte man sich schon am Anfang Gedanken darüber machen was man braucht. IF THEN ELSE, NameAlias, IF-Panel sind Funktionen die IMMER dabei sein müssen. Programmieren ohne diese Funktionen wär für mich fast unmöglich. Problem ist nur, am Anfang bei der ersten Zelle weiß man das noch nicht. Aber ich glaube das diese Funktionen, wenn Überhaupt sehr wenig Kosten. Wie in einem anderen Beitrag schon erwähnt - Kontakt mit Yaskawa oder dem Vertriebsmann der die Zelle verkauft hat aufnehmen !