FANUC CODE

  • Servus


    Wir sind am überlegen uns einen anderen Roboter ins Haus zu holen.

    Ich war gestern bei einem Kunden und konnte erste eindrücke an einem FANUC Roboter erkunden.


    Bei 27 KUKA Robotern wollen wir mal was neues anschauen......


    Wäre cool wenn mal jemad einen CODE Schnipsel hat wie man ein Fanuc Programmiert mit allem drum und dran.....


    grüsse

  • ANZEIGE
  • Hallo,


    ich muss gestehen, an so einem Thread hätte ich auch Interesse.


    Kann zwar keine Vergleiche zu Kuka ziehen (habe bisher nur mit dem LBR gearbeitet), freunde mich aber gerade mit jahrzehntelanger Mitsubishi und Stäubli Erfahrung mit einem Fanuc an. Der steht aber immerhin schon hier, so kann ich bei Bedarf zumindest einige erste Eindrücke teilen.


    Grüße


    Urmel

  • Servus


    ja auch mal interessannt zu wissen ;)


    Kannst du vllt. evtl. Von Mitsubishi und Stäubli mal so einen Code Schicken wie sowas aussieht?

    Dann hätte ich da auch mal einen einblick .......

  • Hallo,


    da ich alle drei großen Hersteller kenne, frage ich mich wie man auf Fanuc wechseln will.

    Das normale Pick and Place kann der bestimmt so gut wie KUKA. Aber sobald man etwas komplexere Aufgaben zu programmieren hat kommt man relativ schnell an die Grenzen der normalen Programmiersprache.

    Wenn ihr euch nach Alternativen umschauen wollt, würde ich auf ABB wechseln.


    Grüße

    Thilbi

  • Also Mitsubishi hat eine Art Basic als Programmiersprache. Kann man sich vorstellen, wie einen alten Homecomputer plus Bewegungsbefehle. Allerdings gibt es zusätzlich noch die Möglichkeit von einem externen Rechner aus mit C++ zu arbeiten.


    Programmierhandbuch gibt es zum Download unter de3a.mitsubishielectric.com . Da rechts auf Download gehen und Suchbegriff BFP-A8869 eingeben.


    Stäublisch (also Val3) ist eine eher komplexe Sprache, da muss ich mal ein einfaches Beispiel suchen.


    In diversen Details, z.B. Tasten auf dem Handbediengerät, finde ich gerade viele Parallelen zwischen Fanuc und älteren Mitsubishi. Die Japaner scheinen da alle ähnlich zu ticken.


    Doku ist auf jeden Fall ein Unterschied bei Fanuc. Auf der DVD beim Roboter sind wohl nur Unterlagen zu Wartung und Installation. Programmieranleitungen und Infos zu den gekauften Optionen muss man denen alle einzeln aus der Nase ziehen. Zugangsgenehmigung zur Doku Webseite scheint eine Weile zu dauern.

  • Ja, mit ABB hatte ich auch schon mal zu tun. Hat auf jedem Fall eine deutlich mächtigere Programmiersprache, als Fanuc. Ähnlich mächtig wie Stäubli, aber ganz anders.


    Fanuc sieht sehr konservativ aus. Programmierungsprache aus den 70ern oder 80ern, behutsam weiterentwickelt. Wird bei uns die anderen Hersteller sicher nicht verdrängen. Aber wenn der Roboter nur irgendwo was hinhalten soll, gehe ich davon aus, dass er das gut kann.

  • Stäublisch (also Val3) ist eine eher komplexe Sprache, da muss ich mal ein einfaches Beispiel suchen.

    okay bin mal gespannt....




    Fanuc sieht sehr konservativ aus. Programmierungsprache aus den 70ern oder 80ern, behutsam weiterentwickelt. Wird bei uns die anderen Hersteller sicher nicht verdrängen. Aber wenn der Roboter nur irgendwo was hinhalten soll, gehe ich davon aus, dass er das gut kann.

    das sind so meine bedenken was mich etwas abneigt mich für das system zu entscheiden.....

  • Abb kam auch schon in den Gedanken....hast du mal ein CODE von ABB?

    kannst auch PN ...falls es zu OFF Topic wird....


    wir haben halt einen kunden der halt mit Fanuc Arbeitet...deswegen haben wir uns das mal angesehen...

  • Ne, zu ABB habe ich gerade nichts da.


    Hier ist das bisher beste Beispiel für Fanuc, das ich kenne. https://control.com/technical-…obot-programming-example/


    Stäubli speichert seine Projekte leider als XML. Die Formatierung sieht komisch aus, wenn man versucht das hier hinein zu kopieren.


    Muss mich erst mal wieder um anderes kümmern.

    [Edit]

    Schau mal hier, mit kompletten Val3 Kurs: https://www.oth-aw.de/files/ot…_und_Handhabung_final.pdf


    [Nochmal Edit]

    Beschreibt allerdings die alte CS8 Steuerung. In der aktuellen CS9 kann seine User Interfaces in HTML schreiben, die alte Bildschirmausgabe gibt es so nicht mehr. Die Programmierung der Roboterbewegung ist aber gleich.

  • Ok,


    ein kleines Beispiel. Wir definiferen i. d. R. für jede Station eine Vorposition haben dann die entsprechenden Bewegungsprogramme um zwischen den Vorpositionen beliebig hin- und herfahren zu können.

    Um die Bewegungsprogramm aufzurufen gibt es eine Routine die als Übergabeparameter die Zielposition enthält. Durch das bei ABB mögliche "late-binding" sieht die Routine (vereinfacht, ohne Fehlerbehandlung) so aus.


    PROC MoveTo(

    string stTarget)


    VAR num nFKey;


    stTarget:=StrMap(stTarget,STR_LOWER,STR_UPPER);

    WHILE stTarget="" DO

    Message emNoTarget;

    ENDWHILE

    IF stTarget=stAktPos RETURN ;

    %"mv"+stAktPos+"_"+stTarget %;

    stAktPos:=stTarget;

    ENDPROC


    Bei Fanuc, beispielhaft für vier Vorpositionen und nur der Anfang des Programms:


    JMP LBL[1] ;

    !******************************** ;


    ! ; ;

    !Program: ;

    !M_ROUTER ;

    ! ;

    !Move Robot from ;

    !PrePos to PrePos ;

    !******************************** ;

    LBL[1:Init] ;

    R[112:Dest PrePos]=AR[1] ;

    ;

    !Set User and Tool frame ;

    !UTOOL [1]: Gripper ;

    !UFRAME [1]: World ;

    UFRAME_NUM=1 ;

    UTOOL_NUM=1 ;

    ;

    IF R[113:Curr PrePos]=0,JMP LBL[2] ;

    IF R[113:Curr PrePos]=R[112:Dest PrePos],JMP LBL[99] ;

    ;

    !Check if robot was in manual ;

    IF (F[3:bRobInManual]=OFF),JMP LBL[4] ;

    ;

    !******************************** ;

    LBL[2:get PrePos] ;

    CALL M_GET_PREPOS ;

    IF R[113:Curr PrePos]<>0,JMP LBL[4] ;

    CALL M_MOVE_PREPOS ;

    JMP LBL[2] ;

    ;

    !******************************** ;

    LBL[4] ;

    IF R[112:Dest PrePos]>R[110:Nbr. PrePos],JMP LBL[1410] ;

    IF R[113:Curr PrePos]>R[110:Nbr. PrePos],JMP LBL[1420] ;

    ;

    SELECT R[113:Curr PrePos]=1,JMP LBL[100] ;

    =2,JMP LBL[200] ;

    =3,JMP LBL[300] ;

    =4,JMP LBL[400] ;ELSE,JMP LBL[1410] ;

    ;

    !******************************** ;

    LBL[100: from Home] ;

    R[113:Curr PrePos]=0 ;

    SELECT R[112:Dest PrePos]=1,JMP LBL[99] ;

    =2,JMP CALL Move_1VP_2VP ;

    =3,JMP CALL Move_1VP_3VP ;

    =4,JMP CALL Move_1VP_4VP ;

    ELSE,JMP LBL[1420] ;

    ;

    JMP LBL[99] ;

    ;

    !******************************** ;

    LBL[200: from Maint] ;

    R[113:Curr PrePos]=0 ;

    SELECT R[112:Dest PrePos]=1,Move_2VP_1VP ;

    =2,JMP LBL[99] ;

    =3,Move_2VP_3VP ;

    =4,Move_2VP_4VP ;

    ELSE,JMP LBL[1420] ;

    ;

    JMP LBL[99] ;

    ...

  • Hallo zusammen,

    ich arbeite seit Jahren mit Fanuc und kann diese ohne bedenken weiter empfehlen.


    Man muss halt wissen was man will und wie es umzusetzen ist. Ich gebe zu, das in .TP nicht alles Programmierbar ist. Aber für 95% aller Fälle ausreicht.


    und @ Thilbi:

    ich bin zwar kein experte für ABB Roboter.. aber meiner Meinung nach sind beide Programme nicht vergleichbar.

    Im ABB Programm scheinst du mir nur Stringvariablen auszulesen und auszugeben.. im Fanuc hast du ein - unnötig kompliziert umgesetztes Programm- als Beispiel genommen.


    Lg

    R47

  • Servus,


    ich stimme R4 bei es gibt nichts was du mit Kuka ABB machen kannst was im Fanuc nicht geht. Ich schreibe gerade ein Programm vom Fanuc in Kuka um habe es auch schon in die andere Richtung gemacht. Das ist der gleiche Ablauf links Fanuc rechts Kuka. Es ist natürlich das einrücken von IF im Kuka schöner aber es geht alles auch im Fanuc. Was beim Kuka, ABB schöner ist er kann mehrere Trigger auf der Bahn der Fanuc nur einen kann man aber auch lösen. Alles was mit Sinus, Cosinus usw. zu tun hat kann der Fanuc nur mit einem Karel Programm ist aber auch nicht schlimm auch die Mathfunction kann da nicht alles. Fanuc kann nur die FOR Schleife im .tp muss halt auch anders gelöst werden.

    Ich kam vom Kuka und musste auf Fanuc umstellen Kunden Wunsch am Anfang fand ich es auch Sch... aber jetzt habe ich kein Problem mehr damit. Und seit dem IRProgrammer ist noch mal ein Sprung nach vorne gemacht worden. Wie ihr an den Bildern seht arbeite ich immer noch am liebsten mit NotPad++


  • So ein Vergleich hab ich gesucht…


    Klar ich komm auch von Kuka…und das jetzt so zu sehen sieht fanuc schon umständlich aus wenn man kuka gewöhnt ist….wenn man das so 1:1 sieht wäre ich schon aus Bequemlichkeit gut bedient 😅

  • Hallo Woodys,


    nein R47 hat mit .TP nicht das Teach Pendant gemeint nur die Programm .tp. In den .tp Programmen geht nicht alles was du von Kuka gewöhnt bist z.B. Repeat Schleifen, ATAN, Wurzelfunktionen usw. aber dafür gibt es die Karel Programme .pc lesbar in der .kl Datei auf dem Roboter findest du nur die .pc Datei. Das schöne ist das ist Quasi dein Kopierschutz niemand kennt den Code, wenn du nicht die .kl Datei auf dem Robi speicherst!


    z.b. Ausschnitt aus einer Berechnung in Karel



    auch immer zu beachten

    Und der ATAN2 hat mich zum Wahnsinn gebracht X und Y Anteil gedreht!!



    Aber mit der Zeit lernt man damit Umzugehen!

  • Achso okay 👍🏼


    Ja klar…mit der Zeit wird das schon….

    Mir war jetzt nur wichtig mal die Syntax zu sehen wie das ganze so abläuft. Bei mir hat das schon sehr Einfluss darauf. Kollegen, bediener…einrichter ist das alles Neuland wenn man andere Systeme kennt. Ein Griff ins klo soll das ja auch nicht werden . Daher ist das auch mal gut ein paar Erfahrungswerte eurerseits mal zu lesen.

    Wir sind offen für was neues auch wenns mal nen cobot wird….

  • Hallo Woodys,

    Wie Team Rosario schon erklärt hat ist mit Fanuc auch so ziemlich alles möglich (Karel,mqtt,FTP....).


    Kuka hat viele Vorteile. Eines der größten ist lustigerweise die Möglichkeit die Angezeigte Sprache zu ändern. In Fanuc gibt es nur English oder Japanisch (VW Fanuc ausgeschlossen), was leider bei vielen Bedienern nicht so gut ankommt.


    Ich Persönlich arbeite aber trotzdem lieber mit Fanuc aufgrund des Spürbar leichterem Gewicht vom IPendant, erweiterte Möglichkeiten in Karel, weniger Störanfällig (nur eigene Erfahrung keine Statistik vorhanden)...


    Ich an deiner Stelle würde aber wahrscheinlich bei KUKA bleiben aufgrund wahrscheinlich fehlender Schulung der Mitarbeiter, Lagerbestand der Roboterkomponenten, besseren Service von KUKA...


    LG

  • Ja Schulung immer wichtiges Thema….wir schulen das bei Kuka step bei step…

    Stimmt Lagerbestände = Erweiterung…Platzbedarf an nem neuen System kommt hinzu…das hatte ich noch gar nicht auf dem Schirm 😅

    Den besseren Service kann ich noch nicht zustimmen…ich könnte meinen ,dass die zurzeit in einem tief stecken. Da bin ich zurzeit hier in diesem Forum besser bedient.

  • Hallo R47,


    sicher kann man mit dem Fanuc viele Aufgaben so erledigen wie mit den anderen Systemen. Die Frage ist immer wie effektiv man zu dem Ziel gelangt. Karel ist bei Fanuc eine Möglichkeit fehlende Funktionen in den TP-Programmen nachzuprogrammieren. Nur, warumm benötigt man eine zweite Programmiersprache auf dem gleichen System um das zu realisieren ? Dazu auch noch eine kostenpflichtige Software (RoboGuide) um dann den Karelcode zu compilieren und keine Möglichkeit das Karel-Programm bei Fehlern zu debuggen.

    Bei uns ist auch schon vorgekommen dass Kunden es nicht zulassen Karel-Programme zu benutzen, da sie eben nur mit TP auskennen und sich nicht noch mit Karel beschäftigen wollen/können.


    Zu meinem Beispielprogramm.

    Im Prinzip hast du recht. Man arbeitet hier mit Strings und setzt diese zu einen neuen String zusammen. Der Inhalt von dem String ist dann der Programmname von dem Programm welches man aufrufen möchte. Durch die %-Zeichen definiert man das Late-Binding und kann damit jedes beliebige Programm aufrufen. Denn da ist dann nicht mehr der Variblenname, sondern nur deren Inhalt, entscheidend. Bei Fanuc kann man bei dem CALL-Befehl nur ein Programm aufrufen. Sprich wenn man z. B. verschiedene Typen mit mehreren Stationen auf einer Anlage hat macht man das bei ABB mit einer Zeile

    %"Entlade"+stStation+"_Typ"+stTypnr %;

    selbst wenn die Stations- und Typnummer nur als Interger vorliegen reicht eine Zeile, da man den Variablentyp noch direkt darin wandeln kann

    %"Entlade"+NumToStr(nStation,0)+"_Typ"+NumToStr(nTypnr,0) %;


    Bei Fanuc, und auch KUKA, kenn ich bis jetzt nur die Möglichkeit das über verschachtelte Switch-Case zu realisieren. Bin aber für jede Anregung wie man das einfacher gestalten kann offen.

  • Hi Thilbi,

    ich stimme dir zu, das es viel schöner wäre, wenn man alles in .TP programmieren könnte.


    kleine Info:

    In fanuc kannst du auch ein Programm abhängig vom Stringregistern anwählen bsp.:


    Call SR[1] --> den Text / Programmname in SR[1] kannst du vorher im Makro zusammenbasteln aus Argumenten und Registerwerten bsp:

    Call Set_StringReg("move_to_","_Pick")


    im Makro Set_StringReg sieht es dann so aus:

    SR[1] = "AR[1]"+R[1:stations nummer]+"AR[2]"


    und aufrufen kannst du dann das Programm so :

    Call SR[1]


    Aufgerufen wird dann das Programm "move_to_1_Pick"



    LG

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