Resolving the SINAMICS DCC 'Input and Output Must Be Published' Compile Error
The Drive Control Chart (DCC) editor embedded in STARTER and SCOUT raises a compile-time fault — "Input and output must be published" — whenever a DCC chart contains at least one I/O pin that has not been formally declared (published) to the SINAMICS parameter system. This article explains the underlying cause, the exact syntax required by the DCC programming manual, and the step-by-step procedure to publish chart I/O, calculate the resulting STARTER parameter numbers, and BiCo-interconnect the published pins to the Control Unit terminals.
1. Problem Statement
When compiling a DCC chart in STARTER / SCOUT (SINAMICS drives firmware V2.4 through V5.x with DCC option activated), the following error is raised:
Error: input and output must be published
The error is generated by the DCC compiler prior to code generation. It is independent of drive firmware version, but its visibility is controlled by the chart's compile mode (OFFLINE vs. ONLINE). A typical scenario that triggers the fault:
- A simple DCC chart is built containing an AND gate block.
- The AND gate inputs are wired to the chart boundary (so the block expects a published input pin).
- The AND gate output is wired to a chart output pin intended to drive a Control Unit digital output (e.g., DO8 on a CU320-2 or CU310-2).
- On Compile → Make / Build, the DCC compiler returns the publishing fault because no
@or@*Ndeclaration is attached to the chart-level input or output blocks.
2. Root Cause Analysis
Every DCC chart in a SINAMICS drive project exists in a memory image known as the DCC technology parameter set. Each block input or output that crosses the chart boundary is by default an internal node — it is visible to the DCC compiler but not to the SINAMICS parameter runtime. To become addressable from the standard SINAMICS parameter list, the boundary pin must be published.
Publishing does two things:
- Allocates a STARTER parameter slot in the DCC parameter area (base 21500) so that the value can be read/written, traced, and monitored in the parameter list.
- Enables BiCo interconnection from any other SINAMICS parameter, function-chart signal, or Control Unit terminal, to or from the chart pin.
Without publishing, the DCC compiler cannot resolve a runtime address for the pin, so it aborts with the fault. Chapter 3.1.3.6 of the SINAMICS DCC Programming Manual defines the publish syntax; Chapter 3.1.3.7 defines the BiCo interconnect rules.
3. DCC I/O Publishing Syntax
Publishing is performed directly in the DCC editor by appending a publish string to the name property of the chart-level input or output block. The two valid syntax forms are defined in the DCC manual section 3.1.3.6:
| Syntax | Form | Effect |
|---|---|---|
@N |
Non-BiCo | Allocates STARTER parameter r/p(21500+N). The pin is addressable from the parameter list but is not BiCo-interconnectable from expert list / function diagrams. |
@*N |
BiCo (interconnectable) | Same STARTER parameter allocation, plus the pin is exposed as a BiCo source or sink. This is the form required when interconnecting to Control Unit terminals such as r722.x (DI) or p738.x (DO). |
@*<Name>N |
BiCo with operator alias | Same as @*N but the operator's name field in the SINAMICS parameter list is the literal <Name> string (useful for self-documenting charts). |
Where N is the parameter number in the chart (an integer ≥ 0 and ≤ the configured DCC parameter count). The asterisk * is mandatory for any pin that must be BiCo-interconnectable, and it is also the recommended form for inputs and outputs you intend to monitor with the SINAMICS trace.
@*251 Start is a valid DCC declaration; the trailing word Start is the operator name. The parameter number in this declaration is 251. The number, not the name, is what the DCC compiler uses to compute the final STARTER parameter number.
4. STARTER Parameter Number Calculation
Chapter 3.1.3.6 of the DCC manual states the formula:
P_STARTER = P_chart + P_base + 21500
Where:
-
P_STARTER— the parameter number visible in the STARTER / SCOUT expert list and trace. -
P_chart— theNfrom the@N/@*Ndeclaration (e.g., 256 if you wrote@*256). -
P_base— the DCC parameter number base offset; defaults to 0 but can be changed by the chart programmer to avoid collisions between multiple charts in the same drive object. -
21500— the first parameter number reserved for DCC in the SINAMICS parameter map (fixed for SINAMICS V2.4+ firmware).
Worked examples with the default base of 0:
| Publish declaration | P_chart | P_base | STARTER parameter | Typical use |
|---|---|---|---|---|
@*1 Input1 |
1 | 0 | r21501 | First chart input, BiCo source |
@*2 Output1 |
2 | 0 | p21502 | First chart output, BiCo sink |
@*251 Start |
251 | 0 | r21501 + 250 = P21751 | Boolean enable signal |
@*256 START |
256 | 0 | P21756 | Boolean run command |
@*722.0 DI_0 |
invalid in this form | — | See warning below | |
@*722.0 as a publish declaration. Dots are not allowed in the publish identifier. The r722.0 format is the BiCo address of the Control Unit's first digital input. The correct workflow is: (1) publish a chart pin with a plain integer such as @*1 Input1, then (2) BiCo-interconnect the published pin's STARTER parameter (r21501) to r722.0 using F3 / interconnect dialog. The dot-notation belongs only to the BiCo side, never to the publish side.
5. Step-by-Step Resolution Procedure
The procedure below resolves the fault for a representative chart: two boolean inputs (driven by Control Unit DI0 and DI1) feeding an AND gate, with the AND output driving Control Unit DO0. The same steps apply to any pin, any block, and any chart.
5.1 Prerequisites
- STARTER ≥ V5.4 (or TIA-SCOUT) installed with the matching SINAMICS DCC add-in version.
- Drive object online / project opened, drive firmware ≥ V2.4 SP1 for S120 / S150.
- The DCC option activated for the drive object (order code F01, F02, or F71 depending on SINAMICS family).
- DCC chart opened in the DCC editor; chart name and parameter-base remembered (default base = 0).
5.2 Publish the Chart Inputs
- In the DCC editor, double-click the chart-level input block feeding the AND gate (Input 1). Open the Properties dialog.
- In the Name field, append the publish string. Example for a boolean input:
Input1 @*1. The compiler treats the trailing@*Nas the publish directive. - Repeat for the second input:
Input2 @*2. - Optionally add a human-readable operator name:
Input1 @*1 DI0_status. The operator name appears as the name column in the SINAMICS parameter list.
5.3 Publish the Chart Output
- Double-click the chart-level output block driven by the AND gate.
- Append the BiCo publish directive:
Output1 @*3 AND_result(using a fresh chart number to keep the address space tidy). - Save the chart. At this point the publish error should be cleared on a local compile.
5.4 Compile the Chart
- In the DCC editor, choose Chart → Compile (or press F7). For a full download build use Chart → Make.
- Inspect the Message window. The "input and output must be published" error must be gone.
- Confirm that STARTER parameters r21501, r21502 (inputs) and p21503 (output) are visible in the expert list under the drive object that owns the chart.
6. BiCo Interconnection Procedure
Publishing allocates the parameter slot; BiCo interconnection wires the slot to the physical or logical I/O you want. For the example above:
6.1 Input Wiring (Control Unit DI → Chart Input)
- Navigate in STARTER to the drive object → Inputs/Outputs → Digital inputs. The Control Unit digital input status word is exposed as r722. Bit 0 = DI0, bit 1 = DI1, etc., on CU320-2; on CU310-2 the same convention applies to terminals X132.1 through X132.7.
- Open the published input parameter in the expert list (e.g., r21501 Input1). Right-click and choose Interconnect with signal, or use the BiCo dialog (F3 in expert list).
- Type the source address:
r722.0for DI0. Confirm with OK. STARTER will store the BiCo connection in the drive project and write it to the drive on the next download / online action. - Repeat for Input2: interconnect r21502 to
r722.1.
6.2 Output Wiring (Chart Output → Control Unit DO)
- On CU320-2, Control Unit digital outputs are written via parameters p738.0..p738.7 (each maps to a DO terminal on the customer terminal strip). On CU310-2 the equivalent is p738.0 / p738.1 on X132.7 / X132.8.
- Open the published output parameter p21503 Output1 in the expert list. Right-click → Signal interconnection → Select drive-side (sink).
- Browse to
p738.0(DO0) and interconnect. STARTER registers the chart output as the source.
7. Verification and Commissioning
- Compile clean: DCC editor must report 0 errors, 0 warnings. The Output window should list Compilation successful.
-
Parameter visibility: In the expert list filter for
21500-21799. All published chart pins must appear with the expectedr(read) orp(read/write) identifier. - Online parameter check: Go online, force r21501 = 0, observe that Input1 on the chart is 0. Force r21501 = 1, observe that Input1 toggles. Repeat for r21502.
- Logic check: Set r21501 = 1 and r21502 = 1; verify p21503 = 1 (i.e., the AND result). Clear either input; verify p21503 = 0.
- End-to-end I/O check: Apply 24 V to the physical DI0 terminal. The expert list r722.0 should show High; the AND output p21503 should track the AND result; the physical DO0 terminal (X132.7 on CU310-2, terminal block on CU320-2) should show 24 V when p21503 = 1. Use a voltmeter to confirm against the wiring diagram in the SINAMICS S120 Function Manual.
- Trace capture: Open SINAMICS Trace, add r722.0, r722.1, r21501, r21502, p21503, p738.0. Trigger on a rising edge of p21503. Verify the waveform matches the expected AND logic and the I/O delays (typical CU320-2 digital input debounce = 1 ms; DCC block cycle time depends on the configured DCC sampling rate, default 4 ms on a SERVO drive object).
8. Common Pitfalls and Best Practices
| Symptom | Likely cause | Remediation |
|---|---|---|
Compile error persists after adding @*1
|
The asterisk was omitted (@1 is non-BiCo, the chart still has un-BiCoed pins elsewhere) |
Use @* on every pin that participates in a BiCo wire. |
| Compile error: "duplicate parameter number" | Two pins in the same chart have the same N
|
Re-number one of the pins; chart parameter numbers must be unique within the chart. |
| Error: "base parameter number must be >= 0" | P_base entered as a negative value in chart properties | Open Chart → Properties → Parameter; set P_base = 0 (or a positive offset that keeps the final number < 32767). |
| BiCo interconnect rejected with F08550 | Direction mismatch (source wired to source, sink to sink) | Verify the published pin's data direction in chart properties; reverse the connection side in F3 dialog. |
| Parameter visible in expert list but value never updates | Drive object at the wrong state (e.g., commissioning mode active, r722.0 reports the wrong DI on a CU320-2 DP/PN slot) | Check the DO number → terminal mapping on the active CU topology. Use Topology → DI/DO assignment in STARTER. |
| Chart compiled offline but no parameters appear after download | DCC option not licensed on this drive object, or wrong DCC version vs. firmware | Verify license (web license key on the CF card for SINAMICS) and check compatibility list. |
9. Field-Proven Caveats
- Offline vs. online compile: Offline compile checks publish syntax; online compile additionally checks parameter number collisions with already-loaded DCC charts on the same drive object. If you have multiple DCC charts, consolidate the chart parameter ranges to avoid stepping on each other.
- Reserved ranges: Do not allocate chart numbers that overlap with the SINAMICS reserved range p21500-r21549 if you have BOP-20 / AOP30 users. The BOP uses some 2150x parameters for status display; staying at p21550+ is the conservative rule.
-
Type safety: DCC is strongly typed. A
@*Npublished as REAL cannot receive aBOOLsource from r722.x. Add a BOOL→REAL converter block (CTD/CTU are integer, NOT; use the explicit type-conversion block) between the source and the AND gate if a numeric chart input is wired from a digital input. - Cycle time impact: A DCC chart runs at the sampling rate of its drive object. On a SERVO drive object, the default DCC sampling is the current-controller cycle × 1; on VECTOR it is × 4 by default. Each published pin adds 8 bytes of parameter memory; budget your chart accordingly if you have hundreds of pins.
- Drive firmware upgrade: After a firmware upgrade (e.g., V4.4 → V4.5), re-check the DCC option license and recompile all charts. The STARTER parameter base of 21500 has been stable since V2.4, but block libraries can change — refer to the DCC Programming Manual release notes.
10. Quick-Reference Checklist
- ☐ Every chart boundary pin has a
@or@*Ndeclaration in the block Name field. - ☐ Every
Nis a unique integer ≥ 0 within the chart. - ☐ P_base ≥ 0 in chart properties; default is 0.
- ☐ All pins that are BiCo-interconnected from the expert list use the
@*form. - ☐ BiCo source / sink direction matches the published pin's direction.
- ☐ Compile reports 0 errors and 0 warnings.
- ☐ Online parameter check confirms r/p 21500+N values track expected logic.
- ☐ Physical I/O is verified end-to-end with a voltmeter / scope.
What does the 'input and output must be published' compile error mean in a Siemens DCC chart?
It means one or more chart boundary pins (inputs or outputs) have not been declared to the SINAMICS parameter system. Each boundary pin must carry a @N (non-BiCo) or @*N (BiCo) declaration in the block's Name field. The DCC compiler aborts because the pin has no STARTER parameter address, per section 3.1.3.6 of the DCC Programming Manual.
How is the STARTER parameter number calculated from a DCC publish declaration?
Use the formula P_STARTER = P_chart + P_base + 21500. For example, @*256 with the default P_base of 0 maps to STARTER parameter P21756. The constant 21500 is the start of the DCC parameter area and is fixed across SINAMICS firmware V2.4 and later.
What is the difference between @N and @*N in a DCC chart?
@N reserves a STARTER parameter slot only; the pin cannot be BiCo-interconnected from the expert list. @*N reserves the same slot and additionally exposes the pin as a BiCo source or sink, which is required when interconnecting to Control Unit signals such as r722.0 (DI) or p738.0 (DO).
Can I write @*722.0 directly to interconnect to a Control Unit digital input?
No. The dot notation belongs only to the BiCo address side. Publish a chart pin with a plain integer such as @*1 Input1, then BiCo-interconnect the resulting STARTER parameter r21501 to the source r722.0 using the expert-list signal-interconnect dialog (F3).
Where can I find the official documentation for DCC publishing syntax?
Refer to chapters 3.1.3.6 (publishing of parameters) and 3.1.3.7 (BiCo interconnection) of the SINAMICS DCC Programming Manual available on the Siemens Industry Online Support portal: SINAMICS DCC Programming and Operating Manual. Also consult the SINAMICS S120 Function Manual for the Control Unit r/p 722 / 738 terminal mapping.