Resolving Siemens S120 MotID Auto-Start in Vector Control

David Krause14 min read
SiemensTroubleshootingVFD / Drives
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

1. Problem Description

On a Siemens SINAMICS S120 chassis drive controlled by a CU320 Control Unit, operating in vector control (with or without encoder) with an induction motor, the drive unexpectedly enters the operating state [14] Oper. - MotID every time the OFF1 command is removed and the drive is enabled via p0840 = 1 (or a digital input mapped to p0840). The state transition is visible in r0002 (drive operating state display) and r0046.0...29 (operating status word bits), and is also reported in r0047 (motor data identification status).

The visible symptom is that the motor runs uncontrolled for several seconds in the wrong rotational direction (in the reported case, the cage / load is heavy enough that it begins to drop, producing reverse motion) before the controller releases to [0] Oper.. The end user has already verified that:

  • p1900 = 0 (Motor data identification selection / commissioning filter)
  • p1960 = 0 (Speed controller optimization selection)
  • p1910 = 0 (Equivalent circuit diagram data identification activation)

Despite all three identification selection parameters being zero, the drive still re-enters MotID at every enable. The goal of this article is to identify all conditions under which a MotID routine can still be triggered, isolate the correct parameter, and confirm a clean [0] Oper. state on the next enable without re-flashing the unit.

Field-safety note: A hoist or vertical-load application must never be released for production after a vector-mode commissioning if the load is mechanically free to move. Always mechanically clamp, brake, or decouple the load from the motor shaft before any rotating or standstill measurement is executed. A drive that drops a load during a MotID pulse sequence will accelerate to the speed controller's pull-out limit in vector mode and may damage the gearbox, the brake, or the load itself.

2. Why MotID Is Triggered Even When p1900 / p1910 / p1960 Are Zero

On SINAMICS S120 with firmware V4.x through V5.x (and the corresponding V6.x STARTER/SCOUT/Startdrive commissioning toolchain), the operating state [14] Oper. - MotID is reached whenever one of three different mechanisms is armed:

  1. Direct commissioning filter parameter: p1900 (1 = only motor data, 2 = motor data + speed controller at standstill, 3 = complete measurement including rotating)
  2. Standalone identification trigger: p1910 = 1 (stillstand identification of equivalent circuit data only)
  3. Speed-controller optimization trigger: p1960 with values 1, 2, 3, or 4 (rotating measurement variants — see SINAMICS S120/S150 List Manual (LH1), firmware V5.2)
  4. Rotating-measurement configuration bits: p1959 (bit-coded controller structure of the rotating measurement)
  5. One-shot control word: p1909 (motor data identification control word, edge-triggered)

When p1900, p1910, and p1960 are read back as zero from the offline project and from the online drive (using the operator panel or Starter/Startdrive "online r0002" view), the most common field cause is that the value was changed online, the change was not saved, and the Control Unit was power-cycled or warm-restarted. On a CU320, parameter changes done online are RAM-only until they are explicitly saved with "Copy RAM to ROM" (Starter: drive → "Copy RAM to ROM"; Startdrive: drive → "Save to memory card"). After a power cycle, the drive reads the last-saved set from the non-volatile store.

Table 1 — Identification-related parameters on SINAMICS S120 (CU320)
Parameter Name Values that arm MotID Reset to 0 after success? Scope
p1900 Motor data identification 1, 2, 3 Yes (after F07990 or success) Full drive object
p1910 Equivalent circuit data identification 1 Yes Drive object (motor data)
p1960 Speed controller optimization 1, 2, 3, 4 Yes Drive object (closed-loop ctrl)
p1959 Rotating measurement configuration bit 0, 1, 2 (controller structure) No — must be cleared manually Drive object
p1909 MotID control word bit-triggered Auto-clear Drive object
p0340 Automatic calculation, motor/ctrl params 1, 2, 3, 4, 5 (re-compute) Yes Drive object

The symptom in the original report is consistent with the drive booting into a non-zero value for one of p1900, p1960, or with p1959 still indicating a rotating measurement even though the operator saw 0. The next section gives a diagnostic procedure that resolves this exact ambiguity.

3. Diagnostic Procedure to Locate the Stale MotID Source

Run the following checks on the live CU320 in this order, with the drive in [7] Config (not enabled) and the power section gated. Capture the results of every step before changing anything.

  1. Read r0002 — note the operating state. If it reads [14] Oper. - MotID on power-up, that means a MotID request is already armed in the saved parameter image.
  2. Read p1900, p1910, p1960, p1959, p1909 directly from the Control Unit using a Starter/Startdrive online connection or the basic operator panel (BOP20) "Parameter" menu. Note the online values, not the offline project values.
  3. Read p0340 — if non-zero, an automatic parameter calculation is queued. p0340 does not trigger a MotID by itself, but it often coincides with one in the same commissioning pass.
  4. Read p3985 (control mode for motor data identification, where supported on the firmware version) and p3981 (acknowledging pending commissioning activities).
  5. Check r0046 bits 0..29 to see the bit-level operating status. Bit values follow the standard SINAMICS state machine: bit 6 = "Identification running".
  6. Read r0047[0] through r0047[5] — the motor data identification status indices. The index with the highest non-zero value identifies which measurement is currently armed:
Table 2 — r0047 motor data identification status indices (S120)
Index Meaning
r0047[0] Stator resistance identification status
r0047[1] Rotor time constant / leakage identification status
r0047[2] Magnetizing current / saturation characteristic status
r0047[3] Speed controller optimization status
r0047[4] Rotating measurement status
r0047[5] Moment of inertia identification status

If r0047 shows any non-zero status (other than FINISHED = 104 or 105, depending on firmware), then a measurement is still pending. The only way to disarm a pending MotID is to either let it run to completion (preferred) or to set the requesting parameter back to 0 and perform a power cycle with a saved image.

4. Root Cause — "Online-Changed p1900 Was Never Saved"

Time → Initial commissioning p1900 = 2 written online (RAM only) Run MotID at standstill r0047 → FINISHED p1900 auto-clears to 0 Operator edits p1900 = 0 online (RAM) No ROM save performed Power cycle / warm restart ROM still has p1900 = 2 Drive boots into MotID FAULT WINDOW: 430→520 After a power cycle, the saved p1900 value is reloaded, the drive re-arms MotID, and the next OFF1→ON transition executes the identification routine — causing the unwanted motion.

In the case in the source thread, the operator set p1900 = 2 for the initial identification, ran the standstill measurement, observed that the values were good, and then later reset p1900 to 0 in the online project — but never performed "Copy RAM to ROM". On the next power-up the ROM image still contained p1900 = 2, so the drive re-armed the MotID routine and re-ran it at every enable. The cage moved because, even with the encoder closed-loop, the brief moment between reaching the MotID state and reaching the operating state lets the controller output torque based on the not-yet-updated or already-frozen flux estimate, and the gravity-loaded cage drives the rotor.

5. Step-by-Step Resolution

The fix has two parts: clear all MotID triggers in the saved image, and verify the next power cycle is clean. Perform the steps with the drive stopped and the line contactor open, or with the motor mechanically locked.

  1. Connect online to the CU320 with Starter (V5.x) or Startdrive (V15 and later, used with TIA Portal).
  2. Open the drive object (DO) configuration tree and select the infeed / Motor Module that contains the affected drive object.
  3. Read the live values of p1900, p1910, p1960, p1959, and p1909 by double-clicking each parameter or using the parameter list. Record them in a commissioning log.
  4. Force each trigger parameter to 0:
    • p1900 = 0
    • p1910 = 0
    • p1960 = 0
    • p1959 = 0 (clear all bits — do not leave bit 0 set unless you intentionally want a rotating measurement)
    • p1909 = 0 (acknowledged / reset)
  5. Save the project to the Control Unit's non-volatile memory. In Starter: right-click the drive → "Copy RAM to ROM" (Ctrl+Shift+S). In Startdrive: drive → "Save to memory card". On BOP20: navigate to the parameter context, edit, and confirm "Save?". The CU320 stores the parameters to its internal flash; this operation may take 30–90 seconds.
  6. Power-cycle the CU320 by turning off the 24 V control supply to the Control Unit, waiting at least 10 seconds, and re-applying it. This forces a re-load of the saved image into RAM.
  7. Re-read p1900, p1910, p1960, p1959 after the power cycle and confirm all read 0. If any of them is non-zero after the power cycle, the save did not complete — repeat step 5 and re-check.
  8. Check r0002 and confirm it shows [1] Ready for switch-on or [7] Config (not [14] Oper. - MotID).
  9. Issue a test enable (OFF1 = 1) with the motor decoupled from the load and confirm the drive goes directly to [0] Oper. without traversing [14]. Use the trace in Starter/Startdrive to capture r0002 at 100 ms resolution for the verification log.
Important: The "Copy RAM to ROM" action is on the drive object, not the project. A common mistake is to save the offline project to the engineering hard drive and assume the drive has been updated. The drive must be online when the save is performed, and the save must complete successfully before the connection is dropped.

6. Why p1959 Matters Even When p1900 Is Zero

On firmware V4.4 and later (including V4.7, V4.8 SP1, V5.1, and V5.2 SP1), the rotating measurement can be armed by p1959 bits independently of p1900. The relevant bits and their meaning, taken from the SINAMICS S120/S150 List Manual, are:

Table 3 — p1959 bit assignment (rotating measurement configuration)
Bit Meaning Effect when set
0 Speed controller optimization enabled Enables the rotating speed controller optimization step
1 Moment of inertia identification Enables inertia measurement during rotating
2 Saturation characteristic recording Re-runs the magnetizing curve during rotating
3..15 Reserved / vendor-specific Do not set

If p1959 is non-zero (for example, the value is 3 = 0b0011, meaning "speed controller optimization + moment of inertia") and p1960 is 0, the rotating measurement is still pending in some firmware revisions. Always clear p1959 to 0 in the same operation as p1900 and p1960.

7. Verification — How to Confirm the Fix

After the resolution steps above, perform the following checks in this order. Record each check in the commissioning log with a screenshot of r0002.

  1. Power-up to ready state: Apply 24 V to the CU320. r0002 must read [1] Ready for switch-on (or [6] Ready for switching on on some firmware versions, the same logical state). It must not be [14] Oper. - MotID.
  2. Alarm / fault check: Read r2122[0...63] (alarm word) and r2132[0...63] (fault word). No active alarm A07991 (motor data identification active) and no active fault F07990 (motor data identification fault) should be present.
  3. Test enable with load decoupled: Issue OFF1 = 1. Capture r0002 with a 100 ms trace. The state must transition [1] → [2] → [3] → [0] Oper. in < 100 ms without pausing at [14].
  4. Test enable with load coupled: With the cage in the original mechanical configuration and the load free to move, issue OFF1 = 1. The drive should hold the load at zero speed within 100 ms. There must be no observable reverse motion.
  5. Long-duration stability: Run the drive in [0] Oper. for at least 30 minutes, then issue OFF1 / OFF2 / OFF3 and re-issue ON. Repeat the enable cycle 5 times. The MotID state must not re-appear in any of the cycles.

8. Edge Cases and Common Variants

8.1 BICO re-mapping of the OFF1 command

The drive may be entering MotID because the OFF1 command source has been BICO-re-mapped to a digital input that is being pulsed during commissioning. Inspect p0840[0] (CU signal source for OFF1) and confirm it points to a stable source such as a control word bit (typically r2090.0 for PROFIdrive or r2089.0 for PROFINET) rather than a transient bit.

8.2 DCC (Drive Control Chart) application

If a DCC chart is loaded on the DO, it may include a block that writes to p1900 or p1960 on each ramp-up. Open the DCC editor, search for the parameters using the cross-reference, and either disable the write or re-time it to occur only on first commissioning.

8.3 DoDrive-Standby (parking axis)

When the drive is parked via p0897 = 1 (parking axis selection), the next de-park will re-execute the commissioning filter. Confirm p0897 = 0 in the saved image.

8.4 Multiple drive objects (DOs) on one CU320

On a chassis CU320 with several Motor Modules, each DO has its own copy of p1900, p1910, p1960, and p1959. The DO with the non-zero value must be located using the STARTER / Startdrive project tree ("Drive axis_01", "Drive axis_02", etc.). Do not assume the first DO is the only one affected.

8.5 Replacement of the Control Unit

If a CU320 has been replaced and the parameters were only stored on the CF card, the new CU will boot from the CF card image. If the image is from a pre-commissioning state, MotID will be re-armed. The corrective action is the same: clear the parameters on the new CU, run a fresh standstill identification, and save to ROM.

9. Recurring MotID and the "Ident_Finished" Status Word

For traceability, the firmware records a sticky bit in r0047 index 1 (or 2, depending on firmware) that remains set after a successful identification. A simple diagnostic is to add the following to the operator panel or HMI to indicate the last MotID result:

Table 4 — r0047 typical end states
Value Meaning
0 Not active
100 Measurement started
101 Measurement running
104 Measurement finished without error
105 Measurement finished with warning
200+ Fault (refer to F07990 subcodes)

Capture the r0047 value before clearing the triggers. If the value is 104 or 105, the measurement has already completed; the drive should not re-enter MotID on the next enable.

10. Summary Diagnostic Flowchart

Drive enters state [14] at enable? No Drive is healthy. Done. Yes Read p1900, p1910, p1960 online Any non-zero? No Read p1959, p1909, p0340 Set all to 0, save to ROM Power cycle, re-check Yes Set trigger to 0, save to ROM Power cycle, re-check

11. Related Fault and Alarm Codes

Table 5 — MotID-related fault and alarm codes on SINAMICS S120
Code Type Meaning Typical action
A07991 Alarm Motor data identification active Allow the identification to run; clears on completion
F07990 Fault Motor data identification fault Acknowledge (p3981), verify motor wiring, re-trigger with p1900 = 2
F07988 Fault Stator resistance identification fault Check motor cables, encoder, current controller tuning
F07989 Fault Leakage / rotor time constant identification fault Verify motor nameplate, check for grounded phase
F07984 Fault Speed controller optimization fault Check for mechanical binding, increase ramp-up time

12. Frequently Asked Questions

Why does my S120 re-enter the MotID state [14] at every enable even though p1900 reads 0?

The drive reads its non-volatile parameter image on power-up. If p1900 was set to 2 or 3 in a previous commissioning session and the change was not saved with "Copy RAM to ROM", the saved image still contains the old value, and the drive re-arms MotID at every enable. Re-set p1900, p1910, p1960, and p1959 to 0 online, perform a "Copy RAM to ROM" save, and power-cycle the CU320.

What is the difference between p1900, p1910, and p1960 on SINAMICS S120?

p1900 is the master motor data identification trigger (1 = motor data only, 2 = standstill ID, 3 = standstill + rotating). p1910 is a stand-alone standstill equivalent-circuit identification. p1960 is the speed controller optimization (1 = rotating without encoder, 2 = rotating with encoder, 3 = speed controller tuning without encoder, 4 = speed controller tuning with encoder). All three are auto-reset to 0 after a successful measurement.

Is it safe to skip rotating measurement (p1960) on a hoist with vertical load?

You can run the standstill identification (p1900 = 2) with the load mechanically clamped or decoupled, and then skip the rotating measurement if the load cannot be released. The accuracy of the torque and flux model is lower without the rotating measurement, so the speed controller may need to be re-tuned manually using p1460 (gain Kp) and p1472 (integral time Tn). For a production hoist, perform the rotating measurement at low speed with the load in a safe state.

Does A07991 clear automatically?

Yes. Alarm A07991 (motor data identification active) is present only while the identification is in progress. It clears automatically when the measurement finishes successfully (with r0047 reaching 104 / 105) or when it aborts with a fault (F07990). The fault must be acknowledged separately via p3981 or by switching the drive off and on.

How do I disable all motor identification routines permanently on a CU320?

Set p1900 = 0, p1910 = 0, p1960 = 0, p1959 = 0, and p1909 = 0 online, then perform "Copy RAM to ROM" on the drive object. Power-cycle the CU320 and confirm that r0002 reports [1] Ready for switch-on and not [14] Oper. - MotID at power-up.

Back to blog