Line Tracking bzw. PaintTool

  • 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

  • ANZEIGE
  • 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

  • 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)

  • 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

  • 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

  • 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

  • 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.

  • 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

  • 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"

  • 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.

  • 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

  • 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.

  • 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.

  • 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

  • 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.

  • Hallo nachi1,


    hat leider etwas länger gedauert, weil ich mal wieder unterwegs war :angel:


    Die Software-Version ist: V5.2064
    Und soweit ich das im Moment nachvollziehen kann, hab ich auf alles Zugriff.
    Diese Woche werd ich mich wohl wieder um den Robbi kümmern.


    Gruß
    Stromer

  • Habe gerade dieses uralte Thema gefunden. Ich habe mich auf Painttool spezialisiert. Also falls fragen hinsichtlich lackieren und Fanuc sind könnt Ihr euch gerne an Paintrobotics wenden.

    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