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 and SDO:

Fieldbus value is in "counts" or "physical units" (mm, inches, etc.) based on feed constant and gear ratio.  Meaning, the feed constant and gear ratio define the number of units per motor rev.

Scaling is in units of (feed constant) / (gear ratio).

Fieldbus value = number of physical units

Or, Fieldbus value = number of revs * (feed constant) / (gear ratio)

Or, (number of revs) = Fieldbus value * (gear ratio) / (feed constant)

Feed constant is 6092sub1 / 6092sub2.

Gear ratio is 6091sub1 / 6091sub2.

(The gear ratio can be ignored.  Set gear ratio to 1 (6091sub1 = 1 and 6091sub2 = 1).  Set feed constant to the number of units per rev you want to use.)

 

Example:

Feed constant = 10 mm / 1 rev : 6092h sub1 = 10, 6092h sub2 = 1

Gear ratio = 5:1 : 6091h sub1 = 5, 6091h sub2 = 1

Scaling is in 10mm/5revs.

For a Physical Target Position of 2mm: Set the Fieldbus value to 2.

Number of revs = 2mm * 5revs / (10mm/rev) = 1 rev

 

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 and SDO:

Fieldbus value is in "counts" or "physical units" (mm, inches, etc.) based on feed constant and gear ratio.  Meaning, the feed constant and gear ratio define the number of units per motor rev.

Scaling is in units of (feed constant) / (gear ratio).

Physical Feedback Position = Fieldbus value

Or, Fieldbus value = number of revs * (feed constant) / (gear ratio)

Or, (number of revs) = PDO value * (gear ratio) / (feed constant)

Feed constant is 6092sub1 / 6092sub2.

Gear ratio is 6091sub1 / 6091sub2.

 

Example:

Feed constant = 10 mm / 1 rev : 6092h sub1 = 10, 6092h sub2 = 1

Gear ratio = 5:1 : 6091h sub1 = 5, 6091h sub2 = 1

Scaling is in 10mm/5revs.

For a Fieldbus Feedback value of 2: Physical Feedback Position = 2mm

Number of revs = 2mm * 5revs / (10mm/rev) = 1 rev

 

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.