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

one doubt about a KUKA instruction.

  • danao
  • October 23, 2020 at 4:25 PM
  • Thread is Unresolved
  • danao
    Trophies
    2
    Posts
    37
    • October 23, 2020 at 4:25 PM
    • #1

    Hi all.

    anybody knows how can i do to program a searching routine/movement in a robot KUKA as it does in ABB?

    Thanx.

  • SkyeFire October 23, 2020 at 4:27 PM

    Moved the thread from forum General Discussion of Industrial Robots Only to forum KUKA Robot Forum.
  • Online
    SkyeFire
    Reactions Received
    1,038
    Trophies
    12
    Posts
    9,370
    • October 23, 2020 at 4:31 PM
    • #2

    Unlike RAPID, KRL does not have a dedicate "search move" function. Instead, you create an Interrupt that triggers on a particular input or inputs. The Interrupt calls an "interrupt service routine" that you craft to carry out whatever you want the robot to do when the Interrupt occurs.

    There's a lot about this in the forum archives, but it sounds like you'll want to create a dedicated Search Motion subroutine, containing your motion and interrupt, then an ISR that uses BRAKE to halt the robot physically, then RESUME (which is very badly named!) to cancel the in-progress motion and (this is important!) return the program pointer to the level where the Interrupt was declared. So if your Main program has the DECL INTERRUPT, the RESUME command in the ISR would basically skip the entire remaining portion of the Search subroutine, and the program pointer would jump to the line in Main immediately after the call to Search.

    It's more work than coding a search in RAPID, but gives you much more granular control in return. Which is a pretty common pattern, comparing KUKAs to ABBs, in general.

  • danao
    Trophies
    2
    Posts
    37
    • October 23, 2020 at 4:36 PM
    • #3
    Quote from SkyeFire

    Unlike RAPID, KRL does not have a dedicate "search move" function. Instead, you create an Interrupt that triggers on a particular input or inputs. The Interrupt calls an "interrupt service routine" that you craft to carry out whatever you want the robot to do when the Interrupt occurs.

    There's a lot about this in the forum archives, but it sounds like you'll want to create a dedicated Search Motion subroutine, containing your motion and interrupt, then an ISR that uses BRAKE to halt the robot physically, then RESUME (which is very badly named!) to cancel the in-progress motion and (this is important!) return the program pointer to the level where the Interrupt was declared. So if your Main program has the DECL INTERRUPT, the RESUME command in the ISR would basically skip the entire remaining portion of the Search subroutine, and the program pointer would jump to the line in Main immediately after the call to Search.

    It's more work than coding a search in RAPID, but gives you much more granular control in return. Which is a pretty common pattern, comparing KUKAs to ABBs, in general.

    thank you very much for the info SkyeFire

  • danao
    Trophies
    2
    Posts
    37
    • October 26, 2020 at 11:40 AM
    • #4
    Quote from SkyeFire

    Unlike RAPID, KRL does not have a dedicate "search move" function. Instead, you create an Interrupt that triggers on a particular input or inputs. The Interrupt calls an "interrupt service routine" that you craft to carry out whatever you want the robot to do when the Interrupt occurs.

    There's a lot about this in the forum archives, but it sounds like you'll want to create a dedicated Search Motion subroutine, containing your motion and interrupt, then an ISR that uses BRAKE to halt the robot physically, then RESUME (which is very badly named!) to cancel the in-progress motion and (this is important!) return the program pointer to the level where the Interrupt was declared. So if your Main program has the DECL INTERRUPT, the RESUME command in the ISR would basically skip the entire remaining portion of the Search subroutine, and the program pointer would jump to the line in Main immediately after the call to Search.

    It's more work than coding a search in RAPID, but gives you much more granular control in return. Which is a pretty common pattern, comparing KUKAs to ABBs, in general.

    hi again SkyeFire .

    I´m having hard troubles to declare the interrupt. i don´t know if you could help me.

    reading a lot of manuals i see diferents ways but noone works:

    -declaring the interrupt in src ( DECL INTERRUPT INTER1 or INTER1()) it says: unkown type.

    -writing "INTERRUPT DECL 4 WHEN &IN[6]==TRUE DO INTER1", it says: name no declared as sp".

    -declaring INTER1 as: DECL GLOBAL INT INTER1" in dat, it don´t say anythingbut don´t recognize anything anywhere.

    i tried to the declare "&INTER1" as a variable but is no posible.

    By the vkr i cant select the instruccion "INTERRUP" because this ain´t on the softkey menus.

    have you got any idea?

  • hermann
    Reactions Received
    403
    Trophies
    9
    Posts
    2,593
    • October 26, 2020 at 12:33 PM
    • #5

    There are so many examples for interrupts here in the forum, please use search function.

    F.e.: RE: Motion stop

    but in that post in line 2 IN[1] shoud be $IN[2].

  • Online
    panic mode
    Reactions Received
    1,262
    Trophies
    11
    Posts
    13,027
    • October 26, 2020 at 1:08 PM
    • #6

    use search term:

    RESUME command


    (both words)

    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

  • danao
    Trophies
    2
    Posts
    37
    • October 26, 2020 at 2:23 PM
    • #7
    Quote from hermann

    There are so many examples for interrupts here in the forum, please use search function.

    F.e.: RE: Motion stop

    but in that post in line 2 IN[1] shoud be $IN[2].

    it seems it doesnt works in this way.

    i wrote exactly your code but shows a lot of errors.

    maybe it could be because it´s an very old kr150 and an old vkrc1

    Images

    • IMG_20201026_141951_autoscaled.jpg
      • 172.46 kB
      • 1,600 × 1,200
      • 18
  • Online
    panic mode
    Reactions Received
    1,262
    Trophies
    11
    Posts
    13,027
    • October 26, 2020 at 2:30 PM
    • #8

    please change HMI language to English so we can understand messages. this is English forum. there are sub forums for other languages, pick one,,

    interrupt is just a way to call a subprogram.

    if you have program called DO_SOMETHING.SRC

    it can be used as a subroutine. then calling it from other program would require typing name in the main program as

    DO_SOMETHING()

    but if you want to call it using interrupt, line is longer (as you have typed) and contains other syntax elements.

    in both cases if the subroutine is missing (or maybe it is named differently), you will get message that it cannot find it.

    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

  • Online
    panic mode
    Reactions Received
    1,262
    Trophies
    11
    Posts
    13,027
    • October 26, 2020 at 2:31 PM
    • #9

    also read READ FIRST...

    when posting screenshots, make sure entire screen is visible and readable.

    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

  • hermann
    Reactions Received
    403
    Trophies
    9
    Posts
    2,593
    • October 26, 2020 at 2:38 PM
    • #10

    That code should also work on your old robot.

    As I already told you the statement IN[1] (in your case IN[6]) mus be $IN[1] (in your case $IN[6]).

    But there must be some other requirements like a defined e6pos P1 and P2.

    That are basics. The forum can't serve a complete programming course.:frowning_face:

  • danao
    Trophies
    2
    Posts
    37
    • October 26, 2020 at 2:42 PM
    • #11
    Quote from panic mode

    please change HMI language to English so we can understand messages. this is English forum. there are sub forums for other languages, pick one,,

    interrupt is just a way to call a subprogram.

    if you have program called DO_SOMETHING.SRC

    it can be used as a subroutine. then calling it from other program would require typing name in the main program as

    DO_SOMETHING()

    but if you want to call it using interrupt, line is longer (as you have typed) and contains other syntax elements.

    in both cases if the subroutine is missing (or maybe it is named differently), you will get message that it cannot find it.

    Display More

    sorry about the language in the hmi.

    Finally the matter was because i din´t wrote all the subroutines.

    now it seemesit doesnt give any error.

    gonna try if the robot do what he must do

  • danao
    Trophies
    2
    Posts
    37
    • October 26, 2020 at 3:32 PM
    • #12
    Quote from hermann

    That code should also work on your old robot.

    As I already told you the statement IN[1] (in your case IN[6]) mus be $IN[1] (in your case $IN[6]).

    But there must be some other requirements like a defined e6pos P1 and P2.

    That are basics. The forum can't serve a complete programming course.:frowning_face:

    it doesn´t show any error already. everything is defined (e6pos) in the .dat of the main, and the IN is with $.

    Now i try to run it and the only message it shows is " interrupt 3 not defined". Do you know where or how i must define it?

  • danao
    Trophies
    2
    Posts
    37
    • October 26, 2020 at 3:33 PM
    • #13
    Quote from panic mode

    also read READ FIRST...

    when posting screenshots, make sure entire screen is visible and readable.

    i think my mobile has too much definition, sorry

  • hermann
    Reactions Received
    403
    Trophies
    9
    Posts
    2,593
    • October 26, 2020 at 3:53 PM
    • #14

    Simplest solution for interrupt 3 problem is to copy the INI fold from the template or a program that was created with the KUKA HMI.

  • Online
    SkyeFire
    Reactions Received
    1,038
    Trophies
    12
    Posts
    9,370
    • October 26, 2020 at 3:54 PM
    • #15

    Interrupt 3 DECL is normally part of the INI fold of standard KUKA programs. If you skipped over the INI, that could cause the "Interrupt 3 Not Defined" message.

  • danao
    Trophies
    2
    Posts
    37
    • October 27, 2020 at 2:22 PM
    • #16
    Quote from hermann

    Simplest solution for interrupt 3 problem is to copy the INI fold from the template or a program that was created with the KUKA HMI.

    Quote from SkyeFire

    Interrupt 3 DECL is normally part of the INI fold of standard KUKA programs. If you skipped over the INI, that could cause the "Interrupt 3 Not Defined" message.

    thank you guys. the robot works perfectly.

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
  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