Not clear whether you want to do it manually or programatically.
If programatically, will you allow robot movement for that, and is the frame origin physically reachable?
Not clear whether you want to do it manually or programatically.
If programatically, will you allow robot movement for that, and is the frame origin physically reachable?
Why not use SKIP in the move instruction(s)?
I wonder, why this must be done in BG logic and not in called-on-demand subroutine.
With v9 robot software, and assuming the subject frame is active, this should work in BG Logic:
R[x:Active UF X]=($SV_INFO[1].$CART_POS[1]-$SV_INFO[1].$CART_POS_UF[1])
Since the position reading in BG logic has certain lagging during the robot motion, the most precise result will be on non-moving robot.
Don’t know if this suits your application but I’ve used the Wrist joint modifier on linear moves to pass close to singularity before.
This is just another way of distorting linear movement, probably even more than by singularity avoidance.
RTFM!
SPOT-003 Water saver OK fault %s
Cause: The water saver input is low.
Remedy: Check the input from the weld controller, and reset as necessary.
Use Distance Before and set it to minimum value.
The robot model is irrelevant. What is the controller model and the software version?
The main problem with so old system is not its capabilities or spare parts. It may not comply with today's safety regulations.
How do you detect "small collision"?
If with collision guard, the program stops, hence any further code will not execute.
It would be interesting though to test the collision as the skip condition, to see upon the program resume whether the move instruction was skipped before the stop.
This approach only works with fine points. When you use continuous points, the register will change in advance.
But you can set a GO within every movement (that's done in the correct physical position), then use that GO for checking the position.
What do you mean by "set a GO within every movement "? DB?
That's true.
Unfortunately, the OP's "remember where it's at in a program" is not clear. I would restart based on "where it is in the cage".
This being said, it's unclear why abort the program if it has to be resumed/completed.
$MOR_GRP[1].$currentline indicates the line number in the program that generated the current or last motion.
So, can you share the solution?
IF instructions with no brackets do not support position registers.
Use IF(...) instruction.
" I don't have the option to use IF with PRs."
What makes you think so? This ability is not an option.
The syntax provided works on R30iA and R30iB.
Are you editing on the robot teach pendant or in PC text editor?
What are your regional settings for decimal separator? Is it . or , ?
The correct syntax with no redundant brackets is:
IF (PR[5,1]>155 AND PR[5,1]<175),JMP LBL[22]
In the move instruction, specify the move time, not speed.
This will automatically apply the necessary linear and rotation speeds.
Hi everyone
I am looking for a system variable indicating the joint remaining rotation to the move target.
In any units: degrees, encoder pulses, fraction of the move segment.
R30iB Plus.