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

BAS(#TOOL,1) vs $ACT_TOOL=1

  • sloopkogel
  • March 19, 2024 at 6:45 AM
  • Thread is Unresolved
  • sloopkogel
    Trophies
    2
    Posts
    34
    • March 19, 2024 at 6:45 AM
    • #1

    What is the difference in the 2 following examples, and why would you choose one over the other:

    example 1:

    BAS(#TOOL,1)

    example 2:

    $TOOL=TOOL_DATA[1]

    $ACT_TOOL=1

  • Go to Best Answer
  • hermann
    Reactions Received
    404
    Trophies
    9
    Posts
    2,595
    • March 19, 2024 at 7:04 AM
    • #2

    The code of bas is readable, you can have a look into it and check by yourself what the difference is. :winking_face:

  • sloopkogel
    Trophies
    2
    Posts
    34
    • March 19, 2024 at 9:24 AM
    • #3

    Thanks for your reply. I took a peek in BAS.src and it seems that using BAS(#TOOL,1) also sets $LOAD variables according to the tool number

    Am I correct in thinking that using example 2 in my previous post would be more suitable for most cases? (eg. moving robot to a given point without using ILF)

  • hermann
    Reactions Received
    404
    Trophies
    9
    Posts
    2,595
    • March 19, 2024 at 9:29 AM
    • #4

    I don't think that example 2 is the better way.

    You checked that the first example also sets the load, I think load should also be set when you don't use ILF, don't You?

  • Roland Keller
    Reactions Received
    12
    Trophies
    5
    Posts
    60
    • March 19, 2024 at 9:33 AM
    • #5

    With $TOOL = TOOL_DATA[1] you move the robot without load data when you write the move command in KRL

    Edit says

    oops Hermann was faster

  • sloopkogel
    Trophies
    2
    Posts
    34
    • March 19, 2024 at 12:03 PM
    • #6
    Quote from hermann

    I don't think that example 2 is the better way.

    You checked that the first example also sets the load, I think load should also be set when you don't use ILF, don't You?

    Oops! I meant to say example 1 is the better way

  • Online
    SkyeFire
    Reactions Received
    1,038
    Trophies
    12
    Posts
    9,375
    • March 19, 2024 at 2:05 PM
    • Best Answer
    • #7

    Using BAS is convenient, but not necessary. KUKA included BAS mostly to support Inline Form programming. As you've seen, setting the Tool with BAS automatically sets $ACT_TOOL and $LOAD, along with $TOOL. This allows Inline Form motion points to only select a Tool number and let BAS do everything else for them.

    As far as I am aware, $ACT_TOOL has no effect on the robot, it just updates the "active tool" number shown in the pendant display. If you control $TOOL directly, it's possible to forget to update $ACT_TOOL, so the pendant display will not match your actual active tool.

    OTOH, avoiding BAS lets you do things like change $LOAD when you pick/drop a payload without needing to set up duplicate Tools (Tool 1 for an empty gripper, Tool 2 for a full gripper, with identical XYZABC but different LOAD_DATA values). It's also handy if, for some reason, you don't want to use the TOOL_DATA array.

    Most of the time, BAS is the better option. But KRL allows you the flexibility to choose.

  • sloopkogel
    Trophies
    2
    Posts
    34
    • March 21, 2024 at 12:39 PM
    • #8

    One more question: I have a robot with an external axis (E1), and there at a certain point I want to move only that axis. I have done this with the following code:

    Code
    StartPos = $pos_act
    StartPos.E1 = 30.0
    
    ;FOLD SPTP StartPos Vel=10 % PDAT1 Tool[1] Base[17] ;%{PE}
    ;FOLD Parameters ;%{h}
    ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.PointName=StartPos; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT1; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
    ;ENDFOLD
    SPTP XStartPos WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FStartPos), $BASE = SBASE(FStartPos.BASE_NO), $IPO_MODE = SIPO_MODE(FStartPos.IPO_FRAME), $LOAD = SLOAD(FStartPos.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
    ;ENDFOLD

    This works fine

    This also works, but E1 is rotating extremely slow:

    Code
    StartPos = $pos_act
    StartPos.E1 = 30.0
    
    BAS(#VEL_PTP,30)
    BAS(#ACC_PTP,30)
    BAS(#TOOL,1)
    BAS(#BASE,17)
    
    PTP StartPos

    Is there something else I need to do to initialize speed for axis E1? Something that is happening in the inline form that I'm skipping?

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

Similar Threads

  • MANY DIFFERNT LOADING DATA FOR A SINGLE TOOL

    • IlFincoITA
    • September 17, 2021 at 9:07 AM
    • KUKA Robot Forum
  • array/grid-wise measurement with kuka robot

    • El_Mo
    • June 25, 2022 at 3:43 PM
    • KUKA Robot Forum
  • Not linear trajectory

    • Vlad222
    • July 28, 2020 at 4:02 PM
    • KUKA Robot Forum
  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