Problem Description
When configuring a SIMOTION C240 motion controller as a PROFIBUS DP master for a SINAMICS DCM (DC Master, 6RA80 series) drive, the SCOUT project fails to compile with the error:
The configuration in question typically uses:
- SIMOTION C240 configured as PROFIBUS DP master (12 Mbaud)
- SINAMICS DCM as DP slave on the same segment
- Telegram 999 (free configuration) with 32 PZD input / 32 PZD output words
- A Technology Object (TO) axis assigned to the DCM
Selecting a 32/32 PZD free telegram on the CU produces the error because the CU portion of the SINAMICS DCM has no concept of a standard PROFIdrive setpoint telegram. The drive object (DO) handles the speed/torque/field control and is the only entity that can accept PROFIdrive telegrams 1-6, 81, 82, 102-106, or 999.
Affected Hardware and Firmware
| Component | Article / Order Number | Firmware | Notes |
|---|---|---|---|
| SIMOTION C240 | 6AU1240-1AA00-0AA0 / -1AB00 / -1AC00 | V4.4 / V4.5 / V5.1 / V5.2 | Compact motion controller with onboard PROFIBUS and TTL/SSI encoder interfaces |
| SINAMICS DCM (6RA80) | 6RA8013, 6RA8025, 6RA8081, 6RA8090, ... | V1.3 / V2.3 / V2.5 / V2.7 | Includes CUD (Control Unit DC) left module with PROFIBUS or PROFINET interface |
| SIMOTION SCOUT | - | V4.4 HF11 / V5.1 SP1 / V5.2 SP1 | Configuration and programming environment; STARTER embedded for the DCM |
| PROFIBUS DP | - | DP-V0 / DP-V1 / DP-V2 | RS485 twisted pair, 9.6 kbaud to 12 Mbaud |
Root Cause Analysis
The SINAMICS DCM consists of two functionally separate PROFIBUS communication endpoints on the same physical slave:
- Control Unit (CUD) - handles the PROFIdrive parameter channel, fault buffer, and higher-level status; does not execute a closed-loop drive control.
- Drive Object (DO) - the actual DC drive that processes NSOLL_A, NIST_A, STW1, ZSW1 according to PROFIdrive profile.
When a standard PROFIdrive telegram (1, 2, 3, 4, 5, 6, etc.) or free telegram 999 is assigned to the CUD slot in the SCOUT message frame configuration, the SCOUT compiler detects a type mismatch: standard PROFIdrive setpoint telegrams are defined for closed-loop drives, not for the CUD's parameter and I/O interface. The CUD is treated as a "non-drive" PROFIdrive slot, and assigning a drive-oriented telegram to it triggers the error.
Additionally, for a DC Master, only a small subset of PROFIdrive telegrams are valid for the drive object:
- Telegram 1 - 2 PZD out (STW1 + NSOLL_A), 2 PZD in (ZSW1 + NIST_A) - standard speed control.
- Telegram 3 - 4 PZD out / 4 PZD in - speed setpoint with additional torque/process data.
- Telegram 999 - free configuration (up to 32 PZD each direction) - requires manual BICO wiring of p2050/p2051.
Telegrams 2, 4, 5, 6 (which include position-related signals like XERR, KPC, or DSC interpolation) are not supported by the SINAMICS DCM. Attempting to assign them will produce a similar compile error or an online fault at startup.
Prerequisites and Required Components
- SCOUT installed with a valid license (Basic or Premium motion control license depending on TO type)
- SIMOTION C240 connected via Ethernet to the engineering PC
- SINAMICS DCM CUD connected via PROFIBUS to the C240 (X126 on CUD to X136 on C240, or X126 CUD to X1 PROFIBUS connector)
- Motor encoder connected to both the SINAMICS DCM CUD (X105 TTL or X106 SSI) and the SIMOTION C240 onboard encoder input (front panel X1 TTL or X2 SSI), if PosAxis is required
- 24 V DC logic power to both the C240 and the CUD electronics
- 400/480 V AC three-phase power to the SINAMICS DCM power section (Line Side Converter / Armature Side Converter)
- PROFIBUS terminating resistors (220 Ω) installed at both physical ends of the bus segment
- SINAMICS DCM GSD file installed in SCOUT (e.g., SIEM80D2.GSD or SIEM801F.GSD for the relevant firmware revision)
Step-by-Step Resolution in SCOUT
- Open the SCOUT project containing the SIMOTION C240 and the SINAMICS DCM.
- In the project navigator, expand the SINAMICS DCM device and double-click the DCM icon to open the device editor.
- Switch to the Communication tab in the device editor.
- Click Message Frame Configuration to open the PROFIdrive message frame dialog.
- The dialog shows a tree with two top-level entries: Control Unit and Drive Object (or a list of slots labeled "CU" and "DO").
- Select the Control Unit row.
- In the drop-down labeled Settings (or "Telegram"), change the value from the current selection (which may be "Standard Telegram 1" or "Free Telegram 999") to user-defined.
- In the I/O slot list under the Control Unit (which may show Digital Inputs, Digital Outputs, Analog Inputs, etc.), uncheck every entry. The CU will have zero PZD in the SCOUT message frame.
- Click OK to apply.
- Select the Drive Object row and set the telegram to Standard Telegram 1 (2 PZD out / 2 PZD in) for a basic speed-controlled axis. Telegram 999 can be used if custom PZD mapping is required, but the drive object must then have its p0922 and p0922.x parameters configured to match.
- Confirm the message frame summary shows: CU = empty (0 PZD), DO = 2 PZD out / 2 PZD in.
- Click OK to close the dialog.
- Right-click the project root and select Compile and check consistency.
- The error "Cannot configure a standard telegram for control unit" should be gone.
- Right-click the project and select Download to target to push the configuration to the C240 and DCM.
Telegram and Axis Configuration Reference
| Telegram | PROFIdrive Profile | PZD Out (Master → Drive) | PZD In (Drive → Master) | SINAMICS DCM Support | Typical TO Axis |
|---|---|---|---|---|---|
| 1 | Standard | STW1 + NSOLL_A | ZSW1 + NIST_A | Yes | DriveAxis |
| 2 | Standard | STW1 + NSOLL_A + redundancy | ZSW1 + NIST_A + redundancy | Limited | DriveAxis |
| 3 | Standard | STW1 + NSOLL_A + STW2 + torque limit | ZSW1 + NIST_A + ZSW2 + actual torque | Yes (V2.3+) | DriveAxis |
| 4 | Standard | STW1 + NSOLL_A + STW2 + XERR | ZSW1 + NIST_A + ZSW2 + actual position | No (no XERR support) | n/a |
| 5 | Standard | STW1 + NSOLL_A + STW2 + XERR + KPC | ZSW1 + NIST_A + ZSW2 + actual position + DSC status | No (no DSC) | n/a |
| 6 | Standard | STW1 + NSOLL_A + STW2 + torque add | ZSW1 + NIST_A + ZSW2 + status word 3 | No (variant for SERVO) | n/a |
| 81 | Encoder | STW1 (encoder ch.) | ZSW1 + NIST_B + actual position Gx_XIST1/2 | No | n/a |
| 999 | Free | User-defined (1-32) | User-defined (1-32) | Yes (drive object only) | DriveAxis / PosAxis with external encoder |
Key control word bits (STW1) for the SINAMICS DCM:
| Bit | Designation | Function |
|---|---|---|
| 0 | ON / OFF1 | Rising edge: ON; falling edge: OFF1 (ramp stop) |
| 1 | OFF2 | 0 = coast to stop, immediate pulse inhibit |
| 2 | OFF3 | 0 = fast stop with p1135 ramp |
| 3 | Enable operation | 1 = enable pulses, 0 = inhibit |
| 4-6 | Ramp-function generator enable / setpoint enable / ramp enable | Sequence per PROFIdrive state machine |
| 7 | Acknowledge fault | Rising edge: fault acknowledge (0 → 1) |
| 10 | Control by PLC | 1 = automation system controls the drive |
| 11-15 | Direction / reserved / speed setpoint resolution | Bit 11 = reversal, bit 13/14/15 = bit scaling for NSOLL_A |
Key status word bits (ZSW1):
| Bit | Designation | Function |
|---|---|---|
| 0 | Ready to switch on | Drive electronics powered, no fault |
| 1 | Ready to operate | DC link charged, contactors closed |
| 2 | Operation enabled | Pulses enabled, drive is following setpoint |
| 3 | Fault present | 1 = active fault, latched |
| 4 | OFF2 inactive | Internal check, must be 1 for operation |
| 5 | OFF3 inactive | Internal check, must be 1 for operation |
| 6 | Switch-on inhibited | 1 = drive in safe state, requires ON sequence |
| 10 | Control requested | 1 = drive expects STW1 bit 10 to be 1 from PLC |
| 11-15 | Alarm / n_act comparison / reserved | Per PROFIdrive |
Drive-Side and CU-Side Parameter Mapping
For telegram 1 (default for DC Master), the following SINAMICS DCM parameters must be checked:
| Parameter | Description | Recommended Value |
|---|---|---|
| p0922 | IF1 PROFIdrive PZD telegram selection (DO) | 1 |
| p2079 | IF1 PROFIdrive PZD telegram extension (DO) | 0 |
| p2030 | Fieldbus interface protocol selection | 2 (PROFIBUS DP) |
| p2042 | PROFIBUS identifier (GSD type) | 0 (DP-V1 32-PZD) |
| p2051[0] | CI: PZD send (drive → PLC) word 1 | r2050[0] (loopback) or actual signal connector |
| p2051[1] | CI: PZD send word 2 (NIST_A) | r0063 (smoothed speed actual) |
| p2050[0] | CI: PZD receive (PLC → drive) word 1 (STW1) | r2050[0] (loopback to p0840 etc.) |
| p2050[1] | CI: PZD receive word 2 (NSOLL_A) | r0061 (speed setpoint before ramp) |
| p2050[2..15] | CI: PZD receive words 3-16 | Not used in telegram 1 |
| p2099 | Bit selector for PZD receive (BICO output) | Set per STW1 bit (e.g., bit 0 → r2099.0 → p0840 ON/OFF1) |
| p2080[0..15] | BI: binector input for PZD receive word | Couples to STW1 bits; default BICO mapping handles this |
For free configuration (telegram 999) on the drive object, the user must manually wire each PZD receive and send word via p2050[0..31] and p2051[0..31]. The CUD's CU side can be left empty (no PZD) or configured with telegram 999 to read CU-specific parameters via the acyclic DP-V1 channel.
Encoder Wiring for PosAxis Applications
The SINAMICS DCM does not natively support PROFIdrive position telegrams. To build a PosAxis in SIMOTION that uses a SINAMICS DCM as the actuator, the position feedback must come from a separate encoder connected to the SIMOTION C240's onboard encoder interface.
Wiring procedure for the parallel encoder connection:
- Mount the encoder (e.g., Hengstler RI36, Sick DFS60, or Heidenhain ROD 426) on the motor shaft.
- Route the encoder cable to the SINAMICS DCM CUD X105 (TTL) or X106 (SSI) terminal block.
- Use a Y-distributor or split the encoder cable to also feed the SIMOTION C240 front-panel TTL connector (X1) or SSI connector (X2).
- Set the SINAMICS DCM encoder parameters: p0400 = encoder type, p0420 = number of pulses, p0430 = supply voltage (typically 5 V DC).
- Configure the SIMOTION C240 onboard encoder in SCOUT (HW Config → C240 Properties → Encoders): select TTL or SSI, set pulses per revolution, select SSI length and gray/binary code as required.
- Assign the encoder to the TO PosAxis in the axis configuration dialog.
DriveAxis vs PosAxis Selection
| Aspect | DriveAxis | PosAxis (with external encoder) |
|---|---|---|
| Control type | Open-loop speed | Closed-loop position |
| PROFIdrive telegram | 1 (STW1 + NSOLL_A) | 1 (STW1 + NSOLL_A) for actuator + onboard encoder for position |
| Position feedback | None (or via telegram 4/5/6 for SERVO drives) | Onboard TTL/SSI encoder on C240 |
| Encoder wiring | Not required (only motor encoder to DCM) | Motor encoder to DCM + parallel to C240 onboard |
| Application | Speed-controlled winder, simple extruder, fan, pump | Positioning axis, flying saw, electronic cam, synchronous operation |
| Closed-loop bandwidth | DCM internal speed loop (~100 Hz typical) | SIMOTION position loop overlaying DCM speed loop (~30-50 Hz typical for cascaded) |
Selection rule: if the application needs only speed setpoint tracking (e.g., dancer/load cell control of a winder), choose DriveAxis. If the application needs absolute or relative positioning, choose PosAxis with the encoder connected to the SIMOTION C240.
Verification and Commissioning Procedure
- Recompile the SCOUT project. The "Cannot configure a standard telegram for control unit" error should be gone. A clean compile also confirms the message frame lengths match across C240, SCOUT, and the DCM p0922/p2079 settings.
- Click Download to target and select both devices (C240 and DCM). Wait for the download to complete (progress bar reaches 100% with no red error indicators).
- Right-click the SIMOTION C240 and select Connect online target system.
- Right-click the SINAMICS DCM and select Connect online target system (uses the DP-V1 routing from SCOUT to the CUD through the C240).
- Open the SIMOTION C240 axis control panel (Tools → Commissioning → Axis control panel).
- Select the TO axis assigned to the DCM. Enable the axis by clicking Enable.
- Check the STW1 echo (drive parameter r898) - bit 0 should toggle to 1 (ON command received).
- Monitor ZSW1 (drive parameter r899) - bit 6 "Switch-on inhibited" should clear when STW1 sequence 0→1 is performed.
- Enter a small jog velocity (e.g., 100 RPM) and click Jog +. The motor should accelerate.
- Click Jog off. The motor should ramp to zero with the configured deceleration (p1121).
- Open the SINAMICS DCM fault buffer (Diagnostics → Fault buffer). Verify no F0xxx or F3xxxx faults are present.
- Repeat the jog with progressively higher velocities up to the rated motor speed. Monitor the armature current (r0027) and field current (r0028) to ensure they stay within the drive's rated values.
- For a PosAxis, perform a referencing (homing) sequence using the axis control panel. Verify the position actual value (r0479 onboard encoder) increments correctly during motion and stops at the home position sensor.
- Save the project (Ctrl+S) and back up the C240 and DCM to a CF card for production deployment.
Diagnostics Parameters and Fault Codes
| Parameter | Description | Use |
|---|---|---|
| r899.x | CO/BO: Status word ZSW1 (drive) | Monitor PROFIdrive state machine |
| r898.x | CO/BO: Control word STW1 echo (drive) | Verify PLC command received |
| r0063[0] | Smoothed speed actual (n_act) | Closed-loop speed monitor |
| r0061[0] | Speed setpoint before ramp | Verify NSOLL_A is reaching the drive |
| r0027 | Armature current actual (I_a) | Motor load indicator |
| r0028 | Field current actual (I_f) | Field loop health |
| r2050[0..15] | PROFIBUS PZD receive (from PLC) | Raw PZD view for telegram verification |
| r2051[0..15] | PROFIBUS PZD send (to PLC) | Raw PZD view from drive to PLC |
| r2099[0..15] | Bit decoder from PZD receive | BICO output for individual STW1 bits |
| r2131 | Current fault code (rounded) | Live fault readout |
| r0945[0..7] | Fault code history (last 8 faults) | Persistent fault log |
| Fault / Alarm | Meaning | Corrective Action |
|---|---|---|
| F08501 | PROFIBUS connection fault | Check cable, connectors, terminating resistors, bus address |
| F08502 | PROFIBUS watchdog timeout | Check master for cyclic I/O; raise p2047 watchdog time |
| F08510 | PROFIBUS receive error (PZD parity / length) | Check for electrical noise, ground loops, mismatched telegram length |
| F08511 | PROFIBUS address conflict | Ensure unique address on segment (p0918) |
| A08501 | PROFIBUS warning - cyclic I/O not active | Master not in RUN; normal during configuration |
| A08502 | PROFIBUS warning - telegram length mismatch | Align SCOUT message frame with p0922/p2079 |
| F30001 | Overcurrent (armature) | Check motor, setpoint ramp, p1140/p1141 if speed loop instability |
| F30002 | Overvoltage (DC link) | Check line supply, regenerative feedback if used |
| F30003 | Undervoltage (DC link) | Check line supply, fuses, contactor |
| F30004 | Field overcurrent | Check field winding resistance, p5030 setting |
| F30005 | Field undercurrent / open circuit | Check field winding continuity, fuses (F1/F2) |
Common Error Matrix
| Symptom | Likely Cause | Fix |
|---|---|---|
| "Cannot configure a standard telegram for control unit" at compile | Standard telegram on CU slot | Set CU to user-defined, uncheck all slots |
| "Telegram does not match drive parameterization" at compile | p0922 in DCM does not match SCOUT telegram | Set p0922 = 1 in the DCM, or change SCOUT to match |
| F08502 watchdog trip at runtime | C240 goes to STOP, PROFIBUS cycle breaks | Verify C240 RUN state; raise p2047 to > C240 PROFIBUS cycle time |
| Motor does not respond to STW1 ON (bit 0) | STW1 bit 10 (control by PLC) not set, or STW1 sequencing wrong | Send STW1 = 047Eh then 047Fh (PROFIdrive ON sequence: 047E → 047F) |
| Motor jumps to high speed at enable | NSOLL_A scaling wrong (bits 13/14/15 of STW1) | Set STW1 bit 13-15 = 0 for 100% reference speed, or scale p2000 |
| PosAxis position drifts at standstill | Mechanical play in gearbox, encoder mounting, or noise on TTL signals | Check shielding, twisted pair routing, use differential TTL (RS422) only |
| PROFIBUS LED on DCM stays red | Bus physical layer fault | Check terminating resistors (220 Ω at both ends, none in middle), cable integrity |
| DCM faults with F30001 (overcurrent) on first motion | Speed loop gain too high, p1145 too fast, or wrong motor data | Run self-tuning (p50051 = 23) before enabling torque |
FAQ
What does telegram 999 mean for a SINAMICS DCM in SIMOTION SCOUT?
Telegram 999 is the free-configuration PROFIdrive telegram. It allows the user to define up to 32 PZD words in each direction with custom BICO mapping via p2050 and p2051. The SINAMICS DCM supports telegram 999 on the drive object, but the Control Unit (CUD) does not accept any standard telegram - it must be set to user-defined with all I/O slots unchecked to compile in SCOUT.
Can a SINAMICS DCM be used as a position-controlled axis from SIMOTION?
The SINAMICS DCM is fundamentally a speed/torque/field-controlled DC drive and does not implement PROFIdrive position telegrams (4, 5, 6 with XERR, KPC, or DSC). To achieve position control, configure a SIMOTION PosAxis and route a separate encoder (TTL or SSI) into the SIMOTION C240 onboard encoder interface, using PROFIdrive telegram 1 (2/2 PZD) for the speed setpoint channel to the DCM only.
Why does SCOUT show "cannot configure standard telegram for control unit" when I use telegram 999 with 32 PZD?
The error appears when telegram 999 is assigned to the SINAMICS DCM Control Unit slot in the SCOUT message frame configuration. The CUD's communication slot does not process cyclic PROFIdrive setpoint telegrams - only the drive object does. The fix is to open the Communication → Message Frame Configuration dialog, set the Control Unit to user-defined, uncheck every I/O sub-slot, and keep the drive object on telegram 1 (or telegram 999 with manual BICO wiring).
What is the difference between DriveAxis and PosAxis in SIMOTION for a DC Master?
DriveAxis provides open-loop speed control - the drive handles its own speed loop based on NSOLL_A from SIMOTION, and no position feedback is required. PosAxis provides closed-loop position control - SIMOTION calculates the position profile and outputs a speed setpoint, requiring position feedback from an encoder. With a SINAMICS DCM using telegram 1, only DriveAxis is possible unless an additional encoder is wired into the SIMOTION C240 onboard encoder interface (X1 TTL or X2 SSI).
How many PZD words do I need between SIMOTION C240 and SINAMICS DCM for a positioning application?
For a DriveAxis (speed-controlled), 2 PZD out (STW1 + NSOLL_A) and 2 PZD in (ZSW1 + NIST_A) via telegram 1 are sufficient. For a PosAxis, the same 2/2 PZD is used for the actuator command, and the position feedback is wired separately to the C240's onboard encoder (TTL or SSI) rather than over PROFIBUS. For richer diagnostics, telegram 3 (4/4 PZD) can be used to also transmit torque actual and torque limit signals. The Control Unit slot should always be set to 0 PZD (user-defined, all unchecked).
Which SINAMICS DCM firmware versions support telegram 999 on the drive object?
SINAMICS DCM firmware V2.3 and later supports telegram 999 on the drive object with up to 32 PZD per direction. Firmware V1.3 and V2.1 support telegram 1 only, plus legacy PPO 1 / 2 / 5 telegrams from SIMOREG. If free configuration is required, upgrade the CUD firmware to V2.5 SP1 or later. The GSD file used in SCOUT (e.g., SIEM80D2.GSD) must match the CUD firmware revision, otherwise the message frame validation will fail at download.