SINAMICS G120 CU230P-2 DP Digital Input Configuration Overview
The SINAMICS G120 modular frequency inverter from Siemens supports digital input (DI) access from three sources: a local control station wired to the Control Unit terminals, an HMI panel communicating over PROFIBUS DP, and a higher-level PLC. Commissioning the digital inputs requires three layers of work: the physical DI assignment via p0701..p0706, the BICO interconnection of the DI to a control command connector such as p0840[0] (ON/OFF1), and the Command Data Set (CDS) selection that switches between local terminal control and a remote PROFIBUS master. This article documents each layer with the parameter numbers, the DO-address arithmetic used to expose those parameters to a Siemens HMI, and a worked set of DBW tag addresses for a WinCC flexible panel.
Critical constraint for HMI integration: The SINAMICS G120 — across every available Control Unit — does not support direct S7 communication between an HMI and the drive. The HMI-to-drive tag access scheme shown later in this article therefore requires an S7-300/400 PLC between the panel and the drive. The drive-side DBW formula remains valid once the HMI is talking to a PLC that holds the drive's image as an S7-300/400 station.
Prerequisites and Drive Architecture
Before any parameterization, confirm the following are available:
- SINAMICS G120 Power Module matched to motor kW / HP and supply voltage.
- CU230P-2 DP Control Unit (PROFIBUS variant). The "-2" suffix is the second-generation CU230P hardware; the legacy CU230P designation is functionally compatible for the BICO and CDS work described here.
- STARTER commissioning tool (or the IOP-2 Intelligent Operator Panel) for parameter write-back to the CU's non-volatile memory.
- WinCC flexible 2008 or TIA Portal (WinCC) for HMI tag configuration.
- PROFIBUS DP network between the HMI, any S7 CPU, and the G120.
- Reference copy of the SINAMICS G120 Parameter Manual and List Manual (the DO numbering rules and fault/alarm parameter numbers used below are taken from those manuals).
The G120 is internally organized as a set of Drive Objects (DO). Each DO owns an indexed parameter range. A standard G120 with a CU230P-2 DP exposes the following DO map:
| Drive Object # | Object Type | Function |
|---|---|---|
| 1 | Control Unit (CU230P-2 DP) | Communication, I/O, closed-loop control |
| 2 | Drive / Power Module | Inverter stage controlling the motor |
| 3+ | Optional modules (TB30 Terminal Board, second drive, etc.) | Configured in the drive topology, populated only if fitted |
Every parameter read by the HMI lives inside one of these DO parameter containers. To address a parameter you must combine the parameter number (used as the DB number in S7-style tag addressing) with a DO-specific word offset, which is the source of the offset arithmetic in the HMI section below.
Digital Input Parameter Map on the CU230P-2 DP
The CU230P-2 DP exposes a fixed terminal strip with multi-function digital inputs. Each DI is mapped to an internal status bit in r0722 and can be BICO-wired to any command connector. The base set of parameters is:
| Parameter | Direction | Function |
|---|---|---|
| p0700 | Read/Write | Command source selection (0 = factory default, 1 = operator panel, 2 = terminal strip, 6 = PROFIBUS) |
| p0701 | Read/Write | Function of DI 0 (e.g., 1 = ON/OFF1, 2 = OFF2, 9 = fault acknowledge, 12 = reverse, 15 = fixed setpoint bit 0, 35 = CDS selection bit 0) |
| p0702 | Read/Write | Function of DI 1 |
| p0703 | Read/Write | Function of DI 2 |
| p0704 | Read/Write | Function of DI 3 |
| p0705 | Read/Write | Function of DI 4 |
| p0706 | Read/Write | Function of DI 5 |
| r0722 | Read-only | CU digital input status word (bit 0 = DI 0, bit 1 = DI 1, ...) |
| r0050 | Read-only | Active Command Data Set (0, 1, or 2) |
The exact number of digital inputs and their sourcing/sinking polarity is hardware-dependent. Refer to the CU230P-2 DP hardware manual for the precise terminal count and the wiring diagram for PNP vs NPN sensor compatibility.
BICO Wiring of Digital Inputs to Control Commands
SINAMICS uses the BICO (Binector Connector) model to decouple the physical terminal from the control command. The default connectors most commonly wired to DIs are:
| Connector | Function | Typical DI Function Code (p070x) |
|---|---|---|
| p0840[0] | ON / OFF1 | 1 |
| p0844[0] | OFF2 (coast stop) | 2 |
| p0848[0] | OFF3 (fast stop) | 3 |
| p2103[0] | 1st fault acknowledge source | 9 |
| p1113[0] | Setpoint inversion (reverse direction) | 12 |
| p1055[0] | Fixed setpoint bit 0 | 15 |
| p1056[0] | Fixed setpoint bit 1 | 16 |
| p0810 | CDS bit 0 (local/remote selector) | 35 (via p070x = 35 then BICO) |
Step-by-step wiring of a typical local control station using DI 0..DI 3:
- Enable terminal command source:
p0700 = 2 - Assign DI 0 to ON/OFF1:
p0701 = 1→ automatically BICO-wires DI 0 top0840[0] - Assign DI 1 to OFF2 (coast stop):
p0702 = 2 - Assign DI 2 to fault acknowledge:
p0703 = 9→ wires DI 2 top2103[0] - Assign DI 3 to fixed setpoint bit 0:
p0704 = 15→ wires DI 3 top1055[0]
After each assignment, verify the live state of the DI in r0722 by toggling the terminal with a meter or a wired pushbutton. The active command source index is reflected in r50 (legacy readout) and in r0050 on current firmware: in local mode the index is 0, in remote mode the index is 1.
Command Data Sets (CDS) for Local/Remote Switching
To switch command sources between a local control station and a remote PROFIBUS master, configure two Command Data Sets. Each CDS owns its own copy of p0700 and p1000:
| Parameter | Function |
|---|---|
| p0700[0] | Command source for CDS 0 (default: 2 = terminal) |
| p0700[1] | Command source for CDS 1 (typical: 6 = PROFIBUS) |
| p0700[2] | Command source for CDS 2 (optional third source) |
| p1000[0..2] | Setpoint source per CDS |
| p0810 | CDS bit 0 — the input connector that selects CDS 0 vs CDS 1 |
| p0811 | CDS bit 1 — used when more than two CDS are configured |
| r0050 | Currently active CDS |
Procedure for a basic local/remote selector:
- Configure
p0700[0] = 2(CDS 0 = local terminal control) - Configure
p0700[1] = 6(CDS 1 = remote PROFIBUS) - Assign a free digital input (e.g., DI 5) to CDS selection by setting
p0706 = 99and BICO-wiring the corresponding binector of DI 5 top0810— the low state of DI 5 selects CDS 0 (local), the high state selects CDS 1 (remote) - Verify the active CDS in
r0050after toggling DI 5
Setpoint side follows the same pattern: p1000[0] = 2 (analog input) for local potentiometer, p1000[1] = 6 (PROFIBUS) for remote setpoint from the master.
BSW and NSW Changeover Switches
For applications that require starting the inverter from two physical locations or selecting among multiple fixed setpoints, use the SINAMICS BSW (Binary Selector Switch) and NSW (Numerical Selector Switch) blocks:
- BSW (p0819 etc.) — binary changeover switch. Selects between two input signals based on a single select bit. Useful for picking the active command source or active setpoint source when only two are in play.
- NSW (p0820..p0824 etc.) — numerical changeover switch. Selects among multiple numeric inputs based on a binary-coded index. Used for fixed setpoint selection (p1000 = 3) where DI bits 0..n drive p1055/p1056/p1057.. to pick one of up to 16 fixed setpoints (p1001..p1015).
For a fixed setpoint stack, the wiring is:
- Set
p1000[0] = 3(fixed setpoint as active source) - Configure
p1001..p1015with the desired fixed setpoint frequencies - Assign DI 3 →
p1055[0](bit 0), DI 4 →p1056[0](bit 1), DI 5 →p1057[0](bit 2) to drive the NSW index - The drive reads the binary index of the DI bits and applies the corresponding p10xx value as the setpoint
HMI Direct Access Addressing Scheme (WinCC flexible → S7 Image of the Drive)
The classic Siemens scheme for accessing SINAMICS drive parameters from a panel (e.g., MP277) over PROFIBUS requires emulating the drive as a SIMATIC S7-300/400 station in the WinCC flexible connection table. The addressing rule is:
- Parameter number → Data Block (DB) number
- Parameter sub-index → bits 0 of the data word offset
- Drive Object number → bits 10–15 of the data word offset
Worked formula (with the base offset encoded from the DO bits):
- CU (DO #1) parameters:
DBW = 1024 + parameter_index - Power Module / Drive (DO #2) parameters:
DBW = 2048 + parameter_index - Drive 2 (DO #3, on multi-axis systems):
DBW = 3072 + parameter_index - TB30 Terminal Board (DO #4):
DBW = 6144 + parameter_index
Why an S7 CPU is required for the G120: The SINAMICS G120 — regardless of which Control Unit is fitted — does not support the S7 communication protocol that WinCC flexible uses for direct HMI-to-drive tag access. The DBW formulas above are valid on the drive side, but to make them reachable from the HMI you must route them through an S7-300/400 PLC whose PROFIBUS interface is configured to read the drive via cyclic PROFIdrive telegrams. The PLC then exposes the drive parameters to WinCC flexible as ordinary S7 tags using the DBW formula.
Drive Object Address Offset Reference Table
| DO # | Object Type | DBW Base Offset | Example Tag |
|---|---|---|---|
| 1 | Control Unit (CU230P-2 DP / CU320) | 1024 | p2098[1] → DB2098 DBW1025 |
| 2 | Drive / Power Module | 2048 | r2132 → DB2132 DBW2048 |
| 3 | Drive 2 (multi-axis) | 3072 | r2132 → DB2132 DBW3072 |
| 4 | TB30 Terminal Board | 6144 | r4047 → DB4047 DBW6144 |
Worked Addressing Examples
-
Read/write CU parameter p2098[1] (DO 1, sub-index 1)
- DB = 2098, DBW = 1024 + 1 = 1025 →
DB2098 DBW1025
- DB = 2098, DBW = 1024 + 1 = 1025 →
-
Read Power Module parameter p898 (DO 2, no sub-index)
- DB = 898, DBW = 2048 + 0 = 2048 →
DB898 DBW2048
- DB = 898, DBW = 2048 + 0 = 2048 →
-
Read Power Module parameter p2098[0] (DO 2, sub-index 0)
- DB = 2098, DBW = 2048 + 0 = 2048 →
DB2098 DBW2048
- DB = 2098, DBW = 2048 + 0 = 2048 →
-
Read active alarm of Drive 2 (r2132, DO 2)
- DB = 2132, DBW = 2048 →
DB2132 DBW2048
- DB = 2132, DBW = 2048 →
-
Read active alarm of Drive 3 (r2132, DO 3)
- DB = 2132, DBW = 3072 →
DB2132 DBW3072
- DB = 2132, DBW = 3072 →
-
Read Safe Limited Speed, positive direction of Drive 2 (P9733[1], DO 2)
- DB = 9733, DBW = 2048 + 1 = 2049 →
DB9733 DBW2049
- DB = 9733, DBW = 2048 + 1 = 2049 →
-
Read Safe Limited Speed, negative direction of Drive 2 (P9733[0], DO 2)
- DB = 9733, DBW = 2048 + 0 = 2048 →
DB9733 DBW2048
- DB = 9733, DBW = 2048 + 0 = 2048 →
-
Read TB30 digital output status (r4047, DO 4)
- DB = 4047, DBW = 6144 →
DB4047 DBW6144
- DB = 4047, DBW = 6144 →
For parameters that use a PXXX.X sub-bit syntax (e.g., p2098.0 meaning bit 0 of word p2098), read the full 16-bit word at the calculated DBW and apply a bit-mask in WinCC flexible to extract the desired bit.
Reading Fault Codes from the HMI
Drive fault and alarm data is read from the HMI via the following parameters:
| Parameter | Function |
|---|---|
| r2131 | Oldest active fault code (current fault number) |
| r2132 | Active alarm code |
| r945[0..7] | Fault code history of a specific drive object (8 slots, most recent first) |
| r946[0..7] | Fault time stamp (hours of operation) for the matching r945[i] entry |
| r949[0..7] | Fault value (additional diagnostic information) |
| r2122[0..63] | Alarm code history |
For a simple single-line "current fault" display, point the HMI tag at the r2131 of the relevant DO (using the offset table). For a full fault-history screen, read r945[i] in a loop, where the index i runs from 0 to 7, and present the fault number, the time stamp from r946[i], and the diagnostic value from r949[i] as a row in a WinCC table view.
Commissioning Procedure
- Connect STARTER (or the IOP-2) to the CU230P-2 DP via PROFIBUS or Ethernet (where available). Run the basic commissioning wizard and enter motor nameplate data (p0300 series).
- Select the command source:
p0700 = 2for terminal control, orp0700 = 6if PROFIBUS-only. - Set the DI function codes:
p0701..p0706per the local control station wiring. - Verify DI electrical operation: toggle each input at the terminal strip and confirm the corresponding bit in
r0722flips. - Confirm the active command source index in
r0050(0 = local, 1 = remote, 2 = third source). - If local/remote switching is required, configure CDS 0 and CDS 1 with different p0700 / p1000 values and assign a free DI to p0810 for CDS selection.
- If HMI direct tag access is required, insert an S7-300/400 between the HMI and the drive, configure the PROFIdrive telegrams on the PLC, and build the WinCC flexible tag table using the DBW formula above.
- For fixed setpoint stacks, configure p1001..p1015 and wire DI bits to p1055 / p1056 / p1057 to drive the NSW index.
- Save parameters to non-volatile memory:
p0977 = 1triggers a parameter save with a confirm-and-reboot sequence on some firmware. - Run a no-load spin test to confirm rotation direction, then a loaded acceleration ramp test to confirm the ON/OFF1, OFF2, and fault-acknowledge wiring.
Verification Checklist
- [ ] Each DI 0..DI 5 toggles its bit in
r0722when its terminal is driven - [ ] ON command (DI 0 with p0701=1) starts the motor in local mode
- [ ] OFF2 (DI 1 with p0702=2) causes coast stop with no decel ramp
- [ ] OFF3 (DI assigned to p0848 via p070x=3) causes fast stop with the configured decel ramp
- [ ] Fault acknowledge (DI 2 with p0703=9) clears an injected fault
- [ ]
p0700[0]=2andp0700[1]=6confirmed in STARTER for CDS switching - [ ]
r0050reflects the active CDS after the selector DI toggles - [ ] Fixed setpoint bits 0..2 (DI 3, 4, 5) drive
p1055/p1056/p1057and select the correct p10xx value - [ ] HMI tag DB2098 DBW1025 (or the PLC-routed equivalent) returns the live value of p2098[1]
- [ ] Fault buffer r945[0..7] populates after a forced fault and the HMI history view displays it
- [ ] Parameter save completed: re-power the CU and confirm the wiring is retained
Troubleshooting Matrix
| Symptom | Likely Cause | Remediation |
|---|---|---|
| DI status in r0722 does not change when terminal is toggled | Wiring error, PNP/NPN mismatch, 24 V supply missing, or terminal is configured as output | Verify terminal voltage with a meter; check the CU230P-2 wiring diagram for the input type; confirm the terminal is set as DI in the hardware configuration |
| DI toggles in r0722 but the motor does not start | p0700 not set to 2, or the DI function code in p070x is not 1 | Set p0700=2 and p0701=1; confirm p0840[0] is being driven by r0722.0 via the BICO list |
| Local works, remote (PROFIBUS) does not | Active CDS still 0; p0700[1] not configured | Verify r0050; check the DI assigned to p0810; confirm p0700[1]=6 and the PROFIBUS telegram is active |
| HMI direct tags return 0 or "no communication" | G120 does not support S7 HMI-direct communication | Insert an S7-300/400 between the HMI and the drive and route the tags through the PLC using the DBW offset formula |
| Fault code displays are scrambled on the HMI | Wrong DO offset used in the DBW calculation | Re-derive DBW from the offset table; remember that the sub-index goes into the offset, not the DB number |
| Bit-level parameter (p2098.0) reads 0 even when set | Reading the wrong word length or wrong bit | Grab the full 16-bit word at the calculated DBW and apply a bit-mask in WinCC flexible to extract the desired bit |
| Active CDS does not change with the selector DI | DI not wired to p0810, or CDS not configured | Assign a free DI function (CDS selection) via the appropriate p070x and BICO-wire the DI connector to p0810; confirm p0700[0] and p0700[1] are different |
| Fault acknowledge does not clear faults | Drive is in OFF2 / OFF3 state, or p2103[0] not wired | Issue the ON command first, then acknowledge; verify p2103[0] is being driven by the DI assigned to p070x=9; check r2131 for the current fault number |
| Motor runs in wrong direction | Phase rotation wrong, or setpoint inversion DI not wired | Swap any two motor leads; alternatively wire a DI to p1113 via p070x=12 and use the inversion DI to flip direction without re-wiring |
| Parameters lost after power cycle | Save not committed to non-volatile memory | Execute p0977=1 from STARTER or the IOP and wait for the CU to complete the save sequence before removing power |
FAQ
How do I read a SINAMICS G120 digital input from a Siemens HMI over PROFIBUS?
The G120 with any Control Unit does not support direct S7 communication between the HMI and the drive. Insert an S7-300/400 between the HMI and the drive, read the DI status from r0722 in the S7 program, and expose it to the HMI as a normal tag.
What is the difference between p0700 and p0701 on the G120?
p0700 selects the overall command source (0 = default, 1 = panel/operator, 2 = terminal, 6 = PROFIBUS). p0701 (and p0702..p0706) assigns a specific function to each individual digital input such as 1 = ON/OFF1, 9 = fault acknowledge, 12 = reverse, 15 = fixed setpoint bit 0, or 35 = CDS selection bit 0.
How do I switch between local control and remote PROFIBUS commands?
Configure two Command Data Sets: set p0700[0]=2 (local terminals) and p0700[1]=6 (PROFIBUS). Assign a free digital input to CDS selection by BICO-wiring the DI to p0810. The active CDS is then visible in r0050 (0 = local, 1 = remote).
What is the DBW offset formula for a SINAMICS drive object?
For DO 1 (Control Unit) the base is 1024, for DO 2 (Drive/Power Module) the base is 2048, for DO 3 the base is 3072, and for DO 4 (TB30) the base is 6144. The final DBW = base + sub-index, with the parameter number used as the DB number. For example, p2098[1] of the CU is DB2098 DBW1025 and r2132 of the Power Module is DB2132 DBW2048.
Where can I read the current fault and active alarm from the drive?
Use r2131 for the oldest active fault code, r2132 for the active alarm code, and r945[0..7] for the full fault history of a drive object. Add the DO base offset to the DBW when routing through an S7 CPU so the HMI tag points at the correct drive object's fault buffer.
Why is p0700 set to 2 the most common starting point for terminal control?
p0700=2 activates the digital inputs on the CU terminal strip as the command source. Until p0700 is changed away from the factory default, the DI function codes in p0701..p0706 have no effect on the control commands, which is the most common reason a freshly wired G120 appears to ignore its digital inputs.