Deactivating ESM??

  • Im working on an application with Kuka sunrise 1.16.


    I have a few ESM functions that I activate in one of my applications. I got an error from that application so I tried to jog my Kuka iiwa 7 r800 back to its start position. However, it wouldnt allow me to as the ESM was still triggering - even after deselecting the application. I then go to try and run a different application - that doesnt consist of any ESMs to be activated however it is still triggering a stop of motion in that application which i believe is due to the ESM currently active.


    Is there a way to deactive an ESM in a new application and is it possible to jog the robot without the ESM not being triggered.

  • when using ESMs, there is always one active -the one you activated last... and it does not matter which program selected ESM. once you use ESM, you need to ensure to correct ESM is selected - in EVERY program... because one that selected ESM may have crashed before restoring another ESM selection and controller does not automatically switch back to previous ESM when program ends

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • Hello,


    A simple way to make a function of "deactivating ESM" is making an ESM which has no extra effect of safety such as "Emergency stop Local".

    It is already set on KUKA-PSM, and by changing the ESM state to this one, it will work like there's no additional AMF. -But you will see two errors when Local E-stop is pressed-.


    Switch to KRF when ESM is violated. You will still be able to jog the robot and once the safety is insured, the mode will be automatically switched to T1.

  • Hello JM212,


    I am currently experiencing the same problem as you but I am new to kuka iiwa. I don't know how to retrieve the information of whether a program is running or not to change EMS.

    Can you share your background task code?

    I will be very grateful.

  • Hello JM,


    I think you can't do it with a one line code from a background task if you're not using Sunrise,StatusController option.

    However you can still make use of other things.


    You could get ITask instance of your Application class.

    Code
    --Your backgroundTask
    
    @Inject
    private ITaskManager taskManager;
    
    run() {
        ITask robotApp = taskManager.getTask(YourApplicationName.class);
        // use try-catch - You will get TaskNotAvailableException if your Application is not running.
    }

    You could also make use of ProccessData as a Flag to see if your Application is running.

Advertising from our partners