Geschwindigkeit PTP im Programm reduzieren

  • Gbt es eine Möglichkeit, den Eilgangsvorschub im Ürogramm zu reduzieren? Im Touch Panel kann
    ich natürlich prozentual reduzieren. Aber dann wird auch der LIN Vorschub reduziert. Ich möchte nur PTP Anweisungen langsamer fahren.

  • Schritt für Schritt zum Roboterprofi!
  • ja,


    1. Variante: Bewegung ist in ein Inline-Formular. Dort kann ganz einfach üb erändern die Geschwindigkeit jedes einzelner PTP-Bewegung angepasst werden.


    2. Variante: Es ist als "Text" programmiert. dann kann man vor jeden PTP-Befehl eine Geschwindigkeit-Zuweisung (nur für PTP-Bewegungen) machen.



    MFG
    Sergej

  • danke.


    Hättest du ein Beispiel für die beiden Varianten?
    Mein Programm kommt aus Sprutcam. Es wird also offline programmiert.


    Beim Einfahren möchte ich vermeiden, dass die PTP Bewegungen zu schnell
    ausgeführt werden. Ich kann aber nicht vorsichthalber auf 50% stellen, sonst
    sind meine Vorschübe auch bei 50% und das Programm läuft beim einfahren
    nicht 2 Stunden, sondern 4 Stunden. Ist ein komplexes Fräsprogramm.


    Das nur zum Vetständnis.

  • Hallo Cncandi


    Wenn dein Offlineprogramm Geschwindigkeiten in deinen Programmsyntax schreibt, wird es schwierig.
    Da du nie weißt wann im Programm eine andere PTP-Geschwindigkeit kommt.
    Bliebe eventuell Suchen/Ersetzen im Editor.
    Aber du kannst die Geschwindigleiten in deinem Offlineprogramm doch bestimmt parametrieren.
    Dann erstell dir doch erst ein Programm mit reduzierter PTP-Geschwindigkeit.


    Gruß


    Schybulla

    Weil der Klügere nach gibt - regieren die Dummen die Welt

  • Also ich machts für Bewegungen bei denen ich eine feste Geschwindigkeit haben möchte entweder über eine Variable die ich mir mit nem bestimmten Wert beschreibe und sie anstatt der Geschwindigkeit ins Inline-Formular schreibe (Natürlich bringt das nur was wenn die Programmgeschwindigkeit fest ist!)


    oder


    setze mir vor der Bewegung eine Variable die im Submit die Programmgeschwindigkeit auf einen festen Wert zwingt.
    Natürlich muss hier die alte Programmgeschwindigkeit vorher gespeichert werden und nach der Bewegung wieder zurückgeschrieben werden. Also wohl für eine Einzelne Bewegung ganz einfach, aber für mehrere etwas komplizierter.

    Einmal editiert, zuletzt von muhka ()


  • ..
    Hättest du ein Beispiel für die beiden Varianten?
    Mein Programm kommt aus Sprutcam. Es wird also offline programmiert.
    ...


    Gegenfrage: Hättest Du denn einen beispielhaften Auszug aus Deinem Programm? Dann kann man da mehr sagen.
    Die Problemlösung ist sehr stark vom Aufbau des erzeugten Programms abhängig.


    Eine Geschwindigkeitsänderung im Submit ist für mich ein absolutes Nogo.

  • meistens kann man das bei der Programm-Generierung einstellen.
    Hatten das mal bei RobotMaster. Da konnte man in der tiefe die ganzen PTP-Geschwindigkeit und Beschleunigung einstellen.


    ebenso für die LIN-Bewegungen die Beschleunigungen, und Orientierung-Geschwindigkeit und Beschleunigung.


    Einfache Alternative:
    Meist sind die LIN-Bewegung die Vorschubgeschwindigkeit.
    diese entsprechend so weit erhöhen, dass bei reduzierten Programm-Overit die gewünschte Vorschubgeschwindigkeit erreicht wird :uglyhammer_2:

  • Servus,
    1.) Nur bei Programmierung für Inlineformulare
    Mit OrangeEdit kann ganz einfach die Geschwindigkeit von jedem Punkt gesetzt werden
    (Auch alle PTP oder LIN mit einmal). Bedingung ist allerdings, dass die Punkte lauter
    Inlineformulare sind. --> Siehe dazu das Bild im Anhang



    2.) Nur bei Punktkoordinaten wirksam, da Inlineformulare dies überschreiben
    Sind die Punkte nur lauter Koordinaten, müsste es mit folgendem Befehl funktionieren:
    BAS(#PTP_PARAMS,80) > hier wird die Geschwindigkeit auf 80% gesetzt
    Statt einem Wert kannst du auch eine Int-Variable einsetzen
    und den Wert durch Einzelvariablenmenü beinflussen (Zum Beispiel im Sub-Prog.)



    3.) Für Permanente Regelung aus dem Sub (Für Koordinaten und Inlineformulare wirksam)
    Hier noch ne andere möglichkeit: <<<< Dies ist ein Beispiel für ein Subprogramm.
    IF ($VEL_ACT > 0) THEN $Vel_ACT ist die Geschwindigkeit vom TCP
    ;Geschwindigkeit für LIN-Bewegungen in einer LIN-Bewegung.
    $OV_PRO = 100 Bei Stillstand und einer PTP-Bewegung ist
    ELSE der Wert 0 (Zumindest bei KRC2).
    ;Geschwindigkeit für PTP Bewegungen eintragen Mit der Rutine wird der Programmoveride
    $OV_PRO = 80 auf 80 reuziert, bei Stillstand und PTP-Bew.
    ENDIF Dies vieleicht in eine If-Bedingung setzen,
    damit du es über Einzelvariablen auch im
    Betrieb ausschalten kannst. Und es sollte keine andere Rutine im Hintergrund den Overide regeln.
    Aber wie oben schon erwähnt, wär ein Programmausschnitt hilfreich, um dir eine Sinnvolle Variante
    geben zu können.




    Gruß Toud

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