18. März 2019, 22:46:49
Roboterforum.de - Die Industrieroboter- Anwender und Experten Community

 Line Tracking bzw. PaintTool


hot_post Autor Thema:  Line Tracking bzw. PaintTool  (Gelesen 5652 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

09. März 2007, 14:15:54
Gelesen 5652 mal
Offline

stromer


Hallo Forum!

Ich hdarf grad meinen ersten Fanuc machen und das gleich mit Line Tracking und Paint Tool. Dummerweise hab ich vom Lackieren garkeine Ahnung und vom Tracking mit Fanuc auch nicht.
Der Roboter hat irgendwann schon mal funktioniert, ist aber seit 4 Jahren nicht mehr benutzt worden, weil die Teile nicht mehr produziert werden.
Mein Hauptproblem im Moment ist die Bedienung vom Line Tracking. Wie sag ich dem Robi wann er sich syncron bewegen muß und wann nicht. Ist das abhängig vom Programm, ob das ein Job, ein Proc oder sonst was ist?
Oder kann der Conveyor irgendwie einem Userframe zugeordnet werden? Und wie springe ich vom 1. zum nächsten Teil auf dem Conveyor? :kopfkratz:
Bei ABB hab ich mit sowas keine Probleme und in teilweise sehen die Einstellungen auch ähnlich aus aber ich kriegs nicht zusammen   :wallbash:

Im Moment hab ich einen Job angelegt, in dem eine Schleife läuft welche dann das Bewegungsprogramm aufrufen soll. Die Bewegungen sollten an einer ortsfesten Position starten und dann syncronisiert ein paar auf ab Bewegungen machen und dann zu einer ortsfesten Position zurück.

Kann mir dazu vielleicht jemand ein Beispielprogramm geben?
Wär echt super!

Gruß
Stromer
  • gefällt mir    Danke

Heute um 22:46:49
Antwort #1

Werbung

Gast

11. März 2007, 21:34:03
Antwort #1
Offline

rob76

Global Moderator
am einfachsten du besorgst dir das linetracking handbuch. steht alles drinn und ist mit prg-beispielen.
falls du keins hast auf der fanuc hompage kannst du das finden. musst dich vorher kostenlos anmelden. du bekommst dann zugang zum sogenannten customer resource center. dort sind zahlreiche handbücher online.

gruß rob76
  • gefällt mir    Danke

13. März 2007, 01:13:05
Antwort #2
Offline

Markus Uhl



wenn du fragen zum thema lackieren an sich hast bzw. zu applikation hinter dem robi kann ich dir vielleicht helfen.
habe schon viele lackieranlagen (pulver und nass) weltweit programmiert.
(mit viele meine ich das sicher fast jeder hier etwas hat das eie "meiner" anlagen "angmalt" hat)
  • gefällt mir    Danke

13. März 2007, 11:35:59
Antwort #3
Offline

stromer


Also ich hab jetzt schon mal einen Tag lang mit dem Robbi gespielt und hab es immerhin geschafft, dass er sich mit dem Band mitbewegt. Im Moment ist mein Hauptproblem dass ich es nicht schaffe den Robbi dazu zu bringen nach abarbeiten eines PROC mit dem nächsten Werkstückträger weiter zu machen. Zur Erleuterung mal den Programmablauf:

Job2:
J  P[1]  100%  CNT100
CALL PRO0003
J  P[2]  100%  FINE

Also nur 2 feste Positionen und der Aufruf des Lackierprogramms


PROC003:
L  P[1]  1000mm/sec  CNT100
L  P[2]  600mm/sec  CNT100  Gun=ON
L  P[3]  600mm/sec  CNT100
L  P[4]  600mm/sec  CNT100
L  P[5]  600mm/sec  CNT100
L  P[6]  600mm/sec  CNT100  Gun=OFF
L  P[7]  1000mm/sec  CNT100

Die Einstellung für Continue Tracking at prog end ist auf FALSE

Trotzdem fährt der Robbi beim nächsten Aufruf wieder auf das gleiche Teil und nicht auf das nächste. Woran kann dasliegen  :kopfkratz:

Ausserdem finde ich die Einstellungen für Upper und lower bound komisch. Die sollten sich doch auf die Roboter-Mitte beziehen!? Tun sie aber nicht. Scheinen nicht mal wirklich konstant zu sein (mal früher mal später). Die syncronisierten Bewegungen des Roboters sehen aber ganz normal aus (kein ruckeln und immer die gleichen Punkte relativ zum Werlstück).

Wäre super wenn Ihr noch ein paar Tipps hättet.

Gruß
Stromer
  • gefällt mir    Danke

13. März 2007, 18:02:56
Antwort #4
Offline

rob76

Global Moderator
ist dein prg vereinfacht dargestellt? wenn nicht fehlt dir ne ganze menge.
hier mal ein bsp. aus dem handbuch:
PROG MAIN
/MN
1: ! MOVE TO HOME
2: J P[1] 50% FINE ;
3: ! ENABLE THE ENCODER
4: LINE[1] ON ;
5: ! WAIT FOR A PART DETECT
6: WAIT DI[1] ON ;
7: ! GET TRIGGER VALUE
8: LINECOUNT[1] R[1] ;
9: ! SET TRIGGER VALUE
10: SETTRIG LNSCH[1] R[1] ;
11: ! SELECT A BOUNDARY
12: SELBOUND LNSCH[1] BOUND[1] ;
13: ! CALL TRACKING PROGRAM
14: CALL TRACK ;
15: ! MOVE TO HOME
16: J P[1] 50% FINE ;
/END



/PROG TRACK
/MN
1: ! MOVE TO APPROACH POS
2: L P[2] 500mm/sec FINE ;
3: ! MOVE TO PART
4: L P[3] 500mm/sec FINE ;
5: ! WAIT FOR 5 SECONDS
6: WAIT 5.00(sec) ;
7: ! MOVE TO APPROACH POS
8: L P[2] 500mm/sec FINE ;
/END
  • gefällt mir    Danke

Heute um 22:46:49
Antwort #5

Werbung

Gast

13. März 2007, 22:31:48
Antwort #5
Offline

stromer


Hallo rob76,

in dem Beispiel müsste der Robbi immer schon wieder mit seinem Programm fertig sein bevor ein Teil am Sync-Schalter ankommt. Die Lichtschrabke ist aber über 3 Meter vom Robbi weg, d.h. es müssen immer mehrere WT's verfolgt werden.

In meinem Testprogramm wartet der Robbi auch meistens brav bis ein WT zu den boundarys kommt (manchmal will er auch viel weiter fahren, weiß auch nicht wieso) dann macht er seine Lackierbewegungen aus dem PROC und fährt dann auf die feste Position im JOB. Was muß ich einstellen (oder gibt es einen Befehl?) damit er beim nächsten Aufruf nicht wieder auf das gleiche Teil fährt sondern zum nächsten?
Hab heute noch den Tip bekommen ich könnte auch in die Job-Queue den benötigten Job reinschreiben. Das hab ich aber auch nicht zum Laufen gekriegt. Er arbeitet einfach die Queue nicht ab.

Gruß
stromer
  • gefällt mir    Danke

14. März 2007, 00:42:34
Antwort #6
Offline

rob76

Global Moderator
wieso soll er fertig sein bevor ein teil kommt?
6: WAIT DI[1] ON ;
er wartet ja immer erst auf den trigger der lichtschranke.


poste doch mal dein prog inklusive logik. denke dann kann man besser weiterhelfen.
  • gefällt mir    Danke

14. März 2007, 12:18:29
Antwort #7
Offline

stromer


Hallo rob76!

Im Moment hab ich es alles noch recht einfach gehalten, weil ich ja noch am Testen bin.
Hauptprogramm ist einfach nur:

TIMER[1]= RESET
TIMER[1]= START
CALL PROC003
TIMER[1]= STOP

Hab ich quasi so übernommen, wie es auf dem Robbi irgendwann mal angelegt worden ist (angeblich von Fanuc).

Das Bewegungsprogramm sieht so aus:

SELBOUND LNSCH[1] BOUND[1]
L  P[2]  1200mm/sec  CNT100  Gun=ON
L  P[3]  800mm/sec  CNT50
L  P[4]  600mm/sec  CNT100
L  P[5]  600mm/sec  CNT100
L  P[6]  600mm/sec  CNT100
L  P[7]  600mm/sec  CNT100
L  P[8]  600mm/sec  CNT100
L  P[9]  600mm/sec  CNT100
L  P[10]  600mm/sec  CNT100
L  P[11]  600mm/sec  CNT100
L  P[12]  600mm/sec  CNT100
L  P[13]  600mm/sec  CNT100
L  P[14]  600mm/sec  CNT100
L  P[15]  600mm/sec  CNT100
L  P[16]  600mm/sec  CNT100
L  P[17]  600mm/sec  CNT100
L  P[18]  600mm/sec  CNT100  Gun=OFF
L  P[19]  1000mm/sec  CNT100

Nach meinem Verständnis sollte, nachdem der Robbi dieses Programm abgearbeitet hat, das Werkstück verworfen und beim nächsten Aufruf mit dem nächsten Werkstück fortgefahren werden (continue track at prog end=FALSE). Er nimmt aber immer wieder das gleiche.
Da es keine SPS gibt soll am Robbi das jeweilige Programm angewählt und gestartet werden.
Dazu kann man ja angeblich den aktuellen Job in die Job Queue schreiben und mit Repeat last=TRUE so lange abarbeiten lassen bis man was anderes einstellt. Bin ich aber auch zu blöd zu. Eingegeben hab ich den Job aber er arbeitet die Queue nicht ab.  :wallbash: Muß dazu noch was bestimmtes für den Production-Mode eingestellt werden?

Nochmal zu dem Beispiel mit dem Wait DI: die Lichtschranke sitzt 3m vor dem Robbi d.h. wenn der 1. WT kommt mag es ja noch funktionieren aber bis der dann am Robbi ist (boundary) sind ja schon die nächsten durchgelaufen. Also bin ich mit dem 1. fertig, kann ich direkt mit dem 2. weitermachen und der Impuls von der Lichtschranke ist schon lange vorbei.

Hoffe meine Probleme sind einigermassen verständlich.

Gruß
Stromer
  • gefällt mir    Danke

14. März 2007, 14:00:13
Antwort #8
Offline

rob76

Global Moderator
da fehlt dir noch etwas das funktioniert:
PROG MAIN
/MN
1: ! MOVE TO HOME
2: J P[1] 50% FINE ;
3: ! ENABLE THE ENCODER
4: LINE[1] ON ;                                           -> schaltet den encoder ein, reicht wenn man das einmal macht
5: ! WAIT FOR A PART DETECT
6: WAIT DI[1] ON ;                     -> warten auf das teil, brauchst du um auf das teil zu syncronisieren
7: ! GET TRIGGER VALUE
8: LINECOUNT[1] R[1] ;                               -> nun wird der aktuelle encodercount in das register1 geschrieben
9: ! SET TRIGGER VALUE
10: SETTRIG LNSCH[1] R[1] ;                                           ->dann wird der encodercount (R1) dem lineschedule 1 zugewiesen
11: ! SELECT A BOUNDARY
12: SELBOUND LNSCH[1] BOUND[1] ;                             -> hier wird das boundary gesetzt
13: ! CALL TRACKING PROGRAM
14: CALL TRACK ;                                                             ->alle erforderlichen schritte zum linetracking sind erfolgt, nun kann das eigentliche trackingprg
                                                                                                              gestartet
werden.
15: ! MOVE TO HOME
16: J P[1] 50% FINE ;
/END



das sind eigentlich die "must have" befehle das es funktionieren kann.
ein triggersignal ist unabdingbar um das teil zu "finden"
zu der lichtschranke: entweder näher zum roboter oder du musst per multitasking dir jedes teil "merken" was durch die LS gekommen ist. du brauchst letztendlich zu jedem teil die encodercounts um das teil zu "finden"
  • gefällt mir    Danke

Heute um 22:46:49
Antwort #9

Werbung

Gast

14. März 2007, 15:39:32
Antwort #9
Offline

stromer


Hallo rob76.

Also ich denke ich hab es jetzt soweit verstanden, auch wenn es mir nicht gefällt.

Da ich die Lichtschranke nicht in die Spritzkabine verlegen kann brauche ich also eine Task, die mir immer beim Passieren der Lichtschranke die aktuellen Encoderwerte abspeichert. Hast Du da vielleicht auch ein Beispiel?

Im Hauptprogramm findet dann die Grundinitialisierung statt und danach könnte ich eine Endlosschleife ablaufen lassen, die dann die jeweils nächsten Encoderwerde mit dem SETTRIG verwurschtelt und dann das Tracking-Programm aufruft.
Die Trackingprogramme könnte ich ja dann auch abhängig von einem Register-Wert aufrufen so mit IF-CALL, oder?
Gibt nämlich keine SPS.

  • gefällt mir    Danke

16. März 2007, 15:23:29
Antwort #10
Offline

stromer


Also ich werd jetzt wohl oder übel die Lichtschranke vor der Kabine durch einen Ini in der Kabine ersetzen, damit der Herr Fanuc auch alle Teile mitbekommt. Dann wirds wohl hoffentlich funktionieren.
Hab ich schon mal erwähnt das Fanuc Schrott ist?

Geht einfach nix über den ABB Conveyor. Der funktioniert wenigstens gescheit!

Trotzdem  :danke: für die Tipps.

Gruß
Stromer
  • gefällt mir    Danke

16. März 2007, 18:34:47
Antwort #11
Offline

rob76

Global Moderator
Ist wohl das einfachste die Lichtschranke zu versetzen.
Funktioniert das ganze denn jetzt mit einem Teil?
Falls nicht solltest du mal die ganzen Settings vom Linetracking überprüfen.


p.s. nur weil man etwas nicht kann muss man es nicht gleich als schrott bezeichnen. :shock:
       kenne mich mit abb auch nicht aus, deshalb aber noch lange kein schrott für mich.
       dürfte bei allen herstellern gleich sein: wenn man es richtig macht funktionierts auch.
  • gefällt mir    Danke

22. März 2007, 16:58:57
Antwort #12

nachi1

Gast
 Hallo Stromer,
hast du dein Tracking Problem im Griff oder bestehen die Probleme weiterhin? Was für ein Roboter hast du und mit welcher Steuerung RJ oder RJ2/RJ3...?

Danke.
  • gefällt mir    Danke

Heute um 22:46:49
Antwort #13

Werbung

Gast

02. April 2007, 20:11:15
Antwort #13
Offline

stromer


Hab erst mal Urlaub gebraucht nach dem Scheiß!

Was ich vor dem Urlaub noch gemacht habe:
Mit einem Teil probiert: geht.
Was leider nicht geht: Positionen im Proc verschieben (in Schleife)

Ich hab noch angeordnet, dass die Lichtschranke gegen einen Ini ausgetauscht wird, der dann im Arbeitsbereich sitzt.

Nächste Woche geht es weiter.

Die Steuerung ist eine RJ2 und der Roppi ein P120.

Gruß
Stromer
  • gefällt mir    Danke

02. April 2007, 21:51:16
Antwort #14

nachi1

Gast
Hallo hast du Zugriff auf die KCL Ebene? Welche Softwarevers. ist auf dem Rob. installiert? Wenn PainTool installiert ist sollte das einfach sein? Hast du Zugriff auf die Software?

Danke.
  • gefällt mir    Danke


Teile per facebook Teile per linkedin Teile per pinterest Teile per reddit Teile per twitter
 

über das Roboterforum

Nutzungsbedingungen Impressum Datenschutzerklärung

Sponsoren des Roboterforums

ROBTEC GmbH