Fix LOGO! Soft Comfort Blocks Without Connection to Output Error

David Krause16 min read
HMI ProgrammingSiemensTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

1. Problem Description

When a circuit program is transferred from LOGO! Soft Comfort to a Siemens LOGO! base module, the engineering software performs a final integrity scan. If any function block has an output pin that is not wired to a downstream destination, the compiler refuses to commit the project and reports an Info window entry similar to:

Blocks without connection to an output:
B003 [Analog Amplifier]
B004 Larm 1 [Message texts]
B005 larm2 [Message texts]
Download PC --> LOGO! failed

The message is identical across LOGO! Soft Comfort V6.x, V7.x, and V8.x; only the German localization differs (Blöcke ohne Anschluss an einen Ausgang). The block-number prefix is the internal Bxxx ID assigned by the editor in the order the blocks were instantiated, which is why a fresh project may report B003, B004, B005 while a larger program reports B128, B129.

The error class is well-defined: the offending block compiled, but its output node was left dangling. The LOGO! runtime cannot accept this because every block in the scan table must produce a value into a downstream sink on every cycle; an unterminated output corrupts the buffer that is later flushed to the EEPROM image and the firmware rejects the write.

Important: The download is rejected only when going PC → LOGO!. Offline simulation always succeeds because the simulator does not enforce block-output wiring. This asymmetry is the most common reason engineers discover the issue only after weeks of simulation work.

2. Why Simulation Succeeds But Download Fails

The simulation kernel in LOGO! Soft Comfort is a PC-side Java interpreter that executes the circuit diagram as an in-memory dataflow graph. It is permissive by design:

  • No EEPROM commit step – the simulator never persists state to flash, so the integrity check that guards the flash write is skipped.
  • Orphaned outputs are tolerated – the simulator simply drops the unwired value at the end of each cycle and continues.
  • Block number assignment is virtual – B-numbers in simulation are logical labels; they do not have to map 1:1 to runtime slots.

The on-device runtime, by contrast, builds a fixed-size scan table in RAM at boot. Each block slot must have a valid output_sink_index. When the firmware's pre-flash validator walks the table and finds an entry with no sink, it aborts with the Info window message and never writes the program to the LOGO!'s flash partition.

That is why a program that has been running flawlessly in Simulate Mode (F3) can refuse to download the moment you press PC → LOGO! (F4). The simulation is not wrong about program behavior; it simply does not exercise the hardware commit path.

3. LOGO! Cyclic Execution Model and Block Sinks

Every LOGO! function block has exactly one output (with the documented exceptions of marker/flag blocks M.. and the special outputs of certain counters). The cyclic scan proceeds in this order:

  1. Read inputs – physical digital inputs I.. and analog inputs AI.. are sampled.
  2. Evaluate blocks – each function block computes its output value from its current inputs.
  3. Write outputs – each block's output value is delivered to its assigned sink.

A sink can be any of:

Sink type Identifier example Used for
Physical digital output Q1, Q2, ... Real relays / transistors on the base module
Physical analog output AQ1, AQ2 (LOGO! 8 with AM2 AQ) 0–10 V or 4–20 mA outputs
Digital marker (flag) M1 – M27 (LOGO! 6/7) / M1 – M64 (LOGO! 8) Internal boolean memory
Analog marker / flag AM1 – AM6 / AM1 – AM64 Internal 16-bit analog memory
Open connector (sink) X1, X2, ... X64 No-op boolean sink that satisfies the compile check
Analog open connector AX1, AX2, ... AX16 No-op analog sink
Block input pin Trg / + / – / EN / R / Par Wired downstream into another block

The "open connector" is the LOGO!-specific term for a sink that absorbs the value but does not interact with the rest of the program. It is the canonical fix for the Blocks without connection to an output error.

4. Open Connectors X1..Xn: The LOGO! Termination Sink

An open connector in the LOGO! editor (German: Offener Konnektor) is a triangular symbol that visually resembles a connector pointing into empty space. Electrically it is a hard-wired boolean or analog ground – it consumes the value and prevents the compiler from flagging the block as unterminated.

Quantities depend on the LOGO! generation and firmware revision:

Generation Digital open connectors Analog open connectors Catalog (base module)
LOGO! 6 (0BA6) Up to 8 (X1–X8) 0 6ED1052-1xx06-0BA0
LOGO! 7 (0BA7) Up to 16 (X1–X16) 0 6ED1052-1xx07-0BA0
LOGO! 8 (0BA8 / FS4) Up to 64 (X1–X64) Up to 16 (AX1–AX16) 6ED1052-1xx08-0BA1
LOGO! 8.3 (0BA8.3) Up to 64 (X1–X64) Up to 16 (AX1–AX16) 6ED1052-1xx08-0BA2
Field caveat: The exact count is firmware-dependent and can change between Soft Comfort minor versions. Always verify against the device-specific system manual for your base module's MLFB before assuming a number is available.

To place an open connector in the FBD editor, drag the connector from the block's output pin toward the right margin and release the mouse outside the canvas; the editor will snap a triangular X1, X2… symbol into place. In the LAD editor the open connector is hidden behind a contact coil symbol and is much harder to spot – this is why most "first program" tutorials recommend authoring in FBD first.

5. Terminating Message Text Blocks

The Message text block (function block group "Message texts") has two pins that frequently confuse first-time users:

  • En (Enable) – boolean input that arms the text. While En = 1, the configured string is displayed on the LOGO! TD or built-in display.
  • Q (Output / Acknowledge) – boolean output that pulses high for one cycle when the operator acknowledges the message via the ESC or OK key.

If the Q output is left dangling, the firmware refuses the program because the block produces an acknowledge pulse that has nowhere to land. Even when you do not care about the acknowledge signal, you must terminate it.

Recommended fixes:

  1. Single message, single sink: Wire Q directly to an open connector X1. This is the textbook fix and consumes one of your digital open connectors per message.
  2. Multiple messages, single sink: Wire all Q outputs into an OR cascade and feed the cascade into X1 (see Section 7).
  3. Use the acknowledge: If you genuinely need the acknowledge pulse – for example to clear an alarm latch – wire Q into the reset (R) pin of the corresponding SR flip-flop or the Reset input of a retentive on-delay.

6. Terminating Analog Amplifier Blocks

The Analog Amplifier block (function block group "Analog") performs a linear gain-and-offset on its input:

Output = (Input + Offset) * Gain

Typical use: scaling a 0–10 V transducer (e.g. PT1000 via AM2 RTD) into engineering units, or trimming a sensor that does not reach its full electrical range at the desired process range.

Because the amplifier produces a 16-bit analog value (–32768…+32767), its output must terminate into an analog sink. Options:

Sink Typical use
AX1 – AX16 (analog open connector) No-op termination when downstream use is implicit
AM1 – AM64 (analog marker / flag) Reuse the scaled value later in the program
Analog comparator input "AX" Threshold detection on the scaled value
AQ1 / AQ2 (physical analog output) Drive a real 0–10 V or 4–20 mA actuator
Analog threshold trigger "Ax" Convert scaled analog into boolean alarm

Attempting to terminate an analog output with a digital open connector (X1) will fail at compile time with a different message: Type mismatch between analog block output and digital sink. The two open-connector namespaces are independent.

7. OR Cascade Termination Pattern for Many Blocks

When the program contains dozens of message text, PI controller, or PWM blocks whose outputs you do not consume, terminating each with its own open connector is wasteful and obscures the diagram. The canonical engineering pattern is a single sink fed by an OR cascade:

OR Cascade Termination — Single Sink for Many Blocks B004 Msg Q B005 Msg Q B006 Msg Q B007 Msg Q OR A OR B OR C X1 B008, B009, ... → OR cascade input All block outputs collected → single X1 sink Hide cascade off-canvas to keep diagram tidy

The pattern:

  1. Choose one digital open connector – for example X1.
  2. Build a tree of OR blocks. Two-input OR is the smallest, but LOGO! supports 4-input OR variants which compress the diagram further.
  3. Wire every "throwaway" output into an OR input. Group by function for readability (all message texts → one branch, all spare PWM Qs → another).
  4. Wire the cascade's terminal OR output to X1.

For 50 message text blocks you can collapse the entire termination into a single X1 by using one 4-input OR feeding one 16-input OR feeding X1. The pattern is invisible to runtime behavior because OR with a never-consumed output is logically transparent; the firmware still builds the cascade in the scan table, but no external effect is observed.

Performance caveat: Each OR level adds one scan delay (typically 10–30 µs at LOGO! 8's 0.1 ms cycle). For 50 inputs through a balanced cascade the worst-case propagation is on the order of 100 µs – negligible for human-scale timing but relevant if you are driving a high-speed counter.

8. Analog Marker Termination via Threshold Trigger

When you must terminate an analog output but want the value to remain visible for diagnostics, route it through an Analog Threshold Trigger to convert it to a boolean:

  1. Insert an Analog Threshold Trigger (function block group "Analog").
  2. Connect the analog block's output to the threshold trigger's Ax input.
  3. Set On = 0 (any value triggers) and Off = 1 (immediately resets) – this turns the block into a transparent boolean echo.
  4. Wire the threshold trigger's Q output into the OR cascade feeding X1.

The threshold trigger's hysteresis behavior is irrelevant because the comparator saturates immediately on each cycle; the only purpose is to provide a digital sink for the otherwise analog signal. This pattern is the recommended way to terminate Analog Amplifier, Analog Math, PI Controller, and PWM outputs that you want to leave accessible to the Online Monitor (LOGO! Soft Comfort → Tools → Online Monitor).

9. LAD vs FBD Editor: Open Connector Visibility

LOGO! Soft Comfort supports three editors:

Editor Open connector rendering Typical use
FBD (Function Block Diagram) Triangular symbol, obvious termination point Preferred for first-time users; matches the wiring metaphor of relays
LAD (Ladder Diagram) Hidden inside a coil symbol; visually absent from the rail Preferred by technicians familiar with American-style ladder
UDF (User-Defined Function) Encapsulated sub-diagram with explicit terminals Reusable macro blocks

In FBD, an unterminated block output looks like a wire leading off the canvas – the editor even renders a small red "open" symbol at the end of the wire. In LAD, the same situation appears as a coil symbol with no following contact, which is easy to miss.

The recommended workflow for first programs is therefore:

  1. Author the program in FBD.
  2. Use File → Convert → LAD to generate the ladder view.
  3. Inspect every rung for an "orphan" coil at the right rail.
  4. Right-click the coil → Replace with Open Connector (or assign a known Xn sink).

This conversion is one-way (LAD → FBD preserves topology but loses comments); keep the FBD as the master file.

10. Step-by-Step Resolution Procedure

Use this procedure when the Info window reports Blocks without connection to an output:

  1. Read the Info window. Note every block number and block type – for example B003 [Analog Amplifier], B004 Larm 1 [Message texts], B005 larm2 [Message texts].
  2. Locate each block. In FBD, scroll to B003. In LAD, use Tools → Go to Block Number (Ctrl+G) and enter the B-number. The editor highlights the block.
  3. Inspect the output pin. Right-click the output node → Properties. Confirm that no wire, marker, or open connector is attached.
  4. Decide the sink.
    • If you need the value, wire it to a downstream block input, marker (M.. / AM..), or physical output (Q.. / AQ..).
    • If you do not need the value, wire it to the appropriate open connector (X.. for digital, AX.. for analog).
  5. For multiple orphans, build an OR cascade as described in Section 7 and feed a single X1.
  6. Save and re-validate. Press F5 (Compile) or simply re-attempt the download. The Info window should now show Download PC → LOGO! successful for every block.
  7. Document the cascade. Add a comment on the OR cascade – "Termination sink for B004–B053 message acknowledge pulses" – to spare the next maintainer the same detective work.

11. Verification and Commissioning Checks

After the download succeeds, perform these checks before considering the issue closed:

Check Procedure Pass criterion
Online connection LOGO! Soft Comfort → Tools → Connect → PC ↔ LOGO! Status bar shows online; LED on module blinks green
Online monitor View → Online Monitor Each formerly-orphaned block shows a green "valid" indicator and a current value
Message acknowledge Trigger each message via its En input; press ESC/OK on the LOGO! TD or LOGO! display Acknowledge pulse propagates; alarm latch (if any) clears within 100 ms
Cycle time LOGO! menu → Diagnostics → Cycle Time Cycle time < 90% of program budget (typically < 10 ms for small programs)
Power cycle Remove and reapply 24 V supply Project reloads without the same error; no retentive data loss
Watchdog Leave in RUN for > 1 hour under load No spontaneous STOP; cycle time stable

If a previously-silent message text now latches an alarm unexpectedly, you have likely terminated its Q output into a marker that another block reads. Confirm the wiring by toggling the marker in Online Monitor and observing the dependent block.

12. Software and Firmware Compatibility Matrix

The error condition and its fix exist across all generations, but the editor vocabulary and the catalog numbers evolve:

Soft Comfort version Target LOGO! Open connectors (digital) Open connectors (analog) Notes
V6.1.x (e.g. 6.1.12) LOGO! 6 (0BA6) X1–X8 — First version to localize the error string in English
V7.x LOGO! 7 (0BA7) X1–X16 — Adds Ethernet base modules
V8.0 / V8.1 LOGO! 8 (0BA8) X1–X64 AX1–AX16 Web server introduced; OR cascade still applies
V8.2 / V8.3 LOGO! 8.3 (0BA8.3) X1–X64 AX1–AX16 Adds MQTT and S7 communication; same termination rules

If you must migrate a V6.x program forward (for example to a LOGO! 8.3 base module), open the .lsc file in the newer Soft Comfort and re-validate – block numbers are preserved but new open-connector slots become available. Always cross-check the on-device firmware (LOGOWIN → Diagnostics → Module Info) matches the minimum required by Soft Comfort's download guard.

13. Troubleshooting Matrix: Symptom to Fix

Observed Info / Symptom Likely cause Corrective action
Blocks without connection to an output: Bxxx [Analog Amplifier] Analog amplifier output unwired Wire to AX1, AM1, AQ1, or Analog Threshold Trigger → OR → X1
Blocks without connection to an output: Bxxx [Message texts] Message acknowledge Q output unwired Wire Q to OR cascade → X1, or to a downstream reset input if needed
Blocks without connection to an output: Bxxx [PI Controller] PI controller's manipulated variable output unused Wire AQ to actuator or to analog open connector if used purely as calculation
Type mismatch: analog output connected to digital sink Wired an analog block's output to an X1..Xn open connector instead of AX1..AXn Replace digital sink with analog open connector or analog marker
Download succeeds in simulation but fails on hardware with the same Info Expected; simulation skips the compile check Apply the open-connector fix from Section 4
"Out of open connectors" error Program exceeds available X1..Xn slots (rare on LOGO! 8) Consolidate with OR cascade; or, on LOGO! 6, reduce message count or replace with a multiplexer pattern
Acknowledge pulse lost after fix Wired Q to OR cascade which is never read Wire Q directly to a known sink (marker M..) if acknowledge behavior is required
Program downloads but cycle time doubles OR cascade has grown too deep Use 4-input OR variants; consider folding messages into a single parameter block

14. Best Practices for Clean Program Topology

Engineers who build dozens of LOGO! programs hit the same handful of issues. Adopt these habits up front:

  1. Reserve one X1 OR cascade at the bottom-right of every new project, hidden off-canvas, and route every "don't-care" output into it. Add a comment so the next maintainer understands the pattern.
  2. Use markers instead of open connectors when you might need the value later. Open connectors are write-only; markers expose the value to Online Monitor and to subsequent logic.
  3. Convert FBD → LAD only after the FBD is clean. LAD hides terminations and obscures the cascade pattern.
  4. Avoid dangling Q outputs on latched alarms. Use the Q to drive the reset of the corresponding SR flip-flop; this gives you a self-clearing alarm and documents intent.
  5. Run the integrity check before every download. File → Properties → Information tab lists all warnings; download-time Info window is a last-resort diagnostic.
  6. Keep the analog and digital namespaces separate. A digital open connector cannot absorb an analog value; build a separate AX cascade for analog terminations.
  7. Document open-connector cascades. A cascade that consumes 50 message acknowledges looks like dead code to the next engineer. Label it explicitly.

For further reference, see the official Siemens Industry Online Support portal for LOGO! 8 system manuals (search for "LOGO! 8 manual") and the LOGO! product page. The Soft Comfort online help (F1 inside the editor) contains a dedicated section on open connectors with animated FBD examples.

15. Frequently Asked Questions

Why does my LOGO! program run correctly in simulation but fail to download with "Blocks without connection to an output"?

The simulation kernel in LOGO! Soft Comfort is a PC-side interpreter that does not enforce block-output wiring. The on-device firmware requires every function block to produce a value into a downstream sink on every scan; an unwired output is rejected before the project is written to flash. Terminate every orphan with an open connector (X1..Xn for digital, AX1..AXn for analog) or a real downstream connection.

How many open connectors does a LOGO! 8 base module provide?

A LOGO! 8 (0BA8 / FS4, MLFB 6ED1052-1xx08-0BA1) provides up to 64 digital open connectors (X1–X64) and up to 16 analog open connectors (AX1–AX16). The exact count is firmware-dependent; verify against the device-specific system manual on the Siemens Industry Online Support portal for your exact MLFB and firmware revision.

Can I terminate 50 message text blocks with a single open connector?

Yes. Wire every message text's Q output into a tree of OR blocks (use the 4-input OR variant to compress the diagram) and feed the cascade into a single X1 open connector. The pattern is logically transparent and adds only microseconds of scan delay. Document the cascade with a comment so future maintainers understand it is intentional termination.

Why does my Analog Amplifier block fail with "type mismatch" when I terminate it with X1?

X1..Xn are digital open connectors and cannot absorb a 16-bit analog value. Use the analog open connector namespace AX1..AX16, an analog marker AM1..AM64, a physical analog output AQ1/AQ2, or an Analog Threshold Trigger to convert the value to a boolean before feeding it into the digital OR cascade.

Should I author my first LOGO! program in FBD or LAD?

Author in FBD. Open connectors render as visible triangular symbols in FBD, making unterminated outputs obvious. In LAD, open connectors hide behind coil symbols and are easy to miss, which is the most common reason first-time LAD users hit the "Blocks without connection to an output" error after weeks of successful simulation. Once the FBD is clean, convert to LAD with File → Convert → LAD if a ladder view is required for documentation or operator display.

Back to blog