Universal Robot UR5 Stapelpositionen merken

  • Moin,


    ich habe eine Frage zu folgendem Programmablauf.
    Bei mehreren Stapelpositionen stapeln wir 35 teile. Die Stapelpositionen sind nicht nur seitlich sondern auch nach vorne und hinten verschoben. Wenn der Roboter ein Teil verliert, oder ein Arbeiter an den Robi kommt, stellt er sich ab und er verliert seine Stapelpositionen. Also wieviele Teile er schon gestapelt hat.
    Wie kann ich es programmieren, das er sich die Stapelhöhe merkt und er bei der aktuellen Lage weitermacht?
    Nachfolgend das Programm.


    "Programm
    Init Variablen
    Roboterprogramm
    FahreLinear
    ueber_aufnahme
    Warten DI[0]=HI
    FahreLinear
    Aufnahmepunkt
    Einstellen DO[0]=Ein
    Warten DI[1]=HI
    aufnahme
    ueber_aufnahme1
    FahreLinear
    Startpos1
    Palettieren
    Muster: Zeile
    Stapelanfang1
    Stapelende1
    PaletteSequenz
    Pose_1
    Warten: 0.5
    Einstellen DO[0]=Aus
    Warten: 1.0
    Mp1
    Warten: 0.5
    Beenden1
    FahreLinear
    ueber_aufnahme
    Warten DI[0]=HI
    FahreLinear
    Aufnahmepunkt
    Einstellen DO[0]=Ein
    Warten DI[1]=HI
    aufnahme
    ueber_aufnahme2
    FahreLinear
    Startpos2
    Palettieren
    Muster: Zeile
    Stapelanfang2
    Stapelende2
    PaletteSequenz
    Pose_2
    Warten: 0.5
    Einstellen DO[0]=Aus
    Warten: 1.0
    Mp2
    Warten: 0.5
    Beenden2
    FahreLinear
    ueber_aufnahme
    Warten DI[0]=HI
    FahreLinear
    Aufnahmepunkt
    Einstellen DO[0]=Ein
    Warten DI[1]=HI
    aufnahme
    ueber_aufnahme3
    FahreLinear
    Startpos3
    Palettieren
    Muster: Zeile
    Stapelanfang3
    Stapelende3
    PaletteSequenz
    Pose_3
    Warten: 0.5
    Einstellen DO[0]=Aus
    Warten: 1.0
    Mp3
    Warten: 0.5
    Beenden3
    FahreLinear
    ueber_aufnahme
    Warten DI[0]=HI
    FahreLinear
    Aufnahmepunkt
    Einstellen DO[0]=Ein
    Warten DI[1]=HI
    aufnahme
    ueber_aufnahme4
    FahreLinear
    Startpos4
    Palettieren
    Muster: Zeile
    Stapelanfang4
    Stapelende4
    PaletteSequenz
    Pose_4
    Warten: 0.5
    Einstellen DO[0]=Aus
    Warten: 1.0
    Mp4
    Warten: 0.5
    Beenden4
    FahreLinear
    ueber_aufnahme
    Warten DI[0]=HI
    FahreLinear
    Aufnahmepunkt
    Einstellen DO[0]=Ein
    Warten DI[1]=HI
    aufnahme
    ueber_aufnahme5
    FahreLinear
    Startpos5
    Palettieren
    Muster: Zeile
    Stapelanfang5
    Stapelende5
    PaletteSequenz
    Pose_5
    Warten: 0.5
    Einstellen DO[0]=Aus
    Warten: 1.0
    Mp5
    Warten: 0.5
    Beenden5
    FahreLinear
    ueber_aufnahme
    Warten DI[0]=HI
    FahreLinear
    Aufnahmepunkt
    Einstellen DO[0]=Ein
    Warten DI[1]=HI
    aufnahme
    ueber_aufnahme6
    FahreLinear
    Startpos6
    Palettieren
    Muster: Zeile
    Stapelanfang6
    Stapelende6
    PaletteSequenz
    Pose_6
    Warten: 0.5
    Einstellen DO[0]=Aus
    Warten: 1.0
    Mp6
    Warten: 0.5
    Beenden6
    FahreLinear
    ueber_aufnahme
    Warten DI[0]=HI
    FahreLinear
    Aufnahmepunkt
    Einstellen DO[0]=Ein
    Warten DI[1]=HI
    aufnahme
    ueber_aufnahme7
    FahreLinear
    Startpos7
    Palettieren
    Muster: Zeile
    Stapelanfang7
    Stapelende7
    PaletteSequenz
    Pose_7
    Warten: 0.5
    Einstellen DO[0]=Aus
    Warten: 1.0
    Mp7
    Warten: 0.5
    Beenden7
    NachEnde
    FahreAchse
    Wegpunkt1
    Einstellen DO[1]=Ein
    Meldung
    Einstellen DO[1]=Aus
    Meldung

  • ANZEIGE
  • wo speicherst du die aktuelle Position, bzw. die bereits gestapelte Anzahl?
    Wenn du die Variable entsprechend deklarierst, verliert er den Wert bei einem ungewollten Stopp normalerweise nicht.
    Mit der Palettierfunktion im UR ist das Basispaket so ausgelegt, das er ohne Probleme funktioniert. Es sei den, UR hat wiedermal verschlimmbessert! ;)

  • Hallo zusammen,
    hab zwar mit UR noch nichts am Hut gehabt, aber ich denke mal, die Syntax des Roboters lässt Schleifenprogrammierung zu?
    Desweiteren könnte ich mir vorstellen, dass der Roboter Globale Integer-Variablen speichern kann?
    Dann einfach die X, Y und Z Position (der For-Schleifen) abspeichern und dein Problem ist vergessen :)

  • Hi Corvax,
    du solltest davon abkommen, mit festen Positionen zu arbeiten.
    Benutze Variablen im Pose-Format: var1=p[0,0,0,0,0,0]
    Dann kannst du die Ablageposition sowohl in der breite als auch in der Höhe berechnen
    und in eine Globale Variable (wird auf der Festplatte gespeichert) schreiben.
    Das gibt dir die Möglichkeit, auch nach einem kompletten Neustart des UR
    an der letzet Position weiter zu machen.
    Falls du dazu Info's brauchst, einfach mal melden.
    Gruß Jochen

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