Geschwindigkeit während Positionierung beeinflussen

  • Hallo,


    bin neu in diesem Forum.


    weiß von euch jemand wie man die Geschwindigkeit während der Positionierung beeinflussen kann ? bzw. ob das bei der s4C+ überhaupt möglich ist ?


    (Hintergrund: versuche Presse & Roboter zu synchronisieren)


    bin für jede Hilfe dankbar

  • ANZEIGE
  • eine Syncronistaion Presse und Roboter irgendwie über das Anpassen der Geschwindigkeit zu erreichen erschein mir als viel zu unsicher.
    Das kannzwar mal funktionieren aber sobald sich irgendwas wo ändert passt nichts mehr. Roboter oder Presse wer kommt ins Finale??
    Da brauchst du schon ein präzises Handling mit einer sauberen Kommunikation.

  • Hallo,


    zu erst mal Sorry, "Synchronisation" ist nicht ganz der richtige Ausdruck für das was ich versuche.



    zur Info:
    vollautomatisierte Pressenlinie mit 5 bzw. 6 hydr. Pressen und je einem 6400R dazwischen. Fertigen Karosserieteile (Frontklappen, Heckklappen, aber auch kleinere Teile)
    je nach größe des Teils ca. 6-11 Hub/min.



    also mein Problem ist folgendes:


    zur Zeit fährt der Roboter mit fester Geschwindigkeit (meist v3000 oder schneller) auf seinen Wartepunkt vor der Presse und
    wartet dort bis die Presse das "OK" zum entladen gibt.



    Da die Kommunikation zur Presse (was die Entladefreigabe betrifft) nur aus einem Bit besteht (Presse --> S7 --> Roboter) fährt der Roboter entweder durch oder stoppt, je nach dem ob das Signal da ist oder nicht.



    wollte nun versuchen die Geschwindigkeit während der Bewegung zu dem Wartepunkt irgendwie zu beeinflussen (also mal etwas schneller wenn die Freigabe schon da ist, mal etwas langsamer wenn die Freigabe noch nicht da ist) so dass der Roboter nicht erst stoppt sondern durchfahren kann. (alles eine sache von paar ms)


    kleines. Bsp.:


    Presse ist im Rück-Hub - Roboter bewegt sich mit der festen Geschwindigkeit
    (teilabhängig ,v3000 - v4000) gerade auf dem Weg zum dem Wartepunkt.
    Roboterprg. fragt Entladefreigabe ab -- Freigabe fehlt -- Roboter beginnt zu bremsen.
    und jetzt kommt die Freigabe aber nun fährt der roboter den Punkt als Stoppunkt an obwohl er
    nun doch durchfahren könnte. dadurch geht natürlich "viel" Zeit verloren.


    das möchte ich gern verhindern indem ich den roboter etwas langsamer zu dem punkt fahren lasse und sobald das Freigabesignal kommt soll er schneller fahren.

  • du kannst statt dem festen wert eine varibale einesetzten. den wert der variablen änderst du dann je nach signalzustand.


    zb if dipressebereit==true then
    igeschwpress=3000
    else
    igeschwpress=2000
    endif


    du musst dann blos schauen wie das mit dem programmvorlauf klappt. einfach mal ausprobieren wie das funktioniert.


    eine 2te idee wäre über den override die geschwindigkeit anzupassen. und in nem eigenen task das signal zu überwachen. aber dafür bräuchstest du dann multitasking bei deinen abb

    Einmal editiert, zuletzt von abuschmeyer ()

  • Hallo IRB6400R


    Du kannst auch ein Interrupt Programmieren, der auf dein Signal reagiert. In der Interruptroutine programmierst du "Velste"-Instruction (Geschwindigkeitoverride) mit 100% :jawohl: und bevor du dein vorpunkte anfahre kannst du Velset auf 50% einstellen.


    Es ist ein Methode aber sicher nicht die einzigste Lösung :ylsuper:


    Tcho

  • Hallo,


    ich würde auch den Override außerhalb der Pressen runterschrauben und mit Interrupts (Presse bereit) auf 100% setzen. :genau:


    Mußt halt dringend absichern daß du nicht mit runtergeschraubten Override im Pressenbereich rumfährst (hast ja sicher Belader/Pressenfrühstart).


    Meld dich doch dann mal obs funktioniert, würd mich interessieren.


    Gruß maddin

  • Hallo Asmodeus,


    :gutidee:, habe auch gleich mal das ganze ins Programm reingebastelt und in der
    Simulation (QuickTeach) ausprobiert.
    Leider hat es (zumindest in der Simulation) nicht funktioniert.



    habe einfach am Programmanfang den Override mit VelSet auf 10 gesetzt und nur durch den Interrupt den Override wieder auf 100 gestellt. das hat auch ansich auch wunderbar funktioniert. :)


    aber....


    wenn ich das Signal für den Interrupt setze wird der Interrupt zwar behandelt (Habe mir zur Kontrolle in der Interruptroutine ein Ausgangssignal gepulst)
    aber erst nach Ende der Bewegung bzw mit beginn der nächsten Bewegung wurde die geschwindigkeit tatsächlich wieder auf 100% gesetzt. :angry:


    sprich die Bewegung wurde mit dem niedrigen Override zuende gefahren ... obwohl der Override durch den Interrupt wieder auf 100 gestellt wurde.


    ....und das ist leider genau das Problem an dem ich bisher schon immer gescheitert bin,
    schaffe es einfach nicht die beim "einlesen" der Bewegung aktiven Werte für die Geschwindigkeit programmtechnisch zu ändern.

    Einmal editiert, zuletzt von irb6400R ()

  • Hallo nochmal,


    irgendwie muss es aber möglich sein das ganze programmtechnisch zu beeinflussen denn wenn
    ich am PHG den Override per Hand ändere reagiert der Roboter ja auch sofort während der Bewegung und nicht erst bei der nächsten Bewegung. :kopfkratz:


    Werde das ganze heute nochmal in der Realität ausprobieren, vielleicht klappt es ja nur in der Simulaion nicht. (bisher hat ABB-Simulation und Realität immer übereingestimmt, hoffentlich diesmal nicht)


    Grüße IRB6400R

  • Hallo IRB6400R,


    das mit dem Interurrupt funktioniert vermutlich aus dem Grund nicht, weil die Bewegung quasi schon geplant ist. :(
    Du könntest evtl. noch einen Zwischenpunkt einfügen, dann springt er früher wieder auf die hohe Geschwindigkeit. Weiß aber nicht ob Du das willst :zwink:
    Ich hätte da noch einen anderen Vorschlag: machs doch umgekehrt: Fahre mit der hohen Geschwindigkeit zur Presse und auf einem bestimmten Punkt auf der Bahn (der muß natürlich ausgetüftelt werden) prüfst du mit TriggCheckIO ob die Freigabe da ist. Wenn ja, düst der Robbi weiter, bei nein kannst Du z.B. mit einem Stopmove die geplante Bahn wegwerfen und mit einem neuen Fahrbefehl langsamer fortsetzen.


    Vielleicht bringt Dich das ja weiter oder zumindest auf neue Ideen.


    Gruß
    Stromer

  • Hallo zusammen,


    mit Zwischenpunkten und zusätzlichen signalabfragen hab ich auch schon viel getüftelt aber durch SPS-Zyklen etc. kommt doch alles etwas verspätet an. Es war teilweise schlimmer als vorher.


    Weiß von euch jemand in welche Variable/Parameter der Override, den man am PHG einstellt, geschrieben wird ?


    eine andere Variante die ich gern ausprobieren würde ist folgende:


    würde gern abfragen ob der Wartepunkt vor der Presse als Stoppunkt angefahren wurde, dann entsprechend einen zusätzlichen Task anlegen und in dem ich die Geschwindigkeit automatisch erhöhen oder verringern.


    die Idee find ich gut, habe aber selbst keinerlei Lösungsansatz. :huh:


    ich weiß nur das man den zuletzt angefahrenen robtarget auslesen kann, nun ist die große Frage geht das für die Zone auch ????



    Grüße IRB6400R

  • Hallo IRB6400R,


    wie sieht denn deine Abfrage aus, die die Freigaben behandelt ?


    Eine While-Schleife ?
    Oder Wait- Anweisung ?


    Was wird nach der Abfrage noch alles abgearbeitet, bevor die nächste Bewegungsinstruktion ausgeführt wird?


    Gruß Maddin

  • Hallo irb6400R,


    eine Geschwindigkeitsänderung mit Velset ist immer erst bei der nächsten Position aktiv, ist der Roboter bereits in Bewegung erfolgt keine Änderung der Geschwindigkeit.


    ABB bietet die Software/Hardware-Option "Sensor Synchronisation" für deine Aufgabenstellung an, die den Öffnungshub der Presse über einen Encoder auswertet und die Geschwindigkeit des Roboters entsprechend anpasst.


    Auszug aus dem Handbuch:



    Gruß
    Micky

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind. (Albert Einstein)

  • Hallo Maddin, Hallo Micky,


    also die Abfrage ist eine While-Schleife.
    in der Schleife selbst bzw. nach der Schleife wird nicht viel gemacht, nur paar einfache Instruktionen.
    Auf alle Fälle ist nix dabei was zu Verzögerungen der Programmabarbeitung führt, so dass z.B. der nächste Target nicht rechtzeitig berechnet werden könnte, oder ähnliches.


    Ja, ich weiß das ABB soetwas anbietet, die wollen es ja auch an uns verkaufen.
    Aber mein Chef will das Geld nicht unbedingt ausgeben solange die Hoffnung besteht es selbst hinzukriegen. .......und etwas ehrgeizig bin ich auch noch.




    Grüße IRB6400R

  • Hmmm,


    vielleicht könntest du die While Schleife für die Anpassung nutzen.


    Nur so eine Idee: Wenn der Programmvorlauf in der Schleife landet, weil die Freigabe noch nicht da ist (WHILE FREIGABE PRESSE = 0) könntest du hier ein bool setzen. Mit diesem Bool setzt du dann für den nächsten Zyklus den Override ein wenig zurück, das wiederholt sich so lange bis die Schleife nicht mehr bearbeitet wird, da das Freigabesignal schon gegeben ist, bevor der Programmvorlauf zur Abarbeitung der Schleife kommt. Wird das Bool nicht mehr gesetzt, kann der Override wieder hochgesetzt werden (kleine Schritte, versteht sich).
    Oder evtl einen Zähler, der die Anzahl der Schleifendurchläufe zählt, dementsprechend hoch ist der Programmvorlauf und es kann beim Override ein wenig mehr zurückgenommen werden.


    Bin gespannt obs funktioniert :???:

  • Hallo,


    ich hab auch 'ne abstruse Idee dazu:
    wenn der Pfad von der Presse zum Wartepunkt linear ist, könnte man diesen relativ leicht (per Programm) in kleine Teilstrecken aufteilen und diese Teilstrecken mit entsprechend großzügigen Zonen anfahren. Bei gut gewählten Werten würde dabei eine langsame durchgehende Bewegung zum Wartepunkt entstehen.
    Bei jedem Teilstück wird nun überprüft ob die Entnahmefreigabe vorliegt (per TriggCheckIO/TriggL oder MoveLSync oder so).
    Wenn ja, wird die (langsame Teilstück-)Schleife abgebrochen und über den Wartepunkt mit großer Zone und Geschwindigkeit zur Entnahme gefahren (=schnell). Wenn es die Gegebenheiten erlauben, könnte man vielleicht auch direkt zur Entnahme zurückfahren sobald die Freigabe vorliegt, ohne über den Wartepunkt fahren zu müssen (?)
    Wenn die Freigabe während der langsamen Rückfahrt nicht gegeben wird, wird die Teilstückschleife bis zum Wartepunkt ausgeführt.


    Die Zerlegung in lineare Teilstücke ist auch nicht schwer zu programmieren. :beerchug:
    Vielleicht eine Überlegung wert...


    Grüße
    Rainer

  • Hallöle,


    ich hätte ein Trick17 auf Lager.


    Was spricht dagegen, wenn die Presse bevor Rückhub anfängt ein Ausgang setzt und der Roboter entweder in einer Extra Task oder Ereigniss gesteuert einen Timer startet (vorausgesetzt Rückhub ist immer gleich). Und den Timer vor der Bewegung abfrägt und die Geschwindigkeit dadurch steuert. Z.B.:

    Code
    IF cTimer1>2 THEN
      vVar0=vVar1
    ELSEIF cTimer1>3 THEN
      vVar0=vVar2
    ELSEIF cTimer1>4 THEN
      vVar0=vVar3
    ELSE
      vVar0=vVar10
    ENDIF


    :oops: ÄÄHH Syntax könnte so aussehen.


    MfG heini

  • Hallo zusammen,


    :grinser043:
    ich muss sagen dass sind alles sehr gute Ideen. werde alle mal durchprobieren.
    Melde mich wieder wenn die Ergebnisse vorliegen.


    vielen Dank schon mal.



    Grüße IRB6400R

  • Ich würde die Differenz der XYZ von Start und Ziel durch die Anzahl der Teilstücke teilen und dann in einer Schleife das Ergebnis zur Start-Position zuaddieren. Sollte problemlos gehn solange sich die Orientierung nicht ändert aber auch das is lösbar...

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

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