RobotStudio event

ModPos vs Modifying Values

edited March 2019 in RobotStudio

I am the lead robot programmer in my laser welding plant, but have several people under me that work with robots. Their daily work consists of reteaching the welds and the welded components are in specification.

The problem I have is when they reteach the welds, they go into the program data or select the robtarget -> view value and then change the X,Y, or Z values instead of driving the robot into the new position and ModPos. Because we are primarily laser welding, our robots are enclosed inside a light tight box with no way of viewing the robot while in auto. In manual, the laser is disabled so there is no safety concern and they can drive the robot into position and have a view of where the robot is pointing.

The issue with modifying robtarget values instead of ModPos is that they can "fat-finger" the numbers when typing in the new values or forget the decimal point. This could cause the robot to crash and damage our laser optic (~$20k each) or cause bad welds that don't meet specification because they adjusted in the wrong direction.

Maybe it's just the plant I work in and the people we have working for us, but no matter how many times we tell them not to type in values and use ModPos instead, they want to do what is quickest and easiest even though it's not the best/safest way to do the job.

Is there a way to prevent them from modifying values and only use ModPos? I have looked into UAS and user levels, but it groups ModPos and modifying values into the same group grant.


  • lemster68
    lemster68 ✭✭✭
    If you use hotedit, it will at least limit how much it can be changed.  Still nothing to prevent them from viewing the data and changing...or is there?  Just came to me as I was answering, try to declare your robtargets in a noview module.  I don't have time today to test it.
    Lee Justice
  • soup
    soup ✭✭✭
    edited March 2019
    I don't know your process, but if you can predict that someone would reteach at certain times, you could wrap the move in a Move Instruction with a Boolean to turn "teach" on or off.

    MoveL bla;

    WhateverL bla;

    PROC WhateverL(INOUT robtarget input)
       IF bTeachMode = True THEN
          UINumTune(input.x) ! allow them to adjust in certain directions before then doing the move?
       Move L input;

  • DenisFR
    DenisFR ✭✭✭
    Or you can have a copy of each robtarget (theoretic values) in noview module and check current values doesn't differ too much from theoretic ones.
  • lemster68
    lemster68 ✭✭✭
    What version of controller and software?  There used to be an absolute limit modpos setting which would store the original robtarget as data type o_robtarget.
    Lee Justice
  • 5.14.2031 is the version.

    I thought about creating a world zone around each weld and it would trigger it if they moved outside the zone, however we have about 30 welds per cell and that is a lot of teaching world zones.

  • soup
    soup ✭✭✭
    @Mitchell on that note, why don't you just do a compare the x, y, z of the edited target with a master target before allowing the move?