Back to top

Position Scaling for AKD drive with EtherCAT Communication

This article discusses AKD EtherCAT scaling for Position command and Actual Position

PP = Profile Position

IP = Interpolated Position

CSP = Cyclic Synchronous Position

For defining the user units in the AKD (Workbench)

Set FBUS.PARAM05 bit4=0

Target position is 607A (CSP and PP modes) or 60C1 Sub 1 (IP mode)

Actual position is 6063 or 6064 (All modes)

 

Object 607A: Target Position (CSP and PP modes)

PDO:

PDO value = Target in user units, based on 1 rev = UNIT.PIN (UNIT.POUT does not apply)

In relation to PL.CMD,

PDO value = PL.CMD, if UNIT.POUT = 1

SDO:

For CSP mode: Does not apply.

For PP mode: SDO value = Target in user units, based on 1 rev = UNIT.PIN / UNIT.POUT

 

Object 60C1 Subindex 1: Target Position (IP mode)

PDO:

PDO value = Target position, based on 1 rev = 2^(FB1.PSCALE)

PDO value = (number of revs) * 2^(FB1.PSCALE)

  1. In relation to PL.CMD, PDO value = PL.CMD * UNIT.POUT * 2^(FB1.PSCALE) / UNIT.PIN

Or, PL.CMD = (PDO value) * UNIT.PIN / (UNIT.POUT * 2^(FB1.PSCALE))

  1. In terms of physical units, (number of revs) = (PDO value) / 2^(FB1.PSCALE)

Or, (number of inches) = (Physical in/rev) * (PDO value) / 2^(FB1.PSCALE)

SDO: Does not apply.

 

Object 6063: Actual Position (CSP, PP, IP modes)

For FBUS.PARAM05 = 0 (bit9=0):

PDO:

PDO value = Feedback position, based on 1 rev = 2^(FB1.PSCALE)

PDO value = (number of revs) * 2^(FB1.PSCALE)

  1. In relation to PL.FB, PDO value = PL.FB * UNIT.POUT * 2^(FB1.PSCALE) / UNIT.PIN

Or, PL.FB = (PDO value) * UNIT.PIN / (UNIT.POUT * 2^(FB1.PSCALE))

  1. In terms of physical units, (number of revs) = (PDO value) / 2^(FB1.PSCALE)

Or, (number of inches) = (Physical in/rev) * (PDO value) / 2^(FB1.PSCALE)

SDO: Does not apply.

 

For FBUS.PARAM05 = 512 (bit9=1):

PDO: Same as FBUS.PARAM05 = 0 (bit9=0)

SDO: Same as PDO.

 

Object 6064: Actual Position (CSP, PP, IP modes)

PDO:

PDO value = Feedback position in user units, based on 1 rev = UNIT.PIN (UNIT.POUT does not apply)

SDO:

SDO value = Target in user units, based on 1 rev = UNIT.PIN / UNIT.POUT

For defining the user units through CANopen/EtherCAT

Set FBUS.PARAM05 = 16 (bit4=1):

Target position is 607A (CSP and PP modes) or 60C1 Sub 1 (IP mode)

Actual position is 6063 or 6064 (Actual Position)

 

Object 607A: Target Position (CSP and PP modes)

PDO:

PDO value = (Target in CANopen/EtherCAT units) / (feed rate * gear ratio)

PDO value = (Target in CANopen/EtherCAT units) / [(6092sub1 / 6092sub2) * (6091sub1 / 6092sub2)]

Feed rate and gear ratio are in number of units per number of revs.  These objects are used to set the AKD position scaling through the master.

The gear ratio can be ignored.  Set gear ratio to 1 (6091sub1 = 1 and 6091sub2 = 1).

Set feed rate to the number of units per rev you want to use.

SDO: Does not apply.

 

Object 60C1 Subindex 1: Target Position (IP mode)

PDO: Same as for FBUS.PARAM05 = 0 (bit4=0).

SDO: Does not apply.

 

Object 6063: Actual Position (IP mode)

For FBUS.PARAM05 = 16 (bit4=1, bit9=0):

PDO: Same as for FBUS.PARAM05 = 0 (bit4=0, bit9=0).

SDO: Does not apply.

 

For FBUS.PARAM05 = 528 (bit4=1, bit9=1):

PDO: Same as for FBUS.PARAM05 = 512 (bit4=0, bit9=1).

SDO: Same as for FBUS.PARAM05 = 512 (bit4=0, bit9=1).

 

Object 6064: Actual Position (CSP, PP, IP modes)

PDO:

PDO value = (Feedback position in CANopen/EtherCAT units) / (feed rate * gear ratio)

SDO:

SDO value = (Feedback position in CANopen/EtherCAT units) / (feed rate * gear ratio)

Note: In TwinCAT, the NC actual position and target position are scaled using the “Encoder Scaling”.  This setting is found under Axis 1 / Axis 1_Enc / Parameter tab / Encoder Evaluation / Scaling Factor.  Set this scaling factor to 1 to make the NC position values have the same scaling as the 607A and 6064 PDO values.