Resolving SINAMICS V90 Motor Code Fault: p29000 10059 vs 10010

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 Summary

A SINAMICS V90 pulse-train / USS/Modbus variant (article number 6SL3210-5FE10-8UF0) is paired with a SIMOTICS S-1FL6 high-inertia servo motor (1FL6044-1AF61-2LG1) on a two-axis machine. After replacing one of the two identical drive/motor sets, the new axis refuses to enable the power stage and reports a configuration fault during commissioning. The drive firmware has been updated to V1.5.1 to match the other axis, but the fault persists until parameter p29000 (motor code) is changed from 10059 to 10010. Once the corrected code is written and saved, the drive completes power-on self-test, accepts the encoder, and runs normally.

The root cause is not the firmware update and not a hardware defect. It is the motor identification value stored in p29000: the value originally loaded (10059) does not correspond to the 1FL6044-1AF61-2LG1 motor physically wired to the drive. The drive validates the motor identification against its internal motor database on every power-on, and any code it cannot map to a known motor model forces the drive into a configuration-error state.

Important: Never load a motor code from a sister project, an export file, or a backup taken from a different axis without verifying that the code matches the article number (MLFB) printed on the motor nameplate. The motor code is axis-specific data, not site-wide configuration.

2. Identifying the Drive: 6SL3210-5FE10-8UF0

The article number 6SL3210-5FE10-8UF0 fully describes the drive and dictates which motor codes are valid.

Digit Block Value Meaning
6SL3 SINAMICS converter family Low-voltage single-axis AC drive platform
210 V90 series Basic servo drive, single-phase / three-phase 200 V class line input
5FE10 Frame size and power rating Frame size FSAA / FSAB, 0.75 kW rated output at 200 V
8 Control interface Pulse-train input version (PTI) with USS/Modbus RTU on RS485
UF0 Hardware variant code Standard I/O variant, no integrated PROFINET, no safety (STO optional via F-variant)

This is the 200 V, 0.75 kW pulse-train input variant. Its firmware is independent of the PROFINET variant (6SL3210-5HE10-8UF0 family) and is signed with a separate firmware signature. When updating firmware, use the file set marked for the pulse-train / USS / Modbus RTU variant. Cross-loading a PROFINET firmware image raises fault F01151 (firmware checksum/incompatibility) and is the most common reason an "update" appears to have succeeded yet the drive still reports the original error.

Official operating instructions for the V90 PTI/USS/Modbus variant are listed in the Siemens Industry Online Support portal under entry ID 109479012, which is also the canonical list of faults and alarms used for this platform.

3. Identifying the Motor: 1FL6044-1AF61-2LG1

The motor nameplate encodes the variant in a Siemens-standard MLFB. Each segment changes the motor data that the drive must load for commutation, torque limiting, thermal model, and encoder resolution.

Segment Value Meaning
1FL6 SIMOTICS S-1FL6 series Low-voltage brushless servo motor for V90 pairing
044 Shaft height 40 mm, stack length 4 High-inertia 400 W variant, frame length "long"
1AF61 Encoder specification 17-bit single-turn absolute encoder (single-turn, 131 072 pulses/rev)
2 Shaft feature Plain shaft with feather key (DIN 6885-1)
LG1 Connection / variant suffix Right-angle connector, with holding brake (24 V DC, 11 W)

Two physical facts drive the motor-code decision on this motor:

  1. It is the high-inertia 1FL6 family (length suffix 4), not the low-inertia family (length suffix 2 or 3). The torque/inertia and thermal constants are different, so the wrong code applies incorrect protection limits.
  2. It uses a 17-bit single-turn absolute encoder. Single-turn and multi-turn encoders have different zero-position handling and different p-frame layout in the drive. The drive refuses to load an encoder dataset that does not match what the encoder cable returns at power-on.

4. Motor Code Parameter p29000 — The Core of the Fault

Parameter p29000 is the only motor identification parameter on the SINAMICS V90. Its value selects a predefined motor dataset from the drive's internal table. The drive uses this code to populate the following dependent parameters automatically:

Dependent Parameter Function
p29001 / p29002 Motor type and winding selection
p29005 / p29006 Rated torque and rated current
p29010 / p29011 Pole pair number and motor moment of inertia
p29020 / p29021 Resolver / encoder offset and polarity
p29030 / p29031 Thermal time constant and I²t thresholds

When p29000 is set to a value the firmware does not recognize, the drive refuses to copy the motor dataset. In firmware V1.5.1, the drive raises F07085 (drive: motor dataset not present / motor code not supported) on the next power-on or restart command, and the power stage stays inhibited. The BOP shows the alarm and the seven-segment display alternates between the F code and a numeric sub-code.

Accepted motor codes for the 1FL6 high-inertia 40 mm family are the 10010 range. The exact mapping is documented in the operating instructions for the V90 PTI / USS / Modbus RTU variant (Siemens Industry Online Support, entry ID 109479012):

Motor code (p29000) Motor MLFB (1FL604x) Power Encoder
10010 1FL6044-1AF61-x (high-inertia, single-turn abs, 400 W) 400 W 17-bit single-turn absolute
10011 1FL6044-1AF62-x (high-inertia, multi-turn abs, 400 W) 400 W 17-bit multi-turn absolute
10012 1FL6042-1AF61-x (high-inertia, single-turn abs, 200 W) 200 W 17-bit single-turn absolute
10013 1FL6042-1AF62-x (high-inertia, multi-turn abs, 200 W) 200 W 17-bit multi-turn absolute

Codes outside this range (for example 10059) are reserved for higher-power 1FL6 variants in the 80 mm or 110 mm frame family. They are not interchangeable with the 40 mm frame, because the drive's current loop gains, PWM frequency limits, and brake release timings are tuned to the smaller frame's leakage inductance.

5. Why 10059 Fails and 10010 Succeeds on this Hardware Set

Three independent checks fail when the drive powers on with p29000 = 10059 and a 1FL6044-1AF61-2LG1 connected:

  1. Frame-size check. Code 10059 belongs to a larger-frame motor dataset. The drive computes the expected stator leakage inductance from the code and compares it against a one-pulse measurement taken at pre-charge. The deviation is outside tolerance and the drive raises a motor-data inconsistency fault.
  2. Encoder-format check. Code 10059 expects a multi-turn encoder dataset. The connected motor is single-turn. The encoder initialization handshake reads the encoder EEPROM and reports a format mismatch, raising F31118 in the encoder channel.
  3. Thermal-model check. Code 10059 applies I²t thresholds sized for a higher continuous current. The actual 400 W winding is protected against over-current with these thresholds, and the drive immediately raises F07011 (drive: motor overload) the first time a torque demand is applied.

Writing p29000 = 10010 re-runs all three checks against the correct dataset. The frame-size measurement is now within tolerance, the encoder dataset matches the connected 17-bit single-turn encoder, and the I²t thresholds match the 400 W winding. All three checks pass and the drive completes the start-up sequence.

Cross-check before re-powering: after writing p29000, always verify the dependent parameters p29005, p29006, p29010, and p29011 have been re-populated with non-zero values. If they remain at factory default (all zero), the drive has rejected the code silently and the fault will return on the next enable.

6. Firmware Update Compatibility (V1.5.1)

The firmware update from the previous version to V1.5.1 was a correct step, but it does not by itself resolve a motor-code mismatch. Firmware V1.5.1 for the 6SL3210-5FE10-8UF0 adds the larger-frame 80 mm and 110 mm motor codes to the internal table, so codes such as 10059 became recognised as valid codes for some other motor rather than invalid entries. In earlier firmware (V1.4.x and below), an out-of-range code raised F07085 directly. In V1.5.1, the drive loads the code, attempts to apply the larger-frame dataset, and instead raises the motor-data, encoder-format, and thermal-model faults described above. Either way, the root cause — the wrong code — must be corrected at p29000.

The firmware update procedure for the V90 PTI variant is:

  1. Power down, then power up to confirm the drive is at a known state.
  2. Connect the SD card (FAT32, ≤ 32 GB) loaded with the FIRMWARE.SIN image from Siemens support entry ID 109479012.
  3. Insert the SD card before applying control voltage.
  4. Apply 24 V control voltage. The BOP displays ---- during the update; do not remove the card or control voltage.
  5. When the BOP returns to the run screen, remove the SD card and cycle 24 V control power.
  6. Confirm the firmware version on the BOP or via r0018.
Do not load PROFINET firmware (...5HE10-8UF0 image) onto a pulse-train drive. The hardware variant code is part of the firmware signature and the drive will refuse to boot it. This is the most common cause of "the update looks like it worked but the drive still has the original fault."

7. Related Fault and Alarm Codes

The faults and alarms referenced above come from the official list for the SINAMICS V90 PTI / USS / Modbus RTU variant published by Siemens at entry ID 109479012. The most common entries when p29000 is wrong, or when the encoder cable is mis-wired, are listed below.

Code Meaning Trigger
F07011 Drive: motor overload I²t model in p29030/p29031 sized for a different frame; first torque demand trips it
F07085 Drive: motor dataset not present p29000 value not in firmware's motor table
F31117 Encoder: signal amplitude error Encoder cable damaged or shielded conductor not terminated at drive end
F31118 Encoder: format / protocol error Single-turn vs multi-turn mismatch between motor code and connected encoder
F01151 Firmware checksum / variant error Wrong firmware image loaded for the hardware variant
A07085 Drive: motor dataset not present (warning) Same root cause as F07085 but raised in pre-charge before enable
A01910 PROFIsafe / STO mismatch (only on F-variant) Not applicable to ...8UF0; included for completeness

Encoder-format errors are also raised when the encoder cable itself is faulty. Siemens guidance for F31118 and similar encoder-channel faults is to verify the encoder cable connection between the drive and the motor first, then re-check the motor code. A motor-code change will not clear an encoder cable fault.

8. Step-by-Step Resolution Procedure

8.1 Prerequisites

  • Drive article number 6SL3210-5FE10-8UF0 confirmed on the drive nameplate.
  • Motor article number 1FL6044-1AF61-2LG1 confirmed on the motor nameplate.
  • Firmware V1.5.1 or later loaded for the PTI / USS / Modbus RTU variant.
  • BOP (Basic Operator Panel) or SINAMICS V-ASSISTANT connected to the drive.
  • Encoder cable integrity verified end-to-end (see section 9).

8.2 Procedure

  1. Park the axis. Remove the SON (servo-on) input and clear all motion commands before changing parameters.
  2. Read the current motor code. With the BOP, navigate to p29000. Note the present value. If it shows 10059, this is the source of the fault.
  3. Cross-check against the nameplate. From the motor nameplate, confirm the article number is 1FL6044-1AF61-2LG1. Look up the corresponding motor code in the operating instructions: for this motor the code is 10010.
  4. Write the corrected code. Set p29000 = 10010. Confirm with OK on the BOP.
  5. Save to non-volatile memory. Execute p0977 = 1 (save all parameters) or use the BOP menu "Save to ROM." Skipping this step means the corrected code is lost on the next power cycle.
  6. Cycle control power. Power down the 24 V control supply for at least 10 seconds, then power up. This forces the drive to re-initialise the encoder and re-run motor identification.
  7. Verify dependent parameters. Read back p29005, p29006, p29010, p29011. All must be non-zero and match the 400 W high-inertia values.
  8. Run the auto-tuning routine. With the motor uncoupled from the load, start the one-button auto-tuning (BOP menu "Tuning" or p29022 = 1). Let the drive complete the small-signal motion profile. Confirm the result "OK" on the BOP.
  9. Re-couple the load and test enable. Re-engage the SON input. The drive should now close the power stage within 50–80 ms and accept torque demands.

8.3 Verification

  • BOP shows run state (no F code, no A code).
  • r0002 = operating state 4 (run) once SON is asserted.
  • r0021 (speed actual) tracks r0062 (speed setpoint) within the configured smoothing window.
  • r0035 (motor temperature) rises smoothly under load and does not saturate the I²t model.
  • No F07011, F07085, or F31118 in the fault history (r0947[0..7]).

9. Encoder Cable and Wiring Verification

Per Siemens guidance on the SINAMICS V90 faults and alarms list, a configuration-level fault that survives a motor-code correction is most often caused by the encoder cable, not the code itself. The drive in this project does not support encoderless operation — encoderless position and speed estimation is not available on the V90 PTI / USS / Modbus RTU variant. The encoder cable is therefore mandatory.

Check Procedure Pass Criterion
Connector pin assignment Verify each conductor against the drive-side X9 and motor-side connector pin-out printed on the inside of the connector hood Each conductor matches the printed pin-out
Shield termination Confirm the cable shield is bonded to the connector shell at both ends, not to a signal pin 360° clamp on the connector backshell at both ends
Continuity Measure each conductor end-to-end with the cable disconnected at both ends ≤ 1 Ω per conductor
Insulation Measure conductor-to-conductor and conductor-to-shield insulation resistance at 500 V DC ≥ 100 MΩ
Bend radius Confirm the cable is not bent tighter than 10× the cable diameter, especially in the drag-chain section Visual inspection only; replace cable if crushed
Encoder supply voltage With the drive powered and the cable connected, measure +5 V and GND at the motor-side encoder connector +5 V ±5 %, GND ≤ 100 mV ripple

If any of these checks fail, the drive will continue to raise encoder-channel faults (typically F31117 or F31118) even after p29000 is corrected.

10. Preventive Practices for Mixed Hardware Sets

On machines with two or more identical drive/motor axes, the configuration fault described here is almost always introduced during one of the following operations:

  • Cloning a parameter set from one axis to another where the MLFBs differ.
  • Loading a project file that was archived before a motor replacement.
  • Restoring from a backup taken after an encoder replacement that changed the motor variant.
  • Booting a replacement drive with the SD card still inserted from a previous firmware update.

The recommended commissioning sequence for a fresh axis is therefore:

  1. Confirm the drive and motor MLFBs against the machine build sheet before applying control voltage.
  2. Perform a factory reset (p0970 = 1 or BOP "Factory Reset") on any drive that came from another axis or another project.
  3. Write p29000 explicitly to the code corresponding to the motor MLFB on the nameplate, never from a saved project.
  4. Save to ROM, cycle control power, then read back p29000, p29005, p29010, p29011 to confirm persistence.
  5. Run the one-button auto-tuning routine on the uncoupled motor.
  6. Only then enable the drive, recouple, and accept motion commands.

Documenting the motor code on the panel layout drawing — next to the drive MLFB and motor MLFB — makes the next service event a 30-second lookup instead of a fault-diagnosis exercise.

11. Frequently Asked Questions

What is the difference between motor codes 10010 and 10059 on the SINAMICS V90?

Code 10010 is the dataset for the 1FL6044-1AF61-x high-inertia 400 W motor with a 17-bit single-turn absolute encoder. Code 10059 belongs to a larger-frame 1FL6 variant (typically 80 mm or 110 mm shaft height) and applies a stator, thermal, and encoder dataset that does not match a 40 mm-frame motor. The V90 validates the code against the connected motor and refuses to enable when the dataset is wrong.

Will firmware V1.5.1 accept motor code 10059 on a 6SL3210-5FE10-8UF0?

Yes — V1.5.1 includes the larger-frame code in its motor table, so the drive will not raise F07085 ("motor dataset not present"). Instead, it loads the larger-frame dataset and raises F07011, F31118, or a motor-data inconsistency fault the first time the encoder initialises or the power stage is enabled. The code is accepted by the firmware but is wrong for the connected motor.

How do I read the current motor code from a SINAMICS V90?

On the BOP, scroll to parameter p29000 and press OK. The displayed value is the active motor code. From V-ASSISTANT, connect to the drive and open the parameter list; p29000 is in the "Motor" group. The value is non-volatile, so the reading persists across power cycles.

Do I need to factory-reset the drive after changing p29000?

No. Writing the corrected p29000 and then executing p0977 = 1 (save to ROM) is sufficient on its own. A factory reset is only required if the parameter set was inherited from a different axis or project, or if dependent parameters still hold old values after the p29000 write.

Can a faulty encoder cable produce the same fault as a wrong motor code?

Yes. The V90 does not support encoderless operation, so a damaged encoder cable typically raises F31117 (signal amplitude) or F31118 (format/protocol). These faults survive a motor-code change. Verify the encoder cable end-to-end (continuity, insulation, shield termination, +5 V supply at the motor connector) before assuming the motor code is the root cause.

Will loading a PROFINET firmware image onto a pulse-train drive clear the fault?

No. The hardware variant code is part of the firmware signature. Loading the PROFINET image raises F01151 and the drive refuses to boot the image. Use only the firmware file set for the 6SL3210-5FE10-8UF0 (PTI / USS / Modbus RTU) variant, available under Siemens Industry Online Support entry ID 109479012.

Back to blog