BrakeTestReq() not runninfg

  • Good Morning everyone,


    i have the issue, that my Brake Test will not start when called. When selecting the program manually and run it, a message appears - asking if i want to run BT manually. When acknowledged, BT runs and works fine. When called by PLC or by a manual running program, it just don´t do anything. Single step mode i can see the cursor staying for "play" button being pressed some times in the BT program, then continue the origin program (in my case - cell).


    It´s a KR 10 R1100-2

    Version 42.49.20.12

    SafeOperations

    Firmware 8.6.5


    This is where it´s called in cell.src:

    CASE 5


          P00 (#EXT_PGNO,#PGNO_ACKN,DMY[],0 ) ; Reset Progr.No.-Request


    $OUT[965] = True


    $OUT[2] = False


    WAIT FOR  ( $IN[965] )


          BrakeTestReq ( )


    $OUT[2] = True


    $OUT[965] = False


    WAIT FOR  NOT ( $IN[965] )


    i have deleted the fold descriptions for better reading.


    Any suggestions?


    Thanks to all :smiling_face:

  • Have you tried making the BrakeTest Routine "visible" and then step through or at least to see where it exactly it hangs inside? Visible attribute can be set by the KUKA HMI menue for every source file. If set to true you see the content of the src if set to false programm pointer visually just steps over it and you do not see the content running. Its the same as e.g. for bas.src.


    Fubini

  • No that is probably exactly where I meant. I do not have access to any controllers any more so the exact menues item locations are always hard to remember. AFAIK he should then enter the BrakeTestReq for you to see on the SmartHmi so i am a bit confused why this does not happen. Do you have any idea in whicht line of code the routine is exited? Maybe doing it old fashioned by adding halts inside the routine?


    Fubini

  • Did you check if the brake test is requested from external ($BRAKETEST_REQ_EX) or internal ($BRAKETEST_REQ_INT) when running the program? You could try a cold start (which will request a brake test) and then run the program again.

  • just read the manual. it tells you everything you need to know. see READ FIRST.


    in the past you would call brake test by

    BrakeTestReq()


    and if brake test is not required, that call is simply ignored.


    when you run brake test it simply tests all axes and that takes some 30seconds or so. but - in many cases that is not desirable as production is priority and available robot idle time can be shorter in many processes (5-10 seconds). it would be good if one could use those short intervals to do partial brake test.


    and KUKA listened. so since KSS8.5 there was a change... it is now possible to

    a) run production,

    b) then do brake test on specific axis or axes,

    c) run more production,

    d) do brake test on other axes etc.


    as a result above mentioned brake test call is modified to let you specify which axes are supposed to be tested.


    BrakeTestReq('B111111') ; Brake test A1-A6


    or you can do something like:


    BrakeTestReq('B000001') ; Brake test only A1

    BrakeTestReq('B110010') ; Brake test only A2, A5 and A6

    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

  • you need to get manual for your version of software. each KOP contains manuals too. then there is the Xpert portal


    comparing correct version manual to another version (older etc.) can be interesting as other versions may mention additional things, not found in your version. or they may have nicer explanation of things. but the manual to really use a reference is the one that comes with actual product. This is why cover of each manual tells what software version manual applies to.

    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

  • The issue here is, that the plant has been manufactured by another company and we have taken over because of bancrupt manufacturer. So there is no documentation. I will have a look at the kop files and probably at the xpert portal... Thanks

  • the systems you are working on are using KSS8.x and you must be using WorkVisual.

    to successfully deploy project using WoV, needed KOPs must be integrated into WoW, added to project and will show up in Options Catalog when project is open. There you can see the files directly - doubleclick on PDF or example programs.


    in the past, KUKA was delivering documentation on discs (known as "Parts and Docs"). Now everything is online and as mentioned in READ FIRST, one finds the files at Xpert portal. Access to Xpert simply requires registering using non-disposable email. That give you Basic access. one can of course subscribe and pay KUKA for access to more resources.

    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

  • Hi everybody,


    i am currently trying to solve another issue with the braketest.

    I turnthe DO31 on when the $BRAKETEST_REQ_INT is true.

    The Robot gets the case 5 sent by PLC and runs the BT properly. But after that, the Braktest_REQ_INT wont get false!! Doing it manually in T1, turns the vraiable to false and we can produce normally. In auto extern the variable sticks with true and we are stuck in a braketest loop.


    program call in CELL:

    CASE 5


          P00 (#EXT_PGNO,#PGNO_ACKN,DMY[],0 ) ; Reset Progr.No.-Request


    ;FOLD OUT 2 'Auftrag Ende' State=False ;%{PE}


    ;FOLD Parameters ;%{h}


    ;Params IlfProvider=kukaroboter.basistech.inlineforms.logics.out.out; Kuka.Logics.Io=2; Kuka.Logics.IoName=Auftrag Ende; Kuka.Logics.State=False; Kuka.Logics.Cont=False


    ;ENDFOLD


    $OUT[2] = False


    ;ENDFOLD


    ;FOLD OUT 965 'Freigabe 5 Bremsentest' State=True ;%{PE}


    ;FOLD Parameters ;%{h}

    ;ENDFOLD


    $OUT[965] = True


    ;ENDFOLD


    ;FOLD WAIT FOR ( IN 965 'Freigabe 5 Bremsentest' ) ;%{PE}


    ;FOLD Parameters ;%{h}

    ;ENDFOLD


    WAIT FOR  ( $IN[965] )


    ;ENDFOLD


    ;FOLD WAIT FOR ( IN 8 'Bremsentest Anforderung' ) ;%{PE}


    ;FOLD Parameters ;%{h}


    ;ENDFOLD


    WAIT FOR  ( $IN[8] )


    ;ENDFOLD


          BrakeTestReq ( )


    ;FOLD OUT 2 'Auftrag Ende' State=True ;%{PE}


    ;FOLD Parameters ;%{h}

    ;ENDFOLD


    $OUT[2] = True


    ;ENDFOLD


    ;FOLD OUT 965 'Freigabe 5 Bremsentest' State=False ;%{PE}


    ;FOLD Parameters ;%{h}

    ;ENDFOLD


    $OUT[965] = False


    ;ENDFOLD


    ;FOLD WAIT FOR NOT ( IN 965 'Freigabe 5 Bremsentest' ) ;%{PE}


    ;FOLD Parameters ;%{h}

    ;ENDFOLD


    WAIT FOR  NOT ( $IN[965] )


    ;ENDFOLD


    ;FOLD OUT 31 'Bremsentest notwendig' State=False ;%{PE}


    ;FOLD Parameters ;%{h}


    ;ENDFOLD


    $OUT[31] = False


    ;ENDFOLD


    The decision mde in sub sps:


    IF $BRAKETEST_REQ_INT==TRUE THEN


    $OUT[31]=TRUE


    ELSE


    $OUT[31]=FALSE


    ENDIF


    Can anybody guess why the variable wont get true in auto external?

  • not sure... cannot tell what the purpose of the IO is and where the brake test is called and how exactly is case 5 in CELL supposed to be reached if you run this in T1.


    but... why not stick with use of CELL the way it is meant to be? just a launcher for user programs.


    put all of your code into your own program files.... then just call them from CELL. each case in cell should only have one user line - name of the program to call. makes it better organized, more portable, easier to troubleshoot etc. and if you want to test your code in T1 or T2 or AUT - run it as a main program without CELL.


    i tend to make separate program to just call to brake test and safe operation. then this is called from with my main program when robot is at home. if the tests are needed, they are performed. if not needed, program skips through and runs rest of the main. easy peasy...


    content of SafeOperaiton.SRC

    Code
    DEF SafeOperation( )
      MASREF_MAIN()
      BRAKETESTREQ('B111111')
    END

    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

  • Hi, sorry for the late response.

    It's been the DI 8. That's the one turned on when break test is requested by plc. First situation was, the customer requested a timer from plc to start breaktest AND the internal timer to start it. For starting the BT without the internal request, we needed to use the external signal DI 8. Then the robot was sent into an eternal loop when the internal timer AND the external signal came because the plc processing was somehow wrong and it didn't turn off the request. So we turned down the possibility to request it by timer from plc and now its working fine!

Advertising from our partners