Back to top

Setting up the AKD to Close Position Loop on an External Encoder

Setting up the AKD to Close Position Loop on an External Encoder

The AKD drive can accept secondary feedback from an external encoder.  The encoder can be mounted directly to the load or geared to the load in order to get better positioning precision.  The AKD uses this encoder signal to close the position loop, while the velocity loop and commutation are based on the primary feedback device in the motor.

Related drive parameters:

PL.FBSOURCE defines which feedback device is used to close the position loop.  For secondary feedback (external  encoder), select “Feedback 2”.

DRV.EMUEMODE defines the mode for the Emulated Encoder Output.  While using an external encoder as secondary feedback, you cannot use the EEO.  So set it to “Input”.

FB2.SOURCE defines the hardware input that will be used to receive the encoder signal.  Set this to “X9”.

FB2.MODE defines the type of encoder signal.  Set this for “Input - A/B Signals”.

FB2.ENCRES defines the number of encoder pulses (post-quad) per revolution of the load.  You must take into account the line count of the encoder and any mechanical gearing ratio between the encoder and the load.  So FB2.ENCRES will be set to the number of encoder lines (pre-quad) x 4 x gear ratio.  Then you must define the user units in terms of the load to motor ratio.  When programming a move of X number of units, the motor will move however far it needs to move to get the external encoder to move the correct number of pulses.  You must account for the mechanical gear ratios between the encoder and the load, and also between the motor and the load.  The user units will be in terms of physical distance that the load moves.  And the value of PL.FB will be based on the pulses of the external encoder.


Say you have a motor driving a gearbox and the gearbox is driving a belt.  The gearbox ratio is 2:1 (speed reduction) and the belt drive has a ratio of 5:1 (speed reduction).  So the overall gear ratio is 10:1.  Then the final belt drive output shaft is geared to a 4096 line external encoder with a ratio of 3 encoder revolutions per shaft revolution.

Motor to load ratio = 10:1

External encoder to load ratio = 3:1

Set FB2.ENCRES = 4096 x 4 x 3 = 49,152 counts

Set the user units to whatever you want to program the load distance to be.  For degrees, select Custom for the position unit and set 360 degrees = 10 motor revs.  That will define the output shaft to turn 360 degrees in 10 revs of the motor for the 10:1 gear ratio.

Now the motion task or Basic program position move can be programmed in user units and the external encoder will be used to close position loop.  PL.FB will be the user unit value corresponding to the encoder pulses of the external encoder.

DO NOT set the external encoder count resolution based on the mechanical ratio between the motor and load.  It should only be based on the ratio of external encoder counts per load revs.


rmirgend's picture
I have a setup where i send the command position to the AKD via ethercat. When i close the loop with an external encoder, should i then continue sending the position in counts on the motor encoder, and just enter the user units in the drive as described in the article to "link" the motor encoder and external encoder? Or is the units typed in the AKD only for motion tasks made in the drive?