1. Home
    1. Dashboard
    2. Search
  2. Forum
    1. Unresolved Threads
    2. Members
      1. Recent Activities
      2. Users Online
      3. Team Members
      4. Search Members
      5. Trophys
  3. Articles
  4. Blog
  5. Videos
  6. Jobs
  7. Shop
    1. Orders
  • Login or register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Blog Articles
  • Products
  • More Options
  1. Robotforum - Support and discussion community for industrial robots and cobots
  2. Forum
  3. Industrial Robot Support and Discussion Center
  4. KUKA Robot Forum
Your browser does not support videos RoboDK Software for simulation and programming
Visit our Mainsponsor
IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Sponsored Ads

Interrupt changes advance run behaviour?

  • sloopkogel
  • March 31, 2024 at 6:58 PM
  • Thread is Unresolved
  • sloopkogel
    Reactions Received
    1
    Trophies
    2
    Posts
    34
    • March 31, 2024 at 6:58 PM
    • #1

    I have written a program and wanted to try it out in KukaSim. The program is working fine but after I trigger an interrupt, non of the motions will blend anymore. I have created a simplified version of the program to replicate the problem

    Main:

    Code
    DEF MAIN()
       ;FOLD INI;%{PE}
          ;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)
       $ADVANCE = 1
       PTP $POS_ACT
       ;FOLD SLIN P4 Vel=2 m/s CPDAT4 Tool[1]:TOOL_DATA[1] Base[0] ;%{PE}
          ;FOLD Parameters ;%{h}
             ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=P4; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT4; Kuka.VelocityPath=2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
          ;ENDFOLD
          SLIN XP4 WITH $VEL = SVEL_CP(2.0, , LCPDAT4), $TOOL = STOOL2(FP4), $BASE = SBASE(FP4.BASE_NO), $IPO_MODE = SIPO_MODE(FP4.IPO_FRAME), $LOAD = SLOAD(FP4.TOOL_NO), $ACC = SACC_CP(LCPDAT4), $ORI_TYPE = SORI_TYP(LCPDAT4), $APO = SAPO(LCPDAT4), $JERK = SJERK(LCPDAT4), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
       ;ENDFOLD
       Search()
       ;FOLD SLIN P5 Vel=0.2 m/s CPDAT5 Tool[1]:TOOL_DATA[1] Base[0] ;%{PE}
          ;FOLD Parameters ;%{h}
             ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=P5; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT5; Kuka.VelocityPath=0.2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
          ;ENDFOLD
          SLIN XP5 WITH $VEL = SVEL_CP(0.2, , LCPDAT5), $TOOL = STOOL2(FP5), $BASE = SBASE(FP5.BASE_NO), $IPO_MODE = SIPO_MODE(FP5.IPO_FRAME), $LOAD = SLOAD(FP5.TOOL_NO), $ACC = SACC_CP(LCPDAT5), $ORI_TYPE = SORI_TYP(LCPDAT5), $APO = SAPO(LCPDAT5), $JERK = SJERK(LCPDAT5), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
       ;ENDFOLD
       ;FOLD SLIN P6 CONT Vel=0.2 m/s CPDAT6 Tool[1]:TOOL_DATA[1] Base[0] ;%{PE}
          ;FOLD Parameters ;%{h}
             ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=P6; Kuka.BlendingEnabled=True; Kuka.MoveDataName=CPDAT6; Kuka.VelocityPath=0.2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
          ;ENDFOLD
          SLIN XP6 WITH $VEL = SVEL_CP(0.2, , LCPDAT6), $TOOL = STOOL2(FP6), $BASE = SBASE(FP6.BASE_NO), $IPO_MODE = SIPO_MODE(FP6.IPO_FRAME), $LOAD = SLOAD(FP6.TOOL_NO), $ACC = SACC_CP(LCPDAT6), $ORI_TYPE = SORI_TYP(LCPDAT6), $APO = SAPO(LCPDAT6), $JERK = SJERK(LCPDAT6), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0) C_Spl
       ;ENDFOLD
       ;FOLD SLIN P7 Vel=0.2 m/s CPDAT7 Tool[1]:TOOL_DATA[1] Base[0] ;%{PE}
          ;FOLD Parameters ;%{h}
             ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=P7; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT7; Kuka.VelocityPath=0.2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
          ;ENDFOLD
          SLIN XP7 WITH $VEL = SVEL_CP(0.2, , LCPDAT7), $TOOL = STOOL2(FP7), $BASE = SBASE(FP7.BASE_NO), $IPO_MODE = SIPO_MODE(FP7.IPO_FRAME), $LOAD = SLOAD(FP7.TOOL_NO), $ACC = SACC_CP(LCPDAT7), $ORI_TYPE = SORI_TYP(LCPDAT7), $APO = SAPO(LCPDAT7), $JERK = SJERK(LCPDAT7), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
       ;ENDFOLD
    END
    Display More


    Search:

    Code
    DEF  Search ( )
       INTERRUPT DECL 5 WHEN $IN[1] DO SearchInterrupt()
       SearchMove()
    END

    SearchMove:

    Code
    DEF SearchMove()
       INTERRUPT ON 5
       ;FOLD SLIN P2 Vel=0.1 m/s CPDAT2 Tool[1]:TOOL_DATA[1] Base[0] ;%{PE}
          ;FOLD Parameters ;%{h}
             ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=P2; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT2; Kuka.VelocityPath=0.1; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
          ;ENDFOLD
          SLIN XP2 WITH $VEL = SVEL_CP(0.1, , LCPDAT2), $TOOL = STOOL2(FP2), $BASE = SBASE(FP2.BASE_NO), $IPO_MODE = SIPO_MODE(FP2.IPO_FRAME), $LOAD = SLOAD(FP2.TOOL_NO), $ACC = SACC_CP(LCPDAT2), $ORI_TYPE = SORI_TYP(LCPDAT2), $APO = SAPO(LCPDAT2), $JERK = SJERK(LCPDAT2), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
       ;ENDFOLD
       WAIT FOR TRUE
       INTERRUPT OFF 5
    END
    Display More

    SearchInterrupt:

    Code
    DEF SearchInterrupt ( )
       INTERRUPT OFF 5
       BRAKE
       RESUME
    END

    If I comment out 'Search()' in the main program then the blending of the motions after the 'Search()' call work fine, if I call Search() (and therefore the interrupt) then every motion afterwards will not blend anymore. I also get the following message in the output of KukaSim at the point where the blending is supposed to start:

    KR 10 R1440-2: RRS OP 118 (GetNextStep) message: Approximation not possible

    I have checked $ADVANCE, and it is always 1, I also tried forcing $ADVANCE = 1 after calling Search(), didn't change anything

    - Am I doing something wrong?

    - Is this behaviour to be expected after triggering an interrupt?

    - Or is this probably a KukaSim shortcoming / bug?

    KRC5 KSS 8.7.5 (simulated in Kuka.Sim 4.3)

    Edited 2 times, last by sloopkogel (March 31, 2024 at 7:14 PM).

  • panic mode
    Reactions Received
    1,278
    Trophies
    11
    Posts
    13,079
    • March 31, 2024 at 7:22 PM
    • #2

    sounds you run into a bug. blending P6/P7 should not be affected.

    the only thing i would do is make sure to turn off interrupt after search... you only turn it off IF the interrupt is triggered. but that can be disastrous as possibly robot or program may crash if interrupt trigger did not occur during expected search but some time later.
    there should be line in side SEARCH() directly after SEARCHMOVE() to do just that.

    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

  • sloopkogel
    Reactions Received
    1
    Trophies
    2
    Posts
    34
    • March 31, 2024 at 7:32 PM
    • #3
    Quote from panic mode

    sounds you run into a bug. blending P6/P7 should not be affected.

    the only thing i would do is make sure to turn off interrupt after search... you only turn it off IF the interrupt is triggered. but that can be disastrous as possibly robot or program may crash if interrupt trigger did not occur during expected search but some time later.
    there should be line in side SEARCH() directly after SEARCHMOVE() to do just that.

    Thanks for the input. I have included INTERRUPT OFF 5 in the SearchMove() program (line 10), doesn't this not accomlish what you are suggesting? If the interrupt triggers then INTERRUPT OFF 5 will be called in the interrupt subroutine, if it doesn't get triggered then INTERRUPT OFF 5 will be called at the end of SearchMove()

  • panic mode
    Reactions Received
    1,278
    Trophies
    11
    Posts
    13,079
    • March 31, 2024 at 7:48 PM
    • #4

    ooops my bad... i missed that one, you are correct- all is good...

    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

  • sloopkogel
    Reactions Received
    1
    Trophies
    2
    Posts
    34
    • April 1, 2024 at 8:42 AM
    • #5

    Today I tried the same thing with OfficeLite connected to KukaSim, and now the blending works fine, so this seems to be a KukaSim bug indeed

Advertising from our partners

IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Advertise in Robotics
Advertise in Robotics

Job Postings

  • Anyware Robotics is hiring!

    yzhou377 February 23, 2025 at 4:54 AM
  • How to see your Job Posting (search or recruit) here in Robot-Forum.com

    Werner Hampel November 18, 2021 at 3:44 PM
Your browser does not support videos RoboDK Software for simulation and programming

Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • robodk
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000

Thread Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • robodk
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000

Tags

  • KUKA
  • interrupt
  • kukasim
  • advance

Users Viewing This Thread

  • 1 Guest
  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™
As a registered Member:
* You will see no Google advertising
* You can translate posts into your local language
* You can ask questions or help the community with your knowledge
* You can thank the authors for their help
* You can receive notifications of replies or new topics on request
* We do not sell your data - we promise

JOIN OUR GREAT ROBOTICS COMMUNITY.
Don’t have an account yet? Register yourself now and be a part of our community!
Register Yourself Lost Password
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on Google Play
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on the App Store
Download