Handling of the Absolute encoder between iCube and SERVOPACK
| Version Number | Description |
|---|---|
| 1.0 | First Draft |
|
|
This application presents the handling of absolute encoder with iCube controller and EtherCAT Yaskawa servopacks.
1. Supported Components
| Component Name | Version |
|---|---|
| iC9226M-EC Controller | = 2024.3.1 |
| iCube Engineer | = 2024.03 |
2. Requirement
- Having a servomotor with an absolute encoder or an absolute batteryless encoder connected to an EtherCAT servopack communicating with an iCube controller/
- The servopack parameter Pn002.2 = 0 or 2
3. Absolute encoder related parameters
Servo Parameters :
- PnB46 (607Ch): Home Offset
- This parameter stores the absolute encoder offset in the servopack (= offset between the Z Pulse and the Home position).
- This parameter is not used and should remain equal to 0 when using the servopack with an iCube controller.
- 6064h: Position Actual Value
- This object provides the encoder value in pulses. Since this is a servopack object, writing a different project to the controller doesn't affect it.
- In Case Pn002.2=0, this parameter record also the multi-turn even during power off.
- Executing the function Y_ResetAbsoluteEncoder will reset the multiturn data to 0, causing the ActualPosition value to be displayed within a single revolution range.
Controller Parameters:
- 1838: Absolute Encoder Offset
- This parameter is a substitute for PnB46.
- This parameter is updated by MC_SetPosition FB only on the controller side. It is not saved on the SERVOPACK side.
- A new homing procedure is necessary when this parameter is reset to 0. This happens in the following cases:
- If the controller is reset to factory default values.
- If any hardware configuration of the project is changed
- If Y_AbsoluteEncoderReset FB is executed
- The parameter is retained when a new project with the same EtherCAT hardware configuration is downloaded otherwise it is reset to zero.
- The deletion of the archive from the controller does not reset this parameter.
4. Calculation of Actual Position
The Actual position[1000] value is defined as follows:
P = ActualPosition [1000]
PAV = Position Actual Value [6064h]
E = Encoder Resolution (refer to motor model information )
OF = Absolute Encoder Offset[1838]
MH = Machine Cycle High [1833]
ML = Machine Cycle Low [1832]
MIR = Motor Input Revs/ Input Ratio [1834]
LOR = Load Output Revs/ Output Ratio [1835]
FC = Feed Constant [1808]
With Linear load type:

With Rotary load type:

Notes:
- The actual position value will be unexpectedly modified when Absolute Encoder Offset[1838] or Position Actual Value[6064h] are reset following the cases mentioned in section 3.
5. Example
In this example, Some values would be taken from the project and then the calculation will be done according to the formula defined above.With Linear Load type:
PAV = 547439408; LOR = 2; MIR = 1; FC = 2; OF = -30.52; E = 2^24 as it is a 24 bit encoder.

P = 99.999725
This value is approximately the same value seen in the MC_ReadActualPosition.Position in the image above under the red box.
With Rotary Load type:
PAV = 616617846; LOR = 3; MIR = 2; FC = 4; OF = -30.52; MH = 50; ML = 0; E = 2^24 as it is a 24 bit encoder.

P = 39.9997
The value is almost equal to forty which can be seen on the MC_ReadActualPosition.Position in the image above under the red box.