ABB Roboterschulung von praxiserfahrenen Trainern
in unserem Schulungszentrum in Mainburg oder vor Ort bei Ihnen
Bediener und Expertenschulungen anfragen

Autor Thema:  Geschwindigkeit während Positionierung beeinflussen  (Gelesen 6716 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline rmac

  • Forum Elite LV 4
  • *
  • Beiträge: 286
  • Bewertet: 0
Re: Geschwindigkeit während Positionierung beeinflussen
« Antwort #15 am: 12. Juli 2006, 10:31:18 »
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
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline heini0707

  • Forum Elite LV 6
  • *
  • Beiträge: 346
  • Bewertet: +1
Re: Geschwindigkeit während Positionierung beeinflussen
« Antwort #15 am: 12. Juli 2006, 12:43:38 »
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.:
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
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline irb6400R

  • Forum Mitglied LV 1
  • *
  • Beiträge: 27
  • Bewertet: 0
Re: Geschwindigkeit während Positionierung beeinflussen
« Antwort #15 am: 12. Juli 2006, 16:34:30 »
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
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline maddin

  • Forum Mitglied LV 14
  • *
  • Beiträge: 168
  • Bewertet: 0
Re: Geschwindigkeit während Positionierung beeinflussen
« Antwort #15 am: 12. Juli 2006, 20:33:22 »
Hallo zusammen,

@Rainer:

Du hast mich richtig neugierig gemacht.....

Wie zerlegt man denn eine lineare Bahn in kleine Teilstrecken?  :kopfkratz:

Ich komm einfach nicht drauf    :wallbash:

Vielleicht kann ichs ja mal brauchen  ;)

Gruß maddin

  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline Spacefire

  • Forum Mitglied LV 8
  • *
  • Beiträge: 76
  • Bewertet: 0
Re: Geschwindigkeit während Positionierung beeinflussen
« Antwort #15 am: 12. Juli 2006, 21:03:58 »
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...
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline rmac

  • Forum Elite LV 4
  • *
  • Beiträge: 286
  • Bewertet: 0
Re: Geschwindigkeit während Positionierung beeinflussen
« Antwort #15 am: 13. Juli 2006, 01:37:20 »
Hallo maddin,

wie Spacefire schon gesagt hat: XYZ-Achsendifferenzen der beiden Positionen durch Segmentanzahl teilen und per Offset auf die Endposition zubewegen.

Bezogen auf das Problem von irb6400R könnte das etwa so aussehen (nicht getestet = ohne Gewähr):
MODULE segment

  ! Globale Variablen
  ! RobTargets mit gleichem WerkObjekt/Tool teachen!
  VAR robtarget rtStart := ...;
  VAR robtarget rtEnd := ...
  ! Pos vor dem Entladen der Presse
  VAR robtarget rtVorEntnahme := ...
 
  VAR bool bContinue;

  PROC CkeckIO()
    bContinue := NOT TestDI(diPressenFreig);
  ENDPROC

  PROC Main()
    ! Teilstrecken-/Segmentlänge in [mm]
    CONST num nSegLen := 100;
    ! Geschw. und Zone für Teilstrecke; geeignete Werte durch ausprobieren ermitteln
    CONST speeddata vSeg := v500;
    CONST zonedata zSeg := z100;

    ! Hilfsvariablen
    VAR robtarget rtNext;
    VAR num i;
    VAR num nSteps;
    VAR pos pDiff;

    ! Starten an aktueller Pos. / ggfls. ändern
    rtStart := CRobT();

    ! Anzahl (ganzer=vollständiger) Teilstrecken bei gegebener Teilstreckenlänge ermitteln
    ! (Euklidische Distanz durch Segmentlänge)
    nSteps := Trunc(Distance(rtStart.trans, rtEnd.trans) / nSegLen);
    ! Schrittweite pro Achse pro Teilstrecke
    pDiff.x := (rtEnd.trans.x - rtStart.trans.x) / nSteps;
    pDiff.y := (rtEnd.trans.y - rtStart.trans.y) / nSteps;
    pDiff.z := (rtEnd.trans.z - rtStart.trans.z) / nSteps;

    rtNext := rtStart;
    i := 1;
    bContinue := TRUE;
    ! Teilstrecken in einer Schleife abarbeiten bis (fast) ans Ziel oder Abbruch durch Pressenfreig.
    WHILE (i <= nSteps) AND bContinue DO
      rtNext := Offs(rtNext, pDiff.x, pDiff.y, pDiff.z);
     
      ! Teilstrecke fahren und (ca.) am Ende "CheckIO" ausführen;
      ! bei Freigabe wird "bContinue" zurückgesetzt und die Scheife beendet
      MoveLSync rtNext, vSeg, zSeg, tool0, "CkeckIO";
      Incr i;
    ENDWHILE
   
    IF bContinue THEN
      ! keine Freigabe erhalten, also bis zum Ende fahren
      MoveL rtEnd, vSeg, fine, tool0;
    ELSE
      ! Freigabe erhalten, d.h schnell zur Warteposition, überschleifen...
      MoveL rtEnd, v3000, z200, tool0;
      ! ...und mit Vollgas zurück zur Entnahme
      MoveL rtVorEntnahme, v3000, z10, tool0;
    ENDIF

  ENDPROC

ENDMODULE

Irgendwie so ähnlich könnte das aussehen...  :supi:
Kann ja mal einer ausprobieren und Rückmeldung geben ob's gefunzt hat.
Gruß
Rainer
« Letzte Änderung: 13. Juli 2006, 09:51:49 von rmac »
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline Torsten

  • Stammgast LV 5
  • *
  • Beiträge: 21
    • Famos robotic
  • Bewertet: 0
Re: Geschwindigkeit während Positionierung beeinflussen
« Antwort #15 am: 13. Juli 2006, 18:52:22 »
Hallo irb6400R,

ich würde mir einen eigenen Move-Befehl schreiben, sowas wie MoveLPresse. Dem übergiebst Du zwei Targets (Eines geht auch, wenn Du die aktuelle Position abfragst)  und machst dann in einer Schleife eine Geradeninterpolation zwischen den beiden Targets. Die Orientierung zu interpolieren könnte etwas kniffelig sein. Weiß im Moment nicht ob ABB da irgendwelche Funktionen für anbeitet. Wenn nicht einfach mal nach "QuatSlerp" suchen.  Mit jedem Interpolationsschritt in der Schleife rufst Du einen "kleinen" MoveL auf. Vorher fragst Du das Signal von der Presse ab, z.B. über eine Variable, die von einem Interrupt gesetzt wird. So kannst dann die Geschwindigkeit für jedes Teilsegment anpassen, hast aber in Deinem eigentlichen Programm nur einen einfachen Befehl drin stehen.

ciao,
  Torsten
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline irb6400R

  • Forum Mitglied LV 1
  • *
  • Beiträge: 27
  • Bewertet: 0
Re: Geschwindigkeit während Positionierung beeinflussen
« Antwort #15 am: 20. April 2007, 19:04:01 »
Hallo zusammen,

wollte nur mal mitteilen dass ich es aufgegeben habe weiter an diesem "Problemchen" zu arbeiten.

Aber nicht weil ich nicht weiter komme sondern weil sich meine Firma entschlossen hat die von ABB angebotene Synchronisation zwischen Presse - Entladeroboter  & Entlader - Beladeroboter zu kaufen.  (nach langen Verhandlungen hat wohl der Preis gestimmt.)

Das ganze soll irgendwann Mitte oder Ende Sommer eingebunden werden.

Ich bin auf alle Fälle mal gespannt wie das ganze dann aussehen bzw. funktionieren wird.

Werde euch auf dem laufenden halten wenn es soweit ist.

Grüße irb6400r
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert


xx
S3 Bahnkorrektur während Prozess

Begonnen von abc123

4 Antworten
1175 Aufrufe
Letzter Beitrag 20. Juni 2012, 23:24:59
von SJX
xx
Störung während Auto - Betrieb

Begonnen von matze

5 Antworten
2783 Aufrufe
Letzter Beitrag 24. Januar 2006, 10:01:47
von Sven Weyer
xx
Teile während Programmablauf ein- und ausblenden

Begonnen von Laura

3 Antworten
1185 Aufrufe
Letzter Beitrag 13. Juli 2016, 23:07:52
von Micky
xx
Fehlerhaftes Signal während Schweißphase POST2END

Begonnen von drudge

0 Antworten
539 Aufrufe
Letzter Beitrag 11. Dezember 2014, 14:48:11
von drudge
xx
Analogwert während einer Bewegung überwachen

Begonnen von timmey89

5 Antworten
1423 Aufrufe
Letzter Beitrag 19. März 2013, 22:01:39
von Paulaner
 

über das Roboterforum

Nutzungsbedingungen Impressum
Sitemap