Beiträge von Engineering-Art

    Hallo und danke für Eure Rückmeldungen.
    Ich habe inzwischen den Akku der Meßkarte im Sockel des Roboters getauscht.
    Der oben erwähnte Akku laut ABB-Doku war leider falsch.
    Verbaut war eine 10,8V Lithium-Batterie. Aber ich konnte den Akku noch gegen die Batterie umtauschen.


    Nach Einbau konnte ich die Achsen verfahren und neu kalibrieren.
    Vielleicht wäre neu kalibrieren auch mit leerer Batterie möglich gewesen, das habe ich nun nicht nochmal versucht.
    Die neue Batterie war da, eingebaut und nun läuft wieder alles. Das reicht mir erstmal.


    @ SJX: Danke für deinen Test mit Robinstall, habe inzwischen dort auch meinen Key auslesen können.
    Aber Robinstall und ich werden schon mal keine Freunde... Aber nun habe ich einen Key für den Notfall...sehr gut!


    Und das anfängliche Problem hat sich ja durch den P-Start gelöst (wie weiter oben beschrieben), mein verfügbarer Programmspeicher ist wieder bei knapp 6000kb und damit bereit für gute 10.000 Zeilen Code.
    Nun kann weiter 3D-gedruckt werden.


    Ich danke nochmal für Eure Hilfe, das Forum ist wirklich super! :)
    Gruß, Ascan

    Danke SJX für dein schnelles Feedback.


    Dan Akku habe ich im Handbuch gefunden, Typ 4944 026-4, Kostenpunkt 66€, wird gleich mal bestellt. Austausch sollte ja recht fix gehen.


    Den Roboter konnte ich aber mit leerem Akku gar nicht verfahren. Das Teachpendant lässt eh nur Achsweises verfahren zu, die angegebenen Gradangaben blinken und ein Verfahren ist nicht möglich. Es kommt immer gleich die Fehlermeldung mit den nicht aktualisierten Umdrehungszählern.
    Ich werde erstmal nen frischen Akku einbauen und weitergucken.


    Gibt es eigentlich noch mehr Akkus (außer der große Akkupack im Schaltschrank und der andere im Robotersockel), die man mal tauschen sollte? Ich kenn nur noch die C-Mos Batterie auf dem Mainboard, aber da verliert man ja eigentlich nur das Datum, also nicht weiter schlimm.


    Danke auch für den 2. Link, ich konnte in Robinstall nun einen Key auslesen. Den hab ich mir erstmal notiert. Ich kann zwar mit dem Key kein neues System mit Robinstall erstellen, da wird der Key nicht akzeptiert. Aber vielleicht bin ich auch zu dumm und kapiere RobInstall nicht richtig. Hoffe ich muss erstmal das System nicht neu aufsetzen...


    Gruß,
    Ascan

    Hallo und danke für die zahlreichen Antworten.
    Ich versuche mal auf alles kurz Bezug zu nehmen:
    - Die Robotersteuerung hängt über FTP an meinem Windows-PC
    - Netzwerk über Serviceport habe ich noch nicht versucht.
    - Ich habe inzwischen ein Backup gemacht und es via FTP auf meinen PC gesichert.
    - Auf der CD ist Robotware 4.0, von Robinstall ist erstmal nichts zu sehen, aber das hatte ich schon auf dem PC installiert.
    - Ich habe mit Robinstall versucht testweise ein neues System zu erstellen, das hat aber nicht geklappt. Das Problem ist, dass ich keinen Key habe (hab keinen Zettel mit einem Key bei den Roboterunterlagen gefunden)
    - Robinstall würde auch eine eine Datei mit Key Files (*.kxt) akzeptieren, die habe ich aber auch nicht. Im BackUp ist sie nicht enthalten (habe Suche nach *.kxt durchgeführt). Finde ich die Datei irgendwo anders oder komme ich an die Keys noch dran (ABB anrufen??)


    Da ich nun das BackUp habe und der P-Start wirklich harmlos klingt (Danke für die Auflistung, Robiman), wage ich mich nun mal live dran. ...


    Soooo, der P-Start ist ausgeführt. Ich hatte auch Erfolg, der verfügbare Programmspeicher ist von 986kb auf stolze 5731kb angewachsen. Hurra! :D


    Einen Haken gibt es leider, der hat aber nichts mit dem P-Start zu tun. Ein Akku hat sich verabschiedet, ich bekomme eine neue Fehlermeldung. Die Fehlermeldung hatte ich heute schon direkt beim hochfahren (also vor dem P-Start).
    Das der genau jetzt kommt ist anscheinend nur ein dummer Zufall und der alte Roboter wird langsam etwas zickig.
    Vielleicht könnt ihr mir da auch noch helfen, damit das System wieder läuft.


    Wenn ich fahren (Jog oder geladenes Programm) kommt nun folgender Fehler:
    ---------------
    Fehler 20032, Umdrehungszähler ist nicht aktualisiert. Eine oder mehrere Achsen mit absolutem Meßsystem sind nicht synchronisiert.
    Roboter in Kalibrierstellung bringen und Umdrehungszähler aktualisieren.
    ---------------
    der Fehler lässt sich auch nicht wegdrücken, der Roboter lässt sich nicht verfahren


    Dies resultiert wohl aus dem zweiten Fehler, der gleich beim hochfahren angezeigt wird:
    --------------
    Fehler 38001
    Akkupufferung verloren
    Akkupufferung für die serielle Meßkarte 1 seit letzten Ausschalten/ Neustart verloren...
    ...Akkuanschlüsse auf der seriellen Meßkarte kontrollieren. Akku tauschen.
    ----------------
    Also der große Akkupack unterhalb des PCs im Roboterschrank kann es eigentlich nicht sein. Den habe ich schon erneuert. Und dort hatte ich auch eine andere Fehlermeldung bekommen.


    Also haben anscheinend die Meßkarten eigene Pufferakkus, die nun alle mal getauscht werden müssen...?!?
    Sind das die Karten direkt in den Servoendstufen? Hat schon mal jemand die Akkus dort getauscht?
    Und kann ich mit vollem, neuen Akku den Roboter wieder verfahren?


    Das finde ich aktuell komisch, dass ich den Roboter nicht auf die Kalibrierposition fahren kann und die Umdrehungszähler aktualisieren kann. er lässt sich überhaupt nicht verfahren...


    Naja, leerer Akku kann ja nicht so schlimm sein. Ich mach mich nun mal auf die Suche nach dem verbauten Akkutyp.
    Beste Grüße,
    Ascan

    Hallo Michael,


    danke für deine Antwort!


    Ich vermute inzwischen auch eher einen softwareseitigen Fehler/ vollmüllen mit allen Programmen/ Modulen als einen wirklichen Hardwaredefekt des RAM-Speichers oder des Mainboards.


    Insb. die Angabe:
    Gesamter Programmspeicher: 6030kB
    verfügbarer Programmspeicher 986kB
    macht mich stutzig. Wahrscheinlich sind dort einfach noch viele Module, die nicht richtig entladen wurden.


    Du hast bestimmt recht, dass man wissen sollte, wie man ein neues System aufsetzt und das der sicherste Weg wäre.
    Allerdings habe ich wirklich viele andere Baustellen, so dass ich ungern das eigentlich laufende System neu aufspielen möchte. Ich hoffe, es lässt sich einfacher fixen.


    Ich werde nun erstmal ein Backup auf der Flashdisk der Robotersteuerung machen.
    Als zweites werde ich probiere, extern eine 1:1 Kopie der Flashdisk zu machen. Eigentlich sollte da nichts gegensprechen.


    Ich habe mit dem Roboter eine CD Robotware 4.0 und eine Boot-Diskette Manipulator Param 4.0 erhalten, auf beiden steht eine Seriennummer. Die Seriennummer ist doch der Key, oder? Und ich vermute, ich würde die CD mit Hilfe eines Windows-Rechners über Netzwerk einspielen, korrekt?


    Nochmal zurück zu der einfachen Lösung -wenn Sie funktioniert- über den P-Start:
    Ich habe ein Bild aus der Doku angehängt.
    Da steht ja, ich soll den P-Start verwenden, "um alle RAPID-Programme aus der Steuerung zu entfernen". Das will ich ja eigentlich.
    Allerdings steht ganz oben "P-Start (Neuinstallation von Rapid)" - und Neu installieren möchte ich ja nichts.
    Andererseits steht dort Neuinstallation von RAPID und nicht von ROBOTWARE, daher verstehe ich nicht, was das bedeuten soll.


    Kann ich mit dem P-Start einfach meinen Arbeits-/ Programmspeicher einmal löschen? Oder setzte ich damit mein System neu auf?


    Hab mich noch nicht an den P-Start gewagt (immer noch kein Backup, mache ich die Tage), und möchte auf gar keinen Fall mein System unbrauchbar machen...


    Gruß, Ascan

    Hallo,


    ich benötige Eure Hilfe:


    ich habe einen alten ABB Roboter mit S4C+ Steuerung, den ich zu einem 3D-Drucker umgebaut habe.


    Ich habe aktuell das Problem, dass ich nur kleine Programme mit max. 3.000 Zeilen laden kann.
    Bis vor Kurzem konnte ich aber noch Programme mit bis zu 10.000 Zeilen laden. In der Zwischenzeit habe ich keine Änderungen an der Steuerung vorgenommen, daher vermute ich, dass der RAM-Speicher irgendwie halb kaputt gegangen ist oder ich aus Versehen Programmspeicher dauerhaft belegt habe (wenn das überhaupt geht).


    Beim Laden größerer Programme bekomme ich die Fehlermeldung:
    "Fehler 40701 Programmspeicher voll
    Die Task hat nur 1010280 freie Bytes im Anwenderspeicher
    Einige Module entfernen und erneut versuchen."


    Wenn ich unter Service/ System Infos/ Programm Resourcen gucke, steht dort:
    Gesamter Programmspeicher: 6030kB
    verfügbarer Programmspeicher 986kB


    Ich kann aber ein Testprogramm mit nur 772kB (mit ca 5000 Zeilen) schon nicht mehr laden.


    Ich habe auch schon die RAM-Speicherkarte ausgetauscht gegen eine andere...keine Änderung.
    Ich habe die Speicherkarte auf einen anderen Steckplatz gesteckt...auch keine Änderung.


    Meine Frage:
    1.) Was kann die Ursache sein? Wenn es (anscheinend) nicht der RAM-Speicher ist, könnte irgendetwas auf dem Motherboard kaputt sein?
    2.) Kann ich Softwareseitig irgendwas verändert haben, so dass plötzlich weniger Speicher für Anwenderdaten zur Verfügung steht?
    3.) Kann ich irgendwie noch mehr RAM-Speicherplatz für meinen Programmspeicher freigeben?
    4.) Im Handbuch steht, der RAM-Speicher wird fürs Betriebssystem und Anwenderdaten verwendet, wobei Anwenderdaten ca 5,5MB groß sein können. Passt ja ganz gut mit der Angabe meiner Steuerung "Gesamter Programmspeicher: 6030kB". Aber warum ist der nicht voll verfügbar? Wodurch kann der noch belegt werden?
    4.) Kann ich grundsätzlich noch mehr RAM-Speicher einbauen als nur die eine Speicherkarte (es sind ja 3 Steckplätze vorhanden) oder kann die Steuerung das nicht verarbeiten? Im Handbuch steht, dass der "DRAM" 32MB hat. Ich habe eine 64MB Speicherkarte verbaut, wird davon schon nur die Hälfte genutzt und mehr geht nicht?
    5.) Noch ein anderer Gedanke: Ich arbeite viel mit load/ unload von Programmmodulen. Ich habe öfter mal Programme abgebrochen bevor Sie sauber zu Ende gelaufen sind. Dadurch kann es durchaus sein, dass ein Programmmodul zwar geladen wurde, aber nicht sauber entladen wurde (mit unload). Bleiben diese Programmmodule vielleicht im RAM-Speicher und werden beim nächsten Anschalten des Roboters auch wieder dort hineingeladen (beim Anschalten werden ja immer die letzten Programmdateien wieder geladen), obwohl sie nicht mehr benötigt werden? Und kann ich mir dadurch meinen RAM-Speicher vollmüllen? Und falls ja, gibt es eine Möglichkeit, alle Module im RAM-Speicher zu löschen? Entweder über einen Befehl RAM-Speicher löschen oder über den UNLOAD-Befehl mit Unload alles (ich weiß natürlich nicht mehr die genauen Dateinamen der eventuell noch vorhandenen Module)?


    Oder ist dafür einfach der P-Start gedacht? Die Doku sagt: "After restart the system’s state will be resumed except for manually loaded programs and modules. Static and semistatic tasks are started from the beginning, not from the state they had when the system was stopped.
    Modules will be installed and loaded in accordance with the set configuration. System parameters will not be affected."


    Ich hab den P-Start noch nicht ausprobiert, da ich vorher lieber noch eine Sicherheitskopie der Festplatte/ Flashdisk machen wollte. Wenn ich irgendwas falsch lösche und alles neu aufsetzen muss, wird das bestimmt viel Arbeit. Oder ist der P-Start harmlos und ich kann das einfach mal ausprobieren?


    Für Eure Hilfe wäre ich sehr dankbar. Schon die urspünglichen maximal 10.000 Zeilen sind für 3D-Druck sehr wenig und ich arbeite viel mit load/ unload, das Geesamtprogramm ist schnell mal 100.000 Zeilen lang.
    Mit nur 3.000 ZEilen wird es nicht besser...


    Gruß und Danke,
    Ascan

    Hallo Konstantin,
    danke für deine letzten Antworten und für den Link zum Kalibrieren/ Feinjustieren, ich hab es mir mal durchgelesen.
    Ich werde das Feinkalibrieren allerdings noch etwas nach hinten schieben... es habe noch ein paar andere Baustellen die erstmal wichtiger sind (große Programme aufsplitten, Haftung am Druckbett verbessern etc).


    Zur Fertigungszeit: Ich habe den Extruder heute schneller laufen lassen und alles funktioniert noch gut. Ich fahre nun den Roboter mit 65mm/s, der Extruder hat eine 3mm Düse und haut ca 2kg Kunststoff pro Stunde raus.
    Das A-Profil (Bild aus dem vorigen Post von mir) sollte ein Hocker werden, habe den Druck aber vorzeitig gestoppt.
    Er dauerte ca 30min, mit der neuen Extrudergeschwindigkeit noch ca 20min (Masse: 0,66kg)


    Ich habe gerade noch ein 3er Blumentopf gedruckt, Photo hab ich angehängt. Den kann ich wenigstens schon mal in den Garten hängen, bisher waren es noch alles unfertige Testdrucke.
    Druckzeit knapp 1h, Abmessungen: 50 x 17 x 14cm, Masse: 1,6kg
    Wenn alles weiterhin stabil läuft kann ich bald mit größeren Objekten anfangen.
    Danke für die Hilfe & Gruß, Ascan

    Hallo,


    noch meine Rückmeldung und Nachfragen zu den letzten Punkten:
    -Die Einstellungen zur Bahnauflösung findet man am Teachpendant unter: Ich glaube unter Systemparameter (hier bin ich mir nicht ganz sicher), dann aber sicher unter: Param: Manipulator wählen, Bewegungssystem anwählen (bei mir stand da System1), Enter, Bahnauflösung auswählen, Wert ändern, mit OK bestätigen.


    zum Post von Konstantin:
    Punkt 3: Gut zu wissen, dass er sich nach jedem Neustart automatisch auf AccSet 100,100 zurücksetzt.
    Punkt 4: Ich hatte beim Kauf einen leeren Pufferakku, daher musste ich dann den Roboter (mit inzwischen voll geladenem Pufferakku) auf die Kalibrierposition fahren und die Umdrehungszähler aktualisieren. Ich vermute, dies ist die von Dir erwähnte Synchronisation. Ich habe so genau wie möglich die Kalibriermarken angefahren (mit dem Auge Kimme und Korn möglichst exakt übereinander gebracht). Habe mich an der Stelle aber auch gefragt, ob das genau genug ist. In der Doku steht "bewegen sie den Roboter in die Nähe der Kalibrierposition (höchstens eine halbe Motorumdrehung entfernt)". Wie viel das ist kann ich nicht nachvollziehen da ich die Motorwelle nicht sehe und die Getriebuntersetzung nicht kenne.


    Hierzu meine Fragen:
    4a) Reicht es wenn ich nach Auge möglichst genau heranfahre und der Umdrehungsmesser ist dann im richtigen Bereich und die exakte Kalibrierung erfolgt mit den in der Steuerung gespeicherten "Resolvervalues", die ja auch auf einem Aufkleber auf dem Roboter vermerkt sind?
    4b) Der Test Spitze-Spitze heißt doch einfach Spitze am Roboterarm montieren und eine zweite Spitze am Tisch fest montieren, so dass sich die Spitzen nahezu berühren, richtig? Dann speichere ich die Position ab, fahre manuell weg von dem Punkt und fahre den zuvor gespeicherten Punkt nun wieder an und guck mir an ob es Abweichungen gibt - korrekt??
    4c) Ist es richtig, dass Feinkalibrieren nur mit Spezialtool geht oder man nen Techniker von ABB damit beauftragt?
    8): Die geringere Bahnauflösung sollte für meine Zwecke gut funktionieren, da ich meistens kurze Wegstrecken habe und eigentlich nie hohe GEschwindigkeiten benötige.
    Des Weiteren): Alles klar, Zonedata wird noch auf CONST gesetzt und ich setze die Masse des Extruders noch auf die korrekten 8kg und gucke, ob die Bewegung weiterhin smooth bleibt und mit konstanter Geschwindigkeit abgefahren wird.


    Danke nochmal für deine Hilfe - Konstantin!


    Im Anhang noch ein Bild von meinen beiden Testdrucken mit den neuen Einstellungen.


    Beste Grüße,
    Ascan

    Hallo Konstantin und Michael,
    ich sitze nun am Roboter und probiere eure Ansätze aus.
    Ich arbeite die Punkte mal chronologisch ab, soviel vorweg, der letzte Punkt hat das gewünschte Ergebnis gebracht:
    Zum Post von Konstantin:
    1.) ja, die S4C+ Steuerung ist schon recht betagt und ich hätte auch gerne die neuere IRC5 Steuerung, aber mein Budget war leider zu eingeschränkt. Da ich aber zumindest die Daten per FTP auf die Steuerung schieben kann, ist der Workflow eigentlich ganz OK.
    2.) Der Roboter fährt in Automatik
    3.) AccSet 100,100: Hatte ich vorher nie verwendet, habe aber nun testweise im Code am Anfang AccSet 100, 100; definiert. Hat aber nichts geändert. Vermutlich nutzt die Steuerung immer 100/100 wenn nichts anderes definiert ist. Unter 10.) (s.u.) spiele ich auch noch etwas mit den Werten.
    4.) Was meinst Du mit richtig synchronisiert?
    5.) Speeddata habe ich mir in der Doku angeguckt, hier gibt es aber nur die Möglichkeiten eigene Geschwindigkeiten (in mm/s für TCP-Geschwindigkeit und Grad/s für die Achsen) zu definieren. Die Beschleunigung kann man dort nicht definieren, oder habe ich etwas übersehen?
    6.) selbstdefinierte Zone: komme ich später zu, dazu hat Michael ja recht viel geschrieben.
    7.) tool/ last TCP habe ich neu definiert. Masse stand ursprünglich (fälschlicherweise) auf 2kg, mein Extruder hat ca 7kg. Da Du aber von einer Begrenzung ab 4kg sprichst, habe ich die Masse nun auf 4kg gesetzt. Ich fahre ja insg. sehr langsam (50...200mm/s), so dass die zu niedrige Masse wahrscheinlich kein so großes Problem darstellt. Die Koordinaten der Werkzeugspitze sind auch sauber definiert. Den Schwerpunkt des Extruders kann/ muss ich doch nicht definieren, oder?
    8.) Du schreibst als letztes noch: "Im Parameterbereich kann die Auflösung verändert werden": Kannst Du das bitte noch etwas genauer erläutern? Sprichst Du von der Bahnauflösung, auf die auch Michael anspielt, oder gibt es noch eine andere Auflösung?
    --------
    zu dem Post von Michael:
    9.) allgemein zu Zonen: Ich habe gerade mal den Rapidcode mit den vordefinierten Zonen Z0, Z5 und Z10 laufen lassen, Geschwindigkeit war v50. Das Ruckeln tritt bei allen drei Zonendefinitionen auf, bei Z0 recht viel, bei Z10 etwas weniger.
    So wie ich es verstehe, ist ein größerer Wert eigentlich besser für eine konstante Geschwindigkeit (bei Verzicht auf Genauigkeit). Allerdings schreibst Du ja, dass ein zu großer Zonenwert bei kleinen Wegstrecken auch das Gegenteil bewirken kann, da die Robotersteuerung den Zonenwert ständig neu berechnen muss und dadurch ein Ruckeln entsteht.
    Ich habe das grundlegende Problem, dass mein 3D-Objekt aus Dreiecken besteht (Bild 1 im Anhang), diese werden vom Slicer in Scheiben in z-Höhe geschnitten und so die Bahnen (mit konstanter z-Höhe) erzeugt (Bild 2 im Anhang). Diese Dreiecken führen dazu, dass meine Bahnen immer unterschiedlich lang sind und es im Bereich der Spitzen der Dreiecke immer kurze Wegstrecken gibt. Dies erschwert den von Dir genannten Ansatz, einen eigene Zone mit passendem Zonenwert zu definieren.
    Aber natürlich wird es ausprobiert: Ich habe mir nun im Rapidcode eine neue Zone z2druck definiert, und zwar über:
    "VAR zonedata z2druck := [ FALSE, 0.5, 10, 10, 10, 10, 10 ];" alle Bewegungsinstruktionen verwenden das definierte z2druck.
    Der 2. Wert (0,5) steht für pzone_tcp und ist wohl der entscheidende.
    Damit wurde erstmal noch keine Verbesserung erreicht, der Roboter ruckelt immer noch.
    10.) Nun habe ich im Code noch zusätzlich:
    "AccSet 100,100;" eingefügt. Dies ändert erstmal auch nichts. Dann habe ich mit den Werten gespielt. der erste steht für % des normalen (Max-)Wertes der Beschleunigung. Der zweite Wert für die Beschleunigungsrampe. Laut ABB Doku: "Die Zahlen (eines dort vorgestellen Beispiels) zeigen, dass eine Verringerung der Beschleunigung fließendere Bewegungen bewirkt." Aber auch mit AccSet 50,100 bzw 100,50 bzw 20,100 erreiche ich keine Verbesserung, der Roboter stottert immer noch.
    11.) Als letztes spiele ich mit der Bahnauflösung, er wird weiterhin Zone z2druck und AccSet 100,100; verwendet. Die Bahnauflösung stand bei 1.0. Ich hab das erstmal frech auf 0,5 heruntergesetzt, auch wenn Michael Schritte von 0,05 empfohlen hat (ich bin zu ungeduldig und hätte leichte Verbesserungen im Ruckeln vielleicht auch gar nicht erkannt). Ich wollte erstmal gucken, ob ein Effekt erkennbar ist. Eine Neustart später ist endlich eine Verbesserung in Sicht. Der Roboter fährt mit konstanterer Geschwindigkeit und vermindertem Ruckeln.
    Nun auf 0,25 gesetzt und das Ergebnis wurde noch besser. Das Teachpendant erlaubt mir 0,167 als kleinsten, möglichen Wert. Ich habe nun final 0,2 verwendet. Damit läuft es nun schon DEUTLICH besser als vorher. Leichte Verbesserungen scheint noch eine Verringerung der Beschleunigung zu bringen. Die Übergänge zwischen zwei senkrechten Bahnen sind nicht so hart (z.B. wenn die z-Höhe beim 3D-Druck verändert wird). Hier muss ich aber mit laufendem Extruder gucken, welche Einstellungen das sauberere Druckergebnis erzeugt.


    FAZIT: Bahnauflösung verringern bringt eine konstantere Robotergeschwindigkeit, zumindest im Fall von vielen kleinen Bahnsegmenten.


    Vielen, vielen Dank an Konstantin und Michael für Eure Hilfe. Das bringt mich meinem Ziel deutlich näher.
    Beste Grüße,
    Ascan


    PS: Als letzten Punkt muss ich nun nur noch langen Rapidcode (zwischen 20.000 und 500.000 Zeilen) in handliche Pakete von 10.000 Zeilen aufsplitten und diese dann im laufenden Betrieb nachladen. Ich weiß, dass das grundsätzlich bei ABB geht. Ich werde mich einlesen und bei Bedarf noch einmal um Hilfe bitten. Und dann sollte der Drucker eigentlich einsatzbereit sein...Juhuu!

    Hallo,
    ich benötige Hilfe von jemandem, der sich mit ABB Robotern auskennt.
    Hauptproblem ist, dass ich viele kurze Wegstrecken habe und der Roboter sie nicht mit einer kontinuierlichen Geschwindigkeit abfährt. Dies führt zu einem unsauberen Druckbild.
    Es sei vorweg gesagt, dass ich mich mit Robotik noch nicht gut auskenne und mich noch einarbeite.


    Kurze Projektbeschreibung:
    Ein ABB 2400 S4C+ wurde mit einem 3D-Druck Extruder für Granulat ausgerüstet (das Granulat wird in einen Endlosstrang mit 3mm Durchmesser erhitzt/ geformt).
    Workflow: Ein 3D-Objekt wird als stl-Datei gespeichert und besteht nun aus vielen kleinen Polygonen (Dreiecken). Diese Polygone werden mit Hilfe eines Slicer-Programs (Simplify3D) in gcode (ähnlich nc-Code) umgewandelt. Diese Datei besteht aus Bewegungsinstruktionen, die nur aus Geradenstücken bestehen, zusätzlich ist im gcode eine Geschwindigkeit für den Extrudermotor enthalten. Der gcode wird nun in Rapidcode umgewandelt, hierzu nutze ich RoboDK.


    Um z.B. einen Kreis abzubilden kommen hier viele Geraden zusammen, je nach gewünschter Auflösung kommen Geradenstücken unter 1mm heraus. Ich kann die Auflösung in Maßen steuern, aber ich möchte die Auflösung auch nicht zu grob wählen. Ich benötige grob eine Genauigkeit im Bereich von 1mm für das fertig gedruckte Objekt.


    Mein Problem ist nun, dass der Roboter die Bahnpunkte nicht mit einer kontinuierlichen Geschwindigkeit abfährt. Zu kleine Abstände zwischen den Bahnpunkten führen zu einer Reduktion der Robotergeschwindigkeit. Da mein Extruder sich nicht an die aktuelle Robotergeschwindigkeit anpasst (und hierzu wohl auch zu träge wäre), möchte die eine möglichst konstante Robotergeschwindigkeit erreichen. Meines Wissens ist dies ein grundsätzliches Problem bei zu kleinen Wegstrecken, dennoch hoffe ich, dass hier noch was optimiert werden kann.


    Folge Ansätze sind mir bisher eingefallen:
    1.) die oben erwähnten Polygone vergrößern, um so kurze Wegstrecken zu vermeiden --> bei zu großen Polygonen wird das Druckobjekt zu eckig
    2.) Den Wert Zonedata anpassen --> ich habe Werte bis zu z=10 ausprobiert. Das Ruckeln wurde weniger, aber war nicht ganz weg. Die Abweichungen wurden bei z=10 zu groß und das Druckobjekt wurde ungenau. Hier würde ich in Zukunft wieder z=1 verwenden.
    3.) Beschleunigung des Roboter hochsetzen --> ich habe noch keine Möglichkeit gefunden, dies irgendwo einzustellen. Ich habe nur die Möglichkeit gefunden über AccSet die Beschleunigung zu verringern.
    4.) Die Wiederanfahrstrecke anpassen --> Hiermit kenne ich mich nicht aus, aber ggf können hier zu kurze Wegstrecken (unter 1mm) übersprungen werden?? Das könnte helfen. Steht aktuell auf TCP-Abstand 0,5
    5.) Die Bahnauflösung anpassen --> Hiermit kenne ich mich auch nicht aus.Steht aktuell aus 1,0
    6.)... bestimmt gibt es noch weitere Parameter, die ich aber meiner Recherche bisher noch übersehen habe.


    Vielleicht hat jemand ein paar hilfreiche Hinweise für mich, wie ich die Robotergeschwindigkeit möglichst konstant hinbekomme.
    Für Hilfe wäre ich dankbar.!
    Beste Grüße,
    Ascan
    -------------------------------
    Hier noch ein Beispielcode und ein Bild meines Roboters mit Extruder:


    MoveL [[1263.770,165.624,318.000],[0.000000,0.000000,1.000000,0.000000],[0,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v100,z1,rdkTool,\WObj:=rdkWObj;
    Extruder (1700.0);
    MoveL [[1266.098,180.813,318.000],[0.000000,0.000000,1.000000,0.000000],[0,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v100,z1,rdkTool,\WObj:=rdkWObj;
    MoveL [[1265.719,183.432,318.000],[0.000000,-0.000000,-1.000000,0.000000],[0,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v100,z1,rdkTool,\WObj:=rdkWObj;
    MoveL [[1265.730,183.720,318.000],[0.000000,0.000000,1.000000,0.000000],[0,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v100,z1,rdkTool,\WObj:=rdkWObj;
    MoveL [[1264.115,194.851,318.000],[0.000000,-0.000000,-1.000000,0.000000],[0,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v100,z1,rdkTool,\WObj:=rdkWObj;

    Hallo,
    ich würde gerne wissen, ob man noch irgendwo Robotstudio 4 herunterladen kann? Ich habe Robotstudio 6 installiert, und könnte darüber auch ältere Versionen herunterladen, aber das älteste ist Robotstudio 5.
    Ich habe mir gerade einen ABB2400 Roboter mit einer S4Cplus Steuerung gekauft, um ihn zu einem großen 3D-Drucker umzubauen. Ich muss aber noch zwei Wochen auf die Lieferung warten und würde mich gerne schon etwas einarbeiten.
    Über die Suche im Forum habe ich schon herausgefunden, dass ich für die Programmerstellung auch die neueren Robotstudio-Versionen nutzen kann, wenn ich den Rapidcode noch etwas am die alte S4Cplus Steuerung anpasse.
    Ich möchte aber gerne den richtigen virtuellen Controller der S4C verwenden, den habe ich wohl nur noch in der alten Robotstudio 4 Version.
    Vielleicht kann mir ja jemand helfen?! Und falls ja, kann ich Robotstudio 4 - wie die neuen Versionen - in einer abgespeckten Variante kostenlos nutzen, auch nach den 30Tagen Testzeitraum?
    Vielen Dank...

    Moin und danke für Eure Antworten.
    Auf Grashopper bin ich auch schon gestoßen. Das könnte später für die Umwandlung nach KRL gut genutzt werden, solange es ein Kuka-Roboter wird. Allerdings sehe ich die Umwandlung von G-Code in Robotersprache nicht als das größte Problem. Das könnte man bestimmt auch selber programmieren. Ich arbeite vor allem mit SolidWorks. Rhino+Grasshopper für >1000€ ist erstmal zu teuer.
    Hierzu noch eine Verständnisfrage:
    Ist es richtig, dass ich den Roboter mit einem Programm in seiner Programmiersprache (KRL bzw. die Sprache des ABB-Roboters, ich glaube die heißt RAPID) auch mit Daten relativ zum Werkzeugkoordinatensystem gefüttert werden kann? Also kann ich ihm kartesische xyz-Koordinaten zum abarbeiten vorgeben? Oder müssen die Programmdaten die Winkelwerte der 6 einzelnen Achsen des Roboters enthalten?


    Und noch eine Frage zu meinem vermutlich größeren Problem, die maximale Anzahl an Bahnpunkten innerhalb des Programms. Michael: Vielleicht kannst Du nochmal helfen, Du scheinst Dich da ja auszukennen. Ich hole noch einmal kurz aus:
    Ich kann die Anzahl der Bahnpunkte meiner zu druckenden Objekte recht gut steuern und auch minimieren, indem ich die Auflösung des 3D-Objekts im CAD steuere. Ich speichere das Objekt als stl-Datei (viele Dreiecke beschreiben die Form, Auflösung wählbar), dieses wird mit dem Slicer-Programm in Scheiben aufgeteilt (entlang der z-Achse, Aufteilung ca alle 2mm z-Höhe).
    Die einzelnen Scheiben werden jetzt in kleine Geradenstücke (ca 1...10mm) aufgeteilt. Dies sind die Raumpunkte, die der Roboter abfahren muss. Der entstandene G-Code wird nun noch in die Robotersprache umgewandelt.


    Meine Frage: wie viele Bahnpunkte kann so eine Robotersteuerung denn noch verkraften? Und was begrenzt das Ganze, der Arbeitsspeicher?
    - Bei der ABB-Steuerung kann ich ja anscheinend beliebig nachladen. Wie Michael schreibt: "so lange es auf die SSD passt", ggf. sogar nachladen über Netzwerk möglich. Bezieht sich das auf alle ABB-Steuerungen? Ich finde auf dem Gebrauchtmarkt die Steuerungen S4C, S4C+ und IRC5. Die normale S4C scheint aber schon recht alt zu sein.
    - Wie sieht es bei den Kuka-Robotern aus? Wieviele Punkte verträgt eine Steuerung Kuka KRC2, KRC2ed05 und KRC4? Hab es schon gegoogelt, aber nichts konkretes gefunden. Vielleicht die falschen Suchbegriffe...
    Danke und Gruß,
    Ascan
    Hier noch ein Bild des druckenden Roboters von Dirk van de Kooij:

    Hallo und erstmal danke für Eure Antworten.


    Ich werde mich mal bei den ABB-Robotern auf dem Gebrauchtmarkt umgucken. Ein stabilerer Arm leuchtet erstmal ein, um saubere Bahnen beim 3D-Drucken zu realisieren.


    Mir ist noch nicht ganz klar, welche Steuerung (Firma, Baujahr, Typ...) geeignet ist. Die alten Steuerungen auf dem Gebrauchtmarkt machen mir ein bißchen Angst, insb wenn es noch ein Diskettenlaufwerk gibt und alles auf Win95-Basis läuft. Reicht der Speicher für die ganzen Bahnpunkte? Kann ich die noch einfach über einen modernen externen Rechner mit Daten füttern?
    Vielleicht könnt Ihr mir an der Stelle nochmal helfen...


    Meinen späteren Arbeitsablauf stelle ich mir in etwa wie folgt vor:
    1.) CAD-3D-Modell als stl-Datei speichern


    2.) Mit normalen 3D-Druck Slicern in G-Code umwandeln. Da kommen dann so zwischen 5.000 und 500.000 Zeilen raus, die in etwa so aussehen: G1 X92.716 Y122.550 Z10.025 E1.3625
    G1= gerade Linie vom letzen Punkt zu den angegebenen xyz-Koordinaten, der E-Wert ist für den Kunststoff-Extruder, das Signal muss noch irgendwie an den externen Schrittmotor gesendet werden. Wahrscheinlich von der Robotersteuerung über einen Ausgang zB RS232 an ein Arduino-Board, dass dann den Schrittmotortreiber ansteuert.


    3.) Den G-Code würde ich nun mit einem selbstgeschriebenen Programm in die Programmiersprache des Roboters umwandeln. Nach meinem Wissensstand kann eine Robotersterung einfach im Werkzeug-Koordinatensystem globale xyz-Koordinaten nacheinander anfahren. Der Robotercode sollte also fast wie mein G-Code aussehen. Vielleicht noch Punkt durch Komma ersetzen oder so was. Und halt noch den E-Wert irgendwie extern senden.


    4.) Den erzeugten Robotercode müsste nun von dem externen Rechner auf den PC in der Robotersteuerung übertragen werden (über LAN oder USB-Stick oder ähnliches).


    5.) Denn müsste ich mit dem Roboterarm noch den gewünschten Nullpunkt anfahren und den Robotercode zum 3D-Drucken starten.


    Meine Fragen:
    a) Ist mein Ablauf korrekt oder habe ich etwas übersehen?


    b) Kann ich ein großes Programm mit ca 500.000 Bahnpunkten problemlos abarbeiten oder stoße ich da an Grenzen? Zu wenig Speicher o.ä.?
    @ Michael: Du sprachst davon, dass eine ABB Steuerung S4C+ einfach Daten nachladen kann - wären damit die vielen Bahnpunkte kein Problem?


    c) Kann ich recht einfach Daten von einem externen PC (zB über LAN) an die Robotersteuerung senden?


    d) Wie schwierig ist die oben erwähnte Ansteuerung eines externen Schrittmotors? Kann ich Befehle in den Robotercode einbauen, die dann einen Outputkanal ansteuern oder ein Signal über RS232 rausschicken, um so den Schrittmotor des Extruders synchron zu den Roboterbewegungen anzusteuern?


    e) Der Teufel steckt bestimmt wieder im Detail. An welchen Stellen brauche ich einen geübten Programmierer?


    Abschließend sei noch gesagt, dass das ganze schon umgesetzt wurde. Ich habe noch ein Bild vom Niederländer Dirk van de Kooij angehängt, der druckt Möbel aus recycltem Kunststoff.
    Danke für Eure Hilfe,
    Gruß, Ascan

    Hallo und erstmal vielen Dank für Eure Antworten, ich fasse mal zusammen:
    - besser einen größeren Roboter verwenden, da der KR6 eher ans Limit kommt bei 5kg und Kleinkram dazu. Außerdem sitzt der Schwerpunkt des Extruders etwas vor dem Flansch, womit die Traglast reduziert wird. Ich habe mich jetzt auf den KR16 eingeschossen, 16kg Traglast, auch ca 250kg Gewicht bei ca 1.6m Armlänge.
    - Steuerung KRC1 fällt aus, da schon zu alt. Die KRC4 wäre bestimmt am besten, sprengt aber mein Budget. Die KRC2 könnte Probleme mit vielen Punkten bekommen (5-Achse Fräsen), je nach verwendeter Software.
    - Option "absolutgenau Vermessen" verwenden um eine größere Genauigkeit beim Abfahren der Positionen zu erhalten.
    Ich hätte nun noch zwei weitere Fragen, vielleicht könnt Ihr mir noch ein bißchen weiterhelfen:
    1.) @ IrrerPolterer: Du erwähnst ein kleines Testprogramm, um zu testen, ob der Roboterarm noch gut funktioniert und noch nicht zu viel Spiel hat. Hast Du da ein fertiges Programm oder wie funktioniert es? Ich würde vermuten ich fahre einen Punkt im Raum an, fahre den selben Punkt nun aus verschiedenen Richtungen an und messe, ob es eine Differenz zwischen der ersten und der wiederholten Position gibt?! So in der Art?
    2.) Mir ist noch nicht ganz klar, wie ich den Roboter zum 3D-Drucken am besten ansteuere. Ich habe ein 3D-Modell (im stl oder step-Format) und kann das mit den im 3D-Druck üblichen Slicern in einen Gcode verwandeln mit einer großen Anzahl an Punkten (zB. G1 X37.9 Y31.8 Z22.7 E2.172, der E-Wert entspricht der Position des Kunststoff-Extruders). Am Ende muss ich doch ein Programm in der Kuka Programmiersprache KRL haben, richtig?
    Mein Ansatz wäre ein kleines Programm zu schreiben, um die Befehle in das richtige Format für die KRL Programmiersprache zu bringen. Idealerweise kann der E-Wert einen Hardware-Ausgang der KRC2-Steuerung ansteuern, von wo aus ich den Schrittmotor des Extruders ansteuern kann, wohl mit einem zwischengeschalteten ArduinoBoard, dass den Schrittmotortreiber enthält.
    Sind in einer KRC2 Steuerung immer Hardware-Ausgänge vorhanden? Kann ich diese einfach über die Programmiersprache ansteuern?
    Haltet Ihr das Vorgehen für praktikabel? Ist das mit geringem Aufwand umsetzbar? Habt Ihr bessere Vorschläge?
    Beste Grüße,
    Ascan

    Hallo,
    ich bin neu im Forum und möchte um Eure Hilfe bitten.


    Ich beschäftige mich viel mit 3D-Druck und möchte nun einen kleineren Kuka-Roboter zum 3D-Drucker umrüsten um Möbel, Stühle etc zu drucken. Der Extruder für Kunststoffpellets ist so gut wie fertig und wiegt 5kg. Es gibt ja schon einige erfolgreiche Umsetzungen zum Roboterarm-3D-Drucken, am besten gefallen mir die Sachen von Dirk van de Kooij aus den Niederlanden.


    Ich dachte an einen Kuka-Roboter vom Typ KR6 oder KR16. Bei einer Armlänge von ca 1,5m kann ich einen Druckraum von über 1m^3 erhalten , je nach Geometrie der Druckobjekte. Und das Gewicht von ca 250kg lässt sich noch gut bewegen, bei den großen Kukas mit ca 1.000kg wird es eng in der Werkstatt.


    Ich möchte nun mit Eurer Hilfe gerne sicherstellen, dass ich einen passenden Roboter mit richtiger Sterung erhalte.
    Mein Budget (ohne Software) liegt so bei max 10.000€, dafür bekomme ich z.B. einen KR6 mit KRC2 Steuerung.


    Meine Fragen:
    1.) Sollte ich in jedem Fall zur Steuerung KRC2 greifen? Die KRC1 ist zwar deutlich billiger, ich habe aber wenig Lust auf Win95 und einen PC, der schnell ans Limit kommt. Daher ist die KRC1 wohl eher ungeeignet, oder? Werde ich denn mit der KRC2 und Win XP glücklich, wenn ich weiterhin plane, den Roboterarm auch für 3D-Roboterfräsen einzusetzen? Ich vermute, die Codes werden deutlich länger und komplexer und die Steuerung wird mehr gefordert!?
    2.) Ist der KR6 Roboterarm für meine Zwecke gut geeignet? Oder ist der KR16 deutlich stabiler und läuft besser, wenn ich ca 6kg vorne dranschraube? Mir wurde gesagt, dass das Gelenk der vordersten Hand beim KR16 schon deutlich stabiler ausgeführt ist. Oder ist KR6 für 3D-Druck noch gut geeignet (da keine großen mechanischen Widerstände beim drucken), aber fürs 3D-Fräsen ungeeignet, da die Kräfte beim Fräsen zu groß werden?
    3.) Ist ein alter Roboter mit z.B. 20.000 Betriebsstunden mechanisch schon sehr ausgeleiert? Kann man das irgendwie beziffern, z.B. Spiel von 1...2mm oder ähnliches? Fürs 3D-Drucken kann ich (bei Düsendurchmesser von 3mm) ein Spiel von ca 0,5...max 1mm verkraften, bevor es zu unsauber wird.
    4.) Bei Ebay werden die Kuka KR6 mit KRC2 so für 10.000...15.000€ gehandelt. Ich hoffe, vielleicht irgendwo ein Schnäppchen unter 10.000€ zu machen. Ist das realistisch? Hat jemand noch einen Tipp? Oder vielleicht sogar einen Kuka KR6/16 zu verkaufen?


    Vielen Dank für Eure Hilfe und beste Grüße aus Hamburg,
    Ascan von Engineering-Art