Problem Details
A Siemens TDC rack equipped with a CPU550 controller and a CP50M0 communication processor reports a non-zero ECO output at the @PRODP block together with a blinking H6 LED on the CPU module the moment a PROFIBUS DP slave (for example a Balluff encoder) is included in the project download. With the CPU configuration only — no slave — ECO = 0 and the H6 LED is steady, indicating a healthy bus master. The instant the slave GSD/database entry is added and the project is downloaded through ComProfibus, ECO transitions to 4 and H6 begins to blink, signalling that the CP50M0 has rejected the bus configuration.
This is one of the most frequent first-day issues on a TDC commissioning. The TDC PROFIBUS stack is intentionally split between three engineering artefacts:
- The HWConfig rack (interface type and MPI/PROFIBUS address assignment on X1/X2).
- The ComProfibus master database (slave list, slave addresses, I/O lengths, baud rate).
- The CFC chart that contains the in/out telegram wiring for every slave.
All three artefacts must be consistent before @PRODP will leave state 0. A discrepancy between any pair — for example a slave declared in ComProfibus but not yet wired in CFC, or a CFC telegram whose length does not match the ComProfibus slave configuration — will surface as the ECO = 4 / H6-blinking signature documented in the TDC manual chapter 3.8 (PROFIBUS DP coupling CP50M0).
| Project state | @PRODP ECO | CPU H6 LED | Interpretation |
|---|---|---|---|
| CPU only (no slave in download) | 0 | Steady (on) | PROFIBUS master initialised, bus idle |
| CPU + slave downloaded, CFC not yet wired | 4 | Blinking | Configuration rejected by CP50M0 (typical) |
| CPU + slave + CFC correctly wired | 0 | Steady (on) | Bus active, slave in data exchange |
Affected Hardware and Engineering Tools
The failure pattern is specific to the SIMATIC TDC (Technology and Drive Control) platform, where the PROFIBUS master is hosted on a dedicated communication module rather than on the CPU itself. The minimum hardware set is:
-
CPU550 — the TDC central processing unit. It runs the user project, hosts the CFC charts, and starts the bus via the
@PRODPsystem block. -
CP50M0 — the PROFIBUS DP master communication module. It carries two physical interfaces:
- X1 — typically configured as MPI (address 2 in the reported case) for engineering station access.
-
X2 — the PROFIBUS DP master port, which is the source of the
ECO 4error in this scenario.
- Engineering PC with STEP 7 / SIMATIC Manager for HWConfig and the legacy ComProfibus tool for the master database, plus the CFC editor for the application charts.
The TDC PROFIBUS coupling described in chapter 3.8 of the CP50M0 manual requires that ComProfibus generate a binary base configuration that is then downloaded into the CP50M0 independently of the STEP 7 / CFC download. Forgetting this separate download step is a common cause of the symptoms reported here, even when the CFC side is correct.
Root Cause Analysis
The ECO = 4 value with a blinking H6 LED indicates that the CP50M0 has either not received a valid master configuration, has received one that does not match the CFC side, or has detected a slave whose telegram the CFC has not declared. From the original report the most likely causes, in descending order of probability, are:
-
Missing in/out telegram wiring in CFC. The
@PRODPblock was instantiated and the bus started, but no CFC chart contains the receive/transmit blocks for the Balluff slave. Chapter 3.8 of the CP50M0 manual is explicit: in addition to@PRODP, every slave requires in/out telegrams in the CFC program. - ComProfibus base configuration not loaded to CP50M0. The slave was added to the ComProfibus project on the engineering station, but the binary master configuration was not downloaded to the CP50M0 flash/online memory. The CPU therefore sees the slave in CFC but the CP50M0 does not know about it.
- Telegram length / I/O count mismatch. The number of input words and output words defined in the ComProfibus slave record does not match the telegram block parameters in CFC. The CP50M0 rejects the configuration because the projected bus shape is inconsistent.
-
Slave address / baud rate mismatch. The slave's physical address (e.g. 63) or its set baud rate does not match the ComProfibus master record. This is independent of
ECO 4— it usually surfaces as a slave diagnostic — but it should be ruled out during the same check pass.
5 equals 1.5 Mbps. In the PROFIBUS baud rate table widely used by Siemens tools, code 5 corresponds to 500 kbps and code 6 to 1.5 Mbps. Verify against the actual TDC manual for the CP50M0 firmware version you are running, and always confirm that the same actual baud rate is selected on the slave's DIP switches or rotary selector — a value that "compiles" on the master side is no guarantee that the slave is set to the same rate.Pre-Commissioning Checklist
Before touching @PRODP, walk through the following list. Each item has been a contributor to the reported symptom on real TDC racks:
-
Physical layer
- PROFIBUS connector on CP50M0 X2 is wired to the incoming segment, terminating resistor is ON at both cable ends only.
- Shield continuity checked end-to-end; shield grounded at one end only to avoid ground loops.
- Slave PROFIBUS address set on the device (e.g. address 63 on a rotary selector).
- Baud rate selector on the slave matches the ComProfibus master record.
-
HWConfig (STEP 7 / SIMATIC Manager)
- CP50M0 inserted in the correct slot.
- X1 interface type = MPI, address = 2 (or as required by site convention).
- X2 interface type = PROFIBUS, master role assigned, address = 1 (matches
@PRODPmaster address parameter). - HWConfig compiled and downloaded to the rack.
-
ComProfibus
- Master created with the correct CPU (CPU550) and PROFIBUS address 1.
- Slave inserted with correct GSD, correct bus address, and correct I/O length.
- Project saved and the binary master configuration generated.
- Binary configuration downloaded into the CP50M0 (not just saved on the engineering PC).
-
CFC
- Chart contains an instance of the
@PRODPblock with valid parameters. - For every slave declared in ComProfibus, an in-block and an out-block are placed in the chart and connected to the application's processing blocks.
- CFC chart compiled and downloaded to the CPU550.
- Chart contains an instance of the
@PRODP Block Parameter Reference
The @PRODP block is the TDC system block that starts and supervises the PROFIBUS DP master on the CP50M0. The block exposes the parameters listed below. The two values reported in the original symptom (BAUD = 5 and MASTER = 1) are the minimum to bring the bus up; the remaining parameters govern supervision and recovery.
| Parameter | Typical value | Meaning |
|---|---|---|
BAUD (transmission rate) |
5 (as set in the reported case) | Selects the PROFIBUS segment baud rate. The original report documents code 5 as 1.5 Mbps; verify against the CP50M0 firmware manual for your revision, as the standard Siemens baud rate table maps code 5 to 500 kbps and code 6 to 1.5 Mbps. |
MASTER (master address) |
1 | PROFIBUS address of the master on the segment. Must match HWConfig and ComProfibus. |
ECO (output, error code) |
0 = OK | Current bus state. 0 = running, 4 = configuration error (the reported symptom), other values defined in the manual. |
STATE / status word |
n/a | Additional diagnostic bits; refer to chapter 3.8 of the CP50M0 manual for the bit assignments in your firmware revision. |
@PRODP must be the actual baud rate, not the index. If the engineering station PC and the slave DIP switches are at 1.5 Mbps but the CP50M0 module is fixed at 500 kbps (or vice versa), the bus will not come up cleanly even with ECO = 0 reported intermittently.ComProfibus Master Database Configuration
ComProfibus is the legacy tool that owns the master-side PROFIBUS database for TDC. It is the only place where the GSD-derived I/O footprint of each slave is recorded. The workflow is:
- Open ComProfibus and create a new project, or open the existing project associated with the rack.
- Insert the master with type CPU550 and address 1 (must match the value passed to
@PRODPand the HWConfig PROFIBUS address). - Insert the slave (Balluff encoder in the reported case) at the desired PROFIBUS address, e.g. 63. This is also the address the TDC will use to identify the slave in the in/out telegram wiring.
- Confirm the I/O length and consistency. If the slave is a pure encoder, expect input words only; if it has parameter channel data, those words must be included in the input length.
- Save the project. Generate the binary master configuration.
- Download the binary configuration into the CP50M0. This is a separate step from the STEP 7 / CFC download — the configuration lives in the CP50M0's own memory, not in the CPU's project file.
63 is mentioned in the original report as a hypothetical example. 63 is the highest valid PROFIBUS address and is occasionally reserved by some masters; check the CP50M0 firmware release notes for the valid slave address range before committing to a high address.CFC In/Out Telegram Wiring
The CP50M0 manual chapter 3.8 (PROFIBUS DP coupling CP50M0) is the authoritative source for the telegram wiring procedure. The general pattern is:
- Open the CFC chart where the bus data is to be consumed (one chart per slave, or one shared chart with all slaves, depending on application convention).
- Insert the slave's input block (e.g.
@DP_INor a vendor-specific receive block). Configure it with:- The slave's PROFIBUS address (the same address used in ComProfibus, e.g. 63).
- The number of input words to receive, matching the ComProfibus I/O length for that slave.
- Insert the slave's output block (e.g.
@DP_OUTor a vendor-specific transmit block) with the same address and the matching number of output words, even if the slave has no outputs (use a length of 0 in that case, do not omit the block). - Wire the input block's outputs and the output block's inputs to the application logic.
- Compile the chart and download to the CPU550.
When the CFC download is repeated with a previously-missing slave wiring, the symptom resolves: ECO returns to 0 and H6 stops blinking once the CP50M0 sees a consistent projected bus shape.
Error Code Reference
Only two ECO values are documented in the original symptom report. The standard CP50M0 manual contains additional states; the values most often encountered in commissioning are summarised below. The interpretation column is conditional on the values seen in the source unless otherwise noted.
| ECO | H6 LED | Documented meaning in the reported scenario | Likely fix |
|---|---|---|---|
| 0 | Steady (on) | Bus initialised, no error. State reported with CPU only or with CPU + correctly wired slave. | — |
| 4 | Blinking | Configuration rejected by CP50M0. State reported with CPU + slave downloaded but without proper CFC wiring or without CP50M0 base configuration. | Add CFC in/out telegrams; download ComProfibus base configuration to CP50M0; align I/O lengths. |
| (other) | (per manual) | Not documented in the source. Refer to the CP50M0 manual chapter 3.8 for the full table in the relevant firmware revision. | Per manual. |
Step-by-Step Resolution Procedure
-
Confirm the symptom baseline. With the project set to CPU only (no slave), download HWConfig and CFC.
ECOshould be0and H6 steady. If not, the problem is in HWConfig / rack, not in PROFIBUS. - Add the slave in ComProfibus. Insert the Balluff encoder at the desired address, verify I/O lengths, save, and generate the binary master configuration.
- Download the binary master configuration to the CP50M0. Use the ComProfibus online functions. This step is independent of the STEP 7 / CFC download and is frequently skipped by first-time users.
- Add the in/out telegram wiring in CFC for the new slave (one in-block, one out-block, matched to the slave's address and the I/O lengths from ComProfibus).
- Compile and download the CFC chart to the CPU550.
-
Observe the CP50M0 and CPU indicators. H6 returns to steady,
ECOreturns to0. If H6 still blinks, proceed to the extended diagnostics below.
Extended Diagnostics
If the symptom persists after the procedure above, walk this matrix in order. Each row contains a single, isolated check; resolve the first failure before re-testing.
| # | Check | What to look for | Tool |
|---|---|---|---|
| 1 | CP50M0 firmware revision | Older CP50M0 firmware may not recognise newer slave GSD revisions. Confirm in CP50M0 manual appendix. | ComProfibus online diagnostics |
| 2 | ComProfibus binary loaded? | ComProfibus online view should show the slave list. If only the master is listed, the binary was not downloaded to the CP50M0. | ComProfibus |
| 3 | I/O length parity | ComProfibus slave record input/output word count must match the CFC in/out block lengths exactly. | Cross-check both |
| 4 | Slave address | Physical address on the device equals the address in ComProfibus, HWConfig and CFC. | Visual / handheld |
| 5 | Baud rate | Effective baud rate on master (driven by @PRODP) equals the rate on the slave. |
PROFIBUS analyser |
| 6 | Bus termination | Terminating resistors ON only at the two physical ends of the segment; OFF on every node in between. | Visual |
| 7 | Cable length and topology | No stubs beyond the segment-length limits for the selected baud rate; no daisy-chain stubs longer than the manual allows at that rate. | PROFIBUS analyser / manual |
| 8 | CPU slot and CP50M0 slot | Both modules in slots that the TDC firmware recognises; a CP50M0 in a non-supported slot will accept HWConfig but refuse to start the bus. | HWConfig / TDC rack layout |
| 9 | Slave diagnostic buffer | Read the slave's diagnostic buffer via ComProfibus. The first byte often pinpoints the failing configuration parameter. | ComProfibus online |
| 10 | CP50M0 buffer / log | Read the CP50M0's own diagnostic buffer for the bus-start sequence events. | ComProfibus online |
Verification Procedure
Once the configuration is consistent, verify operation with the following checks:
- Power-cycle the CP50M0 (or issue a controlled bus restart from the engineering station) and confirm that H6 returns to steady and
ECOstays at0without operator intervention. - Force a known value on a slave input register from the slave's configuration tool and observe the corresponding CFC input pin updating at the configured PROFIBUS cycle.
- Read the slave's diagnostic buffer through ComProfibus. It should show no configuration errors and no watchdog events.
- Read the CP50M0's diagnostic buffer. The startup sequence should be visible with no error events.
- Document the working configuration: master address, baud rate code, slave address(es), I/O lengths, and CP50M0 firmware revision. Store the ComProfibus binary and the CFC chart in the project archive.
FAQ
What does ECO 4 at the @PRODP block mean on a Siemens TDC CP50M0?
In the reported scenario ECO 4 with a blinking H6 LED on the CPU550 means the CP50M0 has rejected the projected bus configuration. The most common causes are missing CFC in/out telegram wiring for the slave, the ComProfibus master configuration not having been downloaded to the CP50M0, or a mismatch between the I/O lengths declared in ComProfibus and those wired in CFC.
Does baud rate code 5 at the @PRODP block correspond to 1.5 Mbps?
The original report documents code 5 as 1.5 Mbps. The widely-used Siemens baud rate table maps code 5 to 500 kbps and code 6 to 1.5 Mbps. Verify against the CP50M0 manual for the firmware revision you are running, and confirm the same actual baud rate is selected on the slave.
Do I have to download the ComProfibus project to the CP50M0 separately from the CFC download?
Yes. The CP50M0 stores its own master configuration in module memory. The STEP 7 / CFC download to the CPU550 does not write this memory. After every change in ComProfibus, generate the binary master configuration and download it into the CP50M0 using the ComProfibus online functions.
How do I tell the TDC that address 63 is an encoder and not another slave type?
The slave type and I/O footprint are defined by the slave's GSD file as inserted in ComProfibus. The PROFIBUS address alone does not identify the device class to the master; the GSD-derived record does. Wire the CFC in/out blocks with the I/O lengths from the GSD and the bus address 63, and the TDC will treat the device according to that record.
Where in the documentation is the CP50M0 PROFIBUS DP coupling procedure described?
The procedure is in chapter 3.8 "PROFIBUS DP coupling (CP50M0)" of the CP50M0 manual. It covers the @PRODP block, the ComProfibus master database, and the in/out telegram wiring pattern required in CFC for each slave.