Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

How can I run a Buffered Contour repeatitively using on-board programming?

I have a 400 point countour move that I would like to run for 100,000 cycles. How can I use the buffer over and over again using on-board programming?
0 Kudos
Message 1 of 10
(4,690 Views)
$JDD$,

In reading over your question, I noticed that you didn't mention the programming language you are using to write your motion program. For the purposes of answering this question, I will assume that your programming is being done in LabVIEW. If this isn't the case, please post a reply and mention the language that you are using.

That being said, there is an example that demonstrates the functionality that you are seeking. This example can be found within LabVIEW's example finder, but is also posted on the National Instruments website here:

http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=B45EACE3D80956A4E034080020E74861&p_node=DZ52480&p_source=External

That example should show the proper coding needed to do a loop structure with onboa
rd programming.

Hopefully that will help you get going in the right direction.

-Jed R.
Applications Engineer
National Instruments
0 Kudos
Message 2 of 10
(4,689 Views)
Hi $JDD$,

I have the same question, but 1 month later. Could you please post your code if you have solved the problem?
Thank you very much.
0 Kudos
Message 3 of 10
(4,689 Views)
$JDD$ and varmih,

There are a number of useful resources on our website that are related to the questions that you are asking. I am unsure how familiar you are with on-board programming, so to start out, you may want to read this document that covers the general concepts of onboard programming:

On-Board Programming in Flexmotion

After you are familiar with that information, I would suggest moving on to read more information about loop and conditional structures in on-board programming. There is a very extensive document explaining these concepts that can be found here:

Unde
rstanding Loop And Conditional Structures in Onboard Programming


In addition to that information, there is an example program that shows the coding necessary to create a "Do While" loop in an onboard program. That example program can be downloaded from here:

DO_WHILE Loop (Onboard Motion Control Programming)

After you read over those documents, I think you should be able to setup your program and get it working.

Best of luck with your application.

Regards,
Jed R.
Applications Engineer
National Instruments
0 Kudos
Message 4 of 10
(4,688 Views)
Jed,

Thank you for your comments. They did not however answer the question. I am asking about buffered contour moves. Most of the Onboard programming examples and tutorials deal with repeating of linear or circular moves. I have been using the onboard programming for some time, and have set up and run may Onboard DO WHILE Loop programs with good result. I have however been having some problems with the onboard progams running reliably for more than 1000+ cycles. I have spoken with Mr. Austin about this, but we have not been able to resolve this problem.
The buffered contouring options are of great value to me, as I would eventually like to follow some pretty complex pathways that require changes in velocity as well. I can sucessfully complete one cycle o
f buffered contouring, but that is all. I can repeat this cycle, but only by buffering two or more iterations of these points. Each time you write to the buffer, it is memory intensive, and the HELP files urge you to not write to buffers too much while motion is in progress. I have worked with the vi that lets you progressively write a large number of points to a small buffer and a while loop. This works great for a few cycles, but I would like to preform 100,000 cycles. I am having trouble getting the same type of vs to work for this many points.
I would like to know if it is possible to have a buffer that you can read from recursively, without it being erased after it is read.
If not, how would it be best to approach this problem?

Thanks,
John
0 Kudos
Message 5 of 10
(4,690 Views)
Hi,

I have the same requirement - has anyone figured this out yet?

Martin
Certified LabVIEW Architect
0 Kudos
Message 6 of 10
(4,658 Views)
Jed,

I'm using non-volatile memory to store my contoured moves (8000 moves on each of 4-axis). You need to re-configure the buffer between multi-starts (with buffer size of zero) but do not need to re-send data to the buffer. Look at the documentation in the following example: One-Axis Contour Move (ROM Buffer).vi located in the contouring.llb (examples).

Hope it helps,

Martin
Certified LabVIEW Architect
0 Kudos
Message 7 of 10
(4,628 Views)
Hi John,
 
I read that you are working with buffered on-board prgramming and are partially successful with it. Now my application needs similar buffered programming.
My applicaiton needs to load around 300 target positions/axis and there are 3 axes. These values are predetermined values and can be random in nature but successive values are always incremental with step size being random, this is the very reason why I have decided to use the buffered on board programming method.
The number of cycles can be 300 if we are able to load 3 target vaues per cycle.
Then we also need to read the final values against each target position into another buffer which can be available to the GUI for plotting, analysis, etc.
While I have worked with FOR and DO-WHILE loops on-board, this will be the first time I will be working on buffered mode, so some basic doubts need clarification:
 
how do I load the 900 odd target values to the buffer?
how do I read the final values to another buffer and make it available as and when it is available so that the analysis on the GUI can go on?
Which is the HELP file you are refering to in your post?
 
 
Thanks and Regards,
 
Sunil 
0 Kudos
Message 8 of 10
(4,275 Views)

Hello,

 

for 1-Axis Move I´ve done it (at first not onboard), but for two axis the loop only one times run. What do I not correct?

 

The files are in the Attachement.

 

Best Regards

Andy

 

 

Best Regards,
Andy

_____________________
PCI-7356@UMI7764; PCIe-6320@SCB-68; LV2011; Motion Assistant 2.7; NI Motion 8.3; DAQmx 9.4; Win7
0 Kudos
Message 9 of 10
(3,284 Views)

No idea?

 

Best regards

Andy

Best Regards,
Andy

_____________________
PCI-7356@UMI7764; PCIe-6320@SCB-68; LV2011; Motion Assistant 2.7; NI Motion 8.3; DAQmx 9.4; Win7
0 Kudos
Message 10 of 10
(3,156 Views)