Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

RT multi-motor motion control in a closed loop system

Hello NI Community,

   We have 12 stepper motors with load cells attached in line on each motor that are connected to a RT PXI chassis.  We use an optical system to gather 3D data on the host computer which is used to calculate relative angles between 2 connected objects.  This data is passed to the RT target as one of several feedback based control strategies that are used (relative angles, force on each load cell, motor position, etc.).  Our Labview code is setup to utilize any of these control strategies for any motor, often using multiple strategies for different motors at the same time.  The code deployed to our RT target is currently a single timed loop that incorporates the load cell reads, PID control calculations, motor command writes and position reads.  In determining the timing of this loop we find it to be ~18Hz.  We would like to integrate a new control strategy that is inefficient below 30Hz and are trying to determine how we can achieve this.  It seems that our limiting factor is the constant writing/reading of each motor at ~4.6ms/motor, although this doesn't seem correct with the posted 62us speeds shown in the specs for the motion controllers.  I'm not sure if this there is a setting that I am missing somewhere that is preventing me from achieving these speeds or if this is a function limitation of our hardware setup.  We would like to achieve this with all 12 motors, although not all motors are always in use.  The PXI components we are using are listed below.

 

  • PXI-1050 Chassis
  • PXI-8105 RT Controller
  • PXI-7344 Motion Controllers
  • UMI-7774 Motion Interface

Would any of the following be more advantageous than the others or is there another method someone has found useful in speeding up their systems. 

  • Split motor read/write into another timed loop with a higher priority over the PID loop.  (deterministic approach)
  • Create a unique read/write loop for each of the 3 Motion Controllers
  • Create boolean activation to ensure only the motors that are being used are incorporated in the control scheme

Sorry for the long post but I wanted to make sure I included as many details as possible.  Thank you in advance for your help with this.

 

Brian

 

0 Kudos
Message 1 of 3
(4,858 Views)

Hey,

 

Have you tried diagnosing where the problem is by seperating the processes and timing them to see what is causing the delay of the motor control to ~5ms?

 

Regards,

A. Zaatari

National Instruments
Applications Engineer
0 Kudos
Message 2 of 3
(4,844 Views)

Thank you for your response.  I have in the Real-Time Trace and it appears to be the Read Limit Status and the Read Position for the encoder.  After splitting them out I am getting write times of ~2.3ms per axis which is still a little too slow for my application.  Any suggestions would be appreciated.

 

Brian

0 Kudos
Message 3 of 3
(4,840 Views)