Positionsabhängige Geschwindigkeitsänderung

  • Hallo zusammen, ich habe folgendes Problem:


    Ich habe eine externe Linearachse (E1) an einem Roboter, welche je nach Werkstück eine unterschiedlich lange und unterschiedlich schnelle Hubbewegung durch einen Zylinder macht.
    Es handelt sich um eine Maschine, die einen Zylinder von innen Lackiert. Um alle Prozesstoleranzen (Lackstärke) einhalten zu könnenm muss der Vorschub bei der Abwärtsbewegung ein wenig beschleunigt (z. B. 0,023 %/mm) und bei der Aufwärtsbewegung eben wieder verlangsamt werden. Die Bewegung muss sehr linear beschleunigt und abgebremst werden - es darf also kein merklicher Treppeneffekt entstehen.


    Die Variablen "iE1_Vorschub_Soll (z.B. 55%), IE1_Start (z.B. 100mm), iE1_Ende (z.B. 200mm)" kommen von einer externen Steuerung
    Eine berechnung müsste folgendermaßen so aussehen: $VEL_EXTAX[1]=iE1_Vorschub_Soll+((AXIS_ACT-iE1_Start)*0,023) und kontinuierlich während der Bewegung berechnet werden - ist das möglich?


    Hier nun mein Originalprogramm für die abwärtsbewegung (E1 soll also beschleunigt werden):


    DEF sprueher_ende()


    ;==========Externe Achsen initialisieren
    $ACC_EXTAX[1]=100
    $OV_ASYNC=100


    SWITCH $count_i[1]
    CASE 0
    $VEL_EXTAX[1]=100
    DEFAULT
    $VEL_EXTAX[1]=iE1_Vorschub_Soll
    ENDSWITCH


    ;==========Sprüher in Endposition fahren
    BRENNER.E1=iE1_Ende


    ASYPTP SPRUEHER


    WHILE $ASYNC_STATE == #BUSY
    ENDWHILE


    END


    vielen Dank im Voraus für eure Vorschläge

  • Schritt für Schritt zum Roboterprofi!

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