Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

SoftMotion Find Reference Move unexpectedly encountering limit

I have a setup with the sbRIO 9607 running SoftMotion 16.0.1 controlling 4 stepper motors using Step and Direction based on the "Stepper Interface(9401)" example. I am trying to home a stepper motor on the reverse limit switch. The cleanest way to do this seems to be the "Find Reference Move" express VI. I have the configuration set as Reverse Limit and appropriate step settings. The Stepper motor moves toward the reverse limit switch, and as soon as it hits it it stops as it should anytime it hits the limit switch, but error 77026 is given, explanation below:

 

 

"Error -77026 occurred at Find Reference Move when executing 'Start' on Axis 4 at Invoke Node in nimc.waitUntilDone.referenceMove.vi:3400004->nimc.ex.findReferenceMove.startReferenceMove.axis.modeReverseLimit.vi:2050003->Case.lvlib:Core Module.lvclass:Home Rotation.vi
Possible reason(s):
NI SoftMotion:  The find reference move cannot complete because of one of the following reasons: the axis is stopped, the axis unexpectedly encountered a limit, or because of an incorrect home switch signal transition."

 

It doesn't do the intended hit switch, back off switch, then approach the switch at a slower speed. The reverse limit is the only switch configured and it is the reference it is set to find, so I do not see why hitting the limit switch would be "unexpected". Additionally, I tried setting the limit switch in the axis configuration to Enabled but "Dont stop" so that the find reference move would have to stop it, but it never stops it and my stepper motor will continue into the mechanical stop. So it might seem as if "Find Reference Move" is looking at the switches some way I do not expect, but I can find no documentation saying anything other than "Set the active state of the limit and home inputs from the Limits and Home page of the Axis Configuration dialog box." which I am doing. Does anyone have any ideas on this?

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

How are you determining your position? Are you implementing feedback with encoders? Also, you are using the Find Reference Move to set limits in software but how is this determined in hardware?

 

Eric

Applications Engineer

0 Kudos
Message 2 of 4
(3,120 Views)

Movement is open loop, no encoders. There are limit switches in one direction of travel, which is what I am trying to home to. My interpretation of the "Find Reference Move" is that it will find these switches. But, it should expect to hit them, and not give me an error when it does.

Once I am homed to the switch I set that as my zero reference and go open loop movements from there

Its not really a complex task, so I've largely already built my own algorithm without the Find Reference Move. If I can get it to work I might still use it.

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

Here is some information on how to adjust the Axis Configurations. 

 

Limits & Home Page (Axis Configuration)
https://zone.ni.com/reference/en-XX/help/371093G-01/nimclvfb/axisconfig_limhome/

 

Your interpretation seems right in that an error should not pop up. Can you post a picture of how your configurations are laid out?

 

Eric

Applications Engineer

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