Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

7344 servo motion switching between open and closed loop operation

I have a custom end-of-line test system presently using a 4-axis 7344 servo controller to perform various functional tests on small, brushed DC motors. The system is programmed in C/C++ and uses flex motion functions to control the motor during testing. Motors are coupled to external encoder feedback and third party PWM drives running in closed-loop torque mode from an analog command signal. The system uses all four motion axis channels on the 7344 board to independently and asynchronously test up to four production motors at a time.

 

In closed-loop mode, the system runs without issue, satisfying the battery of testing protocols executed by this system. I now have a request to add additional test functionality to the system. This testing must be run in open loop mode. Specifically, I need to use my +/- 10v analog output command to my torque drive to send different DAC output levels to the connected motor.drive while monitoring response.

 

I do not believe the flex motion library or 7344 controller includes functions to easily switch between open and closed loop mode without sending a new drive configuration. I am also under the impression that I cannot reconfigure one (or more) servo controller axis channels without disabling the entire drive. As my system runs each axis channel in an asynchronous manner, any requirement to shutdown all drives each time I change modes is an unworkable solution.

 

I am open to all ideas that will allow asynchronous operation of my 4 motor testing stations. If the only solution is to add a second 7344 controller and mechanical relays to switch the drive and motor wiring between two separately configured servo channels, so be it. I just want to explore any available avenue before I place a price tag on this new system requirement.

 

Bob

0 Kudos
Message 1 of 3
(3,681 Views)

Bob,

 

open loop servo operation is not an ideal usecase for a 7344, but if you just need to output some voltage levels with software timing (= non-deterministic timing) this should be feasible on an per axis base.

To do so, you should stop the move for the axis, disable it (flex_enable_axis()) and reassign another output resource (stepper output) with flex_config_axis(). Now you should be able to use flex_load_DAC() to directly access the DAC. In this mode the output acts just like a general purpose analog output. All motion features for this axis are deactivated (limit switch monitoring, trajectory generation,...).

 

Please let me know, if this mode meets your needs. If not please provide some more details about e. g. timing requirements and other relevant information.

 

Kind regards,

Jochen Klier

National Instruments

0 Kudos
Message 2 of 3
(3,674 Views)

Jochen,

 

Thank you for the quick response. The 7344 board does an excellent job running my manufacturing motor assemblies through a custom end-of-line tester in closed loop mode. A portion of the performance history and test result couples the motor through a mechanical load and external shaft. The shaft is in contact with a linear encoder that closes my servo loop.

 

My new manufacturing requirement is to also sample/document how the small DC motor behaves in open loop operation. Your solution is exactly what I need to perform the additional functional tests on the product I am manufacturing. I see no reason why this cannot work. I was originally concerned that I would need to reinitialize the 7344 board after changing axis configuration. Initialization is a global event and impacts all four channels on the 7344 board.

 

Using flex_config_axis() to change axis configuration on a single channel without disturbing other potentially running axis channels will solve my concern. It will be several weeks before I can return to the manufacturing facility where the 7344-based testing machine is located. I will update this thread once I verify a successful result.

 

Bob

 

Message 3 of 3
(3,670 Views)