Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

labview control of multiple stepper motors

Hello!

 

I'm starting a project where I'll need to control 5 stepper motors independently and concurrently. 

 

The specifics I have at this point:

       

--Using Labview to interface with.  Already have access to Labview 2011.  I Have no experience with the program, but have limited experience coding (don't know any language very well, and it was suggested I use Labview).

 

--Have a 4.5 A stepper and a 1 A stepper. I need to have one larger stepper, so I'd like to keep the larger motor and add three more steppers (probably all small, like the 1 A).

 

--Steppers do not have to run quickly.

 

Questions:

 

--How can I do this as cheaply as possible? (I think my advisor would rather see me spend more time than money getting this project going.) Although I don't expect anyone to do my shopping for me (feel free, though), I'm just wondering if anyone has any pointers that I might not have being new to this. Honestly, cost will determine whether I can go NI with this project and I expect the NI route to be more expensive, but I would prefer to use a company with better support.

 

----For instance, do I really need a controller (instead of a DAQ, for example) if my steppers are running slowly and I'm not doing anything fancy, like using an encoder for closed loop?

 

----I may try to buy a 5-axis CNC set-up with a driver and motors.  Would NI be able to fill in the gaps (Labview->driver) if I were to try and go this route?

 

--Is it even possible to control this many motors with the Labview I have? I've seen a few posts on stepper control, but none on controlling many motors at once.  If there is such a post, could you direct me there, please?

 

I apologize in advance for this being somewhat vague and therefore probably irritating, but I was really interested in what people thought other than just blindly running through the catalogue and getting a controller, driver, motors, etc. However, I can try to be more specific (pick some possible motors and drivers, for example) if that was going to make or break whether I get a good answer or not.

 

Thanks,

 

Kevin

 

 

 

 

 

 

0 Kudos
Message 1 of 5
(9,779 Views)

Hello Kevin,

 

For a full motion system running NI Hardware we have two major options

1) PCI or PXI based with a NI 73XX series motion card, a UMI-7774 universal motor interface, and then a stepper drive for each stepper motor, probably a NI P70530

2) C series modules with an cRIO, a 9501 C Series Stepper Drive, or a NI 9512 C Series Stepper Drive Interface with a P70530.

 

If you would like to do this as cheaply as possible you could look into buying simplified stepper drives that you would only send a Step and Direction digital signal. Then you could control the motors with only 2 digital lines per axis. If you wanted to do higher speed you can look into using counter outputs for the Step signal, and then a digital line for direction. For example one driver that I found is the Quadstepper Motor Driver Board from sparkfun. This would require you to code the velocity and position control and any additional features or desired behavior individually.

 

If you are looking at buying a 5-axis CNC usually I would recommend looking into any prebuilt LabVIEW Drivers. So far I have not found any drivers for a CNC on our Instrument Driver Network (IDNet). I think it would be a great idea to build a driver for the device, but while NI would offer support on the code we would not be providing customized code for the device. That type of integration would usually fall under our Alliance Partner Networks purview, but as the experience developing is likely part of this applications goal I would expect this to be a less preferable solution.

 

You should be able to control this many motors, in fact we have had proof of concepts built for 8+ axes of motion already. The major concern is how this is coded. If we use an NI solution you would have prebuilt example code using the NI Motion Driver (PCI 73XX) or using the NI SoftMotion Module (C series). Without either of these we would have to look to the community built examples and other locations for code.

 

Cheers, and I wish you the best on this project!

 

Joel

Message 2 of 5
(9,728 Views)

Hi, Joel. Thanks very much for your reply.  For more context, you should know that the number of steppers I need to control has been updated to at least 6, but I'll need the ability to add more-maybe another 3 or even 6.

 

Joel-P wrote:

Hello Kevin,

 

For a full motion system running NI Hardware we have two major options

1) PCI or PXI based with a NI 73XX series motion card, a UMI-7774 universal motor interface, and then a stepper drive for each stepper motor, probably a NI P70530 

 

It seems to me that theis route would limit me through the controller to at most 8 steppers, using the NI PXI-7358.  Is that correct? Or, is there a way to use multiple controllers with a breakout board, or something else?

 

2) C series modules with an cRIO, a 9501 C Series Stepper Drive, or a NI 9512 C Series Stepper Drive Interface with a P70530.

 

The cRIO route seems a little more confusing to me.  Is the first part of your suggestion recommending something like up to 8 NI 9501's (drives), which would only require one cRIO-9073 (controller), while the second part is noting that I could use the 9512 with some drive, such as the P70530?  Is it correct that one 9073 would control up to 8 9501's?  And the "driver interface" is basically a controller? It seems like it only interfaces with one drive, or is that not right? Is "c-series" just an alternative way to package the controller, chassis, and drives?

 

If you would like to do this as cheaply as possible you could look into buying simplified stepper drives that you would only send a Step and Direction digital signal. Then you could control the motors with only 2 digital lines per axis.

 

Thanks for the idea.  This is how I thought all the drives worked, but it sounds like you are saying that might not be the case from what you say directly below.

 

If you wanted to do higher speed you can look into using counter outputs for the Step signal, and then a digital line for direction.

 

So, with this method (counter), I would be using a drive that would already be set-up to read instructions from a counter, instead of just step/direction?  I wasn't aware that some of the drives accepted those types of instructions. Do you know what I could search for to explore this type of control? (I also am interested to know how one can PWM a drive since I thought they were all step/direction, essentially.) Or, maybe these alternative methods are essentially step/direction ultimately?

 

For example one driver that I found is the Quadstepper Motor Driver Board from sparkfun. This would require you to code the velocity and position control and any additional features or desired behavior individually.

 

Thanks for that suggestion.

 

If you are looking at buying a 5-axis CNC usually I would recommend looking into any prebuilt LabVIEW Drivers. So far I have not found any drivers for a CNC on our Instrument Driver Network (IDNet). I think it would be a great idea to build a driver for the device, but while NI would offer support on the code we would not be providing customized code for the device. That type of integration would usually fall under our Alliance Partner Networks purview, but as the experience developing is likely part of this applications goal I would expect this to be a less preferable solution.

 

I can see why you would think the development is part of the project, but that doesn't seem to be the case.  We are trying to demonstrate proof of concept of combining multiple composite material manufacturing methods.  I'm going into this level of detail mostly to keep the cost down and to provide the maximum level of flexibility. 

 

So, your saying that NI basically just does one drive per motor and that's why a drive that worked with 5 motors would have to be developed?

 

You should be able to control this many motors, in fact we have had proof of concepts built for 8+ axes of motion already.

 

That's good to know.  So, it sounds like LabView can 'handle' it (if I code it well), but I am still wondering what NI products are there that would be able to incorporate more than 8 drives.

 

The major concern is how this is coded. If we use an NI solution you would have prebuilt example code using the NI Motion Driver (PCI 73XX) or using the NI SoftMotion Module (C series). Without either of these we would have to look to the community built examples and other locations for code.

 

Cheers, and I wish you the best on this project!

 

Joel

 

Thanks again, Joel.  Your help so far is definitely appreciated.

 


 

0 Kudos
Message 3 of 5
(9,693 Views)

Hello Kevin,

 

The PXI-7358 would limit you to 8 steppers per card used, however you could add in another PXI-7350 series card depending on how many motors you would like to control. You could have an 8 slot PXI chassis with 8 cards for control of 64 steppers.

 

The 9501's are essentially simple motor drivers and have very little "intelligent" components on them for high precision control, whereas the 9512's have only "intelligent" components with no power components and it requires an external drive. The 9512 does handle the feedback and control loops, but requires an external power to drive the motors.

 

NOTE: One tricky aspect of the above implementation using the 9512's is that each module requires a High Speed Interface (HSI) which uses more FPGA fabric. This unfortunately means that the 9073 would not be able to run all 8 modules and we would need a higher performance cRIO such as a 9081 or a 9082. Here is a KnowledgeBase Article that discusses the 951X modules requirement for HSI.

 

How do I Use the NI 951x Motion Control Modules in Slots 5-8 (Non High Speed Interface Slots) of my ...

 

Most stepper drives do use step and direction, some others use Clock-Wise, and Counter Clock-Wise lines and you pulse the individual lines for each step.

 

Regarding the high speed aspect using counters, my intention in this statement was that if you wanted to write a velocity to the stepper you could simple send a 2 kHz square wave from the counter which would translate to a velocity. Then you could change the driving frequency based on the desired speed. Using the counter you would still need a drive that accepts step and direction, you would be using a counter output for the TTL signal to the step input instead of a digital line.

 

You are correct that most of our hardware is designed with a single axis in mind, but they are also built to be modular where you can keep adding on additional axes as required.

 

Regards,

 

Joel

 

 

Message 4 of 5
(9,666 Views)

@Joel-P wrote:

Hello Kevin,

 

The PXI-7358 would limit you to 8 steppers per card used, however you could add in another PXI-7350 series card depending on how many motors you would like to control. You could have an 8 slot PXI chassis with 8 cards for control of 64 steppers.

 

So, just so I know if I'm tracking you, all 64 of these steppers could be synchronized via RTSI between the 7358's?

 

The 9501's are essentially simple motor drivers and have very little "intelligent" components on them for high precision control, whereas the 9512's have only "intelligent" components with no power components and it requires an external drive. The 9512 does handle the feedback and control loops, but requires an external power to drive the motors.

 

NOTE: One tricky aspect of the above implementation using the 9512's is that each module requires a High Speed Interface (HSI) which uses more FPGA fabric. This unfortunately means that the 9073 would not be able to run all 8 modules and we would need a higher performance cRIO such as a 9081 or a 9082. Here is a KnowledgeBase Article that discusses the 951X modules requirement for HSI.

 

How do I Use the NI 951x Motion Control Modules in Slots 5-8 (Non High Speed Interface Slots) of my ...

 

FYI, I tried this link several times and got an "unexpected error" message. We do have some cRIO stuff kicking around in the lab, but at the moment I'm feeling like the PXI or PCI route would be easier to work with.  I'll have to price out the details of possible architectures though.

 

Most stepper drives do use step and direction, some others use Clock-Wise, and Counter Clock-Wise lines and you pulse the individual lines for each step.

 

Regarding the high speed aspect using counters, my intention in this statement was that if you wanted to write a velocity to the stepper you could simple send a 2 kHz square wave from the counter which would translate to a velocity. Then you could change the driving frequency based on the desired speed. Using the counter you would still need a drive that accepts step and direction, you would be using a counter output for the TTL signal to the step input instead of a digital line.

 

OK.  I think I understand now.  I didn't realize you were talking about a counter feature, not an actual counter IC as a feature, which, from what I've seen, often has multiple output pins.  And I also realize now that people were probably talking about using PWM to actually directly energize stepper coils faster, etc.  I thought folks were PWMing and sending multiple parallel outputs as instructions to drives, where "drive" is meant the thing that would normally receive step/direction signals, or the variation you mention above. You should know I'm doing my best with one undergrad mechatronics course to work from here! Thanks for your patience.

 

You are correct that most of our hardware is designed with a single axis in mind, but they are also built to be modular where you can keep adding on additional axes as required.

 

OK.  I think I'm starting to get my bearings.

 

Regards,

 

Joel

 

Thanks again, Joel.  I think I'm starting to at least get the basic options available to me down.

 


 

0 Kudos
Message 5 of 5
(9,635 Views)