Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Servomotor moves when reset position vi is called and run continuously. This behavior does not have sense, no signal command must be generated during execution of the reset position vi.

I have problems with a VI that is called Reset position.VI. This VI resets the position of the motor or servo and also cleans the register of the internal counter so I can have a home position. The problem is that everytime I press a push button to obtain the home of the servomotor the VI is called but the motor moves. This must not happen. I sensed an analog voltage of -.023 to -.019 volts when it should be zero voltage and no movement has to be present.  I detects this voltage with the program included with the servodrive.

 

To troubleshoot this I enabled the drive. After enabling the drive I only used the VI called Reset Position.VI  in a continues mode and it is observed a movement in the motor. This must not happen because this VI only must clear the counter register and no command signal must be associated with this action. This happens when this VI is running continuously.

 

I

 

 

0 Kudos
Message 1 of 3
(3,332 Views)
This is not a faulty behavior when you have a closer look:
When you call reset position in a loop this is equal to disabling the axis. The output is set to zero and the feedback signals are disabled. As the output always has some small offset the axis moves slowly. An offset at the analog outputs is not a problem in normal mode as the PID control algorithm compensates it. When you call reset position in a loop the PID algorithm is continously reset, too. Thus it doesn't get a chance to compensate the offset of the analog output.

Summary:
Don't call reset position in a loop.

Jochen Klier
National Instruments Germany
0 Kudos
Message 2 of 3
(3,328 Views)
Hello Jochken
 
 
      First of all thanks for your support on this. What I think is that the reset position vi should be modified to zero the counter register only. If I have the servomotor enabled only (no movement) and the position counter register is not empty because of the previous execution what I need is just to clean that register, that's it; even if the vi is called continuously into a while loop.
 
 
Thanks for your support
 
Fortunato Acosta
Lab Operation Tm Ldr
Delphi Corp (Mexico Technical Center)

Message Edited by Fortunato on 09-29-2005 09:02 AM

0 Kudos
Message 3 of 3
(3,319 Views)