Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Lineair motion control advice

Strange

http://www.ni.com/pdf/products/us/ni_73xx.pdf

NI 733x : Number of axes per 62.5 microsecond PID rate 1

Now I'm confused.

0 Kudos
Message 21 of 38
(4,045 Views)
Sjoerd,

in fact it's a bit confusing to see a PID rate spec for a stepper motion control board, that doesn't run a PID controller at all. This spec is important for the 734x and 735x boards as it specifies the PID rate used to control servo axes depending on the number of axes that are activated.

You can think of the PID rate of something like the board's heartbeat. So even on the 733x there are some algorithms running at this rate (e. g. the trajectory generation). For the vast majority of usecases you don't have to care about this spec with a 733x board and if it's fine for you I won't elaborate on this topic as this just would mean lot's of text without relevance for your application.

Jochen

Message Edited by Jochen on 09-07-2007 01:53 PM

0 Kudos
Message 22 of 38
(4,042 Views)
Sjoerd,

just for your reassurance: Neither of the NI-Motion boards uses a PID control algorithm to control stepper motors. In closed-loop mode the boards monitor the following error during the move and adjust for position errors at the end of the move by performing pull-in moves.

Due to the non-linear nature of stepper motors, real PID control is hardly feasible. I fyou find 3rd party products that promise this feature, some careful mistrust is adviseable.

Jochen
0 Kudos
Message 23 of 38
(4,037 Views)
Thanks again I will go with your advice and put the order out monday.
 
Sjoerd
0 Kudos
Message 24 of 38
(4,035 Views)
Finally got it al together now.
Got it to work with motion assistant. Great Fun !!
 
Unfortunate this does not suport encoder feedback.
Can anyone give me an example hom to implement a start an two stop postitions with an encoder feedback to compare the position and than back to start.
 
With M&M  1D test closed loop with the encoder didn't work. Went the wrong way and got problems with stepepr 1600 steps and encoder 2500 steps so a little bit puzzled.
 
Tanx for your input.
 
Sjoerd
 
 
 
 
0 Kudos
Message 25 of 38
(3,845 Views)

Sjoerd,

you should run the axis in Closed Loop mode. The issues that you describe are typically caused by wrong configuration settings for Stepper Steps per revolution and Encoder Counts per revolution.

Please refer to this link for detailed help about this issue.

Jochen

 
0 Kudos
Message 26 of 38
(3,838 Views)

And again you gave me a good advice. Thanks !!

My encoder count was wrong. In the specification it said 2500 steps, but because it counts up en down form A en B, you have to multiply this by 2x2=4 so 10.000 was the correct setting.

Now I can run Closed Loop in M&A.

I'm not sure if by setting closed loop in M&A my vi runs in closed loop or that I have to make a closed loop in the vi  ?

I made a simple script with the motion assitant for basic commands and combined these in one VI with frames.

I made 3 separate steps. One to find home and a second one to run my loop with 4 positions and wait times several times. The third frame is to sent it back to the zero position after the loop ends.

Motion assistant makes one long vi. is it possible to put positions and wait positions in a matrix so it becomes one smaller Vi ?

Further I now start M&A to innitialise my pci card can i do this within a Vi ?

I want to display the position of the stepper into the vi. I found out how to do this but this only workes within the current running frame.
Should I make 2 vi's to sovle this or is there a work around ?

Thanks in advance. I really enjoy the challenge it gives me to get it to work properly.

0 Kudos
Message 27 of 38
(3,819 Views)
I'm not sure if by setting closed loop in M&A my vi runs in closed loop or that I have to make a closed loop in the vi  ?
[JK: It's enough to configure closed loop in MAX. The closed loop mode is running onboard, so you don't have to care for it in your programming.]

I made a simple script with the motion assitant for basic commands and combined these in one VI with frames.

I made 3 separate steps. One to find home and a second one to run my loop with 4 positions and wait times several times. The third frame is to sent it back to the zero position after the loop ends.

Motion assistant makes one long vi. is it possible to put positions and wait positions in a matrix so it becomes one smaller Vi ?
[JK: Unfortunately not. The code generated by the Motion Assistant is more or less prototype. You should put parts of it into subvis and use a more advanced design pattern in general (e. g. a state machine might be a good idea).]

Further I now start M&A to innitialise my pci card can i do this within a Vi ?
[JK: Use Initialize Controller.flx that can be found in the motion palette.]

I want to display the position of the stepper into the vi. I found out how to do this but this only workes within the current running frame.
Should I make 2 vi's to sovle this or is there a work around ?
[JK: You could use a loop that runs in parallel to acquire position and other relevant data continuously. If necessary you could feed these data into the frames by using queues (producer/consumer design pattern)]

Thanks in advance. I really enjoy the challenge it gives me to get it to work properly.


I hope this helps,

Jochen
0 Kudos
Message 28 of 38
(3,814 Views)
Thanks for the tips.
 
My Closed loop works and the motion controller board makes it very easy this way !!
 
Will get to work with the tips you gave and  post again to let you know if it worked.
 
Gr Sjoerd
0 Kudos
Message 29 of 38
(3,812 Views)

It is going in the right direction but ...
I now want to switch two small relais from open. to closed for a short time.

Can I use the trigger output for these actions,  and how can I do that ? or shoud i use the io part of the motion card ?

Thanks again

0 Kudos
Message 30 of 38
(3,792 Views)