Jump to content
OMRON Forums

Home command and absolute encoder


andyf

Recommended Posts

Is there any way to disable homing search moves for motors that are already setup with power on absolute position sensing? I have motor 1 with an absolute encoder, but when the user types "#1home" it motor begins a home search move and never stops because there is no home trigger.
Link to comment
Share on other sites

  • Replies 5
  • Created
  • Last Reply

Top Posters In This Topic

Update - I tried using the approach of setting Acc24E3[0].Chan[0].CaptCtrl to 0 and then GatedIndexSel=0, which the manual states will cause the trigger to happen upon arming. I would have expected that to work, but it does not...the motor begins a home search move and does not stop. However, when I use CaptCtrl=0 with GatedIndexSel=1, the motor only moves to the next U/V/W phase and then stops. This seems to work out OK, but I am curious why the first option did not work.
Link to comment
Share on other sites

If you have absolute encoders on your motor, you should not need to do a homing search move. I have several linear motors with absolute encoders, and to set the zero position, I set motor[x].HomeOffset equal to the position where I want zero. The recovery program just issues a homez to set the motor position, then jogs to the home position.

 

I use this procedure to set the value for HomeOffset: first set motor[x].HomeOffset to 0, homez the motor from the terminal (#1hmz), note the position that is displayed in the position window, then set motor[x].HomeOffset to this value. Save to the Pmac. Now when you issue a homez command, the motor should be set with its absolute position.

 

kmonroe

Link to comment
Share on other sites

I agree that homing is not necessary. However, we have a high level software system running on the host that always indexes a motor before its first use. It does this by issuing the "home" command. Thus, I am looking to have that command essentially do nothing in this case, since the position is already known via the abs encoder. The other option is to change the high level software to know whether a motor has absolute or relative encoders, but I am trying to avoid that if possible.
Link to comment
Share on other sites

  • 2 weeks later...

I'd still like to understand why the first option does not work (Acc24E3[0].Chan[0].CaptCtrl to 0 and then GatedIndexSel=0)

 

 

Update - I tried using the approach of setting Acc24E3[0].Chan[0].CaptCtrl to 0 and then GatedIndexSel=0, which the manual states will cause the trigger to happen upon arming. I would have expected that to work, but it does not...the motor begins a home search move and does not stop. However, when I use CaptCtrl=0 with GatedIndexSel=1, the motor only moves to the next U/V/W phase and then stops. This seems to work out OK, but I am curious why the first option did not work.

Link to comment
Share on other sites

In the ASIC on the ACC-24E3, the act of setting CaptCtrl to 0 immediately sets the capture flag (the PosCapt element for the channel). At the beginning of the homing search move, the processor automatically reads the captured position register to clear this flag, then starts the move and looks for the flag to be set again. But there is nothing to set the flag. We will need to clarify this in the manual better. It is subtly different from the ASIC in the ACC-24E2, where the flag is level-triggered, not edge-triggered

 

To do what you want, I would suggest setting Motor[x].CaptureMode to 2 to trigger on exceeding the warning following error limit, and setting Motor[x].WarnFeLimit to a tiny number (e.g. 0.001 counts). This will cause the move to finish without any perceptible motion.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...