Axis Position and User Units
The following diagram shows the flow of axis position data in the WMX3 system.

The encoder feedback is the position data that is returned from the servo drive. It is a 32-bit integer value that does not consider the home position or any multi-turn data from moving the axis beyond the 32-bit position range. This position has units of pulses. This value is returned by the GetStatus function as the Encoder Feedback status.
Every cycle, the change in the encoder feedback (with wrap around) is calculated and added to a 64-bit integer encoder feedback position. This position has units of pulses. This represents the range of positions that a non-single turn axis can occupy. If the axis would move beyond 2^63 - 1 or -(2^63), the feedback position stops updating (this position is virtually impossible to reach). There is no such limitation for single turn axes, and the axis can move infinitely in either direction without the feedback position stopping.
Several parameters further modify the 64-bit integer encoder feedback and convert it to the actual position. This position has units of User Units, which is equal to pulses divided by the Gear Ratio. This value is returned as the Actual Pos status.
The parameters and functions that convert the encoder feedback to the actual position include the following.
Gear Ratio Numerator and Gear Ratio Denominator - These parameters apply a factor between the encoder position and the position used by most WMX3 functions.
Axis Polarity - This parameter can be set to reverse the direction that the axis rotates.
Single Turn Mode and Single Turn Encoder Count - These parameters are used to define the axis as a single turn rotary axis whose position wraps around to 0 at the specified number of pulses.
Home Offset - The home offset is the offset applied to set the home position of the axis. It is changed whenever a homing operation started by the StartHome function completes, or when the SetCommandPos or SetFeedbackPos function is executed.
Compensation - The compensation is the sum of pitch error compensation, 2D pitch error compensation, and backlash compensation. These compensations are defined using SetPitchErrorCompensation, Set2DPitchErrorCompensation, and SetBacklashCompensation.
Whenever any of the above changes, the offsets or multipliers applied to the 64-bit integer encoder feedback change, and the calculated actual position also changes.
The command position is in the same coordinates as the actual position. This position has units of User Units (units of pulses divided by the Gear Ratio). The command position changes as motion functions to move the axis are executed. This value is returned as the Pos Cmd status.
The same parameters that convert the 64-bit integer encoder feedback to the actual position are applied in reverse to convert the command position to an intermediate encoder command, which is converted to a 32-bit integer encoder command by a modulo 2^32 function. Changing any of these parameters may change the command position, but will not change the encoder command. In other words, changing any of these parameters will not cause the axis to move. The encoder command position has units of pulses. This value is returned as the Encoder Command status.