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.
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:
-
Direct commissioning filter parameter:
p1900(1 = only motor data, 2 = motor data + speed controller at standstill, 3 = complete measurement including rotating) -
Standalone identification trigger:
p1910 = 1(stillstand identification of equivalent circuit data only) -
Speed-controller optimization trigger:
p1960with values 1, 2, 3, or 4 (rotating measurement variants — see SINAMICS S120/S150 List Manual (LH1), firmware V5.2) -
Rotating-measurement configuration bits:
p1959(bit-coded controller structure of the rotating measurement) -
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.
| 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.
-
Read
r0002— note the operating state. If it reads[14] Oper. - MotIDon power-up, that means a MotID request is already armed in the saved parameter image. -
Read
p1900,p1910,p1960,p1959,p1909directly 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. -
Read
p0340— if non-zero, an automatic parameter calculation is queued.p0340does not trigger a MotID by itself, but it often coincides with one in the same commissioning pass. -
Read
p3985(control mode for motor data identification, where supported on the firmware version) andp3981(acknowledging pending commissioning activities). -
Check
r0046bits 0..29 to see the bit-level operating status. Bit values follow the standard SINAMICS state machine: bit 6 = "Identification running". -
Read
r0047[0]throughr0047[5]— the motor data identification status indices. The index with the highest non-zero value identifies which measurement is currently armed:
| 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"
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.
- Connect online to the CU320 with Starter (V5.x) or Startdrive (V15 and later, used with TIA Portal).
- Open the drive object (DO) configuration tree and select the infeed / Motor Module that contains the affected drive object.
-
Read the live values of
p1900,p1910,p1960,p1959, andp1909by double-clicking each parameter or using the parameter list. Record them in a commissioning log. -
Force each trigger parameter to 0:
p1900 = 0p1910 = 0p1960 = 0-
p1959 = 0(clear all bits — do not leave bit 0 set unless you intentionally want a rotating measurement) -
p1909 = 0(acknowledged / reset)
- 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.
- 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.
-
Re-read
p1900,p1910,p1960,p1959after 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. -
Check
r0002and confirm it shows[1] Ready for switch-onor[7] Config(not[14] Oper. - MotID). -
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 capturer0002at 100 ms resolution for the verification log.
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:
| 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.
-
Power-up to ready state: Apply 24 V to the CU320.
r0002must read[1] Ready for switch-on(or[6] Ready for switching onon some firmware versions, the same logical state). It must not be[14] Oper. - MotID. -
Alarm / fault check: Read
r2122[0...63](alarm word) andr2132[0...63](fault word). No active alarmA07991(motor data identification active) and no active faultF07990(motor data identification fault) should be present. -
Test enable with load decoupled: Issue OFF1 = 1. Capture
r0002with a 100 ms trace. The state must transition[1] → [2] → [3] → [0] Oper.in < 100 ms without pausing at[14]. - 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.
-
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:
| 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
11. Related Fault and Alarm Codes
| 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.