SINAMICS V90 Position Jump on Enable: SINA_POS Tracking Mode Fix

David Krause22 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

Resolving SINAMICS V90 Servomotor Position Jumps on Re-Enable (SINA_POS + Telegram 111)

When a SINAMICS V90 servo drive paired with a SIMOTICS S-1FL6 motor and an absolute encoder is commanded via the SINA_POS library function block, a violent position jump (knock) can occur on re-enable if the mechanical load has shifted the rotor while the drive was disabled. This article documents the root cause and four field-proven mitigation strategies, with full parameter references, telegram-111 layout, and PLC implementation guidance from the SINAMICS V90 Operating Instructions and the SINA_POS application documentation.

1. Problem Description

The reported symptom pattern is consistent across multiple machine builders and integrator sites. The configuration is typically:

  • Drive: SINAMICS V90 PN (6SL3210-5FB10-xUA1 or 6SL3210-5FE10-xUA1 family), 200 V or 400 V frame, firmware branch V1.04 or later.
  • Motor: SIMOTICS S-1FL6 (low-inertia, medium-inertia, or high-inertia) with absolute encoder option. The absolute encoder is either a single-turn 20-bit (1,048,576 inc/rev) or a multi-turn 20-bit + 12-bit (4,194,304 inc range) absolute encoder, depending on the motor order code suffix (e.g., AS20DQA1 multi-turn, AM20DQA1 single-turn — verify the actual part number on the motor nameplate).
  • Controller: SIMATIC S7-1500 (1x50, 15xx) or S7-1200 (12xx), with SINA_POS (FB 284, library "SINAMICS blocks") over PROFINET IRT or RT.
  • Operating mode: Modepos = 7 (JOG / jog mode via SINA_POS).
  • Mechanism: The application is pressing a spring-loaded part against a mechanical stop. The PLC jogs the motor into the part, then releases the jog. The motor holds its commanded position (X_cmd) under closed-loop control.
  • Operator action: The drive is then disabled (OFF1 / OFF2 via SINA_POS Enable = FALSE).
  • Observation: With the output stage off, the spring pushes the rotor backwards. The encoder still reports a valid mechanical position because the encoder is absolute and the multi-turn gear box is mechanically retained. The reported X_act differs from X_cmd by some delta of typically 5° to 180° mechanical.
  • On re-enable: The drive sees X_act ≠ X_cmd, computes a step position error, and the position regulator commands a step velocity and torque. The result is an audible and mechanical jump as the rotor snaps back to X_cmd. The following error momentarily saturates the torque limit, and on heavily loaded systems the machine frame can ring.

The phenomenon is not a hardware fault, encoder fault, or wiring issue. It is a control-loop artifact of the V90’s internal position controller operating without a tracking-mode update while the drive was offline. The same issue can be observed on S110 and S120 drives with telegram 111, but the present article focuses on the V90 implementation because the V90 firmware has the most compact control word layout and the most common integrator exposure.

2. Root Cause Analysis

The SINAMICS V90 position controller is a cascade of current, speed, and position loops. Inner loops run at 1 kHz to 4 kHz (current / speed) and the position loop at 2 kHz to 4 kHz, depending on the firmware and the configured cycle clock. The position setpoint X_cmd is delivered to the drive in telegram 111 PZD2 / PZD3 as NSOLL_A (32-bit, in the V90 default unit of 1 LU = 1 increment of the configured mechanical resolution). At the moment the drive is disabled, the last latched X_cmd value remains in the drive’s internal setpoint register.

When the drive is re-enabled, the position controller compares the current actual position X_act (NIST_A) to the still-latched X_cmd and computes:

e_pos  = X_cmd - X_act              // following error (increments)
v_cmd  = Kp_pos . e_pos             // velocity command (rev/min)
i_cmd  = M_pre_ctrl + Kp_speed . (v_cmd - v_act)   // torque command (Nm)

Because the drive has no information that the rotor was moved externally, the controller treats the spring-induced offset as a step disturbance of finite magnitude. Kp_pos (the P-gain of the position loop, V90 parameter p_29050 / equivalent) drives v_cmd to a value that, after ramp-function-generator limiting, often equals P1082 (maximum speed) or the configured override. The torque pre-control is non-zero as long as e_pos is non-zero, and the speed controller then saturates the current command. Mechanically, this manifests as a violent rotational jump on the motor shaft at the instant the output stage re-energises.

The root cause is therefore a mismatch between the drive’s last-known commanded setpoint and the actual mechanical position. The position controller in V90 does not, by default, adopt the new actual position as the new commanded position when the drive is re-enabled. Three independent conditions can break the cycle:

  1. Tell the drive that the mechanical position has changed (tracking mode).
  2. Tolerate the resulting following error and gracefully re-acquire the commanded position without a step torque (P2546).
  3. Have the PLC rewrite the position setpoint to the current actual position before re-enabling the drive (setpoint takeover).
Position vs time (encoder increments, idealised) Position (LU) Time (sequence of events) Drive enabled, holding X_cmd Disable External load pushes rotor back (X_act moves) Re-enable SNAP: X_act jumps back to X_cmd With tracking mode: drive adopts new X_act as X_cmd, no jump

3. Solution Comparison Matrix

Solution Mechanism Configuration effort Mechanical disturbance on enable Recommended use case
1. Tracking mode (POS_STW2 bit 0) Drive continuously adopts X_act as X_cmd; position error remains zero while active One bit in telegram 111 PZD5 + PLC sequencing None on enable Production machines with predictable external forces; default recommendation
2. Dynamic following error tolerance (P2546) Drive flags a controlled following error condition rather than producing a step catch-up torque Single parameter via V-ASSISTANT or BOP Small follow-up motion or fault acknowledgement Light-duty applications, third-party PLC control, no POS_STW2 access
3. PLC pre-enable setpoint takeover PLC reads X_act and writes X_cmd ← X_act, then enables PLC ladder / ST in enable sequence None Custom control where PLC owns the setpoint pipeline
4. Reduced ramp / torque during synchronisation Override P1082 (max speed) and P1525/P1526 (torque limit) during re-acquisition PLC parameter overrides with restore Smooth, deterministic re-acquisition Systems needing a known re-acquisition time; spring-balanced tooling

4. Solution 1 — Activate Tracking Mode (POS_STW2 Bit 0)

Tracking mode is the most elegant solution because it eliminates the disturbance at the source. When tracking mode is active, the SINAMICS V90 continuously adopts the current actual encoder position as the active commanded position, effectively zeroing the position setpoint and suspending the position controller’s tracking of any external reference. When the drive transitions from disabled to enabled with tracking mode active, there is no X_cmd − X_act mismatch to correct, so no torque step occurs.

4.1 Procedure

  1. In TIA Portal, open the device configuration for the SINAMICS V90.
  2. Select the PROFINET interface, then "Telegram configuration".
  3. Add telegram 111 ("SIEMENS telegram 111, PZD-5/5") if not already configured. Telegram 111 occupies 5 PZD words in each direction. If the V90 is on PROFIBUS, the same telegram is available as PPO type 5 with the corresponding 10 PZD words.
  4. In the SINA_POS instance DB, identify the symbolic tag that drives PZD5 of the output image (the tag that carries POS_STW2). In recent library versions this is exposed as ConfigPOS (a WORD), but the exact tag name depends on the library version. Open the FB and inspect the output struct to confirm.
  5. Implement the enable sequence as: ConfigPOS.%X0 := TRUE (or the equivalent bit-set), wait 1–2 telegram cycles, then raise the Enable / ON / OFF1 bits in STW1.
  6. When the application is ready to drive a real position command (e.g., jog back to a reference point, or move to a target), clear ConfigPOS.%X0 := FALSE and issue the next position target through NSOLL_A.

4.2 POS_STW2 bit reference (PZD5, output direction, PLC → drive)

Bit Name Function Notes
0 Tracking mode 1 = drive tracks actual position; 0 = drive follows NSOLL_A setpoint Stable since V90 V1.00
1 Set reference point Edge 0→1 sets the internal reference to current NIST_A Used with absolute encoders after power-up
2 On-board digital input enable Enables drive digital inputs for local jog via terminal Firmware-dependent; verify on BOP
3 Reserved Always 0 Do not use
4–7 Operating-mode / function overrides Mode-dependent; see V90 firmware release notes Behaviour varies across firmware branches
8–15 Reserved / application-specific Typically reserved for manufacturer extensions Read V90 firmware list before using
The exact layout of POS_STW2 depends on the SINAMICS V90 firmware version. POS_STW2.0 (tracking mode) has been stable across the V1.0x firmware line, but other bits have been reassigned in past firmware updates. Always cross-check against the parameter / telegram list in the V90 Operating Instructions for the firmware version installed in your drive. The firmware version is read on the V90 BOP via the menu p0010 / p0014 (or via V-ASSISTANT “Online → Identify drive”).

5. Solution 2 — Dynamic Following Error Tolerance (P2546)

If modifying the control word is undesirable (e.g., the drive is commanded by a third-party controller with no path to POS_STW2), the second-best approach is to lower the dynamic following error tolerance so the drive does not enter a hard catch-up torque event but does enter a controlled fault / warning state that the application can acknowledge and recover from.

P2546 on the V90 is a following-error-monitor parameter. The exact label varies slightly across firmware versions, but its role is to define the maximum allowed dynamic following error at the configured maximum speed. If the actual following error exceeds P2546, the V90 typically raises a fault (commonly F07451 in the V90 fault catalogue). The error condition is benign in the sense that no torque step has been applied to the mechanics — the drive has simply detected the position mismatch and stopped the position controller cleanly.

5.1 Procedure

  1. Open the SINAMICS V-ASSISTANT (or TIA Portal → Drive commissioning → V90), connect to the drive online, and enter commissioning mode.
  2. Navigate to the parameter list (Online → Parameter list) and filter for P2546.
  3. Set P2546 to a small value, typically 0.5° to 5° mechanical. With a 20-bit single-turn encoder, 1° ≈ 2,912 LU. Convert the desired tolerance to LU for the parameter entry.
  4. Save the parameter set to the drive (RAM → ROM) and to the TIA Portal project offline.
  5. Test: jog the drive into the spring load, disable, allow the spring to retract, re-enable. The drive will flag a controlled following error condition (fault LED + alarm code on the BOP) rather than producing a violent catch-up torque.
  6. Acknowledge the fault from the PLC using STW1 bit 7 (acknowledge fault edge 0→1) or manually from the BOP. After acknowledgement, the drive returns to “Ready to switch on” and the enable sequence can be re-issued.
With an absolute encoder, the position information is preserved through disable. After fault acknowledgement and re-enable, the position controller starts with X_act = current actual position, X_cmd = last latched setpoint, and the small delta can be absorbed by the regular position controller ramp. Because P2546 is small, the controller can also be programmed to issue a controlled “home-to-actual” motion to null the residual error before resuming normal operation.

5.2 Fault code reference (V90 base firmware, illustrative)

Code Meaning Typical cause PLC response
F07451 Following error exceeded tolerance External load moved the motor while disabled, or a stall / jam event Acknowledge (STW1.7), investigate cause, re-enable
F07452 Position controller output limited Mechanical end-stop, obstruction, or loss of feedback Acknowledge after mechanic check
F30001 Overcurrent / power unit fault Sudden mechanical shock (which tracking mode prevents) Power-cycle after mechanic check
A019020 PROFINET communication warning Cable / connector / controller-side issue Check wiring, restart telegram

The actual fault code list varies by firmware. Always confirm against the fault list in the V90 Operating Instructions for the installed firmware version.

6. Solution 3 — Pre-Enable Setpoint Takeover in the PLC

This approach keeps full control in the PLC and requires no drive-side changes. The principle is straightforward: before enabling the drive, read the current actual position from the drive (NIST_A from telegram 111 PZD2/PZD3, or a dedicated tag exposed by SINA_POS), copy it into the SINA_POS setpoint register, then enable. The drive then sees X_cmd = X_act, and the position loop is at rest.

6.1 Structured Text Example (S7-1500 / S7-1200, SINA_POS v4.x or v5.x)

// ----- Constants -----
CONST
    T_SYNC_SETTLE : TIME := T#50ms;     // telegram settle window
END_CONST

// ----- 1. Wait for drive to be in "ready to switch on" and not enabled -----
IF (iPosFB.StatusWord1.%X0 = TRUE)         // ready to switch on
   AND (iPosFB.StatusWord1.%X2 = FALSE)     // output stage off
   AND (iPosFB.StatusWord1.%X6 = FALSE) THEN // no active fault

    // ----- 2. Take over position setpoint -----
    iPosFB.SetpointPosition := iPosFB.ActualPosition; // X_cmd := X_act

    // ----- 3. Activate tracking mode (POS_STW2.0) -----
    iPosFB.ConfigPOS.%X0 := TRUE;

    // ----- 4. Wait for telegram settle -----
    tSyncTimer(IN := FALSE);
    tSyncTimer(IN := TRUE, PT := T_SYNC_SETTLE);
    IF tSyncTimer.Q THEN
        // ----- 5. Issue enable -----
        iPosFB.Enable              := TRUE;
        iPosFB.EnablePosDirection  := bDirPosOK;
        iPosFB.EnableNegDirection  := bDirNegOK;
        // (Operating mode = Modepos 7 for jog, or 1/2 for absolute / relative)
    END_IF;
END_IF;

6.2 Notes on the example

  • The actual SINA_POS interface varies by library version (v3.x, v4.x, v5.x). Always refer to the TIA Portal inline help (F1 on the FB) for the exact symbol names of your version. The SINA_POS in TIA Portal V18 / V19 exposes tags such as Enable, SetpointPosition, ActualPosition, ModePos, ConfigPOS, and StatusWord1. Earlier versions may differ in tag naming.
  • The 50 ms settle delay is conservative. One PROFINET cycle (typically 1 ms) is technically sufficient on IRT networks; 50 ms tolerates RT networks and telegram jitter.
  • Setpoint takeover must occur before Enable is raised. If the drive is already enabled, the setpoint will be acted upon immediately and the position controller will see a step in the reference. Use the state machine in Section 9 to enforce the ordering.
  • If the application uses SINA_POS for absolute positioning with Modepos = 1 or Modepos = 2, the takeover must be followed by a controlled transition to the desired operating mode without re-triggering the position controller with an old setpoint.

7. Solution 4 — Reduced Ramp / Torque During Synchronisation

The fourth approach keeps the drive in normal mode but limits the velocity and torque that the position controller can command during the synchronisation window. This is implemented by:

  1. Override the ramp-function-generator maximum speed (V90 P1082 maximum speed, or P1120/P1121 ramp-up / ramp-down time) to a small value (1–5% of normal speed) before enabling.
  2. Override the torque limits (P1525 upper torque limit, P1526 lower torque limit) to a value that the mechanical system can absorb without damage.
  3. Wait for the following error to collapse below a threshold (P2546 or a custom HMI tag) and for the position loop to settle.
  4. Restore the normal parameter values and release the “drive ready” status to the rest of the machine control only after restoration is complete.

This technique is widely used in spring-balanced tooling, accumulator-loaded presses, and web tension control systems where the disturbance is always present and the controller must learn the system dynamics. The key engineering trade-off is synchronisation time: a 1% speed limit on a 30 rev/min system means a 15° offset takes ≈3 seconds to recover. For a 180° offset this becomes 36 seconds, which is too slow for most production cells. In those cases Solution 1 (tracking mode) is the correct answer.

When this technique is used, the position controller’s Kp_pos gain can also be temporarily reduced. On the V90, the position loop Kp gain is exposed as a parameter that can be written at runtime; verify the exact parameter number in the V90 Operating Instructions for the installed firmware (typical identifier: position-controller proportional gain). Always set the gain back to its normal value before the drive is used for production motion.

8. Telegram 111 and SINA_POS Configuration

SINA_POS is the standard Siemens function block for positioning a SINAMICS drive (V90, S110, S120, V20 PN) from a SIMATIC S7-1200 or S7-1500 controller over PROFINET or PROFIBUS. The block encapsulates telegram 111 / 105 so that the application programmer works with symbolic setpoint and actual-position tags rather than raw PZD words.

8.1 Library location in TIA Portal

  • S7-1500: "SINAMICS blocks" library → SINA_POS (FB 284, v4.0+ in TIA Portal V16+; v5.x in TIA Portal V17 / V18 / V19).
  • S7-1200: same library, available as FB 284 from the SIMATIC S7-1200 Motion Control library. The 1200 version is functionally a subset of the 1500 version.

8.2 Telegram 111 PZD layout

Direction PZD word Mnemonic Function Width
PLC → drive 1 STW1 Control word 1 (ON/OFF1, OFF2, OFF3, enable, enable ramp, unFreeze, etc.) 16 bit
PLC → drive 2 NSOLL_A (low) Position setpoint A, low 16 bits 16 bit
PLC → drive 3 NSOLL_A (high) Position setpoint A, high 16 bits 16 bit
PLC → drive 4 NSOLL_B / override Velocity override or position setpoint B 16 bit
PLC → drive 5 STW2 (POS_STW2) Positioning control word 2 (tracking mode, set reference, etc.) 16 bit
Drive → PLC 1 ZSW1 Status word 1 (ready, enabled, fault, etc.) 16 bit
Drive → PLC 2 NIST_A (low) Actual position A, low 16 bits 16 bit
Drive → PLC 3 NIST_A (high) Actual position A, high 16 bits 16 bit
Drive → PLC 4 NIST_B / diagnostic Actual value B or diagnostic word 16 bit
Drive → PLC 5 ZSW2 (POS_ZSW2) Positioning status word 2 16 bit

Position data in NSOLL_A and NIST_A is 32-bit, in the V90 default unit of 1 LU. With a 20-bit single-turn encoder, 1 LU = 1 / 1,048,596 of a mechanical revolution. With a 20-bit + 12-bit multi-turn absolute encoder, the total range is 4,194,304 LU. The position unit and resolution are configured in the V90 parameter list (mechanical resolution / load gear / position unit) and must match between the drive and the SINA_POS instance.

9. PLC Implementation — Complete State Machine

The following example assumes an S7-1500 CPU, a SINAMICS V90 PN, and SINA_POS v5.x. It combines Solutions 1 and 3 for a robust enable sequence that protects the mechanics in all states.

Enable sequence state machine S0 Idle S10 Take over setpointX_cmd ← X_act S20 Enable trackingPOS_STW2.0 = 1 S30 Issue ON / OFF1Enable := TRUE S40 Wait for enabledZSW1.2 = 1 S50 Run applicationModepos 7 / jog S60 Disable + cleartracking mode
// ===== State machine constants =====
CONST
    T_SYNC_SETTLE  : TIME := T#50ms;
    T_DRIVE_ON_MAX : TIME := T#2s;     // interlock: must enable within 2s
END_CONST

CASE iState OF
    0: // ----- S0 Idle -----
        iPosFB.ConfigPOS.%X0 := FALSE;       // tracking off
        iPosFB.Enable        := FALSE;
        iPosFB.ModePos       := 0;           // hold position
        IF bEnableRequest AND (iPosFB.StatusWord1.%X0 = TRUE) THEN
            iState := 10;
        END_IF;

    10: // ----- S10 Setpoint takeover -----
        iPosFB.SetpointPosition := iPosFB.ActualPosition; // X_cmd := X_act
        iPosFB.ModePos := 0;
        iState := 20;

    20: // ----- S20 Tracking mode active -----
        iPosFB.ConfigPOS.%X0 := TRUE;         // POS_STW2.0 = 1
        tSyncTimer(IN := FALSE);
        tSyncTimer(IN := TRUE, PT := T_SYNC_SETTLE);
        IF tSyncTimer.Q THEN
            iState := 30;
        END_IF;

    30: // ----- S30 Issue enable -----
        iPosFB.Enable              := TRUE;
        iPosFB.EnablePosDirection  := bDirPosOK;
        iPosFB.EnableNegDirection  := bDirNegOK;
        iState := 40;

    40: // ----- S40 Wait for ZSW1.2 (enabled) -----
        IF iPosFB.StatusWord1.%X2 THEN
            iState := 50;
        END_IF;
        // Fault detection
        IF iPosFB.StatusWord1.%X3 OR iPosFB.StatusWord1.%X6 THEN
            iState := 100; // error state
        END_IF;

    50: // ----- S50 Application running -----
        // Tracking stays on for safety during jog; release only for absolute moves
        iPosFB.ModePos := 7; // JOG
        IF NOT bEnableRequest THEN
            iState := 60;
        END_IF;

    60: // ----- S60 Disable + restore -----
        iPosFB.Enable        := FALSE;
        iPosFB.ConfigPOS.%X0 := FALSE;
        iState := 0;

    100: // ----- Error handler -----
        iPosFB.Enable := FALSE;
        iPosFB.ConfigPOS.%X0 := FALSE;
        // Wait for fault clear from HMI or automatic acknowledge
        IF bFaultAck AND (iPosFB.StatusWord1.%X6 = FALSE) THEN
            iState := 0;
        END_IF;
END_CASE;

10. Commissioning, Verification, and Diagnostics

10.1 Verification checklist

  1. With the drive enabled and the motor at rest, jog it into the spring-loaded part until the mechanical stop or the load is in contact.
  2. Release the jog command. The motor should hold position (or drift slightly as the spring relaxes, depending on the position controller gain).
  3. Disable the drive via OFF1 or OFF2. Verify on the HMI / BOP that the drive has powered down the output stage.
  4. Allow the spring to retract the rotor manually. Measure the rotation with an angle indicator or a reference mark on the shaft. Typical offset is 5° to 180° mechanical depending on spring stiffness and motor torque.
  5. Issue the enable command using the configured Solution 1 / 2 / 3 / 4 sequence.
  6. Observe the motor shaft. The expected behaviour is no jump: the motor should come up smoothly into “enabled but stationary” state.
  7. Confirm on the HMI tags rActualPos and rSetpointPos that the difference is within the position controller tolerance (typically a few encoder increments).
  8. Confirm in the V-ASSISTANT or Startdrive trace that n_act (actual speed) does not exceed the configured P1082 maximum speed during the enable transition. A peak indicates that tracking mode is not active or that the setpoint takeover did not complete.

10.2 Trace configuration

Use SINAMICS V-ASSISTANT or Startdrive to record the following signals during the enable transition at the highest available sample rate (typically 1 ms for the V90):

  • NSOLL_A (position setpoint) — should be latched at the moment of disable
  • NIST_A (actual position) — should match NSOLL_A within the controller tolerance
  • n_set (speed setpoint) — should be zero (or near zero) at the moment of enable, with no transient
  • M_set (torque setpoint) — should be small, no step
  • ZSW1 bit 0 (ready) and bit 2 (enabled) — for state machine verification
  • ZSW2 (POS_ZSW2) — for status of tracking mode, set reference, etc.
  • p2546 (current dynamic following error tolerance) — confirms the value is at the expected level after parameter write

10.3 Common commissioning issues

Symptom Likely cause Resolution
Tracking mode bit has no effect Telegram 111 not active; SINA_POS overriding POS_STW2 Verify telegram 111 selected in device config and that SINA_POS exposes a configurable ConfigPOS tag
Drive does not enable even with tracking mode active Safety chain open, F-DI on V90 not asserted, or STW1 bits wrong Check STW1.0 (ON/OFF1), STW1.1 (OFF2), STW1.2 (OFF3), STW1.3 (enable); check F-DI wiring
Jump is reduced but not eliminated P2546 too large; encoder is incremental (not absolute) Reduce P2546; verify encoder is absolute (multi-turn, order code suffix AS or AM)
Fault F07451 after re-enable Solution 2 working as designed — fault is expected Acknowledge via STW1.7; consider auto-ack in PLC
Position wraps after some hours of operation Single-turn absolute encoder; multi-turn battery discharged Use multi-turn absolute encoder; replace multi-turn backup battery per maintenance plan
Tracking mode set, but position drifts on enable Mechanical system has continuous force (gravity on vertical axis) Engage holding brake; consider PLC-side home routine

11. Edge Cases and Safety Considerations

Even with tracking mode active, the drive is enabled, the output stage is live, and the motor can produce torque at any moment. Functional safety (STO via F-DI on the V90, or PROFIsafe STO over PROFINET) must be applied per the machine risk assessment. Refer to the safety chapter of the SINAMICS V90 Operating Instructions and the SIMATIC Safety Integrated manual for the system integration rules.
  • Tracking mode suppresses position control but does not suppress torque or speed control. On a vertical axis, the holding brake (integrated in S-1FL6 or external on the gear) is the only thing preventing a gravity-induced drop. Wire the brake control through the drive (BR+ / BR− terminals on V90) and observe the brake test interval from the machine’s maintenance plan.
  • On machines with multiple drives in coordinated motion, tracking mode on a single drive will break the coordination. In those cases, use a coordinated disable / enable sequence with a software position offset (MC_Home or axis homing from the SIMATIC Motion Control side) rather than per-axis tracking.
  • Tracking mode on an absolute encoder retains the encoder’s multi-turn information. If the encoder battery (for multi-turn absolute encoders without an Energy Backup Module) is low or absent, the absolute position may be lost on power-cycle and a homing run will be required. Plan battery replacement as a scheduled maintenance item.
  • The P2546 approach is the least invasive but introduces a controlled follow-up motion. In safety-rated applications, verify that the follow-up motion does not exceed the safety-rated speed or position limits. PROFIsafe SS1 / SS2 with safe speed monitoring is the standard way to enforce this.
  • On an incremental encoder configuration (not recommended for this application), there is no X_act reference after a power-cycle. Tracking mode still works at runtime, but a homing run must be executed after each power-up. The V90 with absolute encoder is strongly preferred for spring-loaded applications.

12. Frequently Asked Questions

What is POS_STW2 bit 0 (tracking mode) and how does it prevent the position jump?

POS_STW2 bit 0 is the tracking mode bit in the positioning control word (PZD5 of telegram 111). When set to TRUE, the SINAMICS V90 continuously adopts the current actual encoder position as its internal setpoint, so the difference X_cmd − X_act is always zero. On re-enable, there is no offset to correct and no torque step occurs.

Which SINAMICS V90 firmware versions support POS_STW2 bit 0?

POS_STW2 bit 0 has been available in the standard telegram 111 of the SINAMICS V90 since the initial release. The bit position has not changed across the V1.0x firmware branch. Other bits in POS_STW2 have been reassigned in past firmware updates, so always cross-check against the parameter and telegram list in the V90 Operating Instructions for the exact firmware version installed in your drive.

What does P2546 do on the V90, and is it the right parameter for this problem?

P2546 is the dynamic following error tolerance on the SINAMICS V90. It defines the maximum allowed difference between the position setpoint and the actual position during motion. If the actual following error exceeds P2546, the drive typically raises a fault (commonly F07451 in the V90 fault catalogue) rather than producing a catch-up torque. Setting P2546 to a small value (1° to 5° mechanical, expressed in LU) allows the drive to flag the disturbance so the PLC can acknowledge and re-enable without a violent jump. P2546 is firmware-specific; verify its exact behaviour in the V90 Operating Instructions for the installed firmware version.

Can I use SINA_POS in Modepos = 7 (JOG) and still have tracking mode work?

Yes. Tracking mode is a property of the position controller, not of the operating mode. You can enable the drive in Modepos = 0 (hold) or Modepos = 7 (jog) as long as POS_STW2.0 is TRUE during the enable transition. After the drive is enabled and the application is ready to command motion, clear POS_STW2.0 to allow the controller to track the next commanded position.

My drive is controlled by a third-party PLC that does not expose POS_STW2. How can I still prevent the jump?

Use Solution 2 (P2546) or Solution 4 (ramp rate / torque override). Both can be configured at the drive via the BOP (Basic Operator Panel) or V-ASSISTANT, and neither requires access to the PROFINET / PROFIBUS telegram. The third-party controller can then acknowledge the resulting following error fault (e.g., F07451) and re-enable the drive at a controlled state.

Does this issue also occur on SINAMICS S110, S120, or V90 PN with PROFINET IRT vs RT?

The root cause is the same on S110, S120, and any drive that uses telegram 111 (or 105) for positioning. The PROFINET cycle time (IRT vs RT) only affects how fast the position setpoint is updated. It does not change the tracking-mode behaviour. On all of these drives, enabling tracking mode (POS_STW2.0 for S110 / S120 / V90 PN, or the equivalent bit in the S120 positioning telegram) before re-enable is the canonical solution.

Back to blog