LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Motor Control - How to reduce Action Delay and Synchronize

Hello,

        I'm stuck in a tricky situation with a motion control application.

 

Application Description:

I have a distributed system that consists of a Master Control (PXI-based system) and a slave Control (cRIO) based system.

These two are independent applications that communcates with each other using CAN.

The cRIO/Slave control has a servo drive connected in one of the cards that in turn controls a servo motor. 

The amount of rotations to rotate the servo motor on the cRIO comes via a CAN msg from the Master/PXI.

 

Problem Statement:

The issue i'm facing right now is:

Whenever the slave receives a value to rotate from the master, the action happens.  The problem starts when the amount to rotate is higher and higher. For Ex: when i command to rotate 25 degree clockwise from the master, the slaves takes (for example) 50ms to complete the action. The moment the rotation increases to 360 deg, the slave consumes more and more time. The problem occurs when a change happens in between; this takes a while to reflect on the slave and it causes a delay and the behavior is unsynchronized. In ideal state, i want this to behave as a PID logic which synchronously follows the set-point and achieves it at the shortest time.

 

Current Implementation:

I have attached the code snippet and the configuration that i have currently used to control the motor. I would like to know how should i or what should i do to reduce the delay and have it much more synchronized irrespective of the degree or rotations. i'm ok if there's a slight delay like 100 or 200 ms but it shouldnt increase based on the value to rotate.

I also tried with Absolute settings and played with it a bit but it did not help.

 

Any help/lead/suggestion would be greatly appreciated.

 

Thanks!

 

Regards

Jay 

 

 

 

Download All
0 Kudos
Message 1 of 1
(1,941 Views)