LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

how the 7344 trajectory generator works?

It says that the 7344 trajectory generators calculate the instantaneous position command that controls acceleration and velocity while it moves the axis to its target position in the 7344 user manual.
What I want to know is that how long it will take to calculate the instantaneous position command ,and does it calculate based on not only the position commmand that the computer send to it but the feedback signals?
Another question is:suppose I send a position command of 50rad,then how the trajectory generator works,what I means is that if the trajectory generator calculate the whole position trajectory based on the move constraints at a time or it will calculate every sample period?
Infact i am not clear how it works?can you give me some information?
Moreover how could I send a continuous position command to the card and make the card response in real-time ?For example I send diffent position command every 0.5ms and i hope the system can move to the preconcerted position every 0.5ms.Can the 7344 card make it ?
0 Kudos
Message 1 of 10
(4,055 Views)
Hi bgrain,

The trajectory generator on the 7344 will calculate the trajectory based upon both the feedback from your encoder and the target position. This calculation is done on the motion control board itself, and is done quickly enough to update motion at a determined rate.

When using a single axis, the PID update rate is once every 62.5 microseconds. This means that the trajectory generation is done quick enough to occur about 16000 times per second. When using all 4 axes, the update period is 250 microseconds. This period can be adjusted in Measurement and Automation Explorer.

More information on trajectory generation can be found in the 7344 User Manual in chapter 4 under the 'Trajectory Generator' subheading.


Regarding live updating of the target position, the behavior is less deterministic. This is because the target position must be loaded on the controller. Because you would most likely be determining new target positions based upon some other feedback, I would recommend that, rather than create your target based upon feedback in your code, incorporate that feedback into the behavior of the motion controller. In example, you can create applications in which the motion is controlled by analog feedback to the controller.


I hope this advice is both clear and helpful. For more information, I would recommend that you look at both the user manual and also the many technical papers and tutorials available on NI's website.

Many resources are available here.
Good luck!

Robert
Applications Engineering
National Instruments
0 Kudos
Message 2 of 10
(4,019 Views)
Thank you for your advice.Regarding your advice to my last question,I donot understand so much.You said that rather than create your target based upon feedback in your code, incorporate that feedback into the behavior of the motion controller. In example, you can create applications in which the motion is controlled by analog feedback to the controller.do you means that i creat onboard programms,because if the programms is in PC ,it will no t be deterministic i think?
If new targit positions can be send contionusly,can the card make sure to move the system to the new targit position accurately in every time interval,but not as blend moves in which some position may not be achieved ?
If I want to send new targit positions not based on feedback,but just based time interval,how to do?For example i want to send a sine wave and i just send one point on the wave every time interval,in this case how could i do?
Addtionly if i want to send random targit positions every time interval,and similarly the card must move the system to the new targit position,how could i do?
some other questions: do Onboard programms send targit positions to the DSP just act like applications in the pc?
how do contoured moves works? In the process of the move does it receieve the feedback or just move in open-loop?
what is the shortest time interval between two poiont in contoured moves?
hope your answers!!
0 Kudos
Message 3 of 10
(4,006 Views)
Hi again!

Here are some answers to your questions. I will start at the beginning of your post.

In order for the controller to behave in a deterministic manner, the PID Control loop is executed on the hardware.

To perform a move in which the target position changes based upon a source other than feedback, you would repeatedly give the motion controller a new target, or in the case of your sine example, you can actually tell the controller a particular contour of points to perform. In the random number example, you would repeatedly give the board a new target. PID will ensure that the target is reached, and new target positions give the board a new location to move the motor to.

As for your other questions, on board program are treated very similar to moves from the PC, but processing is performed on the controller rather than the PC. When making a move, you can select from open loop stepper, closed loop stepper, or servo motion. Servo motion and closed loop stepper will use encoder feedback to reach the target position. Open loop stepper will of course move in open loop.

Finally, the shortest time between contoured points is 10 ms, but will be influenced by the capabilities of your motor. What is the Minimum Time Interval for a Contour Move?



Hope all this information helps!

Robert
0 Kudos
Message 4 of 10
(3,988 Views)
HI Robert
In your reply you said :Regarding live updating of the target position, the behavior is less deterministic. This is because the target position must be loaded on the controller. Because you would most likely be determining new target positions based upon some other feedback, I would recommend that, rather than create your target based upon feedback in your code, incorporate that feedback into the behavior of the motion controller. In example, you can create applications in which the motion is controlled by analog feedback to the controller.
 I o not understand what it means.do you mean incorporating the feedback into the behavior of the motion controller is deterministic?how to relize?
could you tell me in detail or could you give me an example?
thank you!!
0 Kudos
Message 5 of 10
(3,936 Views)
HI Robert
In your reply you said :Regarding live updating of the target position, the behavior is less deterministic. This is because the target position must be loaded on the controller. Because you would most likely be determining new target positions based upon some other feedback, I would recommend that, rather than create your target based upon feedback in your code, incorporate that feedback into the behavior of the motion controller. In example, you can create applications in which the motion is controlled by analog feedback to the controller.
 I o not understand what it means.do you mean  incorporating the feedback into the behavior of the motion controller is deterministic?how to realize?
could you tell me in detail or could you give me an example?
thank you!!
0 Kudos
Message 6 of 10
(3,936 Views)
Hi bgrain,
 
What I meant was this:  If you know that you are going to be using something other than an encoder as your feedback source, you can configure this in Measurement and Automation Explorer, rather than write code to perform a control loop using feedback information.
 
For example, in Measurement and Automation Explorer you can select the ADC channel 1 as your primary feedback.  Doing this is much better than implementing your control loop in software. (comparing an input to a desired value repeatedly)
 
Hope this helps,
 
Robert
0 Kudos
Message 7 of 10
(3,925 Views)
Hi Robert
In order to perform a  continuous move ,i can send a new target position to the board repeatedly ,but i am confused with following questions.
 
First,i send a target position to the card and through the multistart the card starts to move,maybe this move can take several update
 
periods .Suppose that it will take two update periods to accomplish the move,and after  one  and a half  update period i send another new
 
target position ,so I do not kown if the card immediately starts a new move ,based on the current position and the new target position by
 
ignoring the last half period or it will accomplish the last half period and then start a new move.
 
Second ,if it is the first case  i would think that when the pid update period is equal to or more than the time intervals between the new target
 
positions,then it will not work ,because everytime it is the host computer that starts the move.
0 Kudos
Message 8 of 10
(3,900 Views)

Hi bgrain,

I am not sure that I understand your question, but I will do my best to answer it...

The update rate of the PID is 62.5 microseconds if you are using a single axis, so it would take some awful fast updating to change the target position before it completed 2 update periods.  Nevertheless, if you were to update the target position before the move has completed, you would need to perform another multistart (or a blend start) to begin generating trajectory data for the new position.  I do not think that it is possible to begin moving to a new target position in the middle of the 62.5 micro second update period, but the trajectory generator will take into account any greater distance when generating trajectory data for the next move.

Keep in mind that if you are setting new target positions based linearly on some sort of input, it may be better to have hardware handle this for you, by controlling position with feedback.  If there is a nonlinear relationship between the input and the desired target position, software will need to handle the feedback.

Hope this helps,

Robert

 

0 Kudos
Message 9 of 10
(3,880 Views)
Hi robert
 Thank you for your reply,again the same question ,maybe the following example can help.
Suppose that the PID update period is set to be 0.5ms,now at the zoro I send a 1 degree to the card, start the motion and at 0.55ms I send a -1 degree to the card,followed by a multistart.Here is the problem:at the 0.5ms the trajectory generator will calculate the profile data so when I send the -1 degree to the card,it will take effect at 1ms,(I mean that the trajectory generator will compare the new loaded data with the current position at 1ms) but not at 0.55ms(I mean the trajectory generator will not compare the new loaded data with the current position immediately after the multistart).
Hope for your reply!
0 Kudos
Message 10 of 10
(3,849 Views)