Overview: What the DCC Chart on Your Drive Is Actually Doing
Siemens Drive Control Chart (DCC) is a graphical, block-based programming environment embedded in SINAMICS drive firmware and edited from the STARTER commissioning tool (for SINAMICS S120, S150, G120, G130, G150) or SCOUT (for SINAMICS drives paired with SIMOTION motion controllers). A DCC chart compiles into the drive's firmware, runs deterministically inside the drive's sampling time (typically 4 ms for the free DCC blocks, configurable down to 1 ms in the SERVO / VECTOR closed-loop control), and lets the machine builder add application logic — setpoint scaling, ratio locks, load sharing, winder control, dancer / tension, pump curves — without modifying the PLC program.
When you receive a drive project from a machine builder or OEM, the drive contains one or more DCC charts. The chart is drawn as a function-block diagram (FBD). Each block has a fixed number of inputs on the left edge and outputs on the right edge, exactly like a PLC FBD. The top text line of a block is the block instance name (N2_R, DIV, NSW, MUL, …); the second line is the parameter or signal description. Knowing this convention is the first key to reading any DCC chart.
The rest of this article works through a typical chart that switches between two speed setpoint sources for a slave drive, calculates a ratio-locked master–slave speed, and feeds the result into the SINAMICS main setpoint connector p1070. This pattern is the single most common DCC use case on multi-drive machines such as printing lines, calenders, wire drawing, extruders, and conveying systems.
Prerequisites Before You Open the Chart
- SINAMICS S120 / G120 / G130 / S150 firmware with the DCC option enabled. On the drive's parameter screen check for the presence of DCC blocks in the expert list (e.g.
p21000…p21999range parameters exist) and the licence. DCC is a separately enabled function on most SINAMICS S120 Control Units; a missing licence produces fault F01900 / F01910 in the drive. - STARTER (V5.x or V5.6) or SCOUT (V5.x) installed on the engineering PC, with the matching drive-support package (Device Description Files / GSDML) installed.
- Project compatible with the drive firmware version. Mismatch between STARTER version and drive firmware on the Control Unit will refuse to download the chart. Cross-reference the release notes inside STARTER's Online → Accessible nodes dialog.
- Read access to the SINAMICS S120 Function Manual for parameter numbering and SINAMICS S120 List Manual for full parameter definitions.
- Online connection to the drive (PROFIBUS, PROFINET, Ethernet/IP, or RS232 USS) so you can trace the chart's runtime signals.
DCC Chart Layout: How to Read Any Block on the Sheet
A DCC sheet uses a fixed I/O geometry so you can read every chart with the same workflow:
| Element | Position | Meaning |
|---|---|---|
| Input connectors | Left edge of every block | Source signals coming in. Analogue values are shown as a fine solid line, binary (BOOL) as a heavy line. |
| Output connectors | Right edge of every block | Resulting signals leaving the block. The top output is usually the primary value; lower outputs are auxiliary (e.g. the "limit reached" flag on a limiter block). |
| Block title (top line) | Inside the block | The instance name. NSW_1, DIV_2, N2_R_3 — unique inside the chart. |
| Block description (second line) | Inside the block | The signal or parameter name. Right-click → Properties to see the parameter number this block writes to or reads from. |
| Inter-chart connectors | Left/right of the sheet | Signals fed to or from other DCC sheets on the same drive. The number you see (e.g. 2050, 2090, 2091) is a drive-level connector index, not a parameter number. |
| Sheet tabs | Bottom of the editor | Each tab is a separate DCC chart running in its own sampling time group. |
2050[2] is not parameter p2050. It is the third element (index 2) of the drive-level connector cluster 2050, which is fed from the third PZD word of the configured PROFIdrive telegram. Binector numbers (e.g. 2090.0, 2091.0) are bits inside a binector cluster. Always right-click → Properties to see the resolved parameter mapping.DCC Block Library: The Blocks You Will Actually See
The DCC block library is split into "free" function blocks (configurable sampling time) and "drive-internal" blocks that are tied to drive control tasks. For setpoint handling, the blocks that recur in almost every project are:
| Block | Function | Typical Use |
|---|---|---|
N2_R |
Integer-to-Real converter (Normalize-to-Real) | Converts a 16- or 32-bit PZD word into a floating-point engineering value. |
DIV |
Divider (Y = X1 / X2) with divide-by-zero protection | Forms a ratio between two setpoints. |
MUL |
Multiplier (Y = X1 * X2) | Scales setpoints, applies gear ratios. |
ADD / SUB
|
Adder / subtracter | Adds trim, subtracts follower offset. |
NSW |
Numerical Switch (selects one of N inputs based on a binary index) | Picks the active setpoint source — jog, master, handwheel, PLC. |
BI_DW / DW_BO
|
Bit-to-DWord / DWord-to-Bool unpackers | Extracts individual control bits from a control word. |
ABS |
Absolute value | Removes sign for speed-magnitude paths. |
LIM |
Limiter (Y = clamp(X, MIN, MAX)) | Clamps the calculated setpoint before it reaches p1070. |
AVA |
Absolute-value generator with sign output | Converts bipolar inputs into speed + direction. |
RGB / BGR
|
Ramp-function generator (ramp up / ramp down) | Builds a software ramp on the slave setpoint before it hits the drive. |
PT1 |
First-order low-pass filter | Smooths a step change in a ratio. |
RRM |
Round-robin multiplexer | Cycles between alternative setpoints in test or service mode. |
Every block has a runtime group (sampling time) attribute. DCC sheets can be assigned to one of the drive's free groups (usually p21000[x] for the chart, p21020[x] for the sampling-time selection). For a 4 ms group, the chart runs at 4 ms; the drive's speed controller continues to run at its own (much faster) cycle, typically 250 µs for SERVO and 1–4 ms for VECTOR.
PZD Telegram Structure: The Numbers 2050, 2090, 2091 in Context
The drive communicates with the PLC over a PROFIdrive telegram. The telegram is configured on the drive side in STARTER under Communication → Telegram configuration. The classic SINAMICS S120 VECTOR telegrams are:
| Telegram | Length | PZD1 (Word 0) | PZD2 (Word 1) | PZD3 (Word 2) | PZD4 (Word 3) | Typical Use |
|---|---|---|---|---|---|---|
| 1 | 2/2 | STW1 / ZSW1 | NSOLL / NIST | — | — | Basic speed control |
| 2 | 4/4 | STW1 / ZSW1 | NSOLL / NIST | STW2 / ZSW2 | Reserved | Speed + extended control word |
| 3 | 5/9 | STW1 / ZSW1 | NSOLL / NIST | STW2 / ZSW2 | Encoder actual value | Speed + position feedback |
| 105 | 10/10 | STW1 / ZSW1 | NSOLL / NIST | STW2 / ZSW2 | MOMRED / MSG | Siemens-specific 10-word |
| 106 | 10/10 | STW1 / ZSW1 | NSOLL / NIST | STW2 / ZSW2 | Add. setpoints/actual values | Siemens-specific 10-word |
| 116 | 16/16 | Includes 2 setpoint/actual-value pairs, torque, encoder, status/control extension | Siemens-specific 16-word | |||
STW = control word, ZSW = status word, NSOLL = speed setpoint (normalized, 0x4000 = 100% of reference speed p2000), NIST = actual speed value. The chart under discussion uses the VECTOR telegram and the PLC sends two speed setpoints in the same telegram — one for autarkic / jogging, one for master-slave.
The connector / binector numbers that the DCC block uses are tied to the telegram words as follows (standard SINAMICS S120 mapping):
| DCC connector / binector | Connects to | Description |
|---|---|---|
r2050[0] (or input connector cluster 2050, index 0) |
PZD1 received from PLC | STW1 (control word 1) for the drive |
r2050[1] |
PZD2 received | NSOLL — first speed setpoint (jogging / autarkic) |
r2050[2] |
PZD3 received | Second speed setpoint (master-slave reference) — this is the value the chart uses for the autarkic branch |
r2050[3] |
PZD4 received | Second PZD4 value used in the divider / multiplier chain for the master-slave branch |
r2090.0 (binector 2090 bit 0) |
Bit 0 of control word (or a decoded control bit from STW) | Boolean command line A — e.g. "select jogging" |
r2091.0 (binector 2091 bit 0) |
Bit 0 of second control word (or another decoded control bit) | Boolean command line B — e.g. "select master-slave" |
2090.0 and 2091.0 are usually user-defined bits (manufacturer-specific) the OEM has reserved for mode selection. Look in the machine builder's PLC project — the bits the PLC sets in STW2 or in a higher word of the user-defined PZD are the ones the chart is reacting to.Reading the Example Chart Step by Step
The example chart is a two-source setpoint switch for Drive 1 (the slave). It has two operating modes:
- Autarkic / jogging mode — Drive 1 runs from a setpoint delivered directly by the PLC over the telegram, independent of any other drive.
- Master-slave mode — Drive 1 follows Drive 3 (the master), with a fixed ratio calculated from two PLC-supplied setpoints and multiplied by the actual speed of Drive 3.
The mode is selected by the two control bits:
| Mode | 2090.0 (bit A) | 2091.0 (bit B) |
|---|---|---|
| Autarkic / jogging | 1 | 1 |
| Master-slave | 0 | 1 (or 1 / 0) |
| Coast / hold last setpoint | 0 | 0 |
The chart implements the mode selection with an NSW (Numerical Switch) block. The NSW's index input is driven by the two control bits; its value inputs are:
- Value input 0 → the autarkic setpoint from
2050[2](the third PZD word coming from the PLC) - Value input 1 → the calculated master-slave setpoint coming from the MUL block
Right-click the NSW block in STARTER → Properties to confirm the index mapping; the index word width (4-bit, 8-bit) and the inputs available are visible there.
The Master-Slave Speed Calculation: the MUL/DIV Chain
The master-slave branch builds the setpoint for Drive 1 from three signals:
- Setpoint 1 (telegram 2050[3]) — the PLC's reference setpoint for Drive 1, expressed in rpm, loaded into the master-slave path.
- Setpoint 2 (telegram 2050[3] of the Drive 3 telegram — i.e. the same word slot but on the master drive's PZD) — the PLC's reference setpoint for Drive 3, also in rpm.
- Actual speed of Drive 3 — read across drives via a DCC-to-DCC connector or by routing the master's r0063 (speed actual smoothed) onto a shared connector.
The chart implements the formula:
n_set_Drive1 = (n_set1_telegram / n_set3_telegram) × n_actual_Drive3
This is the classic electronic gearing pattern: the PLC sends both reference setpoints so the ratio between them is known, then the actual master speed replaces the static reference, making the slave immune to master droop or to encoder differences.
| Block in chart | Inputs | Output | Role |
|---|---|---|---|
DIV_1 |
X1 = n_set1_telegram, X2 = n_set3_telegram | gear ratio (unitless) | Computes the ratio in real time. Has divide-by-zero protection — output freezes at last valid value if X2 = 0. |
MUL_1 |
X1 = DIV_1 output, X2 = n_actual_Drive3 | n_set_Drive1 (rpm) | Multiplies the ratio by the live master speed. |
NSW_1 |
In0 = 2050[2] (autarkic), In1 = MUL_1 output, Index = (2090.0, 2091.0) | Selected setpoint in rpm | Mode switch. |
p1155 or a hard-coded MUL) is fine when the ratio is known at commissioning. The DIV-then-MUL pattern is used when the ratio is operator-selectable from the HMI — the operator changes the two telegram setpoints and the ratio updates automatically. This is the typical use on printing / calender lines where the operator dials "Master speed" and "Slip %" independently.Setpoint Normalization: From RPM to the Percent That p1070 Expects
All BiCo connectors in SINAMICS are normalized to a reference value. For speed paths the reference is parameter p2000 (reference speed, in rpm) and the convention is 100% = p2000. The main setpoint connector p1070 therefore expects a percentage, not rpm.
The MUL block on the chart outputs rpm. To make it compatible with p1070, the chart puts a divider in front of the main setpoint:
y [%] = n_set_Drive1 [rpm] / r2700 [rpm]
where r2700 is the parameter that the chart designer has chosen to use as the local rpm-to-percent denominator. On many SINAMICS S120 projects this is wired to p2000 by the OEM, but it is not mandatory; in some firmware versions the DCC chart has its own normalized reference variable. To confirm which reference your chart is using, click the divider block → Properties and inspect the connector attached to X2 — it will either be hard-coded to r2700 or connected to a parameter you can identify in the expert list.
| Symbol | Direction | Meaning |
|---|---|---|
p1070 |
CI (Connector Input) | Main setpoint source for the speed setpoint channel. Default = analog input 1. Chart overrides it with the NSW output. |
p2000 |
Parameter | Reference speed [rpm]. 100% of any normalized speed signal equals p2000. |
r2700 |
Display parameter | Local reference used by this DCC chart for the percent conversion. Verify in the chart's DIV block properties. |
r0021 |
Display parameter | Actual speed smoothed [rpm] — useful for tracing the closed-loop result. |
r0027 |
Display parameter | Actual speed absolute value (smoothed) [rpm]. |
p2000 on the drive after the DCC chart has been downloaded, the chart's divider will not automatically re-synchronize. If r2700 is mapped to p2000 the two move together; if it is a fixed value the chart will gain or lose a scaling factor. Always reload the chart after changing p2000, or verify in the expert list that the divider's X2 connector is driven by a parameter that follows p2000.Connecting the Chart to the TIA Portal PLC (S7-1500) over PROFINET
The drive and the PLC exchange data over a PROFINET telegram on the PLC side and a matching PROFIdrive telegram on the drive side. The TIA Portal project must declare the drive with a matching GSD file, the same telegram number, and the same I/O length as the drive.
- Export the GSD file from STARTER. In STARTER open the drive's properties → PROFINET Interface → GSD file. Export the GSDML-V…xml. Do not hand-edit the file. The drive's PZD mapping is encoded inside it.
- Install the GSD file in TIA Portal. Options → Manage general station description files (GSD). Restart TIA Portal after installation so the device catalog refreshes.
- Drag the drive from the catalog into the PROFINET topology. Match the device name with what is configured in STARTER. TIA will warn if the device name and the drive's PROFINET name diverge.
- Configure the telegram. In the device view of the drive in TIA, slot 0 / sub-slot 1 is the telegram. Pick the same telegram number and the same length (e.g. VECTOR 105, 10 PZD words each direction) that the drive has been configured with in STARTER. Mismatch between the two sides is the #1 cause of ABE / communication faults on SINAMICS at first commissioning.
-
Map the I/O addresses to a data block. The first PZD word from the drive lands in the I area you assigned; the chart uses index 0 → STW/ZSW, index 1 → NSOLL/NIST, etc. In the example chart's PZD3 and PZD4 slots, the PLC writes the two setpoints into
IW xx/QW xxof the drive's I/O image. -
Watch the parameter numbers in STARTER. If the PLC programmer has told you the setpoints live in PZD3 and PZD4 of the drive's input area, click on the drive's Communication → Telegram configuration in STARTER and confirm: PZD3 should be wired to
p2050[2](PZD word 3) and PZD4 top2050[3]. The chart will then read2050[2]and2050[3]from those slots — the DCC connector numbers and the parameter numbers are not the same thing.
Tracing the Chart Online in STARTER
Once the drive is online in STARTER, you can verify the chart's logic by tracing the runtime signals:
- Right-click the DCC sheet in the project tree → Open.
- Right-click the output connector of any block → Add to trace. The connector is added to the Trace tool's signal list.
- Open Trace → Start trace with a sample rate of 1 ms to 100 ms. The DCC sampling group runs in 4 ms by default, so choose a sample rate ≥ 1 ms to see every code cycle.
- Trigger the trace on a known event — e.g. operator pressing "Jog Forward" — to capture the transition from master-slave to autarkic mode.
- Compare the chart's
2050[2]value (PLC-supplied setpoint) and the MUL block's output (calculated setpoint) with the drive'sr0021(actual speed). In autarkic mode they should match within ramp limits; in master-slave mode the MUL output should be a scaled copy of the master actual speed.
| Signal to trace | What it tells you |
|---|---|
2050[2] (PLC autarkic setpoint) |
What the PLC is sending. Confirms the PROFINET link is alive and the slot mapping is correct. |
2050[3] (PLC ratio reference for slave) |
Confirms the second setpoint is being received and is the one expected by the divider. |
| NSW input 0 (autarkic branch) | Should equal 2050[2] when in autarkic mode. |
| NSW input 1 (master-slave branch) | Should equal (2050[2 of master] / 2050[3 of master]) × actual master speed. |
| NSW output | The selected setpoint in rpm. |
| Divider output / 100 (%) | The normalized setpoint actually reaching p1070. |
r0021 (drive actual speed) |
Closed-loop result. Should track the NSW output through ramp/limiter. |
Troubleshooting Matrix
| Symptom | Likely Root Cause | Check / Fix |
|---|---|---|
| Chart compiles but never runs, drive reports F01900 / F01910 | DCC licence missing on CF card | Verify licence under Drive → Properties → Licences. Reorder from Web License Manager. |
| Drive goes to fault immediately on chart download | Chart sampling-time group misconfigured | Open chart properties → confirm runtime group index. p21020 and p21000 must match an enabled free group on the Control Unit. |
| NSW always returns the autarkic setpoint | One or both control bits stuck high or low | Trace 2090.0 and 2091.0. Confirm the PLC is writing the bits the OEM intends. Re-check the bit numbering (LSB first). |
| Master-slave setpoint is wildly large or zero | Divider input X2 = 0 (no master setpoint), or both setpoints identical | Trace the divider's X1 and X2. If X2 = 0 the divider output freezes at last value — confirm PLC is sending a non-zero master reference. |
| Slave runs at the right speed in autarkic, wrong speed in master-slave |
r2700 (or the chart's reference) is not matched to p2000 on the slave drive |
Compare p2000 on Drive 1 to r2700. Reload the chart after correcting p2000. |
| PLC cannot see drive on PROFINET | Device name mismatch between TIA and STARTER | Assign the drive the same name in TIA Portal's topology and STARTER's Properties → PROFINET. |
| PROFINET IO fault on PLC, drive reports A08502 or F08502 | Telegram length mismatch between TIA GSD config and STARTER | Match the telegram number and length on both sides. Power-cycle the drive and the PLC after the change. |
| Setpoint reaches the chart but drive does not move | STW1 bit 0 (ON/OFF1) is 0, or bit 3 (inverter enable) is 0 | Trace STW1 (PZD1). Standard PROFIdrive requires bit 0 and bit 3 both = 1 to close the power unit enable. |
| Slave runs at a fraction of the expected speed | Two setpoints are swapped in the PLC code | Verify the PLC writes the slave setpoint to PZD3 of the slave and the master setpoint to PZD3 of the master. Cross-check against the chart's DIV block X1 / X2. |
| Chart values step / ripple on every DCC cycle | Output not filtered, or a PT1 has too small a time constant | Insert a PT1 with a 20–100 ms time constant before p1070. Smooths the discrete DIV output. |
Field-Proven Caveats and Best Practices
- Always reload the DCC chart after a firmware upgrade. SINAMICS firmware upgrades wipe the user charts from the CF card on a clean reset. Re-download the project from STARTER or restore from the backup before re-commissioning.
- Reserve two free user bits in STW2 for the mode select and document them in the machine electrical drawing. Without documentation the next engineer will not know why the slave drive does or does not follow the master.
-
Document the choice of
r2700vsp2000in the chart's own description field. Right-click the divider block → Properties → Documentation and write down what the denominator is. This is the single most undocumented value on a DCC sheet. -
Do not connect two charts to the same
p1070on a single drive object. SINAMICS accepts only one active source for each CI. Use a single chart that merges both setpoints via an NSW, or usep1150/p1151for additional setpoints and combine them in the standard setpoint channel. - Match the telegram on both drives. If Drive 1 uses VECTOR 105 and Drive 3 uses VECTOR 1, the chart's inter-drive connector for Drive 3's PZD3 will not be on the same slot index. Either standardize on the same telegram, or have the chart read the Drive 3 setpoint from a different slot.
- Trace with the right sampling group. STARTER's built-in trace can sample at 250 µs; the DCC chart may be running at 4 ms. If the trace sample rate is faster than the chart group, the chart's output will look stepped. Match the trace sample rate to the chart group period (or a multiple thereof).
FAQ
What does the DCC block name on the chart mean?
The top line inside the block is the instance name (e.g. NSW_1, DIV_2). The second line is the signal or parameter name the block reads or writes. Right-click the block → Properties to see the resolved SINAMICS parameter (e.g. p1070 for the main setpoint) and the runtime group.
What is the difference between connector 2050[2] and parameter p2050[2]?
p2050[2] is the PROFIdrive parameter that maps PZD word 3 of the received telegram to a drive-level connector. Connector 2050[2] is the resulting analog value the DCC block uses inside the chart. They are linked but are not the same identifier; the chart designer can use either as the source in a block's input pin.
Why does the chart divide by r2700 before writing to p1070?
p1070 is a normalized input and expects a percentage. Dividing the calculated rpm value by the reference speed r2700 (or p2000) converts the setpoint to percent. Without this divider the drive would interpret 1500 rpm as 1500% and saturate at the configured maximum.
How is the master-slave speed calculated by the chart?
The chart implements n_set_slave = (n_set_slave_telegram / n_set_master_telegram) × n_actual_master. The PLC sends the two reference setpoints so the ratio is operator-selectable, then the live actual master speed replaces the static reference, making the slave immune to master droop or encoder differences.
How do I commission a TIA Portal S7-1500 with a SINAMICS drive that has a DCC chart?
Configure the drive in STARTER and download the chart to the drive, then export the GSD file from STARTER and install it in TIA Portal under Options → Manage general station description files. Drag the drive into the PROFINET topology in TIA, set the device name to match STARTER, pick the same telegram number and length on both sides, and map the PZD words to a data block. The PLC programmer only sees the standard telegram I/O; the DCC chart runs entirely inside the drive.
What sampling time does a DCC chart run at?
The free DCC blocks run in configurable sampling-time groups. The default group runs at 4 ms; the chart can be assigned to a faster group (e.g. the drive's 1 ms current-controller or speed-controller group) for time-critical functions. Sampling-time group and period are set in the chart's runtime-group properties (p21020) and the group period (p21000).
How do I know which telegram the drive is using?
Open STARTER online with the drive, then go to Communication → Telegram configuration. The selected telegram number, its I/O length, and the assignment of every PZD word to a parameter (e.g. p2050[0] = STW1, p2050[1] = NSOLL, p2050[2] = user PZD3) is listed in the right-hand pane.