Advertising

Posts by panic mode

    this is NOT an IIWA robot with Sunrise Controller and smartPad.


    this is predecessor of IIWA where LR stands for "lightweight robot".


    like with other KRC2 units, teach pendant is KCP2 (Kuka Control Panel).


    So controller KRC2-LR is based on KRC2 but .... not to be confused with other variants like KRC2-SR:


    a) KRC2 and KRC2-ed05 are used for normal KUKA robots

    b) KRC2-SR is small controller for small robot arms (Denso)

    c) KRC2-LR is a small controller for lightweight robot arm (LBR4, predecessor of IIWA).


    all of them have X11 safety interface but .... each of them has different connections.


    in other words do NOT use some random "X11 circuit" such as one for KRC2 or KRC2-SR to make X11 connections on KRC2-LR or the other way around. always use correct documentation for your specific controller type or this can get expensive real fast - if you did not damage it already. for example first two circuits in X11 for KRC2-SR show E-Stop connections 1-20 and 2-21. But that is KRC2-SR and you don't want to make such connections on a KRC2-LR, because each of those connections creates short circuit between pulsed outputs TA24V(A) and TA24V(B)...



    Image below shows how KRC2-LR looks like. Note large label in upper left corner. Read it.

    Then get CORRECT documentation. Read it.

    Then connect things carefully and check your work.

    Then power up.




    So the first thing to check out should be READ FIRST:

    READ FIRST...

    It tells among other things how and where to find info.


    for example:

    https://www.robot-forum.com/at…g-kuka-documentation-pdf/

    https://www.robot-forum.com/at…x11-external-circuit-pdf/

    http://my.kuka.com/

    https://xpert.kuka.com/Account/Login#/

    so external 64-bit system is spitting out string containing 32-bit unsigned value. kuka only uses signed.

    problem should be solved on external system as KUKA has no means to handle positive value larger than mentioned. one workaround is to use pair of 16-bit integers instead of one 32-bit.

    another is to transmit value in binary. if must use string, maybe use hexadecimal format. it is constant width and unambiguous.


    problem is that values exceeding 2^31 in a string format would be kinda ugly to parse because it is a string.

    No offense but... Topic already got TEN responses and... still no clue what exactly you need help with. Would you please try to get to the point and - be specific?


    Q: so what is it that you need?

    A: I need to simulate ..., but this is not my problem right now,this function ...., but it is not my problem right now. quadrature... not a problem.



    Instead of telling what is "NOT the problem", try to narrow down your any and all of your issues to ONE specific and most important thing... What is the single issue that would ultimately help your project move forward? how what you have done with it, what do you want and tell how it does not meet your expectations. that is it.


    and before you respond, please lookup GIGO principle and read pinned topic READ FIRST. it is supposed to tell YOU how to ask for help.


    for example "my interrupt code does not work. it is exactly the same code as before" is not going anywhere. your code in original post has not a single INTERRUPT command. are we supposed to imagine what your code may look like now?

    all KSS versions have problem with large file size. and that is not about to change any time soon. the limits are just a bit wider with newer versions. this is why products like CamRob exist.

    create bunch of subprograms


    then create expert module called CALL_SUB:


    DEFDAT Call_Sub PUBLIC

    GLOBAL ENUM SUBS_T Open_gripper, close_gripper, go_home

    ENDDAT


    DEF Call_Sub(_sub:in)

    DECL SUBS_T Subprogram

    SWITCH _sub

    Case #go_home

    Go_Home()


    Case #open_gripper

    Open_Gripper()


    Case #Close_gripper

    Close_gripper()


    Default

    MsgQuit("Subprogram not handled")

    ENDSWITCH

    END




    Then in your programs do something like



    Call_Sub(#go_home)

    Call_Sub(#open_gripper)

    WAIT SEC 3

    Call_Sub(#close_gripper)

    what...?


    KRC4 can use CIP safety, but only as a slave. Laser scanners and various other sensors that that can use CIP safety are aalso slaves only. In other words they can NEVER talk to each other directly. They all need MASTER and that would be - CIP Safety capable SafetyPLC.

    banner can be gray or red or missing


    gray banner means no safety interface is defined or active so drives cannot be enabled by safety circuit. no StartUp mode is possible. solution is to configure one of four possible safety interfaces.


    red banner means safety interface is configured and active but not happy. normally this is displayed when using network based safety (CIP Safety, ProfiSafe or FSoE) and SafetyPLC is not connected or KRC is unable to find its safety master. in this case StartUp mode is possible so one can move robot etc but operation in AUT or EXT is not possible. solution is to get SafetyPLC and KRC talking.


    missing banner means safety interface is present and working....

    so what is it that you need?


    what do you mean by two pulse vectors? quadrature signal (dual channel)? or something else?


    12ms is extremely accurate ... if the speed is sufficiently low.... and for a student project , it is the principle that matters so you can choose speed sufficiently low.


    you can replace the GOTO with endless loop, it would do the same thing and without GOTO.


    if you want to put everything into one program without use of subs, FOILDs can be used to organize code and maintain overview.