RobotStudio event

Second Axis limit.

Hello,

Is it possible to limit the second axis of the robot using code?. I know the "RobotStudio Online" method, but it's not useful for me because I need to change this limit by code, for example:  

MoveL *, v500, z0, tool0; 

Limit_Axis 2, 0, 35; !Limit_Axis (axis to be limited, lower bound, upper bound);

MoveL *, v500, z0, tool0; 

Limit_Axis 2, 4, 35;  (new limit)

MoveL *, v500, z0, tool0; 

There are some kind of function like "Limit_Axis" that can solve my problem ??

PS: World zones is not what I'm looking for.

Thanks so much to all,

Damia

Comments

  • Hi Damia,

    I am no expert in RAPID, but I am not aware of any such instruction or how it can be written. Maybe someone else is? I suppose you need to add a background task that monitors axis values in some way. What do you want to happen if the limit is exceeded? Program stop?

    As I understand it, you want to limit the axis during run-time. I can understand that you want to limit the axis during program creation, but once the program is created, the robot motion is completely defined by the program. The robot motion is deterministic. From my point of view there should not be a need to add additional constraints to the program.

    My recommendation is to use RobotStudio to create the program or to verify an existing program. You can execute the created program with the Joint Jog Tool activated to watch the joint values of the interesting axis. The you will have full control over program execution and does not risk damaging any equipment.

    Kind regards

    Henrik Berlin
    ABB
  • Hi Damia,

    What I know is it two ways to do this.

    The first is to use the instruction "WriteCfgData", which writes in new config data to the system (e.g. joint limits), but that require a restart (warmstart) of the controller afterwards.

    The other way is to use the world zone instruction "WZLimJointDef", which defines a world zone for limitation in joints.

    Best regards,
    Anders Spaak
    ABB Robotics
  • Hi
    I guess another way to do it(but I'm not sure if that's what you want to do) is to read out the joint values(take a look at CalcJointT) from the robtarget before you execute the motion, and if some axis is outside you just ignore the motion.
    Per Svensson
    Robotics and Vision Specialist
    Consat Engineering
  • [QUOTE=PerSvensson]Hi
    I guess another way to do it(but I'm not sure if that's what you want to do) is to read out the joint values(take a look at CalcJointT) from the robtarget before you execute the motion, and if some axis is outside you just ignore the motion.
    [/QUOTE]

    Or, use CalcJointT to get the angles, check any angles to see if they're past their limit, set them to the limit, and then send those angles..?

    actually, i have the exact same problem...will report back results if i dont forget.