PTP Bewegung ohne Turn und Status Palettierrobi

  • Hallo Gemeinde,

    Ich habe einen KR700PA 4 Achs Palettierroboter auf einer Verfahrachse. Version 8.3

    Robi holt von einem Tisch Holzplatten und legt diese auf 4 verschiedenen Ablagen ab bzw. Stapelt die Holzteile. Alle Positionen Holen und Ablegen kommen von einem PC über Profinet.

    Anlage läuft schon seit ca. einem Jahr ohne größere Probleme, leider hat es jetzt einen Crash gegeben da sich der (recht großer) Greifer unnötigerweise um 360 Grad auf den Weg zum Ablegen gedreht hat. War einiges Kaputt.....Mechaniker haben sich sehr für die Arbeit gefreut =O

    Die Ablegeposition ist im Dat-File so deklariert.

    DECL E6POS XAbgabe1={X 1362.00,Y 583.000,Z 846.000,A -90.0000,B 0.0,C 0.0,E1 1762.00,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}

    XYZ und A kommt von PC und wird vorher noch auf min max geprüft.

    Beim Holen, nach dem greifen, wird die aktuelle Position so eingelesen:

    AktPos=$POS_ACT_MES

    AktPos im Dat-File:

    DECL GLOBAL E6POS AktPos={X 1208.01477,Y 349.035217,Z 768.086121,A 179.999725,B -4.50371494E-16,C -3.04023907E-12,S 'B0010',T 'B00101011',E1 2828.00146,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}

    AktPos brauche ich weil das Rausfahren beim Holen immer angepasst werden muss.

    Meine Frage ist jetzt nun: Warum dreht der Greifer um 360 Grad in machen Situationen? Die Vorgaben beim Holen waren im grünen Bereich und beim Ablegen auch. Es scheint so das eine bestimmte Konstellation beim Holen diese Drehung verursacht aber welche und wieso?

    Dachte eigentlich das Bewegungen ohne T und S immer die Best Mögliche ist. Gibst da genaue Regeln (Doku und so )für solche Sachen.

    Gruß Paulaner und ein schönes Wochenende

    Für seine Arbeit muß man Zustimmung suchen, aber niemals Beifall.<br />Zitat: Charles-Louis Baron de Montesquieu

  • Schritt für Schritt zum Roboterprofi!
  • Hi Paulaner,

    einfach dann den Punkt wie folgt deklarieren:


    DECL GLOBAL POS AktPos={X 1208.01477,Y 349.035217,Z 768.086121,A 179.999725,B -4.50371494E-16,C -3.04023907E-12}


    Dann sollte es funktionieren.


    Viele Grüße,

    Sliwka

  • Lieber S und T mit dem Programm neu berechnen (oder entfernen), sonst sind S und T zurück ....sobald der Punkt mit der TouchUp geändert wird.

    zB. selektiv entfernen:


    Code
    ; PTP xP5                ; alt
    PTP SCHLANK(xP5)         ; neu


  • Servus Paulaner,

    hast du einmal probiert deine Ausfahrbewegungen mit dem Doppelpunktoperator berechnen zu lassen?


    Deine erste Deklaration deiner E6Pos stimmt so nicht:

    "Die Ablegeposition ist im Dat-File so deklariert.

    DECL E6POS XAbgabe1={X 1362.00,Y 583.000,Z 846.000,A -90.0000,B 0.0,C 0.0,E1 1762.00,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}"


    Hier fehlt Status und Turn! ;)


    Sliwka auch eine POS hat Status und Turn, wenn dann müsstest Du eine FRAME-Variable verwenden. ;)

    Du kannst auch einfach eine E6Pos auf ein FRAME schieben, KUKA ist da durchaus gewillt den Rest zu ignorieren, da bedarf es keiner Funktion. ;)

    Aber da du die E1 benötigst wird das so nicht gehen.


    Gruß

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

  • Wenn du eine E6Pos auf ein Frame bzw. Pos-Variable schiebst werden die überschüssigen Variablen der Struktur durchaus ignoriert!


    Anders herum ist natürlich klar das die nicht vorhanden Strukturvatiablen nicht verändert werden. Liegt doch igentlich auf der Hand. 😉


    Gruß

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

  • Wenn du eine E6Pos auf ein Frame bzw. Pos-Variable schiebst werden die überschüssigen Variablen der Struktur durchaus ignoriert!


    Anders herum ist natürlich klar das die nicht vorhanden Strukturvatiablen nicht verändert werden. Liegt doch igentlich auf der Hand. 😉


    Das hiesse an einem Beispiel:

    Code
    DEF  Test ( )
     
    DECL E6POS TESTPOS
    
    TESTPOS = {X 0,Y 0,Z 0,A 0,B 0,C 0,S 0,T 0,E1 0,E2 0,E3 0,E4 0,E5 0, E6 0}
    HALT ;TURNWERT = 0
    TESTPOS = {X 0,Y 0,Z 0,A 0,B 0,C 0,S 0,E1 0,E2 0,E3 0,E4 0,E5 0, E6 0}
    HALT ;TURNWERT = ?
    
    END

    Dass beim 2. Halt der Turn wirklich immer noch 0 ist ?


    Habe dies mal gelernt, dass er so auf "unbekannt" gesetzt wird.

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Das ist korrekt, aber wer arbeitet mit nicht initialisierten Variablen?

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

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