1. Problem Overview
The SINAMICS S120 drive system combined with a TM41 (Terminal Module 41) and an FM357-2 motion controller exhibits a low-amplitude analog offset on the TM41 input X523 even when the analog source is physically disconnected. Field measurements show a residual voltage of ±0.001 V to ±0.007 V at the X523 analog input. The downstream servo motor, when commanded through FM357-2 2-axis interpolation, runs at 1–3 RPM at power-up with no setpoint applied.
The symptom is not a wiring fault; it is a residual ADC offset inside the TM41 combined with the drive's linear interpretation of small analog values. A value of 0.007 V on a ±10 V input represents roughly 0.035 % of full scale, which is amplified by the configured speed normalization into a measurable rotor speed. Because the FM357-2 closes the position loop, even this small error produces a continuous position correction that the drive obeys as a real speed command.
This article documents the root cause, three engineering approaches (BICO routing, speed setpoint filter, and DCC/CFC noise suppression), the parameter set that eliminates the motion, and the verification procedure that confirms the fix.
2. Hardware Context: TM41 and X523
The TM41 is an encoder/terminal module for the SINAMICS S120 platform. It provides:
- Encoder emulation outputs (TTL/HTL, RS422) on X520/X521
- Encoder inputs on X520/X521
- One analog input X523 (differential, ±10 V, 12-bit resolution)
- Digital inputs/outputs for control and status
- DRIVE-CLiQ connection to the CU320-2 control unit
Refer to the S120 Equipment Manual for Control Units and Additional System Components for full hardware specifications. The X523 pinout is documented in the same manual; pins 1/2 carry the differential ±10 V input, pin 3 is the internal ground, and the shield is terminated on the D-sub housing.
2.1 X523 Analog Input Specification
| Parameter | Value |
|---|---|
| Input range | ±10 V differential |
| Resolution | 12 bit (incl. sign) |
| LSB weight | 4.88 mV typical |
| Input impedance | > 100 kΩ |
| Common-mode range | ±12 V referenced to ground |
| Connector | 15-pin D-sub (X523) |
An offset of 0.007 V equals approximately 1.4 LSB at 12-bit resolution. This is consistent with normal ADC zero-scale error and is within the published linearity specification of the input stage, but it is not acceptable in an analog-commanded speed path with a high normalized gain.
3. Root Cause Analysis
Three mechanisms contribute to the observed drift:
- Analog input zero-scale error. The TM41 input amplifier and ADC chain exhibits a residual offset of a few mV. With no cable connected, the input is referenced to internal ground through a high-impedance divider, and the ADC settles on the natural zero of the converter.
- Speed setpoint normalization. The default analog-to-speed scaling converts ±10 V to p2000 (reference speed, default 3000 RPM on a typical 1FK7 servo). A 0.007 V error therefore produces a theoretical speed of 2.1 RPM, which matches the observed 1–3 RPM range.
- Continuous enable of the speed controller. The drive does not distinguish between a true zero setpoint and a residual offset once the speed controller is enabled. The output of the controller drives the motor at the offset speed indefinitely.
Shielding the DRIVE-CLiQ cable and the TM41 module does not solve the problem because the noise source is internal to the analog input stage, not radiated interference. The offset is deterministic and reproducible at every power-up.
4. Approach 1 — BICO Routing and Encoder Emulation Setup
The first mitigation isolates the analog input from the motor module's speed setpoint. The TM41 is intended to act as an encoder emulator, not as a primary speed command source in an FM357-2 application. The encoder emulation output, not the analog input, is the supported interface to the FM357-2.
4.1 Required Parameter Settings
| Parameter | Value | Meaning |
|---|---|---|
| p4400 | 0 | Source for speed setpoint 1 of motor module = 0 (zero). The position loop is closed in the FM357-2, so the drive must not interpret the X523 value as a speed command. |
| p4420 | r0479 | Connect the encoder emulation output status (or the actual X523 normalized value, depending on firmware) into the BI source for the speed setpoint path, so it is visible in the trace but does not drive the motor. |
| p1155 | as needed | Speed setpoint 1 BI source — leave at the default safe source; do not connect to X523 normalized value. |
| r899.15 | monitor | Status bit "Encoder emulation active". Must read 1 (true) when the TM41 is sending incremental signals to the FM357-2. |
Function Diagrams 9674 and 9676 in the SINAMICS S120/S150 List Manual describe the encoder emulation path and the speed setpoint injection. Refer to the S120 List Manual entry on support.industry.siemens.com for the current edition.
4.2 Why This Alone Is Not Sufficient
In a system where the FM357-2 is the only motion controller, the X523 analog input is not actually used as the speed command. The drift is therefore not driven by the analog value. The remaining motion comes from the small offset of the motor module's own speed setpoint processing, plus noise on the encoder feedback that the position loop in the FM357-2 corrects. Approach 2 and Approach 3 address those residual sources.
5. Approach 2 — Speed Setpoint Filter Parameters
The SINAMICS speed controller supports several low-pass and band-stop filter stages that can be applied to the speed setpoint. These are documented in the S120 Function Manual "Speed and Current Control" and are accessed through the following parameters:
| Parameter | Purpose | Typical value for noise suppression |
|---|---|---|
| p1412 | Speed setpoint filter 1 type (low-pass / band-stop) | 0 (low-pass, PT2) |
| p1413 | Speed setpoint filter 1 time constant (PT2) | 5 ms |
| p1414 | Speed setpoint filter 2 type | 0 or 1 |
| p1415 | Speed setpoint filter 2 time constant | 5–10 ms |
| p1416 | Speed setpoint filter 2 denominator damping | 0.7 |
| p1417 | Speed setpoint filter 3 type | band-stop (BS), or disabled |
| p1418 | Speed setpoint filter 3 denominator natural frequency | disable if not used |
Applying a 5 ms PT2 low-pass to the speed setpoint damps the high-frequency noise component that the FM357-2 position controller produces when the JOG velocity is removed but the setpoint is still active. The window logic in the filter (denominator damping ≈ 0.7) provides good step response while suppressing the small oscillation around zero.
5.1 Limitation of the Filter-Only Approach
A pure low-pass filter does not eliminate a DC offset; it only attenuates the noise. If the source of the motion is a constant offset, the filtered setpoint will still contain a small DC component and the motor will continue to drift. The filter must therefore be combined with a dead-band comparator (Approach 3) or with BICO routing that removes X523 from the active setpoint (Approach 1).
6. Approach 3 — DCC/CFC Solution (Recommended)
The validated fix for this fault pattern is a Drive Control Chart (DCC) function block on the SINAMICS CU320-2 that performs a dead-band comparison and selects the setpoint only when it exceeds the noise window. This is the solution that resolved the field case.
6.1 Block Diagram
6.2 DCC Implementation Steps
- Open the DCC editor (SCOUT / Startdrive → project navigation → DCC charts on the CU320-2).
- Insert an
ABSblock; connect its input to r0479 (or to the BICO source representing the X523 normalized value). - Insert a
CMP(compare) block; set the threshold to 0.7 % of full scale (p2000 reference). For a default reference speed of 3000 RPM, this is approximately 21 RPM equivalent. - Insert an
NSW(numeric selector) block. Connect the absolute value of X523 to input 0 and the constant 0 to input 1. The comparator output drives the selector bit: 0 when the absolute value is below threshold (output = 0), 1 when above threshold (output = X523 value). - Compile the DCC chart and download to the CU320-2.
- Use BICO to connect the NSW output to p1155 (or to the relevant speed setpoint input of the motor module).
- Save to ROM (copy RAM to ROM) and perform a power cycle.
6.3 Why NSW (Numeric Selector) Is the Right Block
The NSW block routes one of two numeric inputs to its output based on a Boolean select line. When the comparator drives the select line to 0, the output is forced to 0 regardless of the X523 value. When the X523 value is large enough to be a real setpoint, the output follows the X523 value. The result is a true digital dead-band that blocks the analog offset while passing real motion commands untouched.
6.4 Verification with Trace
Use the SINAMICS trace to record the following signals simultaneously at 2 ms cycle:
- r0479 — X523 normalized value
- Output of the NSW block
- r0063 (actual speed) of the motor module
- p1155 (speed setpoint) before and after the DCC chart
With the FM357-2 not commanding motion, the NSW output must be 0 and r0063 must be 0.000 RPM with the enable signals on. With a JOG command, the NSW output must follow the X523 value and r0063 must track the configured acceleration ramp.
7. Encoder Emulation Confirmation
The TM41 must be transmitting incremental encoder pulses to the FM357-2 for the position loop to close. The status is read from r899.15. If this bit is 0, the FM357-2 receives no feedback and the motor module receives no speed error, which masks the offset symptom but does not fix the underlying path.
| r899.15 | Interpretation | Action |
|---|---|---|
| 0 | Encoder emulation not active | Check p4420, p4400; verify DRIVE-CLiQ topology in STARTER |
| 1 | Encoder emulation active, X523 visible to CU | Proceed with DCC chart |
The TM41 encoder emulation increments are derived from the motor module's actual position (r0481 / r0482) and are not affected by the X523 analog offset. The X523 input is therefore a separate signal that should be excluded from the speed control path in an FM357-2 system.
8. Parameter Download and Commissioning Sequence
- Back up the current project with STARTER / Startdrive.
- Set p4400 = 0 on the motor module (motor object).
- Set p4420 = r0479 on the TM41 (verify on the actual DO object).
- Insert the DCC chart with ABS + CMP + NSW as described in Section 6.
- Connect the DCC output to p1155 of the motor module.
- Set p1412, p1413, p1414, p1415, p1416 per Section 5 for additional noise margin.
- Copy RAM to ROM.
- Power cycle the drive line-up (24 V DC off → on).
- Run a reference run on the FM357-2 axes.
- Perform a JOG test at 5 %, 25 %, 50 %, and 100 % of p2000.
- Capture a trace (Section 6.4) and archive the project.
9. Verification Procedure
Acceptance criteria for the fix:
| Test | Expected result |
|---|---|
| Power on, no setpoint, no JOG | Motor holds position; r0063 = 0.000 RPM; no encoder increments emitted by TM41 (or constant zero if position-locked) |
| X523 input shorted to ground | NSW output = 0; motor stationary |
| JOG at 5 % of p2000 from FM357-2 | Motor ramps to 150 RPM (assuming p2000 = 3000 RPM) and back; r0063 follows trace |
| Step change in X523 of 1 V (10 %) | NSW switches from 0 to X523 value within 1 DCC cycle; r0063 follows with PT2 filter |
| Power cycle, repeat 10 times | Reproducible result every time; offset is eliminated |
10. Troubleshooting Matrix
| Symptom | Likely cause | Action |
|---|---|---|
| Drift 1–3 RPM at power-up | X523 zero offset interpreted as speed setpoint | Apply DCC dead-band (Section 6) or set p4400 = 0 |
| Drift only in JOG mode, not at standstill | FM357-2 setpoint not latched off when JOG ends | Verify FM357-2 axis stop; check p1155 source |
| Encoder emulation LED off on TM41 | r899.15 = 0, encoder emulation not active | Check p4420, DRIVE-CLiQ wiring, TM41 topology |
| High-frequency audible noise from motor | Speed setpoint filter not engaged | Set p1412 = 0, p1413 = 5 ms, p1414/p1415/p1416 as in Section 5 |
| Position error grows during interpolation | FM357-2 position loop not closed; check r899.15 | Re-verify encoder emulation routing |
| Filter removed JOG stop but motor still drifts | DC offset not removed by AC filter | Add DCC dead-band (Section 6) |
11. Edge Cases and Field-Proven Caveats
- Threshold too low. If the comparator threshold is set below 0.05 % of full scale, the noise window is too narrow and the motor will still drift on the residual offset. Recommended minimum: 0.5 %.
- Threshold too high. If the threshold is set above 2 % of full scale, the smallest JOG velocity (often 1 %) is rejected and the operator perceives a stuck axis.
- DCC runtime. The DCC chart runs on the CU320-2 at the configured sampling rate (typically 4 ms for the basic clock). The dead-band transition is therefore not instantaneous; for safety-critical applications, add a ramp on the NSW output.
- Firmware compatibility. DCC blocks CMP, ABS, and NSW are available in SINAMICS V4.4 and later. On older firmware, the equivalent can be implemented with the BICO interconnections p1155 → 0 and a fixed offset in r0479 → p1155, but this is less flexible.
- TM41 power-up sequence. The TM41 reads the X523 input before the CU320-2 has loaded the DCC chart on the first scan. If this initial reading is routed directly to p1155, a one-cycle motion pulse can occur. Ensure p4400 = 0 during the boot phase, and switch to the DCC output only after r899.15 = 1.
- Grounding on long cable runs. For cable runs over 25 m, a 100 Ω termination at the FM357-2 end of the encoder cable reduces reflection-induced noise that the dead-band does not address.
12. Summary of Parameter Set
| Parameter | Recommended value | Object | Effect |
|---|---|---|---|
| p4400 | 0 | Motor module | Disables X523 as speed setpoint source |
| p4420 | r0479 | TM41 | Makes X523 value visible without driving motor |
| p1155 | DCC NSW output | Motor module | Receives the dead-band-filtered setpoint |
| p1412 | 0 (PT2) | Motor module | Engages speed setpoint filter 1 |
| p1413 | 5 ms | Motor module | Time constant for filter 1 |
| p1414 | 0 or 1 | Motor module | Engages filter 2 |
| p1415 | 5–10 ms | Motor module | Time constant for filter 2 |
| p1416 | 0.7 | Motor module | Damping for filter 2 |
| p1417, p1418 | disabled | Motor module | Filter 3 not used in this application |
| r899.15 | monitor | TM41 | Confirm encoder emulation active |
What is the maximum acceptable X523 offset on a TM41?
The published accuracy of the X523 analog input is in the range of a few mV. Field observations of 0.001–0.007 V are inside the published spec but must be removed in the signal path because the drive's speed normalization amplifies the offset. Use a DCC dead-band with a threshold of at least 0.5 % of full scale (50 mV on a ±10 V input).
Can the FM357-2 close the position loop without encoder emulation active on the TM41?
No. The FM357-2 requires the incremental encoder signals from the TM41 X520/X521 outputs. If r899.15 = 0, the position loop is open and the motor module will not receive a position-corrected speed command. Verify p4420, p4400, and the DRIVE-CLiQ topology before debugging the analog offset.
Why does p1413 = 5 ms alone not solve the drift?
A low-pass filter attenuates AC noise but passes a DC offset. The 0.007 V X523 zero error is a DC value, and a PT2 filter with 5 ms time constant has DC gain of 1. The motor therefore continues to drift at the offset speed. The dead-band comparator (NSW) is required to remove the DC component.
Which firmware version of SINAMICS S120 supports the DCC NSW block?
DCC blocks ABS, CMP, and NSW are available in SINAMICS V4.4 and later. On V4.3 and earlier, the equivalent function can be implemented with BICO interconnections and a fixed offset in the analog path, but the threshold is not adjustable at runtime.
How do I confirm the fix without disconnecting the motor?
Use the SINAMICS trace function to record r0479 (X523 normalized value), the DCC NSW output, and r0063 (actual speed) at a 2 ms cycle. With no setpoint, the NSW output must be 0 and r0063 must be 0.000 RPM. Trigger a JOG from the FM357-2 and confirm the NSW output switches from 0 to the X523 value within one DCC cycle.