KUKASim Programm Funktion einbauen und abrufen

  • Schritt für Schritt zum Roboterprofi!
  • Nö, musst Du nicht. Es reicht die Deklaration in Zeile 4. Das $cycflag wird so lange ausgewertet, bis eine neue Zuweisung wie in Zeile 3 oder 4 programmiert ist. Da ist halt nach dem Zurücksetzen des Programms die Auswertung des $cycflag true. Schadet ja nicht, solange es vor der entscheidenden Bewegung auch mal auf false geht. Nach dem Durchlauf würde ich es evtl. schon auf false setzen, es reicht aber auch den Interrupt abzuschalten. Das ist halt mal wieder Geschmackssache.

  • Ich habe aktuell Probleme die gespeichterte Position $POS_INT wieder anzufahren.


    Dabei ging ich wie folgt vor:

    Ich habe eine andere Position E6POS hergenommen und mit copy&paste in das .dat file kopiert. Dann habe ich einfach den Namen geändert. Denn ich gehe davon aus dass alle Werte dann überschrieben werden:

    Code
    DECL E6POS ZLoch={X 124.358315,Y 146.740753,Z 377.216431,A 89.8801193,B -0.0398053862,C -179.512924,S 6,T 27,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}


    Abspeicherung der Position in der .src Datei

    Code
    ZLoch = $POS_INT


    Dann habe ich versucht die Position mit LIN anzufahren:

    Code
    LIN ZLoch


    Aber da sehe ich dass dies irgend eine andere Position angefahren wird die nicht übereinstimmt mit der Position wo der Interrupt ausgelöst wurde. Somit stimmt die Position nicht. Ich verstehe nicht warum die Position bei &Pos_INT nicht genau wieder angefahren wird. Vermutlich mache ich beim abspeichern der Position $POS_INT was falsch.

  • oder da wo du versuchst es anzufahren hast du falsches tool und base angewählt.

    das kann man aus dem Codeschnipsel da nicht erkennen der gesamte code wäre hier hilfreicher.

    Stimmt habe eine Neue LIN Bewegung angelegt und da war einfach ein anderes tool und base ausgewählt. Ich dacht immer dass diese die gleichen wären wenn ich in meinem Program drin bin. Auf jeden Fall hat es geklappt.

  • Sorry dass ich dich nicht weiter "betreuen" konnte. Ich war beruflich im Ausland mit ohne Internet...

    Aber dir wurde ja offensichtlich geholfen.

    Den Roboter "in seinem Lauf hält weder Ochs noch Esel auf!"

  • Die Annahme, dass man durch Aneinanderreihung von Halb(!)kreisen eine Spirale bekäme ist erfahrungsgemäß leider Selbstbetrug und führt zu nichts.

    Die Diagonale von links unten nach rechts oben in Deinem Bild sind Eckpunkte, die durch geschwindigkeitsabhängiges Überschleifen verzerrt werden. Die der Diagonale von links oben nach rechts unten sind tatsächliche Hilfspunkte auf Halbkreisbahnen.


    Für "echtere" Spiralen empfiehlt sich die Berechnung in höherer Auflösung (12 pro Umdrehung ist erfahrungsgemäß nicht schlecht, man denke an das Zifferblatt einer Uhr) mit fortlaufender Abstandsanpassung gemäß der gewünschten Spiralfunktion, und die Bewegungsanweisung dann als LIN mit C_DIS, wobei man daran denken sollte, dass die echte Spirale dadurch etwas kleiner wird als die berechnete.


    Grüße,

    Michael


  • es geht ohne Spline und vor-berechnen...

    und zB:

    PTP P1

    SPIRAL(10,150,36,20)



    36 punke per 360deg = 10deg schritt

    mehr schritte gewunscht? einfach parameter anpassen (mit 360 bedeuted 1deg schritt):

    SPIRAL(10,150,360,20)

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