How to Configure Motion Controller and Test a Stepper Motor

Updated Dec 20, 2022

Environment

Hardware

  • PCI-7332
  • PXI-7332
  • PXI-7334
  • PCI-7334
  • PXI-7342
  • PCI-7342
  • PXI-7344
  • PCI-7344
  • PCI-7352
  • PXI-7352
  • PXI-7354
  • PCI-7354
  • PCI-7356
  • PXI-7356
  • PCI-7358
  • PXI-7358
  • PCI-7390

Software

  • Measurement & Automation Explorer (MAX)

Driver

  • NI-Motion

How do I configure my NI 73xx motion controller to control my stepper motor?

You can follow these steps to configure your motion controller and test a step motor:
  1. Open the Measurement & Automation Explorer (MAX)
  2. Navigate to your NI Motion Device
    1. In the Configuration panel, expand the My System tree
    2. Expand the Devices and Interfaces tree
    3. Expand the NI Motion Devices tree
    4. Expand the PCI-73xx tree
    5. Expand the Default 73xx Settings tree
  3. ​Configure your stepper settings
    1. Go to the Axis Configuration option, under the desired axis (e.g. Axis 1)
    2. In the Axis Configuration tab, set Type to Stepper.
    3. In the Stepper Settings tab (near the bottom of the screen), select your Stepper Steps Per Revolution, Stepper Loop Mode, Stepper Polarity, Stepper Output Mode, and Pull-in Tries
      Note: For P-Command motors, select P-Command for Stepper Loop Mode
  4. For now, disable your inhibit, home, and limit signals
    1. Select the Motion I/O Settings option under the axis tree 
    2. Disable all the signals in this tab (Limit Filters, Forward Limit Switches, Reverse Limit Switches, Home Switch, Forward Software Limit, Reverse Software Limit, Inhibit Output)
  5. Initialize your motion controller with your current MAX settings by click on the Initialize button

  6. Test your stepper settings with your stepper motor
    1. Expand the Interactive tree
    2. Select 1-D Interactive
    3. Set Stepper Loop Mode to Open Loop
    4. Set Velocity, Acceleration, and Deceleration to values slow enough for your motor to perform
    5. Set Operation Mode to Relative Position
    6. Set Target Position to the number of your Stepper Steps Per Revolution (as set in Step 2c)
    7. Click the Start button
      1. Your motor should move one full revolution. If the motor moves but goes over or under one revolution, then most likely the Stepper Steps Per Revolution is incorrect.
      2. Your motor should rotate in the forward direction (if Target Position is a positive value). If the motor rotates in the wrong direction, then you may need to switch either phase A and A- or B and B- (effectively reversing directions) leads from your drive to your motor, as it is possible to Determine My Stepper Motor Wiring without the Stepper Motor Pinout.
  7. If you are using feedback in your motion system, proceed to step 8. If you are not using an encoder, you are done configuring and testing your open loop stepper system.
  8. Configure your feedback settings
    1. Follow the instructions below if you are using a two-phase quadrature encoder for feedback
      1. In the Axis Configuration option, set Type of Feedback to Encoder
      2. Go to the Encoder Settings option
      3. Enter your encoder counts per revolution

        Note 1: If you can kill your motor and rotate the motor manually, then you can determine the correct encoder counts per revolution by steps.

        Note 2: To increase feedback accuracy, NI motion controllers read every edge of an encoder feedback signal. With a quadrature encoder, this results in four edges (rising and falling on lines A and B) for every quadrature pulse of the encoder. Thus, if your quadrature encoder is rated at 2000 quadrature pulses per revolution, the controller will actually read 8000 edges per revolution – and each of these is considered a "count".

        When setting the Encoder counts per revolution input in MAX, it is common to mistake this value for the encoder's physical resolution. Instead, this setting needs to hold the corresponding number of counts read by the controller, which is four times that resolution. Following Error in a Motion System can result from this being improperly set.
    2. If you are using analog feedback, you can set up Analog Feedback with a Stepper Motor.
  9. Initialize your motion controller with your current MAX settings by click on the Initialize button
  10. Test your encoder settings
    1. Go to the Main tab of 1-D Interactive 
    2. Set Stepper Loop Mode to Closed Loop
    3. Set Velocity, Acceleration, and Deceleration to values slow enough for your motor to perform
    4. Set Operation Mode to Absolute Position
    5. Click the Reset Position button to reset the Current Trajectory Data Position to 0.
    6. Set Target Position to the number of your Stepper Steps Per Revolution (see Step 3c)
    7. Click the Start button
      1. Your motor should move one full revolution
      2. The Current Trajectory Data’s Position should match the Target Position
  11. Re-enable the inhibit, home, and limit signals that you will be using
    1. Go to the Motion I/O tab
    2. Enable the signals that you will be using and configure the correct polarity for each
  12. Configure the rest of options in MAX as is necessary
    1. Click on the Show Help button to display the MAX Help sidebar 

    2. Use the MAX help for more information on the rest of the settings. Hover your mouse over a setting to populate the MAX Help with a description.



      Note: You do not need to configure anything in the Control Loop Settings tab for a stepper motor.
  13. Initialize your motion controller with your final MAX settings by click on the Initialize button

Additional Information

Not all NI Motion controllers can control a step motor, but the following can: PCI-7332, PXI-7332, PCI-7334, PXI-7334, PCI-7342, PXI-7342, PCI-7344, PXI-7344, PCI-7352, PXI-7352, PCI-7354, PXI-7354, PCI-7356, PXI-7356, PCI-7358, PXI-7358, and PCI-7390.