Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

What conditions need to be met for Wait Reference to be TRUE?

I have found that a problem occurs during a "wait reference" vi.  Most of the time a TRUE is output from this vi when the reference has been found (limit or home), however sometimes it will stop on finding the reference but a FALSE is output.
 
Increasing the deadband in the move complete criteria of the trajectory settings in MAX will result in the find reference succeeding every time.
 
What conditions need to be met for the output to be TRUE from the wait reference vi?  i.e. does the move complete criteria have to be met as well as the reference found? 
 
I think what appears to be happening is that the reference is found, the motor is stopped, then the vi checks the difference between the demanded steps, and the encoder feedback.  A difference is found (because of the backlash), and the motor halted.
 
I can increase my deadband to ensure all mechanisms initialise reliably, however I would like to understand why changing the deadband has an affect.  Could it be caused by the gearing or backlash?
0 Kudos
Message 1 of 4
(3,744 Views)
Because I encoutered the same behaviour in a previous application, I'm really interested in this topic.

I have noticed that this is also related to the speed. At high speeds, the reference was never found. The motor stopped near the reference but the output was FALSE. Finally I implemented following workaround :

  1. Search the reference at high speed (move quickly to the expected position)
  2. Move back for some steps if the reference is not found
  3. Run a new search at a lower speed
  4. Repeat 2. and 3. if necessary
The application has now been running for months without the least problem. But like mentionned, I would be very interested to know more about the conditions for the output to be TRUE.
0 Kudos
Message 2 of 4
(3,740 Views)
I can't imagine it not being able to find a home or limit switch.  It can blow by the index mark, though.  This is one of the main reasons for using a multi-step homing routine.  I always jog to a limit switch, then reverse direction and find the home switch at a slower speed, then creep to find the index.
0 Kudos
Message 3 of 4
(3,736 Views)

When searching for the home, I use the find reference VI which looks for the edge, then approaches the edge in reverse at 10% initial velocity.  I can see the home signal on a scope, both when it passes through the edge, and when it slowly arrives at the edge.  At this point the motor will stop, and the wait reference vi will wait until its timeout is reached and a FALSE is output.

 

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