SINAMICS DCM: Configuring Encoder Pulse Output via DO

David Krause10 min read
SiemensTutorial / How-toVFD / 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

SINAMICS DCM: Configuring Encoder Pulse Output at a Digital Output

1. Overview

The SINAMICS DCM (DC Converter Module) is Siemens' digital, fully-controlled thyristor power unit for variable-speed DC drives. In addition to armature and field control, the SINAMICS DCM exposes an encoder evaluation channel (Sensor Module, SMC10/SMC20/SMC30 variants) and a freely parameterizable digital-output (DO) function block that can be driven from internal signals such as the actual encoder position value r0482, threshold comparators, or free-function blocks (FFB).

One common field requirement is to emit a short pulse from a DO every N mechanical revolutions of the feedback shaft — for example, to increment an external electromechanical counter, trigger a stamping head, or mark product length on a conveyor. This article documents the configuration of the DCM's pulse output function (parameter range p4650 – p4655) so that a clean 1:1 duty-cycle pulse train appears on a DO, derived from the live encoder position.

2. Typical Application and Boundary Conditions

Reference scenario used throughout this article:

  • Motor: DC shunt motor, max 3000 RPM
  • Speed: 3000 RPM ⇒ 50 rev/s ⇒ period per revolution = 20 ms
  • Encoder: HTL incremental, 2048 pulses per revolution (PPR)
  • Sensor Module: SMC30 (HTL/TTL compatibility)
  • Pulse-on-DO requirement: toggle every 10 mechanical revolutions (10 × 2048 = 20,480 counts)
  • Duty cycle: 1:1 (high time = low time = 10 revolutions)
  • External counter expects a clean DC output pulse, not differential encoder levels
A 1:1 duty cycle means the DO must toggle (rising edge) every 2 × 10 revolutions, i.e. one period = 20 revolutions. At 3000 RPM this corresponds to a DO toggle period of 400 ms (2.5 Hz).

3. Prerequisites

  1. Firmware version SINAMICS DCM ≥ V1.4 (function block p4650 family introduced in this line; verify against the installed firmware with r0018).
  2. Active Sensor Module configured in the encoder list (p0140, p0141). The drive must be in commissioning access level (P0003 = 3) for parameter write access.
  3. Digital output hardware assigned: DO 1 is wired to terminal block X177 on the Control Unit (CUD). Verify pin-out against the SINAMICS DCM Operating Instructions in your variant (Standard / Advanced CUD).
  4. Encoder actually returning counts: confirm with r0061 (rotor speed actual) and r0482 (encoder actual position value, U32) before configuring the pulse logic.

4. Pulse-Output Function Architecture

The DCM's pulse-output stage is a small hardware/software block inside the Control Unit that does not require DCC or FFB to operate. Internally it consists of three parts:

  • Source selector — chooses what counter value drives the toggle decision.
  • Divider / reset logic — counts up to a configurable threshold and resets.
  • Output gate — drives the selected DO when the comparator fires.

The relevant parameter map is summarised below.

Parameter Name Type Meaning
p4650 Signal source for pulse output Selection (U32) Selects which internal signal feeds the pulse counter. 0=inactive, 1=r0482 (encoder position), 2=incremental emulated pulses from encoder, additional values platform-dependent.
p4651 Pulse output divider (counts per pulse) U32 Number of source pulses between two DO toggle events. Together with PPR defines mechanical revolutions per pulse.
p4652 Pulse output operating mode Selection 0=inactive, 1=pulse on threshold, 2=1:1 toggle every p4651 counts, 3=emulated encoder track output.
r4653 Pulse output counter actual U32 Live up-counter from the selected source. Visible in Starter / Startdrive / Web server.
p4654 Pulse output edge / level U32 Optional: defines whether a single shot or toggling behaviour is generated.
p4655 Signal source for counter reset Selection Edge/level signal that clears r4653. 0=never, 1=DO of comparator, or a digital input/FFB output. Must be set to 0 if automatic toggling is desired.
r0482 Encoder actual position value U32 24-/32-bit running counter from the Sensor Module. Monotonic per revolution when p0411=0; wraps at the configured resolution.
p4046 DO 1 signal source Selection Routes the pulse-output block to digital output 1 (default = 0 = off).
Exact parameter numbering is firmware-dependent. Always verify the parameter list against the version of the SINAMICS DCM List Manual that matches r0018 on your CUD. Some DCM firmware branches (especially V1.5 SPx) expose p4656–p4659 for second output channels.

5. Configuration Procedure (Step-by-Step)

Use the Siemens Startdrive commissioning tool (SINAMICS DCM V1.5+) or STARTER (V4.x) connected via PROFIBUS / PROFINET to the CUD, or the on-board web server of the Advanced CUD.

5.1 Confirm encoder is alive

  1. Navigate to Drive → Commissioning → Encoder.
  2. Check p0400[0] = encoder type, e.g. 2 for HTL bipolar.
  3. Check p0411[0] = resolution configuration; leave at default so r0482 wraps once per mechanical revolution.
  4. Rotate the shaft by hand; r0482 must increment by exactly 2048 per turn.

5.2 Wire the comparator to DO 1

  1. Set p4046 (signal source for DO 1) = 4653.0 — i.e. the pulse-output block drives DO 1. Other options: 52.0 for run signal, 0 to release DO 1 for free use.
  2. Set p4030 (DO 1 inversion) = 0 if you want active-high pulses.

5.3 Activate the pulse-output block

  1. Set p4652 = 2. This selects 1:1 toggle on every Nth count mode, which is exactly what the field scenario requires (alternating ON/OFF every 10 turns).
  2. Set p4651 = 20480. This is the count threshold: 2048 PPR × 10 mechanical revolutions. Each time r4653 reaches 20480 the DO toggles and the counter resets.
  3. Set p4655 = 0 (no external reset). This is the crucial setting that prevents r4653 from being held at zero — a common cause of the symptom where r4653 stays at 0 while r0482 counts up.
  4. Optional: set p4654 = 0 for level output (default) — drives DO 1 high for the duration between two toggles.

5.4 Save and warm restart

  1. Copy RAM → ROM (p0977 = 1) or click Copy RAM to ROM in Startdrive.
  2. Either power-cycle the CUD or issue p0972 = 1 to reload parameters.

6. Verification

After commissioning, verify in this exact order:

  1. Counter verification — bring the drive to n ≥ 5 RPM. Watch r4653: it must increment at the same rate as r0482 (same Pulses/second).
  2. Threshold verification — at n = 3000 RPM, the time between two rising edges of DO 1 must be:
    T_toggle = 2 × p4651 / (PPR × n/60) = 2 × 20480 / (2048 × 50) = 0.4 s
    ⇒ DO toggle frequency = 2.5 Hz, duty cycle 50 %.
  3. Hardware verification — probe DO 1 (terminal X177) with an oscilloscope. Confirm 24 V active-high, clean edges, no bounce, no missing pulses.
  4. Counter handshake — read the external electromechanical counter; it must increment at exactly 1 count per 20 mechanical revolutions (or 1 per 10 revs if you only count one edge).
  5. Loss-of-encoder test — disconnect the encoder cable. The drive must fault on F31117 / F31118 (encoder signal failure) and the DO must drop to 0 V. Verify your application handles this fault state.

7. Parameter Computation Cheat-Sheet

Use the following formulas to scale the configuration to any PPR, RPM, and pulse cadence:

Symbol Definition Unit
N Mechanical revolutions between two DO transitions (half period) rev
PPR Encoder pulses per revolution pulses/rev
n Shaft speed RPM
f_pulse Desired pulse frequency at DO Hz
p4651 Counter threshold to program counts

Equations:

  1. Counts between transitions: p4651 = N × PPR
  2. DO toggle period: T = 2 × p4651 / (PPR × n/60) seconds
  3. DO toggle frequency: f = 1 / T
  4. Maximum f at n_max: f_max = PPR × n_max / (2 × 60 × p4651)

For the field scenario (n = 3000 RPM, PPR = 2048, N = 10):

  • p4651 = 10 × 2048 = 20480
  • T = 2 × 20480 / (2048 × 50) = 0.4 s
  • f = 2.5 Hz
  • Pulse train at DO 1: 200 ms HIGH / 200 ms LOW

8. Troubleshooting Matrix

Symptom Likely Root Cause Remedy
r4653 stays at 0 while r0482 increments p4655 is being driven by an active source (e.g. a high-level FFB output) that continuously resets the counter. Set p4655 = 0 (no reset) or to a true edge-triggered source. With p4652 = 2, automatic toggling replaces manual reset.
r4653 increments but DO 1 never changes p4046 (DO 1 source) is not routed to 4653. Set p4046 = 4653.0. Verify with parameter trace that DO 1 status bit (r4047) toggles in sync with r4653 reaching p4651.
Pulses too short / DO chatters Mechanical speed exceeds p4651 limit; comparator fires faster than DO debounce time. Increase p4651 or limit n_max. The DO driver can switch at ≥ 1 kHz, but external counters may not.
Counter free-runs, never reaches p4651 p4651 set greater than 32-bit limit or PPR mismatch (encoder resolution mismatch between p0400 and physical hardware). Verify p0400[0] = 2048 for HTL encoder with 2048 PPR. Re-confirm p4651 ≤ 2 147 483 647.
Drive faults F31117 / F31118 and DO drops Encoder cable broken, shield not grounded, or HTL signal level below threshold. Check cable, screen bonding at cabinet entry, and 24 V HTL supply. Re-power after fix.
Drive faults F01590 (DO 1 short-circuit) DO 1 overloaded or wired to ground. Check X177 wiring, max 500 mA / 24 V. Remove short, acknowledge fault.
Duty cycle not exactly 1:1 Encoder index pulse (p0431) is also being used; noise on Z channel extends one half-period. Disable index processing (p0431 = 0) if not needed.

9. Edge Cases and Variations

9.1 HTL 500 PPR, single phase A only

If the field hardware provides a single-channel (phase A only) HTL encoder at 500 PPR — for example a simple proximity-style pulse generator — the same procedure applies but:

  • Set p0400[0] = 1 (HTL unipolar, single-channel).
  • Set p4651 = N × 500 (e.g. 5000 for 10 revolutions per toggle).
  • Direction is undefined; r0482 will only ever count upward (positive direction). Mount the encoder so the natural direction matches the sign convention used elsewhere in the drive.

9.2 Free-function block alternative

If you need a more complex condition (e.g. pulse only between two speeds, or pulse ANDed with a permissive input), use the FFB library: configure a comparator block with thresholds on r0061 (speed), feed its output to a monoflop in FFB, and route the monoflop output to p4046 instead of 4653.0.

9.3 DCC alternative

For high-frequency or multi-channel pulse trains, use SINAMICS DCC: a counter block reading r0482 with configurable modulo drives a two-point comparator which feeds the DO via the standard signal-sourcing path. DCC is necessary if you need phase-shifted A/B emulated encoder tracks at the DO terminals.

9.4 Encoder without phase B (single-channel direction issue)

The DCM counts positively with single-phase A, but during negative rotation it will not decrement. If the motor can reverse and your external counter must reflect true distance, you must either add the B channel or use an FFB that reads r0061 sign and clamps r0482.

10. Safety and Commissioning Notes

  • The pulse-output function is purely software; it does not provide safety integrity (no SIL/PL rating). Do not use DO 1 pulses as part of a safety chain.
  • External counters must accept 24 V active-high, sourced from the CUD. Maximum current 500 mA; if your counter draws more, buffer with an interposing relay.
  • During commissioning, run at low speed first (≤ 100 RPM) to verify the toggle period matches your expectation, then ramp up.
  • Always lock the parameter set (p0927) before handing the drive to production to prevent accidental writes to p4651.

11. Cross-Reference

For details on encoder wiring, signal levels (HTL/TTL), and the full parameter map, consult the official SINAMICS DCM Operating Instructions and the SINAMICS DCM List Manual (parameter list) shipped with your firmware version. Encoder parameterisation rules for the Sensor Modules SMC10/SMC20/SMC30 are documented in the SINAMICS DCM Function Manual for the Sensor Module, also on the Siemens Industry Online Support portal.

FAQ

Why does r4653 stay at 0 even though r0482 is counting?

An external reset source is forcing the counter to zero. Set p4655 = 0 (no reset) and p4652 = 2 for automatic toggling. With those two settings, r4653 mirrors r0482 exactly and only resets internally at every toggle.

What value of p4651 gives one DO pulse every 10 encoder revolutions with a 2048 PPR encoder?

Use p4651 = 10 × 2048 = 20480. At 3000 RPM this produces a DO toggle every 0.4 s (2.5 Hz) with a 1:1 duty cycle.

How do I route the pulse-output block to digital output 1?

Set p4046 = 4653.0. This is the signal-source parameter for DO 1. Without this assignment, the pulse counter runs internally but never reaches the terminal.

Can I use this function with a single-channel HTL encoder at 500 PPR?

Yes. Set p0400[0] = 1 (HTL unipolar, single-channel) and recalculate p4651 = N × 500 for the desired mechanical revolutions per pulse. Direction sensing is not available with a single-channel encoder.

Does the pulse-output function have any safety rating?

No. The DO pulse generator is a software-only utility and must not be used in a SIL/PL safety chain. Use a certified safety DO or safety relay for any protective function.

Back to blog