Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Changing TG VI's in Softmotion and Custom Use...

Hi,

 

I'm using 3 axes servo control with Softmotion with TG and custom control via spline engine. The first thing done by the machine is to find its home. I'm controling each axes individually to find their home. (I'm using non coordinated axes VI)...

Then once every axes has found it's home, I stop the first trajectory generator and open a new one for coordinated axes...

 

I tried a lots of thing to make that work without reseting the FPGA but all bad results....I played with the spline update (to be syncronised individually), I stop the control loops on the FPGA to restart with the new TG... and no perfect result, sometime good and sometime bad... it's hasard (problem in timing)...

 

How can I do that...

What is the output valid syncronisation has to be? ... I think the unsyncronism come from that...

 

Thanks for your help.

Patrick

0 Kudos
Message 1 of 6
(3,939 Views)

Hey Paubine-

 

It is fairly unclear what the problem is that you are experiencing or what it is you are trying to do. Are you trying to find the home for your 3 axes and then perform some sort of move; and, the only way you can currently accomplish this is by resetting your FPGA after you find the home for the three axes?

 

What hardware are you using? What performance are you currently experiencing? What are you referring to when you say you are getting bad performance? Perhaps posting a portion of your code would clear some things up regarding what you are trying to do.

 

Hope some of these questions help.

 

-Ben

Hope this helps.
-Ben

WaterlooLabs
0 Kudos
Message 2 of 6
(3,916 Views)

Hi Ben,

 

The only way it's working is definitely if I reset the FPGA before opening the new TG. Which is not safe because it disable the drive for a sec. But it's working like that right now... and it's reliable... (no following error)

 

The problem that occur when changing TG and leaving the FPGA in action is that an unsyncronization occur... Which make (sometime) the following error too high and stop the drive...

 

The problems I found are that the the spline update button became unsyncronised (if it end TRUE, it reopen saying FALSE latching new setpoint)... this was easy to fix by changing each spline update button individually for all axes... and starting the new TG reading the value of the spline update of each axis....

 

After that... I realized that the target loop phase of the positionning loop became unsyncronized... because it was not timed with the new TG again ... following error...

I tried fixing this problem restarting the loops on the FPGA so that it is timed with the new RT TG... still following error to high....

 

I think the internal timer of the spline engine function (latch) is not resetting, even when restarting the loop....

 

That's it ...not sure I'm clear, I hope

 

Thanks for your help

Patrick

0 Kudos
Message 3 of 6
(3,914 Views)

Hey Paubine-

 

It is still a little unclear exactly what is going on in your system. You mentioned that you think the Spline Engine is not resetting, have you wired a control to the Spline Data Updated or the Reset Position terminals of the Spline Engine? It is a little unclear what you mean when you mention "an unsyncronization occur."

 

Something you may find useful are the softmotion examples for RT and FPGA. These examples can be found at ...Program Files»National Instruments»LabVIEW»examples»Motion»SoftMotion. Some that may be particularly useful are the "Muslti Axis Servo Position Loop" examples. Perhaps looking through some of these examples you can pin point what you should be doing in your particular application.

 

Hope this helps. It may also be helpful to share what hardware you are working with and software versions.

 

-Ben

Hope this helps.
-Ben

WaterlooLabs
0 Kudos
Message 4 of 6
(3,898 Views)

I think there is an internal timer in the spline engine function... latching the new setpoints... and this is syncronized with the Real Time Control Loop.

FPGA is latching the setpoint between the RT Loops... check the spline engine help... And if this is unsyncronized... it doesn't make a good positionning system.

 

I know those examples... and they are working fine if I only use one of them... individually.. but from passing from one to the other make the errors occur...

0 Kudos
Message 5 of 6
(3,896 Views)

Hey Paubine,

 

Unfortunately, it is still a little unclear what is going on. You had mention that the example pointed out previously are working properly on their own. However, when you pass from one to the other there are errors. What are how are you passing information between these examples? What examples are you working from? If you can narrow down the source of your errors, perhaps you could post that particular section.

 

You are correct in saying there is an internal timer for the spine engine function. You can access that information by double clicking on the vi and you can also output step data by selecting "Show Step Data Output" in the Configure the Spline Engine window that pops up after you double click on the spline engine function. Perhaps this information will be helpful was you troubleshoot your issue.

 

Hope this helps.

 

-Ben

Hope this helps.
-Ben

WaterlooLabs
0 Kudos
Message 6 of 6
(3,882 Views)