Troubleshooting SIMOTION D435-2 Drive Loss on Power-Up (CX32-2)

David Krause12 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 Description

SIMOTION D435-2 DP/PN controllers with three CX32-2 controller extensions and a SINAMICS Integrated drive line-up intermittently fail to establish the cyclic link between an axis TO and its assigned drive during power-up. The failure rate observed in the field is roughly one out of every four to five power-on cycles. The affected unit is random - it can be the SINAMICS Integrated inside the D435-2 or any one of the three CX32-2 controllers, and the fault clears only after a full power cycle.

The symptom set is specific:

  • No axis error is latched and the SIMOTION diagnostic buffer stays clean.
  • The Technology Object (TO) cannot be enabled - calls such as _enableaxis reject without a TO error.
  • Encoder values update correctly inside the SINAMICS S120 Control Unit (visible in STARTER or SCOUT TIA online view), but the SIMOTION axis position does not change.
  • No active fault is reported on the SINAMICS side either.
  • Once a power-on cycle completes normally, the system can run for hours or days without recurrence.

Because the failure is non-deterministic, no alarms are captured, and the condition always clears with a power cycle, the root cause is almost always related to initialization timing on the PROFIdrive cyclic interface or to PROFINET IRT synchronization - not to user application code, wiring damage, or hardware failure.

System Architecture

The SIMOTION D435-2 DP/PN (typical MLFB 6AU1435-2AD00-0AA0 for the DP/PN variant, or 6AU1435-2AD00-0AD1 for newer PROFINET-only revisions) is a single-board motion controller with an integrated SINAMICS S120 control unit. It exposes three PROFINET ports and one PROFIBUS DP interface. CX32-2 controller extensions (typical MLFB 6AU1432-2AD00-0AX0) are SIMOTION-aware modules that add additional SINAMICS S120 line-ups to the same project. They are not stand-alone drives: each CX32-2 connects upward via PROFINET IRT to the D435-2 (acting as sync slave) and downward via DRIVE-CLiQ to a CU320-2 Control Unit (DP MLFB 6SL3040-1MA00-0AA0 or PN MLFB 6SL3040-1MA01-0AA0), which in turn commands the S120 Motor Modules.

Component Typical MLFB Role in Topology Bus Interface
SIMOTION D435-2 DP/PN 6AU1435-2AD00-0AA0 / -0AD1 Motion controller + SINAMICS Integrated PROFINET IRT (port 0/1/2) + PROFIBUS DP
CX32-2 controller extension 6AU1432-2AD00-0AX0 Hosts additional S120 line-up PROFINET IRT (sync slave)
CU320-2 DP / PN control unit 6SL3040-1MA00-0AA0 / 6SL3040-1MA01-0AA0 SINAMICS drive controller per line-up PROFINET or PROFIBUS to D435-2/CX32-2
S120 Motor Module (Single Motor Module example) 6SL3120-1TE21-xAAx Power stage DRIVE-CLiQ to CU320-2
DRIVE-CLiQ encoder / motor with DRIVE-CLiQ interface per motor datasheet Feedback DRIVE-CLiQ

On every power-up the D435-2 establishes PROFINET IO AR with each CX32-2, downloads the drive topology, performs IRT sync negotiation, and only then releases the TO for axis enable. If any stage stalls without raising an alarm, the axis ends up in a half-initialized state: the PROFIdrive cyclic interface is already active (sign-of-life counter is healthy) but the position sensor data is still flagged invalid. Application code that issues _enableaxis at this point sees a silent reject, and the drive position is read by the S120 but not consumed by the SIMOTION position controller - which is exactly the symptom pattern observed.

Root Cause Analysis

The most common triggers for this exact symptom set are listed below in descending order of likelihood:

  1. Cyclic interface initialization race: actormonitoring.cyclicinterface reports active while sensordata.snsordata[1] still equals invalid. Application code calls _enableaxis too early, the TO silently rejects enablement, and the axis enters a state where the encoder position is read by the drive but not consumed by the SIMOTION position controller.
  2. PROFINET IRT sync domain mismatch: a CX32-2 occasionally fails to join the sync domain within the configured sync window, particularly when the topology editor port assignments do not match the physical cabling.
  3. Telegram type or slot mismatch: the PROFIdrive telegram type configured for the TO (typically Siemens telegram 105 for servo axes or 106 for vector axes) does not match what the CU320-2 is publishing on the bus. The cyclic interface comes up but the encoder channel carries garbage or zero.
  4. DRIVE-CLiQ topology change detection: if DRIVE-CLiQ components were replaced, re-seated, or had a connection blip between power cycles, the S120 enters component-change mode and re-stores the topology. During this window the encoder validity bit is cleared.
  5. Firmware version skew: mixing CX32-2 firmware versions, or running a CX32-2 firmware not released for the D435-2 firmware in use, causes intermittent sync-loss on power-up. Cross-check against the SIMOTION D4x5-2 release notes for the tested combination matrix.
  6. Sign-of-life tolerance too tight: the PROFIdrive telegram failure threshold (parameter p7788 / p7789 on S120, plus the SIMOTION-side cyclic interface monitoring) is set below what the boot sequence can guarantee in cold-start conditions.
  7. Send-clock or reduction-ratio mismatch: an inconsistent PROFINET send-clock (typically 1.0 ms) or reduction ratio between the D435-2 and one CX32-2 leads to sporadic sync-loss on power-up, especially in cabinet layouts with longer copper runs.
Engineering note: The symptom "encoder value visible on the drive but not on the axis" is the signature of a cyclic interface that is active but sensor data flagged invalid. This is a TO readiness state issue, not a wiring or hardware issue.

Diagnostic Procedure

Capture the diagnostic state on every power-on cycle while the fault is active. The diagnostic sequence is summarized in the flowchart below.

Power-On Drive-Communication Diagnostic Flow D435-2 power on PROFINET AR up? NO -> check port / cable actormonitoring.cyclicinterface = active? NO -> check p7788/F08510 sensordata.snsordata[1] = valid? NO -> check F01910 / telegram drive faults clear (CU diag buffer)? NO -> clear faults first StartupCheck FB reports axis OK? NO -> see KB 48947625 _enableaxis permitted
  1. Verify cyclic interface is active: In SIMOTION SCOUT TIA, open the TO online dialog and read actormonitoring.cyclicinterface. It must equal active before any enable attempt is allowed.
  2. Verify sensor data validity: Read sensordata.snsordata[1] for every TO. It must equal valid. If it reads invalid, the encoder configuration has not been accepted by the drive.
  3. Inspect drive-side alarms: Open the affected CX32-2 or SINAMICS Integrated online in STARTER or SCOUT TIA. Look for F08501, F08502, F08510, F08511, F01910 / A01910 (component change pending), F07412, or F07413 (encoder error). If no alarm is active but sensordata is invalid, the drive configuration download did not complete.
  4. Inspect PROFINET diagnostics: In the topology editor, confirm sync domain membership, sync master, and sync slave assignment. Open the device diagnostic buffer of the D435-2 and each CX32-2 - look for Sync loss, Sync slave failed, RT/IRT mismatch, or Port link down.
  5. Read the SIMOTION diagnostic buffer: Note the order of Configuration loaded, TO activated, Drive ready, and Synchronization complete entries. A gap of more than a few seconds between TO activated and Synchronization complete indicates the race condition described above.
  6. Enable StartupCheck: If not already active, instantiate the LDPV / SIMOTION library StartupCheck function block (Siemens KB 48947625) and let it log axis readiness state on every power-on. This produces a permanent record of which axes were ready to enable at t0.

Solution Implementation

Apply the following layered fixes in order. Always re-test with at least 30 power cycles before considering the issue closed, because the natural occurrence rate is roughly one in four to five. Twenty cycles is the statistical minimum; thirty provides an order of magnitude more confidence.

Layer 1 - Application-level readiness gating

Wrap every _enableaxis call in a precondition gate. In Structured Text the minimum gate has the form:

IF (axis.to.actormonitoring.cyclicinterface = ACTIVE) AND
   (axis.to.sensordata.snsordata[1] = VALID) AND
   (NOT axis.to.drivemonitoring.drive_fault_active) THEN
   _enableaxis(axis := axis, enable := TRUE);
END_IF;

Do not poll enable once and exit. Implement a state machine that re-checks these flags every servo task tick and only transitions to enable requested when all three are true for at least one full task cycle. This eliminates the silent reject that produces the symptom described in the source problem.

Layer 2 - Telegram and slot alignment

  1. Open the TO in SCOUT TIA. Note the configured PROFIdrive telegram type - typically Siemens telegram 105 for S120 servo axes, 106 for vector axes, or 116 for extended multi-encoder configurations.
  2. Open the corresponding drive (CX32-2 or SINAMICS Integrated) and confirm the same telegram is set in the CU configuration under Communication > Telegram configuration. The slot assignment must match on both sides.
  3. If PROFIsafe is in use, confirm the safety slot assignment and telegram length match. Mismatched safety slot lengths are a known cause of intermittent sync-loss on cold-start.
  4. Run Download to target for the drive configuration after any change, then power cycle the system.

Layer 3 - PROFINET topology validation

  1. Open the PROFINET topology editor in SCOUT TIA. Compare the configured port interconnections to the physical cabling. Pay particular attention to which CX32-2 port is the upstream port to the D435-2.
  2. Open the device properties of each CX32-2 and verify the Port 0 / Port 1 / Port 2 assignments match. A common mistake is swapping the cabling between port 0 (sync-critical upstream port) and port 1 (downstream or peer port).
  3. Confirm the sync domain: the D435-2 must be sync master, each CX32-2 must be sync slave, the send clock must be consistent across all participants (typically 1.0 ms), and the reduction ratio must be identical.
  4. Check that no intermediate unmanaged switch sits between the D435-2 sync master port and the CX32-2 sync slave port. IRT sync does not survive standard managed switches without IRT-aware configuration.
  5. Compile and download the project. Power cycle at least 20 times to validate.

Layer 4 - Firmware alignment

  1. Open SIMOTION SCOUT TIA > Online > Accessible nodes. Read the firmware version of the D435-2 and each CX32-2.
  2. Cross-check against the SIMOTION D4x5-2 release notes that apply to the firmware in use. The release notes list the CX32-2 firmware versions tested against the D435-2 firmware version. Do not run a CX32-2 with firmware outside the tested matrix.
  3. If versions are mixed, upgrade or downgrade the CX32-2 to a tested version using the SIMOTION IT Diag or SCOUT TIA Web server (HTTPS, port 443) following the procedure in the SIMOTION D4x5-2 Commissioning and Hardware Installation Manual.

Layer 5 - Last-resort: restore factory settings

If the intermittent fault persists after the four layers above and a known-good firmware combination, restore the D435-2 to factory settings and re-load the project. The procedure is:

  1. Switch on the power supply of the SIMOTION device. The default settings are loaded. SIMOTION D435-2 switches to STOP mode.
  2. Wait for the procedure to finish. Do not power off during the restore.
  3. After STOP is reached, download the project via SCOUT TIA.

Reference: Restore factory settings - SIMOTION SCOUT TIA V20 sample project.

Verification

After applying the layered fixes, validate with a statistically meaningful number of power cycles:

  1. Run 30 consecutive power-on cycles with the StartupCheck log enabled. Each cycle should record every axis ready to enable within the configured maximum startup time (typically 5 s).
  2. Trigger _enableaxis for every TO. All axes should reach Operation enabled state without retry.
  3. Verify position tracking: rotate each motor by hand with the axis enabled. The SIMOTION axis position must follow the encoder value within one position-control clock (typically 1 ms).
  4. Capture the diagnostic buffer of the D435-2 and each CX32-2. There must be no F08501, F08502, F08510, F08511, or A01910 entries during the test window.
  5. Confirm with STARTER or SCOUT TIA online that the sign-of-life counter (visible in the PROFIdrive telegram trace) shows no missed telegrams for the duration of the test.

Preventive Maintenance Checklist

  • Keep D435-2 and CX32-2 firmware within the version matrix defined by the SIMOTION D4x5-2 release notes.
  • Document the PROFINET topology: which port of each CX32-2 connects to which port of the D435-2, the sync master / slave assignment, and the send clock. Pin this document inside the cabinet.
  • Always include the StartupCheck function block in the boot path so the readiness state of every TO is logged on every power-on.
  • After any DRIVE-CLiQ component replacement, perform a Component change procedure in STARTER (read out the topology, accept the change, save). Do not assume SCOUT will auto-detect.
  • Set the PROFIdrive sign-of-life tolerance (p7788) to at least 2 missing telegrams and set the SIMOTION-side cyclic interface monitoring to the same value.
  • Verify p2009 (PROFINET mode reference, if set) matches the actual bus configuration after every topology change.

Fault Code Reference

Fault Code Source Meaning Action
F08501 SINAMICS S120 Sign-of-life failure - drive missed a cyclic setpoint telegram Increase p7788; check PROFINET sync; check sync domain membership
F08502 SINAMICS S120 Telegram failure Verify telegram type match between TO and CU; check connector wiring
F08510 SINAMICS S120 PROFINET controller sign-of-life failure Check D435-2 PROFINET port; check send-clock; check redundancy
F08511 SINAMICS S120 PROFINET controller telegram failure Same as F08510 plus check bus load
A01910 / F01910 SINAMICS S120 DRIVE-CLiQ component change detected Run STARTER Component change procedure and save
F07412 SINAMICS S120 Encoder 1 fault (incremental channel) Check DRIVE-CLiQ cable; check encoder parameters (p0400, p0408)
F07413 SINAMICS S120 Encoder 1 fault (absolute channel) Check encoder wiring; re-initialize via p0440
1502 (TO event) SIMOTION TO configuration inconsistent with drive dataset Re-download project; verify TO dataset against drive dataset
30003 (TO event) SIMOTION Axis enable rejected - drive not ready Confirm cyclic interface active and sensordata valid before enable

For the complete SINAMICS S120/S150 fault and warning list, refer to the SINAMICS S120/S150 List Manual (valid for the firmware version installed). For SIMOTION technology object events, refer to the SIMOTION D4x5-2 Commissioning and Hardware Installation Manual.

Frequently Asked Questions

Why does the encoder value update inside the drive but not the SIMOTION axis position?

This is the signature of a cyclic interface that is active but sensor data flagged invalid. The drive-side encoder is read by the S120 Control Unit and shown in STARTER, but the SIMOTION TO has not yet accepted the encoder configuration, so its position controller is not consuming the value. Verify sensordata.snsordata[1] = valid before issuing _enableaxis.

Is the issue caused by the CX32-2 firmware version?

Possibly. CX32-2 firmware versions that are not on the Siemens-tested combination matrix for the D435-2 firmware in use are a known cause of intermittent sync-loss on power-up. Cross-check the firmware versions against the SIMOTION D4x5-2 release notes and bring all CX32-2 modules to the same tested version.

Can I prevent the fault without touching application code?

Not reliably. Application-level gating on actormonitoring.cyclicinterface and sensordata.snsordata[1] before _enableaxis is required so the TO does not latch a half-initialized state. Layered on top of that, fix the PROFINET topology, telegram matching, and firmware alignment to reduce the natural occurrence rate.

How many power cycles should I run for validation?

At least 30 cycles after each fix layer. The natural occurrence rate is roughly 1 in 4-5, so 20 cycles is the statistical minimum to demonstrate improvement; 30 cycles provides one order of magnitude more data and is the recommended number in field commissioning guides.

Does the StartupCheck FB add runtime overhead?

No. The StartupCheck function block (Siemens KB 48947625) is a lightweight sequence check executed once per power-on during boot. It does not run in the position-control task and adds no measurable jitter to the cyclic interface.

Back to blog