How can you program a movement that is independent of the slider speed

Hi together,

i have a UR10e robot. It has two important movements. The customer wants to adjust only one movement with the sliderspeed. The other one must be at the predefined speed.

If I set the slider speed to 100% between the two movements with a script and then back to the “customer-slider-speed” then the robot makes a very brief noticeable stop.

How can i handle this poblem?

1 Like

Why can’t you just set the speed parameter of that move to whatever it needs to be?

Without seeing your program and what you are doing I can only guess how you are writing your program. From my understanding all of your programming should be done based off your slider speed running at 100% when it is in full production and you make adjustments within your waypoint settings for individual speeds within your program. Granted when I am proofing out a program I am not running at full speed for safety reasons but I speed up and slow down my movements with the 100% slider in mind.

The customer needs to change the slider speed while the robot is running.

Let us say the robot has to do two things. He is filling something. And he has to transfer something. And he is doing this alternating. First filling, then transport, then filling, then transport, … endlessly. The slider-speed-change should only affect the “filling motion” but not the “transfer motion”.
The “transfer motion” has always run with (our) predefined maximum speed. But the “filling motion” has to be changed while robot is running multiple times.

What am I missing here? You shouldn’t ever need to adjust the speed slider unless you’re manually dialing stuff in during setup. You can just set the speeds of individual waypoints:

Transfer Motion waypoint with speed and acceleration maxed out:

The Filling Motion waypoint with the speed and acceleration at the minimum:

These are in the same moveJ, but the first waypoint will zip through the air, and the second one will barely move at all. The speed slider is at 100% the whole time.

Does this not work for you?

I agree with Eric. If you use an L move it will give you a different way to adjust speed for those move types as well. If using a J move I like to use the time adjuster to make it so i don’t have to think lol but you can tell it “take 10 seconds to do this move” which should make it really easy. I run my robots locked so employees can’t accidently delete anything and when you run it locked you don’t have a slider to adjust it runs at 100% only. It sounds like you are making your program way more complicated than it needs to be.

If they’re adjusting speed because some container/contents combinations are different and therefore require slower speeds, can you just ask the operator at the beginning of the run which combination they’re using (or what speed they need), and adjust a speed parameter accordingly?

Another option (more complicated up front, but easy to use) would be to add a speed control device with a knob or lever which ties in to one of the inputs (probably analog).
I’m not an electronics guy, but I don’t think that would be too hard to set up - might be something available pretty much off the shelf.
I would call the move command in a script and have the speed defined by a variable tied to the voltage or current value from the external device.

1 Like

Can you post your program? It’s hard to tell what you’re trying to do without seeing the program and even the process if that is something that could be shared. Originally I thought you were trying to change speeds from one waypoint to another and now it sounds like you are trying to run two programs i.e. run one program moving something but that program has a lot of time between when you need to move things so while the robot waits you want it to do another task filling. Or you are transporting stuff for a certain amount of time then once you have enough units you are then filling them in to a box? Really hard to help when we have no idea what you need to do.

The first option would be best, you can ask the operator for input on what they want to happen and go accordingly. Hardwiring speed controls aren’t necessary with all the options available on the programming side. That being said you can easily have electrical switches that you turn off and on to tell the robot where and what to do. Sometimes that is less confusing to operators than typing something on a screen or clicking yes or no.

It would be a nice feature request for a MOV speed to be set to a variable instead of having to hard code them.

My big bots all have that ability

If you use a script line with a movel(), movej(). or movep() in your program you can assign the speed, accel, pose, and blend radius all to variables if you want.

As for christian.dietzel’s original question: my reccomendation is to use dpeva’s suggestion and use one of the analog inputs to control the value of a variable and then use that variable as the speed value in your move command.

I agree with the others, that you always should aim for a speed slider of 100%. Find other ways to change speed such as variables and script moves, as Duncan mentions. :slight_smile:

However, you can achieve your request, if you connect a potentiometer to an analog input and use that to set the speed.
You can set the speed slider from within your program by following this article:
https://www.universal-robots.com/articles/ur/programming/setting-the-speed-slider-inside-program/

As far as I know, it is not possible to read the current speed slider value, though, which is why you need the potentiometer to control the speed.
Make a thread that sets the speed slider to the scaled value of the potentiometer, and then just raise the speed slider to 100%, when you get to the part in the program, that needs to run at 100%. And when leaving that part of the sequence, set the speed slider back to the potentiometer value.