Beiträge von Santiago

    Das hat geklappt danke.. :biggrins:


    Allerdings habe ich dann keine Kontrolle darüber, ob er alle Punkte anfährt die ich ihm sende. :(
    solange er am fahren ist ignoriert er alles was über Ethernet reinkommt...

    Hallo zusammen,


    Ich bin Student und neu in diesem Forum. Ich hoffe ihr könnt mir weiterhelfen.
    Ich habe einen Roboter von KUKA KR 30-3 mit KRC2 und RSI. Ich habe in C# eine Applikation geschrieben und möchte möchte den Roboter direkt über Ethernet mit einer externen Applikation ansteuern. Soweit funktionert das auch ganz gut solange ich Positionen senden.
    Allerdings möchte ich jetzt direkt die Roboterachsen mit Soll-Winkeln ansteuern. Laut RSI-Doku nehmen die Befehle ST_SKIPPTP, ST_SKIPLIN etc. nur Positionsdaten an. Gibt es eine Möglichkeit trotzdem direkt die Achsen anzusteuern?


    :huh:


    Hier mein Code wie ich mir das vorgestellt hatte:


    DEF Drive_Path( )


    DECL RSIERR Ret
    DECL INT hEthernet
    DECL INT hMap2Prea1,hMap2Prea2,hMap2Prea3,hMap2Prea4,hMap2Prea5,hMap2Prea6,hMap2Pint1


    ;FOLD INI
    ;FOLD BASISTECH INI
    GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
    INTERRUPT ON 3
    BAS (#INITMOV,0 )
    ;ENDFOLD (BASISTECH INI)
    ;FOLD USER INI
    ;Make your modifications here


    ;ENDFOLD (USER INI)
    ;ENDFOLD (INI)


    HALT
    ; The current position will be used as SAK movement!
    PTP XHOME


    ;-----------------------------------------------------------
    ; Create RSI Object ST_Ethernet, read object configuration .../INIT/ERXConfig.xml
    Ret = ST_ETHERNET(hEthernet,0,"DrivePath.xml")



    ;Set Ethernet Parameters
    Ret = ST_SETPARAM(hEthernet,eERXFastCycle,0) ;Set to false (12ms)
    Ret = ST_SETPARAM(hEthernet,eERXmaxLatePackages,200) ;Set to 200 Packets
    ;ST_SETPARAM(hEthernet,eERXmaxLateInPercent,10)
    ;ST_SETPARAM(hEthernet,eERXFmaxFieldOfView,1000)
    ;ST_SETPARAM(hEthernet,eERXerrorFlag,99)
    ;ST_SETPARAM(hEthernet,eERXprecision,4)
    ;-----------------------------------------------------------


    RET=ST_MAP2SEN_PREA(hMap2Prea1,0,hEthernet,1,1)
    RET=ST_MAP2SEN_PREA(hMap2Prea2,0,hEthernet,2,2)
    RET=ST_MAP2SEN_PREA(hMap2Prea3,0,hEthernet,3,3)
    RET=ST_MAP2SEN_PREA(hMap2Prea4,0,hEthernet,4,4)
    RET=ST_MAP2SEN_PREA(hMap2Prea5,0,hEthernet,5,5)
    RET=ST_MAP2SEN_PREA(hMap2Prea6,0,hEthernet,6,6)
    RET=ST_MAP2SEN_PINT(hMap2Pint1,0,hEthernet,7,1)


    RET=ST_ON1(#WORLD,1)


    WHILE $SEN_PINT[1]==0


    PTP_AXIS()


    ENDWHILE


    HALT


    END
    DEF PTP_AXIS()
    E6AXIS fTARGET
    fTARGET.A1=$SEN_PREA[1]
    fTARGET.A2=$SEN_PREA[2]
    fTARGET.A3=$SEN_PREA[3]
    fTARGET.A4=$SEN_PREA[4]
    fTARGET.A5=$SEN_PREA[5]
    fTARGET.A6=$SEN_PREA[6]
    ST_SKIPPTP(fTARGET)
    END


    DEF LIN_AXIS()
    E6AXIS fTARGET
    fTARGET.A1=$SEN_PREA[1]
    fTARGET.A2=$SEN_PREA[2]
    fTARGET.A3=$SEN_PREA[3]
    fTARGET.A4=$SEN_PREA[4]
    fTARGET.A5=$SEN_PREA[5]
    fTARGET.A6=$SEN_PREA[6]
    ST_SKIPLIN(fTARGET)
    END



    Vielen Dank schon im Voraus,
    Santiago