Beiträge von gundi

    Guten Abend,


    ich bin jetzt über Kuka und ABB in den "Genuss" gekommen einen Fanuc programmieren zu dürfen,
    nach erster skepsis war ich doch recht positiv überrascht, haben auch schon einige Lagenbilder funktioniert, nun wollte ich heute Abend noch "schnell" ein neues Lagenbild einrichten bis ich auf ein Problem gestoßen bin, das ich bis jetzt nicht lösen konnte. Ich habe 3 Positionen auf der Palette, die ich per Positionsregister definiere. Bei vier Programmen vorher hat es auch ohne Probleme funktioniert, diese Punkte anzufahren. Jetzt ist der Kopf um -90 Grad verdreht und steht auf -120 Grad, die X und Y- Koordinate ist fast identisch zu den anderen Lagenbildern. Beim ersten durchtippen kam gleich der erste Fehler "Position not reachable" wenn ich den Punkt händisch auf die Minute genau anfahre, schaff ich es, nehm ich exakt diese Werte die der Roboter in diesem Moment anzeigt und schreibe diese ins Positonsregister und fahre dieses im Stepbetrieb an, kommt wieder diese Fehlermeldung, habe alles Überprüft, die Stellung vom Roboterarm sollte auch Richtig definiert sein, da ja die anderen Programme mit der gleichen x und y sowie z Position funktionieren, nur ist hier der Kopf um -90 Grad anders gedreht. Habt ihr da eine Idee an was das liegen kann? Teache ich ihn, kann ich ihn anfahren, aber für mich ist nicht ersichtlich wo der Unterschied liegt.


    Ach ja, Roboter ist ein 4-Achs Palettierer M410 160 wenn ich mich Recht entsinne, Steuerung ist die aktuelle Ri30 oder wie die heißt, also Baujahr 2011.
    Sorry bin mit den bezeichnungen noch nicht so ganz vertraut, weils noch leicht neues Terrain ist.


    Danke schon einmal

    Hey,


    ja so sollte es funktioniern, leider nur mit einschränkungen. Problem dabei ist, wenn mein Ablagepunkt.A z.b. 135 ist und mein Winkel der Kamera 350 ist, was passiert dann? Dann ist mein berechneter Wert nach Abzug der 360 wieder größer als 180 und der Roboter kann es nicht anfahren.
    Ich habe es jetzt so gelöst, das ich mein Tool-Koordinatensystem um den Winkel verschiebe. Funktioniert bis jetzt wunderbar. Ich muss nur unterscheiden in Welche richtung ich das Koordinatensystem verschieben muss, um den kürzeren Weg anzufahren.
    Damit funktioniert es zum glück wunderbar.
    Aber danke für eure/deine Hilfe.
    Wenn man alles mal niedergeschrieben hat, fallen einen doch oftmals die richtigen Lösungen ein :)


    Danke

    Mahlzeit :)


    ich arbeite seit längeren an einer Palettierapplikation, in der Fässer palettiert werden sollen. Diese Fässer sind mit einen Verschluss oben verschlossen, der über ein Kamerasystem erfasst wird. Ziel dabei ist es, den verschluss immer anch außen auf der Palette zu drehen. Das hat auch alles wunderbar funktioniert. Ich habe meinen Kopf beim Aufnehmen der Tonne auf den Winkel gedreht, so dass der Verschluss immer gleich zum Roboterkopf stand. Jetzt wurde mir aber neben dem Aufnahmeband eine Wand eingezogen, wodurch ich meinen Kopf nicht mehr 360 Grad drehen kann. Jetzt muss ich quasi immer gleich aufnehmen und den Winkel beim Ablegen ausgleichen. Problem dabei ist, das ich 4 verschiedene A Drehungen bei der Ablage. Jetzt weiß ich nur nicht, wie ich mir die Drehung berechnen kann. Von der Kamera bekomm ich den Winkel von 0-360 Grad, der Roboter kann ja aber nur von 0-180 und 0-(-180) Grad, wie kann ich dies jetzt meinen Roboter so umrechnen, damit er immer die kürzeste Strecke zur Ablage fährt. Also als beispiel, meine Originale ablage ist 135°, mein Offset ist 100°, das heißt ich müsste ja auf absolut 235° drehen, da der Roboter das ja nicht kann, muss ich ja auf -125° nach kartesischen System drehen. Wie kann ich das denn am besten so unkompliziert wie möglich berechnen. Hab es jetzt schon mit einer Base verschiebung probiert, leider ohne Großen erfolg.


    Hoffe ich hab mich einigermaßen klar ausgedrückt.
    Sonst einfach nochmal fragen.


    Danke schon mal im vorraus.


    Gundi

    Hallo,


    also ich hatte so ein ähnliches Problem, also keine Arctic Robbys in nem Kühlhaus mit 0-3 Grad.
    Hier wird aber um dem vorzubeugen, wenn der Roboter für 30 min steht, ein Warmfahrprogramm gestartet, um den Roboter warm zu halten und so eine Produktion zu gewährleisten.
    Da gabs noch nie Probleme damit.


    Gundi

    Guten Tag,


    also so wie ich mich dran erinnern kann, ist die erste Variante wohl die Richtige, also der Roboter rampt über eine generatorische Bremsung herunter, bleibt stehen UND DANN fallen die Bremsen 1s später ein.
    Sollte normal so sein, wenn ein NC-Stop benötigt wird.

    Servus,


    also wie ich das bis jetzt gesehen habe, war die max. Distanz immer die maximale Länge des Bereichs in dem der Robi sich auf dem Conveyor bewegen darf.


    Vermutlich wird dir $Pos.Act nichts bringen weil doch prinzipiell nur die Base verschoben, also bleibt doch die Position bei stillstand bzw OV=0 gleich?!

    Guten Abend,


    du hast auch die möglichkeit deine maximale Länge der Conveyorbewegung zu begrenzung und in dem Fall eine Routine ablaufen lassen. Geht natürlich nur, wenn deine Startposition immer gleich ist. Nachteil, das Band bleibt stehen. Ich nehme das dazu um ein Fahren in die Achsendschalter zu verhindern und somit ein sicheres Ablegen auf dem Band sicherzustellen. Natürlich geht nach beenden der Routine der ganz normale Ablauf wieder weiter.


    Gruß


    Gundi

    Guten abend,


    ich verwende meistens die methode, das ich mir eine Position auf der Palette anfahre, die Position teache bzw händisch eintrage und die anderen Positionen über die Länge und Breite des Produkts in Abhänigkeit der Produkte die schon drauf liegen ausrechne. Das heißt, wenn ich das Programm von oben wieder beginne, bzw vom cell komme zähle ich mir einen Formationszähler hoch mit dem ich alles weitere dann bestimmen kann.
    Du musst auch dann nur, vorrausgesetzt du hast ne Turmbildung ohne versatz, diese 16 Positionen berechnen, die höhe kannst du dir danach einfach aus Palettenhöhe + Produkthöhe*1.... ausrechnen indem du einfach mit Switch - Case verzweigungen definierst welche Fälle die einzelnen Lagen sind.
    also zum beispiel die dritte Lage: Ablage = Palettenhöhe + Produkthöhe*Lagen.
    Hast du mehrerer Ablageplätze bleibe ich nicht im Unterprogramm zum Ablegen sondern springe immer wieder zurück ins cell und rufe von dem aus je nachdem das richtige Progamm für den benötigten Platz auf.


    Hoffe konnte dir ein wenig helfen. Natürlich gibt es auch noch ganz andere alternativen.

    Ich glaub ich kenne das Video mit der Anlage, kann das sein, das es ein Greifer war der links und rechts mit Zinken schließt? kann dir aber leider auch nicht sagen wo du es findest. Aber sind 1200 Säcke in der Stunde nicht bisschen heavy? Pro hub einen Sack oder wie? Da darft du ganz schön fahren. Aber der Meinung das die anderen Robis arg viel schneller sind kann ich deinen Kunden auch nicht anschließen.

    Bei einem Palettierroboter sind die 4. und 5. Achse das Parallelogramm, in diesem Fall wird der Robi wohl in irgendeiner Richtung so verfahren sein oder er will zu einen berechneten Punkt fahren an dem das Parallelogramm soweit zusammenfahren müsste, das es Abbrechen würde.


    Das heißt der Punkt liegt wohl in irgendeiner Richtung zu weit fürn Robbi entfernt.


    Hoffe ich konnte dir helfen


    Gundi

    Guten abend,


    also ich kenn diese Fehlermeldung eigentlich nur wenn man zu zweit weg von der Nut beginnt, nach einer gewissen zeit wenn er nichts gefunden hat bleibt der robbi stehen und bringt dieses fehler...

    Hallo,


    hab ein Problem mit einem KR 180 2 PA und einer Conveyor Tech Anwendung.
    Und zwar passiert folgendes: Der Roboter fährt eine Vorposition an in der er auf das Synchronisierungssignal wartet. Der Satzzeiger steht auf dem Conveyor Move befehl, in dem definiert wird welches Movement aktiviert wird. Will sich der Bediener genau in dieser Situation an der Anlage anmelden indem er NC-Stop drückt so passiert es ganz selten, das der Roboter nach wiedereinschalten der Anlage den ConveyorMove befehl überspringt und so seine Bewegung nicht macht. :nocheck:
    Hat irgendjemand eine Idee an was das liegen kann?
    Als behelf hab ich jetzt einfach das Anmelden verriegelt wenn er in der Vorposition steht. Problem ist nur das es ab und zu nötig ist genau in dieser Situation in die Anlage zu kommen.



    Gundi

    Guten abend,


    ich muss soma recht geben ich bezieh das jetzt nur auf die If-Schleife, d.h. ein wait löst doch im normalfall ein vorlaufstopp für mindestens die zeit aus, aber wenn schon im Vorlauf klar ist, dass die Bedingungen nicht erfüllt ist und er zum Endif springen könnte, hat er dann trotzdem einen Vorlaufstop?!

    Hallo,


    hab nur ne kurze Frage die mir hoffentlich einfach beantwortet werden kann. :hilfe:


    Und zwar wie Verhält sich ein Continue vor einer If-Schleife wenn innerhalb dieser ein Wait befehl steht, kann das die Steuerung überschleifen wenn schon im vorlauf klar ist das die Bedingungen erfüllt sind?!


    Also zum Beispiel so:


    continue
    IF Bedingung 1==FALSE and Bedingung 2==FALSE THEN


    Wait sec 0.1


    ENDIF


    Kann es leider nicht testen da der Robby schon beim Kunden läuft.


    Danke

    Solche Suchfahrten realisier ich meistens über einen Interrupt. Dazu öffne ich ein Suchprogramm in dem die linearbewegung steht die so lange gefahren wird bis der Interrupt ausgelöst wird oder ein Maximalwert erreicht wird. Mit BRAKE F und RESUME in dem Interruptprogramm spring ich zurück ins Hauptprogamm im dem ich meine Berechnungen mache.

    Hallo,


    da wir diese Probleme mit den Bedienern auch öfters haben, machen wir es uns einfach und setzen den override nachdem von EXT auf T1 und zurückgeschalten wird auf 3%, d.h. im schlimmsten Fall fährt er irgendwann mal nen Crash aber dann auch nur sehr langsam.
    Weiß nicht wie diese Lösung für dich in Betracht kommt.


    Gruß Gundi

    Das klingt garnicht so schlecht... aber wie ich das verstehe hab ich ja immer noch nen kurzen stopp drin oder macht der das während der fahrt?!
    das heißt doch auch im umkehrschluss ich sollte den ov_pro als grundwert auf 50% setzen damit ich nach oben und unten luft habe um mich anzupassen?! glaub die jetztige lösung, das ich einfach der maschine verbiete die bandgeschwindigkeit in dieser ablegezeit zu ändern ist für jeden das einfacherer... ist das programm so schon aufwendig genug für eigentlich nur simples produkthandling

    So ähnlich mach ich das ja auch schon... ich speicher meinen alten ov, setz ihn danach auf 100% und les danach die berechnete Geschwindigkeit als Lineargeschwindigkeit ein... das ist aber zu einen Zeitpunkt und was danach mit der Geschwindigkeit ist bekommt er nicht mehr mit... und da ist genau mein Problem. Was das ganze auch noch bissl erschwert die Zeit ist mein zweiter gegner und ich sollte möglichst keinen Stopp dabei haben...