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
3. Prerequisites
- Firmware version SINAMICS DCM ≥ V1.4 (function block p4650 family introduced in this line; verify against the installed firmware with
r0018). - Active Sensor Module configured in the encoder list (
p0140,p0141). The drive must be in commissioning access level (P0003 = 3) for parameter write access. - 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).
- Encoder actually returning counts: confirm with
r0061(rotor speed actual) andr0482(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). |
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
- Navigate to Drive → Commissioning → Encoder.
- Check
p0400[0]= encoder type, e.g.2for HTL bipolar. - Check
p0411[0]= resolution configuration; leave at default so r0482 wraps once per mechanical revolution. - Rotate the shaft by hand;
r0482must increment by exactly 2048 per turn.
5.2 Wire the comparator to DO 1
- Set
p4046(signal source for DO 1) =4653.0— i.e. the pulse-output block drives DO 1. Other options:52.0for run signal,0to release DO 1 for free use. - Set
p4030(DO 1 inversion) =0if you want active-high pulses.
5.3 Activate the pulse-output block
- 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). - Set
p4651=20480. This is the count threshold: 2048 PPR × 10 mechanical revolutions. Each timer4653reaches 20480 the DO toggles and the counter resets. - Set
p4655=0(no external reset). This is the crucial setting that preventsr4653from being held at zero — a common cause of the symptom wherer4653stays at 0 whiler0482counts up. - Optional: set
p4654=0for level output (default) — drives DO 1 high for the duration between two toggles.
5.4 Save and warm restart
- Copy RAM → ROM (
p0977 = 1) or click Copy RAM to ROM in Startdrive. - Either power-cycle the CUD or issue
p0972 = 1to reload parameters.
6. Verification
After commissioning, verify in this exact order:
-
Counter verification — bring the drive to n ≥ 5 RPM. Watch
r4653: it must increment at the same rate asr0482(same Pulses/second). -
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 %. - Hardware verification — probe DO 1 (terminal X177) with an oscilloscope. Confirm 24 V active-high, clean edges, no bounce, no missing pulses.
- 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).
-
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:
- Counts between transitions:
p4651 = N × PPR - DO toggle period:
T = 2 × p4651 / (PPR × n/60)seconds - DO toggle frequency:
f = 1 / T - 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 = 20480T = 2 × 20480 / (2048 × 50) = 0.4 sf = 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;
r0482will 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 top4651.
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.