This topic describes how to configure the scale and offset parameters to convert the EtherCAT feedback data into meaningful units. RMCTools provides Scale/Offset wizards to make this process easy. This topic focuses on how to manually scale the feedback.
EtherCAT Feedback Scaling Overview
The EtherCAT data to be used for feedback for the axis is determined by the Counts Index axis parameter, from the SubDevice specified by the Input SubDevice axis parameter. That EtherCAT data will appear in the Raw Counts axis status register. The Scale, Offset, and other axis parameters convert the Raw Counts into the axis feedback, such as Actual Position, Actual Force, etc.
The EtherCAT measurement data that is received from a device such as drive, sensor, etc. is provided in integer units of resolution. The datasheet of the EtherCAT device will provide details on the data so that you can scale it to desired axis units.
Before scaling the feedback, you should:
Locate in the EtherCAT device datasheet information about the resolution and data values of the feedback.
Fully configure the EtherCAT device so that the axis is receiving data from the EtherCAT device. This includes:
Define the axes
Set up the EtherCAT network
Configure the PDO mapping of the EtherCAT device
Set the Input SubDevice and Count Index axis parameters.
Start the EtherCAT network and ensure it reaches at least Safe-Op mode.
Scale/Offset Wizards
The Scale/Offset wizards are the easiest and recommended method to calculate the Scale and Offset parameters.
To access the Scale/Offset wizards:
In Axis Tools, in the Axis Parameters pane, click the Setup tab.
In the Tools and Wizards section, click Launch.
Follow the instructions in the Scale/Offset wizard.
Manually Calculating the Scale and Offset
To manually calculate the scale and offset parameters, follow the instructions for your feedback type:
Manual Calculation: General P0/P1 Method
The P0/P1 method of scaling can be used with most feedback types except rotary axes and velocity axes. For other scaling methods for specific feedback topics, see the sections further below.
The P0/P1 method involves determining the desired axis feedback value at two different points and recording those values, along with the Counts at those values. This can be done by physically moving the axis to the two points and measuring, or using values provided by the feedback sensor datasheet. If using the measuring method, for best results, the points should be far from each other, preferably at opposite ends of the full range.
On most feedback types, the Actual feedback value is calculated every loop time as follows:
First, the Counts are calculated as:
Counts = Raw Counts + Count Offset
If the axis type does not include Raw Counts, this calculation is not made.
Next, the Actual feedback value is calculated as:
Actual value = Counts x Scale + Offset
To calculate the scaling parameters:
Count Offset:
If the feedback type includes the Raw Counts status register, then the Counts can be adjusted relative to the Raw Counts by using the Count Offset axis parameter. This is usually only necessary for rotary encoders. If you do adjust the Count Offset, do so first before continuing.
The next steps are for setting the Scale and Offset.
Move the axis to one point. Measure the value and call this P0. Record the Counts and call this C0.
Move the axis to the other point. Measure the value and call this P1. Record the Counts and call this C1.
Calculate the Scale:
Scale = (P0-P1)/(C0-C1)
Calculate the Position Offset:
Offset = P0 - Position Scale x C0
Note: Not all axis types use this method. See your specific axis type below for details.
Manual Calculation: Linear Position Axis with Linear Position Feedback
For EtherCAT feedback from linear position sensors, the following axis parameters are used to convert the Raw Counts into position units:
Count Offset (normally not used with linear position sensors)
The Actual Position is calculated every loop time as follows:
First, the Counts are calculated as:
Counts = Raw Counts + Count Offset
Because the Count Offset is normally not used for axes with linear position sensors, the Counts are usually equal to the Raw Counts.
Next, the Actual Position is calculated as:
Actual Position = Counts x Position Scale + Position Offset
To calculate the Position Scale, Position Offset, and Count Offset parameters:
Determine the EtherCAT feedback value resolution:
Use the sensor’s EtherCAT user manual to determine the resolution units of the feedback data that the sensor reports over EtherCAT.
Example 1:
A sensor’s EtherCAT user manual states that the feedback value gives the position in resolution units of 1 µm.
Example 2:
A position sensor has a measurement range of 5 inches and outputs 0-10V over that range. The sensor is connected to a 0-10V analog input on an EtherCAT remote I/O block. The remote I/O block user manual specifies that the sensor provides counts of 0-32767 that corresponds to 0-10V.
The resolution of the EtherCAT data is:
Resolution = 5 in. / 32768 counts ≅ 0.000152588 in./count
Determine the units conversion factor:
Determine the conversion factor between the position units as given by the resolution and the desired position units of the axis. This is the value that must be multiplied by the resolution units to obtain the desired position units.
Example 1:
Sensor data resolution: increments of 1µm
Desired axis units: inches
One inch equals 25.4 mm, which is 25,400 µm. Therefore, the units conversion factor is 1in / 25,400 µm = 3.93700e-5 in/µm.
Example 2:
Sensor resolution: increments of 1 µm
Desired axis units: mm
One µm equals 1000 mm. Therefore, the units conversion factor 1 µm / 1 mm is 1 mm / 1000 µm = 0.001 mm/ µm.
Calculate the Position Scale:
Calculate the Position Scale with the following formula:
Position Scale = Data Resolution x Units Conversion Factor
Example:
A sensor has data resolution of 5 µm, and the desired axis units are inches. The conversion factor is 1 in per 25,400 µm. Therefore, the Position Scale is:
Position Scale = 5 [µm/count] x (1/25,400 [in/µm]) = 1.968503e-4 in/count
Calculate the Position Offset:
Make sure the Position Scale has been downloaded to the axis.
Record the current Position Offset.
Move the axis to some point where you know what the desired Actual Position should be.
Record the reported Actual Position.
Calculate the Position Offset as:
Position Offset = Desired Actual Position - Reported Actual Position + Current Position Offset
Manual Calculation: Linear Position Axis with Rotary Position Feedback
A linear axis has a limited travel range. For axes with linear motion that use a rotary encoder for position feedback, the following axis parameters are used to convert the Raw Counts into position units:
Position Scale
Position Offset
Count Offset
The Actual Position is calculated every loop time as follows:
First, the Counts are calculated as:
Counts = Raw Counts + Count Offset
Next, the Actual Position is calculated as:
Actual Position = Counts x Position Scale + Position Offset
To calculate the Position Scale, Position Offset, and Count Offset parameters:
Count Offset:
On a linear axis, the Count Offset is important for making sure that the wrapping point (zero point) of the encoder is outside of the range of motion of the axis.
The wrapping point can often be adjusted via EtherCAT instead of using the Count Offset axis parameter. For EtherCAT encoders conforming to the CiA encoder profile 406, object 6003h, Preset Value, can be used to adjust the zero point. In RMCTools, this can be accessed in EtherCAT Diagnostics.
To set the Count Offset axis parameter:
Move the encoder through the travel range and determine whether the zero point is in the range.
If the zero point is in the range of travel, set the Count Offset to a value so that it moves the zero point out of the range.
To know how much to adjust the Count Offset, you will need to know the full range of counts of the encoder. This can be obtained from the number of bits of resolute. For example, a 25-bit encoder will have 225 = 33,554,432 counts.
Example:
A machine has a 24-bit encoder (16,777,216 counts). When moving through the range, the Counts value starts at about 15,000,000 counts, wraps, and continues to about 4,000,000 Counts. Setting the Count Offset to 4,000,000 will make the Counts go from about 2,223,000 Counts to about 8,000,000 Counts so that the wrapping point is no longer in the range of motion.
Follow the instructions in the Manual Calculation: Linear Position Axis with Linear Position Feedback section to calculate the Position Scale and Position Offset. Make sure to take into account any gearing of the encoder to the machine rotation.
Manual Calculation: Rotary Position Axis
A rotary axis can continuously rotate. The reported range of motion repeats every time the position reaches the maximum of the defined range.
For rotary axes, the following axis parameters are used to convert the Raw Counts into position units:
Position Unwind
Count Unwind
Position Offset
Count Offset (absolute encoders only)
The Actual Position is calculated every loop time as follows:
First, the Counts are calculated by adjusting the Raw Counts by the Count Offset and applying a modulo to wrap the counts into the Count Unwind range. The calculation differs based on whether the Position Unwind is positive or negative.
Positive Position Unwind:
Counts = (Raw Counts + Count Offset) MOD Count Unwind
Negative Position Unwind:
Counts = ((Count Unwind -1) - Raw Counts + Count Offset) MOD Count Unwind
Now that the Counts are in the range given by the Count Unwind (such as 0-2047 for a Count Unwind of 2048), the corresponding position range for that range of counts is defined by the Position Unwind and the Position Offset. The Position Unwind defines how many position units the range will span and the Position Offset sets the starting value of the range.
The Actual Position is conceptually converted from the Counts into the defined position range as follows:
Actual Position = Counts x (Position Unwind / Count Unwind) + Position Offset
The precise conversion differs from this, but is essentially the same. Keep in mind that a negative Position Unwind means the Actual Position goes the opposite direction of the Counts.
To calculate the Position Unwind, Count Unwind, Count Offset, and Position Offset parameters:
Count Offset:
The Count Offset applies to absolute encoders only. It is important for adjusting the wrapping point (zero point) of the encoder. The wrapping point can often be adjusted via EtherCAT instead of via the Count Offset axis parameter. For EtherCAT encoders conforming to the CiA encoder profile 406, object 6003h, Preset Value, can be used to adjust the zero point. In RMCTools, this can be accessed in EtherCAT Diagnostics.
For absolute encoders, the maximum encoder count range must be a whole number multiple of the Count Offset. For example, for a single-turn absolute encoder of 8192 counts, the Count Unwind can be 8192, 4096, 2048, 1024, 512, 256, etc.
To set the Count Offset axis parameter:
Move the encoder to the point where you want the positions to wrap. Record the Counts.
Set the Count Offset to: Recorded Counts
Note: For incremental encoders, homing is necessary to set the position wrapping point correctly.
Count Unwind:
Set this to the number of counts for which the positions should wrap once. This value should not be greater than the counts range of the encoder. If it is less, it should be set so that the counts range is a whole number multiple of the Count Unwind.
Example 1:
A single-turn encoder with 8000 counts per revolution is directly attached to a motor. The Actual Position should go from 0 to 360 every rotation. The Count Unwind should be 8000.
Example 2:
A single-turn encoder with 8192 counts per revolution is attached to a machine with a 2:1 gearing ratio such that one rotation of the machine is two rotations of the encoder. The motor positions should go from 0 to 360 every rotation of the machine, which equals two rotations of the encoder. The Count Unwind should be 16384.
Position Unwind:
Set this to the span of position units that the Actual Position should cover as the encoder counts move over the range defined by the Count Unwind.
Example 1:
The Count Unwind is 10000. The Actual Position should go from 0 to 1 over that range. The Position Unwind should be 1.
Example 2:
The Count Unwind is 1000. The Actual Position should go from 0 to 360 over that range. The Position Unwind should be 360.
Example 3:
The Count Unwind is 16384. The Actual Position should go from -180 to +180 over that range. The Position Unwind should be 360.
Position Offset:
Set this to the value that the position units should start at for the rotation range.
Example 1:
The Actual Position should go from 0 to 360. The Position Offset should be 0.
Example 2:
The Actual Position should go from -180 to +180. The Position Offset should be -180.
Example 3:
The Actual Position should go from 800 to 1000. The Position Offset should be 800.
For axes with Velocity feedback via EtherCAT, the following axis parameters are used to convert the Raw Counts into the axis units:
Velocity Scale
Velocity Offset (these units are in Counts/s, not in position units per second)
In addition, the Velocity Deadband may be used to keep the Actual Velocity exactly at zero when stopped if some noise exists in the velocity.
The Actual Velocity is calculated every loop time as follows:
Actual Feedback = (Raw Counts + Velocity Offset) x Scale
To calculate the Velocity Scale and Offset:
From the tachometer sensor specification sheet, determine the feedback value at which the velocity is zero. Or, for greater accuracy, make sure the tachometer is stopped, then look at the Raw Counts in the Status Registers pane. Call this value CZERO.
Calculate the Velocity Offset:
Velocity Offset = -CZERO
From the tachometer specification sheet, determine what the maximum velocity is. Call it VelMAX.
From the tachometer specification sheet, determine what the feedback value is at VelMAX. Call this feedback value CMAX.
Calculate the Velocity Scale:
Velocity Scale = VelMAX / (CMAX - CZERO)
For axes with pressure feedback via EtherCAT, the following axis parameters are used to convert the Raw Counts into the Actual Pressure:
Scale
Offset
The Actual Pressure is calculated every loop time as follows:
Actual Pressure = Raw Counts x Scale + Offset
To calculate the Pressure Scale and Offset:
From the pressure sensor specification sheet, determine the following:
The EtherCAT feedback value for zero pressure. Or, for greater accuracy, make sure the pressure is zero, then look at the Raw Counts in the Status Registers pane. Call this CZERO.
The rated maximum pressure of the measurement range. Call this PMAX.
The EtherCAT feedback value for the rated maximum pressure in the range. Call this value CMAX.
Calculate the Pressure Scale:
Pressure Scale = (PMAX)/(CMAX-CZERO)
Calculate the Pressure Offset:
Pressure Offset = -Pressure Scale x CZERO
Manual Calculation: Single-Input Force
For EtherCAT single-input force feedback, the following axis parameters are used to convert the Raw Counts into force units:
Force Scale
Force Offset
Count Offset
Negative Correction Factor
The Actual Force is calculated every loop time as follows:
The Counts are calculated as:
Counts = Raw Counts + Count Offset
The Actual Force is calculated as:
If Counts is >= 0:
Actual Force = Counts x Force Scale + Force Offset
If Counts is < 0:
Actual Force = Counts x NegCorrFactor x Force Scale + Force Offset
To calculate the Force Scale, Force Offset, Count Offset, and Negative Correction Factor:
From the force sensor specification sheet, determine the following:
The EtherCAT feedback value for zero force. Or, for greater accuracy, make sure the force is zero, then look at the Raw Counts in the Status Registers pane. Call this CZERO.
The positive rated load in force units. Call this FMAX.
The EtherCAT feedback value for the positive rated load. Call this value CMAX.
For bidirectional force sensors, find the Counts value of your load cell at the negative rated load. Call these CMAXNEG and FMAXNEG.
Set the Count Offset:
Count Offset = -CZERO
Calculate the Force Scale:
Force Scale = (FMAX)/(CMAX-CZERO)
Calculate the Negative Correction Factor:
Negative Correction Factor = (FMAXNEG / (CMAXNEG - CZERO)) / (FMAX / (CMAX - CZERO)
Force Offset:
The Force Offset is most commonly used for tare, which is to account for the mass between the actuator and the load. Before setting the Force Offset, make sure the Counts Offset, Force Scale, and Negative Correction Factor have been applied to the axis.
Start with the Force Offset at zero. When the machine is in a configuration where the desired load measurement is zero, set the Force Offset to the negative of the Actual Force.
Manual Calculation: Dual-Input Force
Dual-input force is force calculated from two pressure sensors, one in the cap (blind) end (Channel A) of a hydraulic cylinder, and the other in the rod end (Channel B). For axes with dual-input force feedback via EtherCAT, the following axis parameters are used to convert the Raw Counts from each pressure sensor into Channel A and B pressure units, then into Channel A and B force units, then into Actual (net) Force:
Channel A Pressure Scale
Channel A Pressure Offset
Channel B Pressure Scale
Channel B Pressure Offset
Channel A Force Scale
Channel B Force Scale
Dual Channel Force Offset
The Actual Force is calculated every loop time as follows:
Channel A Pressure = Raw Counts x Channel A Pressure Scale + Channel A Pressure Offset
Channel B Pressure = Raw Counts x Channel B Pressure Scale + Channel A Pressure Offset
Channel A Force = Channel A Pressure x Channel A Force Scale + Channel A Force Offset
Channel B Force = Channel B Pressure x Channel B Force Scale + Channel B Force Offset
Actual Force = Channel A Force - Channel B Force + Dual Channel Force Offset
To calculate the Scale and Offset parameters:
Calculate the Channel A and B Pressure Scale and Pressure Offset parameters as described in the Manual Calculation: Pressure section above.
Calculate the Channel A and B Force Scale:
The Force Scale converts the Actual Pressure to the Force. Because Force = area x pressure, the scale is simply the area of the piston of the cylinder (or cylinders, if multiple cylinders are directly plumbed together).
Make sure to include any unit conversion when calculating the force scale.
Example:
A 2 in. diameter cylinder with a 1 in. rod. The pressure is in units of bar. The desired force units are lbs force.
Bar is converted to psi as follows:
1 bar = 14.50377 psi
Channel A force calculation:
The area is 3.14159265 in2. Therefore, because Force = Pressure x Area, the conversion of pressure to force, given area in [in2] and pressure in [psi], is:
Force [lbf] = Pressure [psi] x 3.14159265 in2
If the pressure is given in bar:
Force [lbf] = Pressure [bar] x (14.50377 [psi] / 1 [bar]) x 3.14159265 in2
Given that [psi] is [lbf / in2], this is the same as:
Force [lbf] = Pressure [bar] x 14.50377 [(lbf/in2)/bar] x 3.14159265 in2 = 45.564938 [lbf/bar] x Pressure [bar]
The Force Scale A is 45.564938 [lbf/bar].
The Channel B force calculation is similar, but the area is 2.3561945:
Force Scale B = 14.50377 [lbf/in2/bar] x 2.3561945 in2 = 34.173702 [lbf/bar] x Pressure [bar]
Dual Channel Force Offset:
The Dual Channel Force Offset is most commonly used for tare, which is to account for the mass between the actuator and the load. Before setting the Dual Channel Force Offset, make sure the other scale and offset parameters have been applied to the axis.
Start with the Dual Channel Force Offset at zero. When the machine is in a configuration where the desired load measurement is zero, set the Dual Channel Force Offset to the negative of the Actual Force.
See Also
Scaling Overview | Scale/Offset Wizard | Position Scale | Position Offset | EtherCAT Overview
Copyright © 2026 Delta Computer Systems, Inc. dba Delta Motion