Reduced TCP speed with moveL
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
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
0
Comments
-
See
Topic I/O - Type System Output - Status values
TCP speed0 -
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
fraunhofer_ipt2009-11-26 13:24:330 -
Hi,Yes you need create a output signal beforeand associate to a system outputand i tink you need create input signal and use cross link for read in rapid moduleMario0
-
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?
fraunhofer_ipt2009-11-26 14:31:360 -
Hi
i don't remember each step but it's trueCreate a virtual_unit, type virtual on bus virtual1after you can create a analog output on virtual_unitcreate a analog input use a other mappingafter use cross connection to connect annalog input on analog outputand you can read analog input from rapid0 -
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?
fraunhofer_ipt2009-11-26 15:44:190 -
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. <?: prefix = o ns = "urn:schemas-microsoft-com:office:office" />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
0 -
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
0
Categories
- All Categories
- 5.5K RobotStudio
- 396 UpFeed
- 18 Tutorials
- 13 RobotApps
- 297 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 250 ScreenMaker
- 2.8K Robot Controller
- 316 IRC5
- 61 OmniCore
- 7 RCS (Realistic Controller Simulation)
- 800 RAPID Programming
- AppStudio
- 3 RobotStudio AR Viewer
- 18 Wizard Easy Programming
- 105 Collaborative Robots
- 5 Job listings