SINAMICS G120 CU240E-2 Local/Remote Control via Modbus RTU and CDS
Field-proven configuration guide for switching a Siemens SINAMICS G120 with CU240E-2 between Modbus RTU remote control (CDS0) and terminal/analog local control (CDS1) using a single digital input. Covers BICO wiring, parameter mapping, CDS independent editing, and S7-1200 integration. The procedure applies to CU240E-2 firmware V4.5 and later; the latest validation reference is the CU240E-2 operating instructions available in the Siemens Industry Online Support portal.
Overview and Architecture
The SINAMICS G120 modular drive system is built from a Power Module (PM240-2 or PM250) and a Control Unit. The CU240E-2 variant provides onboard RS485 for Modbus RTU, six digital inputs, two analog inputs, and supports four Command Data Sets (CDS). Local/Remote control is implemented by giving each Command Data Set a distinct command source and setpoint source, then selecting the active CDS through a digital input and BICO technology.
| Data Set | Mode | Command Source (p0700) | Setpoint Source (p1000) | Selection Input |
|---|---|---|---|---|
| CDS0 | Remote | 6 (Modbus RTU) | 6 (Modbus RTU) | DI inactive |
| CDS1 | Local | 2 (Terminal) | 2 (Analog Input 1) | DI active |
The architecture below isolates the two control paths so that the S7-1200 master sees deterministic behaviour in Modbus mode while the operator can still jog the motor from a panel potentiometer when the line is open.
Prerequisites
- SINAMICS G120 with CU240E-2 Control Unit (firmware V4.7 SP3 or later recommended; V4.5 minimum for full CDS support).
- S7-1200 PLC with a CM1241 RS485 communication module, or any Modbus RTU master.
- STARTER V5.1 SP1 or TIA Portal V15.1 (or later) with the SINAMICS Startdrive add-in installed.
- Commissioning cable USB-to-RJ45 (Siemens part number 6SL3255-0AA00-2CA0) or Ethernet connection for PROFINET variants.
- Motor nameplate data: voltage, current, power factor, nominal speed.
- Drive address reserved on the RS485 bus, set in p2021 (default 1).
Command Data Set (CDS) Fundamentals
A Command Data Set is a parallel set of control-related parameters. The G120 supports up to four CDS. The currently active CDS is displayed in r0050 (bits 0 and 1). The selected CDS (the next CDS that will become active after a state change) is reported in r0836. Two digital inputs select the active CDS:
- p0810 — CDS bit 0 (low-weight bit)
- p0820 — CDS bit 1 (high-weight bit)
CDS selection encoding:
| p0820 (Bit 1) | p0810 (Bit 0) | Active CDS |
|---|---|---|
| 0 | 0 | CDS0 |
| 0 | 1 | CDS1 |
| 1 | 0 | CDS2 |
| 1 | 1 | CDS3 |
Each CDS carries its own copy of command-related parameters including:
- p0700 — command source selection
- p1000 — speed setpoint source
- p0840 — ON/OFF1 source
- p0852 — pulse enable source
- p1113 — setpoint inversion
- p1500 — torque setpoint source
- p1120 / p1121 — ramp-up / ramp-down time
Any change to these parameters affects only the data set indicated by the bracketed index. For example, p0700[0] is the command source for CDS0; p0700[1] is the command source for CDS1.
BICO Interconnection for CDS Switchover
BICO (Binector Connector) technology lets you wire digital and analog signals between internal function blocks. To select CDS via DI3, the default factory wiring on the CU240E-2 is:
- p0810 = 722.3 (DI3 drives CDS bit 0)
- p0820 = 0 (CDS bit 1 not used)
For CDS1 selection through DI4 (r0722.4), reassign p0810 in the expert list:
- p0810 = 722.4 (DI4 drives CDS bit 0)
- p0820 = 0 (unchanged)
Configuring CDS0 — Modbus RTU Remote Mode
With CDS0 active, the drive accepts commands and setpoints from the Modbus master. The following parameter set defines Modbus as the command and setpoint source within CDS0.
Step 1: Enter CDS0 editing
In Startdrive, navigate to Control Unit → Command data sets → CDS0 and set:
| Parameter | Value | Description |
|---|---|---|
| p0700[0] | 6 | Command source = Modbus RTU |
| p1000[0] | 6 | Speed setpoint source = Modbus RTU |
| p0840[0] | 2090.0 | ON/OFF1 from Modbus control word bit 0 |
| p0852[0] | 2090.3 | Pulse enable from Modbus bit 3 |
| p1113[0] | 0 | No setpoint inversion |
| p1500[0] | 0 | No torque setpoint |
Step 2: Modbus RTU communication parameters
| Parameter | Default | Recommended | Description |
|---|---|---|---|
| p2030 | 0 | 2 | Fieldbus protocol = Modbus RTU |
| p2020 | 6 | 6 or 7 | RS485 baud rate (6 = 19200, 7 = 38400, 8 = 57600) |
| p2021 | 1 | 1–247 | Modbus slave address |
| p2022 | 2000 | 2000–5000 | Modbus timeout in ms (0 = monitoring off) |
| p2023 | 2 | 2 | Fault response (1 = warning, 2 = fault with OFF1) |
Step 3: Process data mapping
Default PZD mapping for SINAMICS G120 Modbus on the CU240E-2:
- Receive PZD1 (control word 1) — holding register 40100 (function code 06/16)
- Receive PZD2 (speed setpoint) — holding register 40101
- Send PZD1 (status word 1) — holding register 40110 (function code 03/04)
- Send PZD2 (actual speed) — holding register 40111
Confirm by inspecting p2050[0] = 52 (status word) and p2051[0] = 21 (r0021 filtered speed) online. To change the source of PZD2 actual value, edit p2051[0] to the desired connector (for example, r0022 for unfiltered speed).
Reference the SINAMICS G120 List Manual in Siemens Industry Online Support for the complete PZD assignment and BICO tables.
Configuring CDS1 — Terminal/Analog Local Mode
Switch the editor in Startdrive to CDS1 and configure local control through the on-board terminal strip and the potentiometer wired to analog input 1.
Step 1: Set command and setpoint sources
| Parameter | Value | Description |
|---|---|---|
| p0700[1] | 2 | Command source = terminal strip (digital inputs) |
| p1000[1] | 2 | Setpoint source = analog input 1 |
| p0840[1] | 722.0 | ON/OFF1 from DI0 |
| p0852[1] | 722.1 | Pulse enable from DI1 |
| p1113[1] | 0 | No inversion |
Step 2: Analog input scaling
Wire a 10 kΩ potentiometer across +10 V (terminal 4), AI- (terminal 3, GND), and AI0+ (terminal 5). Set:
| Parameter | Value | Description |
|---|---|---|
| p0756[0] | 0 | AI0 type = unipolar 0–10 V |
| p0757[0] | 0 | x1 = 0 V → 0% |
| p0758[0] | 0 | y1 = 0% (corresponds to 0% speed) |
| p0759[0] | 10 | x2 = 10 V → 100% |
| p0760[0] | 100 | y2 = 100% (corresponds to p1082 max speed) |
| p0761[0] | 0 | No deadband |
Step 3: Verify the local reference path
The default main setpoint in CDS1 routes the scaled AI0 (r0755[0]) into p1070[1] (CI: main setpoint). The drive then applies the p1082 max speed ceiling automatically. Confirm by observing r0021 in the Startdrive trace while sweeping the potentiometer from 0 to 10 V.
DI Selection and Hardware Wiring
| CU240E-2 Terminal | Function in CDS0 (Modbus) | Function in CDS1 (Terminal) |
|---|---|---|
| DI0 (Pin 5) | — | ON/OFF1 (p0840[1]) |
| DI1 (Pin 6) | — | Pulse enable (p0852[1]) |
| DI3 (Pin 8) | Free or fault ack (p2103) | Fault ack (p2103) |
| DI4 (Pin 16) | CDS select (p0810 = 722.4) | CDS select (p0810 = 722.4) |
| AI0+ (Pin 5) | — | Potentiometer wiper |
Modbus RTU Communication with S7-1200
Insert a CM1241 RS485 module in the S7-1200 rack. Configure the port for Modbus RTU master at the same baud rate and parity as the drive (default: 19200, 8E1). Use the MB_MASTER instruction in the user program.
// S7-1200 MB_MASTER call
MB_MASTER_DB(
REQ := bSendRequest,
MB_ADDR := 1, // Matches p2021
MODE := 1, // 0 = read, 1 = write
DATA_ADDR := 40100, // Holding register start
DATA_LEN := 2, // Control word + setpoint
DATA_PTR := "ControlBuffer",
DONE => bDone,
ERROR => bError,
STATUS => wStatus
);
Write the control word and speed setpoint as a 2-word array through the S7-1200 data pointer. Read the status word and actual speed into another buffer. Acknowledge any communication fault (F1910) by either p2021 cycle or by setting p0970 = 1 to trigger a parameter reset of fieldbus interface parameters.
For a step-by-step TIA Portal walkthrough of integrating the SINAMICS G120, see the TIA Portal documentation at docs.tia.siemens.cloud.
Why CDS0 and CDS1 Appear Coupled in the Editor
A common field problem: changing a parameter in CDS0 appears to overwrite the same index in CDS1. The cause is usually one of three things:
- The Startdrive parameter editor is not switched to the active CDS. The bracketed index (e.g., p0700[0] vs p0700[1]) must match the highlighted CDS in the editor's data set selector.
- The user edited a Drive Data Set (DDS) parameter, not a CDS parameter. Parameters that carry only a DDS index (e.g., p1610 motor temperature model) are shared across all CDS.
- Copy RAM to ROM (p0977 = 1) was executed from a single session that did not differentiate the data set block. CDS0 and CDS1 must be persisted to ROM in separate writes.
To set parameters independently, follow this procedure:
- In STARTER or Startdrive, click the CDS selector in the parameter editor and confirm the active data set is highlighted in bold.
- Disable automatic parameter copy in the expert list by clearing the Link with CDS0 checkbox for each affected parameter.
- Verify the parameter index: p0700[0] = CDS0, p0700[1] = CDS1. Always confirm the bracketed index when editing.
- After writing all parameters for CDS0, execute Copy RAM to ROM (p0977 = 1). Wait for the write to complete. Switch to CDS1, write, then copy again. This forces each CDS to its own ROM block.
Verification Procedure
- Power up the drive. Connect Startdrive online. Confirm r0050 = 0 (CDS0 active) with DI4 open and r0722.4 = 0.
- Send a run command from the S7-1200 MB_MASTER buffer (control word 0x047F, setpoint 0x4000 for 50% speed). Observe r0021.0 = 1 (drive running) and r0021.1 = 1 (setpoint reached).
- Stop the drive (control word 0x047E). Open the RS485 line or send a stop command. Verify r0021.0 = 0.
- Close DI4 (apply 24 V to terminal 16). Confirm r0050 = 1 (CDS1 active) and r0836.0 = 1.
- Press DI0 (ON) and DI1 (Enable). Turn the potentiometer. Verify the motor accelerates to the commanded speed within p1120 ramp time.
- Open DI4 to return to Modbus mode. Re-initiate the run command from the PLC. The drive should resume remote operation without fault.
Troubleshooting Matrix
| Symptom | Probable Cause | Remedy |
|---|---|---|
| r0050 does not change when DI4 toggles | p0810 not connected to 722.4 | Set p0810 = 722.4 in expert list |
| CDS0 and CDS1 share same parameters after write | Editor not switched between CDS | Toggle CDS selector; verify index [0] vs [1] |
| Drive faults F1910 after Modbus timeout | p2022 too aggressive or RS485 noise | Increase p2022; check shield grounding and bus termination |
| Motor runs in CDS0 but not CDS1 | p0840[1] or p0852[1] not wired | Assign DI0 / DI1 to ON/OFF1 and Enable in CDS1 |
| Potentiometer has no effect | AI0 type or scaling mismatch | Confirm p0756[0] = 0; check p0757 to p0760 scaling |
| Motor runs in wrong direction | Setpoint sign wrong or phase swap | Invert via p1113 or p1820; verify motor wiring |
| Modbus read returns 0xFFFF | Address conflict on RS485 bus | Set unique p2021 on each slave; check 120 Ω termination |
| F07801/F07802 after CDS switch | Motor overload or I²t trip | Cycle DI1 for local ack; check p640 = current limit |
| DI4 input is not detected | Input type set to NPN (sinking) | Set p0728 = 0 for PNP sourcing |
Diagnostics with Startdrive Trace
Open Startdrive → Commissioning → Trace. Record the following signals at 2 ms interval for 10 s while toggling DI4:
- r0050 — active CDS
- r0836 — selected CDS
- r0021 — drive status word
- r0755 — scaled AI0
- r0022 — filtered actual speed (rpm)
- r0722 — digital input state
The trace will visually confirm that command source, setpoint source, and digital inputs transition in lockstep with the CDS select input. Save the trace as a reference for every subsequent drive swap to reduce commissioning time.
Safety and Commissioning Notes
- After CDS parameter changes, perform a Copy RAM to ROM (p0977 = 1) to persist each CDS independently. Power cycling without this step will revert to factory values for the modified CDS.
- If the drive enters F07801 or F07802 (motor overload), the local reference must be re-acknowledged by cycling DI1 in CDS1 or by sending control word bit 7 in CDS0.
- For multi-pump or coordinated drive applications, switch all drives to the same CDS simultaneously to avoid reference conflicts and ramp-time mismatch.
- Verify the RS485 bus is terminated at both ends with 120 Ω resistors. The CU240E-2 does not include built-in termination; install it externally if the drive sits at the end of the line.
- For PROFINET variants, use a different command source value (p0700 = 6 stays valid for PROFINET IO in Startdrive; verify in the project tree).
FAQ
How do I switch between Modbus RTU and terminal control on a SINAMICS G120?
Configure two Command Data Sets — CDS0 for Modbus (p0700[0] = 6, p1000[0] = 6) and CDS1 for terminal (p0700[1] = 2, p1000[1] = 2). Assign p0810 = 722.4 to use DI4 as the CDS toggle. Verify with r0050.
Why do CDS0 and CDS1 appear to share the same parameters after editing?
The Startdrive parameter editor must be switched to the active CDS using the CDS selector. Always confirm the bracketed index (p0700[0] vs p0700[1]) before writing. Use p0977 = 1 to copy each CDS to ROM independently.
What Modbus registers control a SINAMICS G120?
Holding register 40100 is the control word and 40101 is the speed setpoint (both written). Register 40110 is the status word and 40111 is the actual speed (both read). The slave address is set in p2021 (default 1).
Can I use DI3 instead of DI4 for CDS selection?
Yes. The factory default wires p0810 = 722.3 (DI3). If DI3 is already used for fault acknowledge, reassign p0810 to 722.4 (DI4) and leave p0820 = 0. The change is made in the expert parameter list.
Does CDS switchover affect motor ramp times?
Yes. Ramp time p1120 (up) and p1121 (down) are CDS-indexed. Configure p1120[0] and p1120[1] separately to have different ramp profiles per operating mode — for example, 5 s for Modbus coordination and 2 s for local jogging.
What happens if the Modbus line drops while CDS0 is active?
The drive will trip with F1910 after p2022 milliseconds, execute the response selected in p2023 (default: OFF1 with fault), and coast to stop. Reconnect the line, send control word 0x047E, then a new run command to recover.