# Reduced TCP speed with moveL

**URL:** <https://tech-community.robotics.abb.com/t/reduced-tcp-speed-with-movel/3205>\
**Category:** Robot Controller\
**Created:** [November 23, 2009, 6:52pm UTC](https://tech-community.robotics.abb.com/t/reduced-tcp-speed-with-movel/3205 "2009-11-23T18:52:28Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![fraunhofer\_ipt](https://dub1.discourse-cdn.com/flex005/user_avatar/tech-community.robotics.abb.com/fraunhofer_ipt/32/3222_2.png) [@fraunhofer\_ipt](https://tech-community.robotics.abb.com/u/fraunhofer_ipt)\
**Post date:** [November 23, 2009, 6:52pm UTC](https://tech-community.robotics.abb.com/t/reduced-tcp-speed-with-movel/3205/1 "2009-11-23T18:52:28Z")

</div>

Hi everyone,

I’ve encountered a problem with repeated moveL instructions between close points.

**Problem is:**  
The rapid manual states:  
“If it is not possible to attain the programmed velocity for the reorientation or for the external  
axes, the velocity of the TCP will be reduced.”  
on page 244 under MoveL.

**Question is:**  
How do I know when exactly the TCP speed is being reduced? Is there any flag in RAPID that can be read? Or, better, can the true TCP speed be detected by RAPID in any way?

**some Background information (if you’re interested)**  
we’re trying to make the robot follow a specific path that is described with points in a NC-file. While this is generally working well, we experience problems with using the moveL command when the distance between two points is too little for the TCP speed given.

Basicly it’s looking like this

moveL point,vExecuteV:=40,z1, toolwobj

with point is continually read from the nc-file looking like this:

…  
77.6393,95.6992,0.0000,orientation  
86.4886,90.9937,0.0000,orientation  
97.6393,88.1516,0.0000,orientation  
…

making the path look like this in the end. the thick blue line is the TCP.

Now i’m trying to find the best suiting distance between two points. If the point density is getting too high, the TCP feed rate (in my example above 40 mm/s) is dropping low, probably because the restrictive zone z1 in combination with moveL.

I hope my description is clear and I’m looking forward to hearing from anyone.

Best regards,  
Michael Fink

---

<div class="post-metadata">

**Author:** ![Robot\_killer](https://avatars.discourse-cdn.com/v4/letter/r/f19dbf/32.png) [@Robot\_killer](https://tech-community.robotics.abb.com/u/Robot_killer)\
**Post date:** [November 25, 2009, 5:01pm UTC](https://tech-community.robotics.abb.com/t/reduced-tcp-speed-with-movel/3205/2 "2009-11-25T17:01:57Z")

</div>

See

Topic I/O - Type System Output - **Status values**  
**TCP speed**

---

<div class="post-metadata">

**Author:** ![fraunhofer\_ipt](https://dub1.discourse-cdn.com/flex005/user_avatar/tech-community.robotics.abb.com/fraunhofer_ipt/32/3222_2.png) [@fraunhofer\_ipt](https://tech-community.robotics.abb.com/u/fraunhofer_ipt)\
**Post date:** [November 26, 2009, 12:55pm UTC](https://tech-community.robotics.abb.com/t/reduced-tcp-speed-with-movel/3205/3 "2009-11-26T12:55:15Z")

</div>

Thanks for the quick response. I searched the documentation and set up the system parameters for the TCP speed (and tcp speed ref) but it gives me an error that the corresponding E/A-signal is missing:

Out of the documentation i didn’t find information about which E/A signal to choose (out of the list in the screenshot). Any help with that is appreciated.

Regards,  
Michael

---

<div class="post-metadata">

**Author:** ![Robot\_killer](https://avatars.discourse-cdn.com/v4/letter/r/f19dbf/32.png) [@Robot\_killer](https://tech-community.robotics.abb.com/u/Robot_killer)\
**Post date:** [November 26, 2009, 2:01pm UTC](https://tech-community.robotics.abb.com/t/reduced-tcp-speed-with-movel/3205/4 "2009-11-26T14:01:41Z")

</div>

Hi,

Yes you need create a output signal before  
and associate to a system output  
and i tink you need create input signal and use cross link for read in rapid module

Mario

---

<div class="post-metadata">

**Author:** ![fraunhofer\_ipt](https://dub1.discourse-cdn.com/flex005/user_avatar/tech-community.robotics.abb.com/fraunhofer_ipt/32/3222_2.png) [@fraunhofer\_ipt](https://tech-community.robotics.abb.com/u/fraunhofer_ipt)\
**Post date:** [November 26, 2009, 2:17pm UTC](https://tech-community.robotics.abb.com/t/reduced-tcp-speed-with-movel/3205/5 "2009-11-26T14:17:25Z")

</div>

Thanks Mario, but how do I create an output signal? The documentation says i have to define a bus (which one? DeviceNet1, Virtual1 or Local) and then create a unit (which type etc?)

And then, how do i link that unit (?) to the E/A-signal?

---

<div class="post-metadata">

**Author:** ![Robot\_killer](https://avatars.discourse-cdn.com/v4/letter/r/f19dbf/32.png) [@Robot\_killer](https://tech-community.robotics.abb.com/u/Robot_killer)\
**Post date:** [November 26, 2009, 3:08pm UTC](https://tech-community.robotics.abb.com/t/reduced-tcp-speed-with-movel/3205/6 "2009-11-26T15:08:11Z")

</div>

Hi

i don’t remember each step but it’s trueCreate a virtual\_unit, type virtual on bus virtual1  
after you can create a analog output on virtual\_unit  
create a analog input use a other mapping  
after use cross connection to connect annalog input on analog output  
and you can read analog input from rapid

![](http://forums.robotstudio.com/webwiz/2660/signal.JPG)

---

<div class="post-metadata">

**Author:** ![fraunhofer\_ipt](https://dub1.discourse-cdn.com/flex005/user_avatar/tech-community.robotics.abb.com/fraunhofer_ipt/32/3222_2.png) [@fraunhofer\_ipt](https://tech-community.robotics.abb.com/u/fraunhofer_ipt)\
**Post date:** [November 26, 2009, 3:39pm UTC](https://tech-community.robotics.abb.com/t/reduced-tcp-speed-with-movel/3205/7 "2009-11-26T15:39:19Z")

</div>

Great that seemed to work, i now have the signal and system output. Thanks.

I can read from it in robotstudio through E/A signals like in the screenshot above.

But how can i read from it in rapid?

---

<div class="post-metadata">

**Author:** ![Robot\_killer](https://avatars.discourse-cdn.com/v4/letter/r/f19dbf/32.png) [@Robot\_killer](https://tech-community.robotics.abb.com/u/Robot_killer)\
**Post date:** [November 26, 2009, 4:46pm UTC](https://tech-community.robotics.abb.com/t/reduced-tcp-speed-with-movel/3205/8 "2009-11-26T16:46:51Z")

</div>

i probaly found a command fir read your output analog  
Try this  
AOutput is used to read the current value of an analog output signal.

Basic examples Basic examples of the function AOutput are illustrated below.

Example 1

IF AOutput(ao4) \> 5 THEN …

if do not work you can try read analog input.

example (ai1 = signal name)

IF ai1 \> 5.2 THEN …

current\_value := ai1;

Give me info on your result please

---

<div class="post-metadata">

**Author:** ![fraunhofer\_ipt](https://dub1.discourse-cdn.com/flex005/user_avatar/tech-community.robotics.abb.com/fraunhofer_ipt/32/3222_2.png) [@fraunhofer\_ipt](https://tech-community.robotics.abb.com/u/fraunhofer_ipt)\
**Post date:** [November 26, 2009, 5:59pm UTC](https://tech-community.robotics.abb.com/t/reduced-tcp-speed-with-movel/3205/9 "2009-11-26T17:59:55Z")

</div>

Hey Mario,

it’s working just great with the AOutput() function. That did the trick. Quite a complicated way to set it up, but it works nicely now.

Thank you very much for your help!

Regards,  
Michael
