Sinamics G120 PROFIdrive Position Scaling: Troubleshooting Guide

David Krause15 min read
Motion ControlSiemensTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Sinamics G120 PROFIdrive Position Scaling: Troubleshooting Guide

When a Sinamics G120 drive controlled via PROFIdrive reports a position that is consistently wrong by a factor of two to five, the root cause is almost always in the mechanical-to-electrical scaling chain. This reference walks through the PROFIdrive position-control architecture, the belt-and-pulley scaling math, the encoder A/B single versus fourfold evaluation decision, and the exact TIA Portal / Startdrive commissioning sequence needed to recover a stable, repeatable positioning result on a belt-driven axis.

Field symptom covered in this guide: Command = 100 mm displacement, actual displacement = 23 mm. Error ratio ≈ 4.35×. After reconfiguring encoder A/B evaluation, the axis reaches commanded position. The cause and the verification procedure are documented in detail below.

1. Problem Description and Field Symptom

The reported fault is a scaling error, not a hardware fault. The drive does not generate an alarm, the PROFIdrive telegram remains in cyclic Operation enabled state (ZSW1 bit 2 = 1, ZSW1 bit 6 = 1), and the motor runs smoothly. Only the relationship between commanded and actual position is wrong.

1.1 Observed Behavior

  • Commanded position from S7-1500/S7-1500T technology object: 100 mm
  • Measured actual position at the load: 23 mm
  • Position error reported by TO: 77 mm (positive, indicating under-travel)
  • Following error (LAG) follows the position error and reaches the configured tolerance window only when motion stops early
  • Reversing direction does not change the ratio; the under-travel is symmetric in both directions

1.2 Mechanical Layout (Belt + Two Pulleys)

Pulley Mounted on Teeth Pitch Calculated circumference
Pulley 1 (drive) Motor shaft 40 3 mm 40 × 3 = 120 mm
Pulley 2 (feedback) Encoder shaft 40 2 mm 40 × 2 = 80 mm

The belt is a single continuous loop, so its linear velocity is identical at both pulleys. The 120 mm and 80 mm values are per-revolution linear travel of the belt, not the diameters of the pulleys. Because the two pulleys have different tooth pitches, they rotate at different speeds for the same belt travel. The encoder therefore rotates 120 / 80 = 1.5× faster than the motor.

1.3 Encoder

  • Pulses per revolution (PPR) on nameplate: 1000
  • Output type: HTL or TTL differential (must be verified on drive)
  • Wired to: SINAMICS G120 Control Unit (e.g. CU250S-2) encoder interface X9 or X2102

2. PROFIdrive Position Control Architecture

The PROFIdrive profile specifies the application classes and telegrams used to close position, velocity, and current loops between an external controller (SIMATIC S7-1500/S7-1500T) and a drive (SINAMICS G120). For motion control applications, the controller typically closes the position loop, while the drive closes velocity and current loops internally.

2.1 Application Classes

Class Function Position loop closed in Typical telegram
AC1 Velocity setpoint from PLC, drive closes velocity loop PLC (if used) Standard telegram 1, 2
AC3 Position controller in drive, position setpoint via PROFIdrive Drive Standard telegram 3, 5
AC4 Position controller in PLC, drive follows velocity setpoint PLC Standard telegram 1, 2 with DSC

For belt-driven positioning axes where the encoder is mounted on a non-load-side pulley, AC4 with Dynamic Servo Control (DSC) is the most common choice on the S7-1500T platform. DSC moves the position loop into the drive so that even with a non-rigid belt, dynamic following error is minimized. Configuration of the PROFIdrive telegram is documented in the Siemens TIA Portal documentation.

2.2 Telegram Components Relevant to Scaling

  • NSOLL (setpoint speed) / XIST_A (actual position): transmitted cyclically in telegrams 3, 5, 6, 103, 105, 106
  • Gx_XIST1 / Gx_XIST2: encoder raw position, 32-bit, increments
  • NIST_B / Gx_XIST1: feedback values used by the technology object

The technology object in the S7-1500 converts the raw increments into load units (LU) using the load gear, motor revolutions, and leadscrew / belt pitch parameters configured in TIA Portal. Every parameter on this chain must be correct for the position error to disappear.

3. Mechanical Scaling Fundamentals

For a belt-pulley axis the canonical relationship is:

Linear travel per motor revolution L_motor = teeth × pitch (mm)

Linear travel per encoder revolution L_enc = teeth_enc × pitch_enc (mm)

Mechanical ratio i = L_motor / L_enc (revolutions of encoder per motor rev)

Applying these formulas to the case at hand:

  • L_motor = 40 × 3 = 120 mm/rev
  • L_enc = 40 × 2 = 80 mm/rev
  • i = 120 / 80 = 1.5

3.1 Position Error Source Categories

Source Type Symptom Detection method
Wrong load distance per motor revolution Mechanical parameter Linear offset proportional to travel Compare commanded vs measured distance
Wrong load gear ratio Mechanical parameter Linear offset proportional to travel Inspect TO configuration
A/B evaluation mismatch Encoder parameter 4× or 2× error exactly Compare raw counts vs expected counts
Encoder wiring / noise Hardware Random jitter, intermittent alarms Check signal quality with Starter/Startdrive trace
Belt slip on pulley Mechanical Variable error proportional to load Compare loaded vs unloaded position
Encoder mounted on wrong shaft Mechanical / wiring Permanent non-integer ratio error Verify encoder-to-load mechanical chain

3.2 Per-Inch Calculation

If the encoder delivers N counts per revolution and the TO is configured for E evaluation (1 for single, 2 for double, 4 for quadruple):

Counts per encoder rev = N × E

Counts per motor rev = (N × E) × i

Linear travel per count (load units per count) = L_motor / ((N × E) × i)

For the field case with 1000 PPR, A/B fourfold, mechanical ratio 1.5:

  • Counts per motor rev = 1000 × 4 × 1.5 = 6000 counts
  • Linear travel per count = 120 mm / 6000 = 0.02 mm/count

If the TO is mistakenly configured for A/B single (E = 1) but the drive hardware is delivering fourfold edges (E = 4), the TO reads 1/4 of the actual count, the displayed position lags 4× behind reality, and the controller commands 4× as much travel before the position window closes. The error factor will be exactly 4 in a clean case; a value of 4.35 (giving 23 mm instead of 25 mm) suggests partial slip or stretch on top of the 4× scaling defect.

4. Encoder Configuration: A/B Single vs Fourfold

Incremental encoders deliver two square-wave channels (A and B) 90 electrical degrees apart. The number of edge transitions per mechanical revolution determines how the drive evaluates the signal.

Evaluation Edges counted per PPR cycle Counts per rev (1000 PPR) Required signal quality
A/B single (x1) 1 rising edge per channel 1000 Minimum
A/B double (x2) 2 edges per channel 2000 Better
A/B fourfold (x4) 4 edges per channel 4000 High

4.1 Drive-Side Selection (Starter / Startdrive)

In the SINAMICS G120 commissioning tool (Starter or Startdrive), the encoder is configured under Drive -> Configuration -> Encoder interface. Parameters:

  • p0408 = encoder pulses per revolution (default nameplate value: 1000)
  • p0421 = absolute encoder type (set to incremental)
  • p0430 = signal evaluation for encoder 1: 0 = single, 1 = double, 2 = fourfold
  • p0431 = zero mark evaluation (typically disabled for incremental positioning)

The value of p0430 must match the actual signal quality. With TTL differential signals (RS-422) and short shielded cables, fourfold is reliable. With HTL single-ended signals or long cable runs, fourfold becomes unreliable and the drive may count phantom edges; single evaluation is then the correct choice. The selected evaluation mode must be consistent between the drive (Starter/Startdrive) and the technology object (TIA Portal).

4.2 Technology Object Side (TIA Portal)

In the S7-1500 / S7-1500T technology object, under Configuration -> Encoder:

  • Encoder type: incremental
  • Signal evaluation: must match the drive
  • Counts per revolution: derived from PPR × evaluation
  • Reference mark: not used for incremental-only axis

5. Root Cause Analysis

The reported 100 mm → 23 mm symptom has the following root-cause chain:

  1. The drive was originally configured with the wrong signal evaluation mode in either Starter/Startdrive or in the TIA Portal technology object. The configured evaluation did not match the actual delivered pulses.
  2. The mechanical scaling parameters (load distance per motor revolution, load gear ratio) were entered using the motor pulley (120 mm/rev), but the encoder pulley circumference (80 mm/rev) was used for counting in some part of the chain.
  3. Net effect: the controller thought the load had moved further than it actually had. The axis stopped short by a factor of approximately 4.

The reported observation that toggling A/B evaluation from fourfold to single and back to fourfold eventually yielded a correct result is consistent with: (a) a parameter write that was not committed, (b) a state machine that required re-initialization after a parameter change, or (c) cached scaling values in the technology object that had to be re-loaded. The fact that the result was inconsistent from the first attempt indicates that a verification step (described in section 7) is mandatory.

6. Step-by-Step Commissioning Procedure

6.1 Prerequisites

  • Sinamics G120 with CU250S-2 (or compatible Control Unit supporting PROFIdrive position control)
  • SIMATIC S7-1500 or S7-1500T with TIA Portal V18 or later
  • Starter (legacy) or Startdrive (current) for drive commissioning
  • Incremental encoder wired to X9 / X2102 with shielded cable, drain grounded at one end only
  • Technology object created for the axis, with the correct drive assigned via PROFINET device name
  • Mechanical dimensions verified by direct measurement (do not trust nameplates)

6.2 Procedure

  1. Verify mechanical dimensions. Measure the belt-pulley circumference with a tape measure, not the tooth count. Tooth pitch × teeth assumes zero belt thickness; in practice, the belt rides on the pitch diameter plus half belt thickness. Record the actual L_motor and L_enc.
  2. Compute the mechanical ratio i = L_motor / L_enc. Record as a ratio (e.g. 3 / 2).
  3. Wire and ground the encoder. Connect A, /A, B, /B, Z, /Z, power, ground per the Control Unit manual. Use twisted-pair shielded cable, shield bonded to PE at the cabinet entry only.
  4. Configure the drive encoder in Startdrive. Set p0408 = encoder PPR (e.g. 1000). Set p0430 = signal evaluation. Save the configuration to the drive.
  5. Verify encoder direction. Rotate the motor shaft by hand (with power off and safety observed) and observe the count direction in the control panel. The count must increment in the positive direction of the eventual axis motion. If reversed, swap A and B channels (or use p0410 = 1 to invert internally).
  6. Run the drive commissioning wizard (motor identification, moment of inertia, current loop, velocity loop). Do not skip the current loop measurement.
  7. Configure the technology object in TIA Portal. Under Mechanics, enter load distance per motor revolution = L_motor. Under Load gear, if the encoder is on a separate shaft, enter the gear ratio. Under Encoder, ensure the signal evaluation matches p0430.
  8. Set position monitoring. Configure Following error tolerance to a value appropriate for the belt system; for a non-rigid belt, 5–10 mm is typical.
  9. Run a test motion with low dynamics (override ≤ 25 %). Command a small absolute position change, e.g. 50 mm. Observe actual position and following error.
  10. Iterate. If actual ≠ commanded by a constant factor, check the four values below in order.

6.3 Scaling Decision Tree

If actual travel is wrong by a constant factor, check in this order:

Observed factor (actual / commanded) Likely cause Fix
≈ 0.5 Configured for double, should be single (or vice versa) Recheck p0430 and TO encoder configuration
≈ 0.25 Configured for fourfold, should be single Recheck p0430 and TO encoder configuration
≈ 0.667 Load distance per motor rev entered as encoder pulley circumference Re-enter L_motor = 120 mm
≈ 1.5 Load distance per motor rev entered as encoder pulley circumference in opposite sense Re-enter L_motor = 120 mm
≈ 4 A/B evaluation mismatch (1 vs 4) Recheck p0430 and TO encoder configuration
variable Belt slip, encoder noise, or following error limit reached Check mechanics, encoder wiring, dynamics

7. Verification and Diagnostics

7.1 Static Verification

  1. Reference the axis to its home position with MC_Home.
  2. Command a known absolute position (e.g. 100 mm) using MC_MoveAbsolute.
  3. After the motion completes, physically measure the load position with a scale.
  4. Compare commanded vs measured. The error must be within the following-error tolerance, not the configured load distance.

7.2 Dynamic Verification (Trace)

Use the Startdrive trace to capture:

  • Speed actual value (r0063)
  • Encoder raw position Gx_XIST1
  • Following error (r0061 in the position controller)
  • Torque actual value (r0079)

Plot Gx_XIST1 increments per motor revolution. The value must equal PPR × evaluation. For the case at hand: 1000 × 4 = 4000 increments per encoder revolution, or 6000 increments per motor revolution because of the 1.5× mechanical ratio.

7.3 Online Diagnostics via TIA Portal

  • Open the technology object online view.
  • Inspect Actual position in load units (LU) and compare against the raw encoder count.
  • Check Configuration tab values: load distance per motor revolution, load gear ratio.
  • Check Encoder tab: signal evaluation mode and counts per revolution.

7.4 Watchdog Alarms

If the encoder evaluation is unstable, F3 family faults may appear:

Alarm Meaning Action
F31110 Encoder 1 signal failure Check wiring, shield, encoder power
F31111 Encoder 1 CRC / signal error Check cable length, replace cable
F31117 Encoder 1 inversion / direction error Verify with p0410 or channel swap
F31805 Encoder 1 evaluation inconsistent Reduce evaluation mode to single

8. Parameter Reference

Parameter Tool Function Recommended value
p0408 Startdrive Encoder pulses per revolution 1000 (from nameplate)
p0430 Startdrive Signal evaluation A/B 2 (fourfold) for TTL diff
p0410 Startdrive Encoder inversion 0 (default), 1 if reversed
r0061 Startdrive trace Speed actual (rpm) n/a
r0063 Startdrive trace Speed actual (rpm) n/a
TO: Load distance per motor rev TIA Portal Belt travel per motor rev 120 mm (measured)
TO: Load gear ratio TIA Portal Encoder-to-motor revolutions 3:2 (1.5)
TO: Encoder signal evaluation TIA Portal A/B evaluation Match p0430
TO: Following error tolerance TIA Portal Positioning window 5 mm (belt-dependent)

9. Field-Proven Pitfalls

Belt thickness ignored. Tooth pitch × teeth is the pitch-line circumference. The belt rides above the pitch line by half the belt thickness. A 6 mm belt reduces the effective travel by roughly 2 × 3 mm per revolution on each pulley. Measure the loaded belt under tension for the most accurate number.
Encoder mounted on a free idler. If the encoder pulley is not the driven pulley but an idler running on the same belt, the belt may slip on the idler or on the drive pulley. A non-zero slip on the idler does not affect the load position, but a slip on the drive pulley does. Mark both pulleys with a paint pen and verify under load.
Encoder evaluation mode set differently on drive and TO. A common mistake is configuring fourfold in Startdrive but leaving the TO at single evaluation. The drive multiplies its output counts by 4, but the TO assumes the raw PPR. The position error becomes exactly 4×.
PROFIdrive telegram mismatch. Telegram 5 supports position feedback natively; telegram 1 does not. If the TO is configured for telegram 5 but the drive is set to telegram 1, the position feedback word is parsed incorrectly and the error appears as a random or scaled offset.
Drive commissioning not run. Without running the drive wizard, the position controller may be inactive and the position control falls back to the technology object entirely. The behaviour is then dominated by TO settings, which is fine, but the drive will report F07900 or similar on first enable.

10. Quick Diagnostic Checklist

  • Encoder wiring: A, /A, B, /B, Z, /Z, power, GND verified
  • Encoder direction: counts increment in expected positive direction
  • Drive p0408 matches encoder PPR
  • Drive p0430 matches actual signal quality and TO configuration
  • TO load distance per motor rev = measured L_motor
  • TO load gear ratio = measured i = L_motor / L_enc
  • TO encoder evaluation = p0430
  • Telegram type on drive = telegram type on TO
  • Static test: 100 mm command → 100 mm ± tolerance actual
  • Dynamic test: 100 mm command at 25 % override → 100 mm actual
  • Dynamic test: 100 mm command at 100 % override → 100 mm actual
  • Load test with payload: 100 mm command → 100 mm ± tolerance actual

FAQ

Why does my Sinamics G120 only move a quarter of the commanded distance?

The most common cause is an A/B signal evaluation mismatch between Startdrive (p0430) and the TIA Portal technology object. If the drive is set to fourfold evaluation but the TO is set to single, the drive multiplies its output by four but the TO reads only the raw count, producing a 4× position error. Verify both sides are configured identically.

How do I enter the load distance for a belt axis with two pulleys?

Enter the linear travel per motor revolution as the load distance, regardless of where the encoder is mounted. For the 40-tooth, 3 mm pitch drive pulley used in this guide, that value is 120 mm. The encoder pulley is then entered in the load gear ratio as 40 × 2 mm = 80 mm, giving a 3:2 ratio.

What is the right A/B evaluation mode for my encoder?

Use fourfold for TTL differential (RS-422) signals on short shielded cables. Use single for HTL single-ended signals or long cables. Do not use fourfold with marginal signal quality; the drive will count noise as edges and produce intermittent F31805 faults.

Why does the position error scale with travel distance instead of being a fixed offset?

A scaling error, not a homing error, causes the error to grow with travel. Check load distance per motor revolution, load gear ratio, encoder PPR, and signal evaluation. A fixed offset, by contrast, indicates a homing reference problem.

Can DSC (Dynamic Servo Control) hide a scaling error?

No. DSC moves the position loop into the drive but does not change the load-unit conversion. A scaling error at the mechanical-to-electrical boundary produces the same under- or over-travel regardless of whether DSC is active. Always verify the scaling with DSC disabled first, then enable DSC to optimize dynamics.

Which PROFIdrive telegram should I select for S7-1500T position control?

Use standard telegram 5 for AC4 (position control in PLC with DSC) or telegram 103/105 for AC3 (position control in drive). The S7-1500T technology object configures the telegram automatically when the drive is assigned; verify the value in the drive parameters p0922.

Why does toggling between fourfold and single evaluation appear to fix the issue intermittently?

The most likely reason is a non-committed parameter change in Startdrive or a TO reload requirement in TIA Portal. After any encoder parameter change, run RAM to ROM on the drive and recompile + download the TIA project so that the technology object re-reads its configuration. Always re-run the verification steps in section 7 after a change.

Back to blog