Troubleshooting F31806 and F31150 on D435 with CX32 and SMC20

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

Problem Summary

A SIMOTION D435 motion controller drives two CX32-2 controller extensions, each running a group of SINAMICS S120 motor modules. Ten 1FK7015-5AK71-1AA3 synchronous servomotors are read through ten SMC20 Sensor Modules Cabinet-Mounted 20, six on the first CX32 and four on the second. After the commissioning engineer entered the motor and encoder data, every drive returns the same two faults simultaneously:

  • F31806 – Sensor Module 1: Error in the non-volatile data (EEPROM)
  • F31150 – Encoder 1: Error initializing the encoder

The DRIVE-CLiQ LEDs on the SMC20 light up green, the topology is hand-routed in SCOUT, and the motor data is correctly entered. The drives still refuse to come up and fall back to OFF2 on every cold start. The fault pair is identical on all ten drives, so the root cause is structural — either a routing, parameter, or cabling issue affecting every SMC20 in the network rather than a single hardware failure.

Key observation: When F31806 and F31150 appear together on every Sensor Module in a CX32 sub-network, the SMC20 itself is rarely defective. The combination almost always points to a configuration, cabling, or topology routing error that the Sensor Module is reporting as a generic initialization failure.

Affected Hardware and Topology Overview

Component Order number / designation Role in the network
SIMOTION D435 6AU1435-0AA00-0AA0 (typical) Central motion controller, holds the TO axis configuration
SIMOTION CX32-2 (x2) 6AU1932-0DL00-0AA0 Controller extension for distributed drives
SINAMICS S120 Motor Module (x10) 6SL3120 series Power stage for each 1FK7 motor
SMC20 (x10) 6SL3055-0AA00-5BA0 or -5BA1 Sensor Module Cabinet-Mounted for SSI / EnDat 2.1 / sin/cos encoders
1FK7015-5AK71-1AA3 (x10) 1FK7 compact series, 28 mm stack Permanent-magnet synchronous servomotor

The 1FK7015-5AK71-1AA3 is a low-inertia natural-cooled servomotor with a 24 V DC supply for the integrated encoder electronics. The AA3 order option indicates the absolute encoder variant. SMC20 supports SSI, EnDat 2.1, SSI bipolar, and 1 Vpp sin/cos incremental encoders, but it does not accept the DRIVE-CLiQ encoder that is integrated into the motor itself. That detail is often the reason the SMC20 path is used in the first place — the application is reading an external load-side encoder through the SMC20, not the motor's built-in feedback.

Fault Code Definitions and Reaction Behaviour

Code Full text (SINAMICS) Off reaction Acknowledge Typical cause
F31150 Encoder 1: Error initializing the sensor module / encoder OFF2 POWER ON or p0970 = 1 Encoder type mismatch, wiring, no EnDat/SSI dialogue
F31806 Sensor Module 1: Error in the non-volatile data memory (EEPROM) OFF2 POWER ON Encoder EEPROM cannot be read; wrong p0400; defective cable

F31150 is the parent fault reported by the drive's encoder evaluation. F31806 is the child fault reported by the Sensor Module itself when it cannot complete the EEPROM read on the connected encoder during the first 200 ms after power-up. The drive therefore displays both codes stacked: F31150 is the headline, F31806 is the cause description provided by the SMC20.

When both faults are present on every drive at the same time, the issue is almost always on the encoder side of the SMC20, not on the drive side of the Motor Module. The DRIVE-CLiQ side of the SMC20 would normally report different faults (F08501, F08502, F30002) if the upstream link were the problem.

Why F31806 and F31150 Cascade Together

The SINAMICS encoder state machine executes the following sequence at power-up:

  1. Sensor Module reads the encoder's electronic type label (EEPROM).
  2. Sensor Module negotiates the protocol (EnDat 2.1, SSI, or 1 Vpp) based on p0400 on the drive side.
  3. Sensor Module transfers position, commutation, and serial number to the drive object.

If step 1 fails, the Sensor Module reports F31806 and stops the state machine. The drive then cannot initialise encoder 1, so it raises F31150. If step 2 fails — for example because p0400 = 9999 (no encoder) or p0400 was set to the wrong protocol — the Sensor Module still attempts to read the EEPROM and reports F31806 even though the cable and encoder are good. This is the most common reason both faults appear simultaneously across an entire CX32 network.

Required DRIVE-CLiQ Topology for D435 with CX32

The DRIVE-CLiQ topology must follow this routing order, and it must match the SCOUT topology view exactly. Any mismatch — a cable plugged into the wrong port, a CX32 placed on the wrong port, or an unassigned Sensor Module — causes the entire chain downstream of the break to fail to initialise.

D435 CX32-1 CX32-2 MM 1 MM 2 ... MM 7 SMC20-1 SMC20-2 ... SMC20-7 1FK7-11FK7-2...1FK7-7 DCQ port 0DCQ port 2DCQ port 0

The rules enforced by the SINAMICS commissioning tool are:

  1. The D435 (DO Servo for axes plus DCC topology) is at the top of the chain on DRIVE-CLiQ port 0 of the first CX32.
  2. Each CX32 chains its Motor Modules in sequence on ports 1, 2, 3 … The SMC20 is plugged into port 0 of its corresponding Motor Module. This is the default and is the only legal arrangement for SMC20 routing.
  3. The CX32 in turn connects to the next CX32 on its higher port. The first CX32 in the chain is address 2; the second is address 3, and so on.

If the SMC20 is mistakenly inserted between the CX32 and the Motor Module, the topology view will accept the change but the encoder evaluation will still try to read the SMC20 as if it belonged to the drive object assigned to that Motor Module, and the wrong drive will initialise the wrong encoder.

Cable Selection for 1FK7 Motor and SMC20

The signal cable between the encoder and the SMC20 must be selected for the encoder protocol in use. The 1FK7 compact series supports incremental sin/cos 1 Vpp and EnDat 2.1 absolute encoders. Cross-wiring a signal cable designed for SSI to an EnDat encoder — or vice versa — is enough to generate F31806 on every drive.

Encoder protocol Pre-assembled cable Pinout SUB-D15 / M12 Max length
EnDat 2.1 6FX8002-2CP00-1xXx 2 / 4 / 5 / 7 / 8 / 9 / 10 / 11 / 12 / 13 / 15 100 m
SSI bipolar 6FX8002-2CH00-1xXx 2 / 4 / 5 / 7 / 8 / 9 / 10 / 11 / 12 / 13 / 15 100 m (RS-422)
1 Vpp sin/cos 6FX8002-2CA00-1xXx 1 / 2 / 3 / 4 / 5 / 6 / 8 / 9 / 10 / 11 / 12 / 13 / 14 / 15 50 m
Caution: The cable assemblies for 1FK7 motors use a fixed 17-pin Siemens connector on the motor side. Cables that share the moulding with 1FT / 1PH / 1PM motors have different shield bonding and pin assignments, and they will cause the SMC20 to abort the EEPROM read. Order by the explicit 1FK7 cable reference, not by the encoder protocol alone.

The DRIVE-CLiQ cable between the Motor Module and the SMC20 is 6FX2002-1DC00-1AB0 (0.31 m) or 6FX2002-1DC00-1AD0 (1.5 m). The DRIVE-CLiQ cable is not a generic RJ45 patch cable; it uses a special cross-over pair assignment and a continuous shield that must remain intact. If the cable is run through a cable drag chain with bending radius below 75 mm, replace it — broken shield returns from past service calls show the SMC20 will report F31806 on power-up if the differential pairs are damaged.

Parameter Configuration in SCOUT / STARTER

The encoder parameters on each drive must be set before the first POWER ON. The drive will otherwise initialise with the default p0400 = 0 (“Unknown encoder”) and the Sensor Module will report F31806 on the very first read attempt.

Minimum parameter set for SMC20 with an EnDat 2.1 absolute encoder

p0400[0] = 2221   ; EnDat 2.1 absolute, 2048 S/R
p0402[0] = 1      ; Linear encoder = no
p0404[0] = 0      ; No mechanical inversion
p0407[0] = 0      ; Linear = no
p0408[0] = 2048   ; Incremental pulses per revolution
p0421[0] = 0      ; Absolute encoder (one revolution resolvable)
p0430[0] = 0      ; Signal level A/B TTL (EnDat 2.1 uses 1 Vpp or EnDat; set per encoder datasheet)
p0970    = 1      ; Save all drive parameters non-volitile
p0971    = 1      ; Copy RAM to ROM

Minimum parameter set for SMC20 with SSI absolute encoder

p0400[0] = 2021  ; SSI, singleturn, 5 V supply
p0407[0] = 0      ; Linear = no
p0408[0] = 4096   ; Must match the encoder singleturn resolution
p0440[0] = 4096   ; SSI singleturn resolution (bits)
p0441[0] = 12     ; SSI multiturn resolution (bits, 4096 revs)
p0442[0] = 2      ; SSI code type = Gray
p0443[0] = 10     ; SSI number of bits per revolution
p0444[0] = 0      ; SSI parity = none
p0445[0] = 25     ; SSI monoflop time (microseconds, 1...65 us)
p0447[0] = 0      ; SSI power-on delay = default 100 us
p0448[0] = 0      ; SSI bipolar = no
p0970    = 1      ; Save non-volatile

If any value in the SSI block is wrong by even one bit, the Sensor Module will respond with F31806. The bit count and Gray/bin selection are the most common mistakes when copy-pasting parameters from a similar project.

Drive Object Routing in the SCOUT Topology Editor

Even with the correct hardware and parameters, the topology editor must explicitly assign each Sensor Module to a drive object. The following sequence applies in SCOUT V4.4 / V4.5 on a D435 with a CX32-2 axis extension:

  1. Open the project, go online with the D435, and start the topology comparison (Project navigator > D435 > Topology).
  2. SCOUT reads the actual DRIVE-CLiQ wiring. The Motor Modules appear under the correct CX32 based on which port they are physically connected to.
  3. Click the SMC20 in the topology view. The Properties dialog must show the corresponding Servo drive object (e.g., Servo_1 for the first axis, Servo_6 for the sixth, and so on). If the assignment is wrong, drag the SMC20 onto the correct Servo object.
  4. Right-click the Servo object and select Assign Sensor Module. Confirm the port number (Port 0 is the default; Port 1 is the next SMC20 on a second encoder interface).
  5. Compile and download to the D435 and to every CX32. A RAM to ROM save on the D435 is required; do not skip it.

If the assignment is performed in STARTER (used for SINAMICS stand-alone) but the D435 retains an older assignment, F31150 will appear when the drive restarts. SCOUT is the source of truth for the topology view of a SIMOTION project; STARTER is for SINAMICS-only commissioning.

Step-by-Step Resolution Procedure

  1. Power down the entire cabinet. Disconnect the 24 V DC for at least 30 s to force a cold start of every SMC20 EEPROM.
  2. Verify the topology physically. Trace every DRIVE-CLiQ cable from the D435 port 0 down to the last CX32. Confirm the SMC20 is in port 0 of its Motor Module and nowhere else.
  3. Re-seat the DRIVE-CLiQ and signal cables. Loosen each connector, blow out the contacts with dry air, and re-tighten. A common root cause is oxidation on the encoder SUB-D connector after long storage.
  4. Confirm the encoder type in p0400. For an EnDat 2.1 absolute encoder on a 1FK7 with 2048 S/R, set p0400[0] = 2221. For a sin/cos 1 Vpp encoder, set p0400[0] = 2001.
  5. Re-enter the motor and encoder data. Use Drive > Configuration > Motor in SCOUT. Pick the 1FK7015-5AK71-1AA3 from the motor list (or load it from the motor's attached Drive-CLiQ Electronic Data Sheet if the motor supports DRIVE-CLiQ). The encoder code must match the actual physical encoder.
  6. Save the parameters. Set p0970 = 1 on every drive, then save the SIMOTION project and download it to all CX32s.
  7. Power up in sequence. Power the cabinet. Watch the LED of the SMC20: solid green within 5 s, then the Motor Module, then the CX32. The D435 should report all 10 drives in the ‘cyclic operation’ state within 30 s.
  8. Acknowledge the buffer. If the faults still appear, run Drive > Acknowledge all faults in SCOUT after a power cycle. The faults will only clear on a real power-up, not on a software reset.

Verification Procedure

After the resolution steps, perform these checks to confirm the encoder chain is healthy.

  • Open the SCOUT control panel for the first drive. Actual position value should track a manual rotation of the motor shaft by exactly the configured resolution (2048 increments per revolution, multiplied by gear ratio if any).
  • Check the actual torque and current. The drive should be capable of producing nominal torque without F31152 (encoder undervoltage) or F31151 (encoder hardware error).
  • Read the drive's r0027 (current speed actual) and r0021 (absolute actual position). The position should hold through a power cycle of just the drive electronics, not the encoder.
  • Run a small jog command and confirm the position controller settles with no overshoot and no F31801/F31802 encoder errors in the buffer.

Common Pitfalls and Edge Cases

  • Wrong motor selected in p0300. The 1FK7015-5AK71-1AA3 has its own motor code. Selecting the wrong frame size (for example 1FK7022) will not change the encoder side directly, but the drive will report inconsistent values and the Sensor Module will throw F31806 when it cannot read the encoder's saved commutation offset.
  • Cable length above the maximum. 1 Vpp encoders over 50 m, and EnDat/SSI over 100 m, will cause initialization errors that look like F31806 but are actually caused by signal attenuation.
  • Mixing SMC20 and SMC30 on the same project. SMC20 is for absolute EnDat / SSI / sin/cos. SMC30 is for HTL / TTL. If the wrong module type is set in the topology, the drive will load the wrong firmware into the Sensor Module and the EEPROM will not match the encoder's protocol.
  • CX32 firmware mismatch. The CX32 must run the same firmware version as the D435. A CX32 on V4.4 with a D435 on V4.5 will not always reject the connection, but the topology editor will warn and the encoder read will fail intermittently.
  • Sensor Module address conflict. Each SMC20 in the DRIVE-CLiQ network is addressed by its port. If a Motor Module is rewired and the Sensor Module remains on the same CX32 port, the topology view will mis-attribute the encoder to a different drive object.
  • Missing DRIVE-CLiQ Electronic Data Sheet on the motor. The 1FK7015-5AK71-1AA3 has a DRIVE-CLiQ-capable variant. If the motor has DRIVE-CLiQ and the encoder is also routed through SMC20, the Sensor Module sees a conflict between the motor's motor-side encoder data and the SMC20-supplied encoder data. Either use the DRIVE-CLiQ path (no SMC20) or use SMC20 only for the load-side external encoder.

Quick Reference Parameter Table

Parameter Function Recommended value (1FK7015 + EnDat 2.1)
p0300 Motor type selection 1FK7015-5AK71-1AA3 from the list
p0301 Motor code From the motor list (auto-filled)
p0400[0] Encoder type selection 2221 (EnDat 2.1 absolute, 2048 S/R)
p0402[0] Gearbox type 1 (no gearbox)
p0404[0] Encoder configuration 0 (no inversion)
p0407[0] Linear encoder 0 (rotary)
p0408[0] Incremental pulses per revolution 2048
p0421[0] Absolute encoder bit resolution 0 (multiturn, 4096 revs)
p0430[0] Signal level 0 (EnDat 2.1)
p0970 Save drive parameters 1
p0971 Copy RAM to ROM 1

Related Documentation

What is the difference between F31806 and F31150 on a SIMOTION D435 with SMC20?

F31806 is reported by the Sensor Module itself and indicates that the non-volatile data (EEPROM) of the connected encoder could not be read. F31150 is the parent fault reported by the drive when encoder 1 cannot be initialised. The two faults stack whenever the Sensor Module cannot complete the EEPROM read; F31150 is the headline, F31806 is the cause description.

Why do all ten SMC20 modules report F31806 and F31150 at the same time?

A common simultaneous cause is a wrong encoder type in p0400 or a wrong sensor module type in the SCOUT topology. The Sensor Module still attempts the EEPROM read using the wrong protocol and aborts. The DRIVE-CLiQ side of the network is healthy, which is why the LEDs are green and the topology view accepts the wiring.

Is the SMC20 needed if the 1FK7015-5AK71-1AA3 already has a DRIVE-CLiQ encoder?

No. The AA3 option of the 1FK7 compact series provides a built-in absolute encoder with a DRIVE-CLiQ interface. SMC20 is normally used only when an external encoder on the load side is being read. If the application is reading the motor's own encoder, plug the DRIVE-CLiQ connector of the motor directly into the Motor Module and remove the SMC20 from the topology.

Which signal cable is correct for connecting the 1FK7 encoder to the SMC20?

For an EnDat 2.1 encoder use 6FX8002-2CP00-1xXx. For SSI bipolar use 6FX8002-2CH00-1xXx. For 1 Vpp sin/cos incremental use 6FX8002-2CA00-1xXx. Order the explicit 1FK7 variant, not the generic 1FT/1PH cable, since the connector and shield bonding differ.

How is a CX32-2 wired into the DRIVE-CLiQ network of a D435?

The D435 connects to port 0 of the first CX32. Each CX32 chains its Motor Modules in sequence on ports 1, 2, 3 … The SMC20 is plugged into port 0 of the corresponding Motor Module. The first CX32 in the chain is DRIVE-CLiQ address 2, the second is address 3, and so on. Any deviation in the topology will produce the same F31150/F31806 pair on every Sensor Module downstream of the break.

Back to blog