Funktionsgenerator

  • Hallo,


    ich habe eine Anwendung bei der ich bei jeder Bewegung
    (LIN/CIRC) die Achse A6 überlagert drehen lassen müsste.
    Jetzt hab ich gelesen, dass es über den Funktionsgenerator
    möglich ist den TCP zu drehen (Z-Achse). Kann ich als Eingangs-
    variable einen Timer benutzen und somit über $TIMER_STOP[x]=TRUE/FALSE
    die überlagerte Rotation des TCP ein und ausschalten?
    Und wenn ja, dann wie?
    Kann mir jemand ein Listing erstellen, oder den Fehler im Listing angeben?
    Ich habe das Anwendungsbeispiel in der Funktionsgeneratordoku
    im OfficeLite eingegeben, bekomme aber bei jeder Bewegung die
    Fehlermeldung"Techfunktion $TECH[1].FCT unzulässig"
    Was mach ich falsch?


    Listing:


    ;############################################
    DECL TECH PENDELN1, PENDELN2


    ;FOLD PTP P1 Vel= 100 % PDAT1 Tool[1]:Wkzg1 Base[1]:test;%{PE}%R 4.1.12,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P1, 3:, 5:100, 7:PDAT1
    $BWDSTART = FALSE
    PDAT_ACT=PPDAT1
    BAS(#PTP_DAT)
    FDAT_ACT=FP1
    BAS(#FRAMES)
    BAS(#VEL_PTP,100)
    PTP XP1
    ;ENDFOLD
    $vel.cp=0.1
    $vel.ori1=100
    $vel.ori2=100
    $acc.cp=1
    $acc.ori1=1000
    $acc.ori2=1000
    PENDELN1.MODE = #CYCLE


    PENDELN1.FCTCTRL.SCALE_IN = 2


    PENDELN1.FCTCTRL.OFFSET_IN = 0
    PENDELN1.FCTCTRL.SCALE_OUT = 3
    PENDELN1.FCTCTRL.OFFSET_OUT = 0




    PENDELN1.CLASS = #PATH



    PENDELN1.FCTCTRL.GEOREF = #Y


    PENDELN1.FCT.ORDER = 1



    TECHANGLE.C = 10
    ;TECHSYS = #TTS



    PENDELN2.MODE = #CYCLE


    PENDELN2.FCTCTRL.SCALE_IN = 4


    PENDELN2.FCTCTRL.OFFSET_IN = 0
    PENDELN2.FCTCTRL.SCALE_OUT = 3
    PENDELN2.FCTCTRL.OFFSET_OUT = 0



    $TECH[1] = PENDELN1
    LIN {X 50}


    $TECH[1].FCTCTRL.GEOREF = #Z
    LIN {X 100}



    TRIGGER WHEN DISTANCE=1 DELAY=0 DO $TECH_C[1].FCTCTRL = PENDELN2.FCTCTRL


    LIN {X 200}



    LIN {X 300}
    $TECH[1].MODE = #OFF
    LIN {X 400}



    END
    ;#######################################################


    Vielen Dank.


    Gruß

    Kleinere Wunder werden sofort erledigt... größere nach der Mittagspause...

  • Schritt für Schritt zum Roboterprofi!
  • Das Thema ist zwar schon lange her aber gab es eine Lösung für das Problem ?


    Bin auf das selbe gestoßen


    mfg

    Solange mein Chef so tut als würde er mich richtig bezahlen solange tue ich so als würde ich Arbeiten

  • Es müsse noch die Stützpunkte der Funktion initialisiert werden:


    ;############################################
    DECL TECH PENDELN1, PENDELN2


    ;FOLD PTP P1 Vel= 100 % PDAT1 Tool[1]:Wkzg1 Base[1]:test;%{PE}%R 4.1.12,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P1, 3:, 5:100, 7:PDAT1
    $BWDSTART = FALSE
    PDAT_ACT=PPDAT1
    BAS(#PTP_DAT)
    FDAT_ACT=FP1
    BAS(#FRAMES)
    BAS(#VEL_PTP,100)
    PTP XP1
    ;ENDFOLD
    $vel.cp=0.1
    $vel.ori1=100
    $vel.ori2=100
    $acc.cp=1
    $acc.ori1=1000
    $acc.ori2=1000


    PENDELN1.MODE = #CYCLE
    PENDELN1.CLASS = #PATH


    PENDELN1.FCTCTRL.SCALE_IN = 2 ; Skalierung und Offsets
    PENDELN1.FCTCTRL.OFFSET_IN = 0
    PENDELN1.FCTCTRL.SCALE_OUT = 3
    PENDELN1.FCTCTRL.OFFSET_OUT = 0
    PENDELN1.FCTCTRL.GEOREF = #A ; pendeln um TTS


    PENDELN1.FCT.ORDER = 1
    PENDELN1.FCT.CPNUM = 3
    PENDELN1.FCT.CPS1.X1 = 0.0
    PENDELN1.FCT.CPS1.Y1 = -1.0
    PENDELN1.FCT.CPS1.X2 = 0.5
    PENDELN1.FCT.CPS1.Y2 = 0.0
    PENDELN1.FCT.CPS1.X3 = 1.0
    PENDELN1.FCT.CPS1.Y3 = 1.0


    $TECHPAR[1,1] = 0.036; 0.036 smoothing time
    $TECHPAR[1,2] = 5 ; ???


    TECHSYS = #TTS


    $TECH[1] = PENDELN1
    LIN {X 50}


    LIN {X 100}


    LIN {X 200}


    LIN {X 300}
    $TECH[1].MODE = #OFF
    LIN {X 400}



    END
    ;#######################################################

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now