Fixing the LOGO!Soft "Contacts Not Connected to Supply" Error on Siemens LOGO! 0BA6
The "the diagram contains contacts which aren't connected to supply. Would you like to connect them to supply now?" dialog is one of the most common blockers engineers hit when uploading a Ladder Diagram (LAD) program from LOGO!Soft Comfort to a Siemens LOGO! 0BA6 logic module. The error is misleading because the ladder editor shows every contact wired, yet LOGO!Soft still refuses the download. This reference explains the root cause, the exact translation path LOGO!Soft uses internally, the open-connector limit on the 0BA6, and a repeatable procedure to repair and verify the program before re-uploading to the controller.
1. Problem Details
Symptom summary observed in the field:
- Program is authored in Ladder Diagram (LAD) inside LOGO!Soft Comfort.
- Compile produces no syntax errors in the LAD editor.
- Pressing PC -> LOGO! (upload) or Simulation prompts the dialog:
"The diagram contains contacts which aren't connected to supply. Would you like to connect them to supply now?" - The program refuses to download. Status bar shows block numbers such as
B084,B085,B086flagged as unconnected. - On the 0BA6 specifically, the user is limited to 16 open connectors (flag placeholders). Attempting to wire every stray AND output to an
Xflag block exhausts this pool, blocking the upload.
The error is not a wiring mistake in the LAD view. It is an artifact of the internal LAD-to-FBD translation that LOGO!Soft performs before it generates the executable bytecode for the LOGO! 0BA6.
2. Affected Hardware, Firmware, and Software
| Item | Versions / Part Numbers | Notes |
|---|---|---|
| LOGO! base module | 0BA6 generation, MLFB prefix 6ED1052-1..., 6ED1053-1... | Released 2009; 400 function blocks, 16 open connectors. |
| LOGO! 0BA5 (predecessor) | 6ED1052-1..., 6ED1053-1... -0BA5 | Same LAD-to-FBD issue but stricter block budget. |
| LOGO! 0BA7 (successor) | -0BA7 | Same dialog appears; open-connector count differs. |
| LOGO!Soft Comfort | V7.0, V7.1, V7.2, V7.3, V8.0, V8.1, V8.2, V8.3, V8.4 | All versions implement the same FBD target pipeline. |
| LOGO! memory card | 6ED1057-1AA00-0BA0 (yellow, 0BA6 compatible) | Used as alternate download path if PC transfer fails. |
| PC interface | LOGO! USB PC cable 6ED1057-1AA01-0BA0 (or Ethernet on -0BA7/-0BA8) | 0BA6 has no Ethernet port; USB cable is standard. |
Cross-reference the current firmware notes on the Siemens Industry Online Support portal and the LOGO! product page at siemens.com/logo for the latest service packs.
3. Decoding the Error Message
The phrase "contacts ... not connected to supply" is a legacy translation from the FBD world. In FBD, every input of every block must trace back to either:
- A digital or analog input terminal (I1..I24, AI1..AI8),
- An internal flag / open connector (M1..M27, or the X-flag set on 0BA6),
- A constant or numeric input (Hi/Lo),
- The output of a previously evaluated block.
When the LAD editor generates its FBD twin, every Ladder contact (NO, NC) becomes a Boolean input on an AND/OR block, and every Ladder coil becomes the output of that block. Ladder rules allow intermediate contacts to exist for purely visual clarity. FBD rules do not: if a contact is placed but not linked to a power rail or another block, the FBD compiler raises the unconnected-supply error.
On a 0BA6 the open-connector pool is the X-flag set. The 0BA6 reserves up to 16 of these for user programs. Once they are consumed, any further unconnected AND outputs are impossible to bind, and the dialog will reappear with a new block number each time it is dismissed.
4. Root Cause: LAD-to-FBD Translation Path
LOGO!Soft Comfort uses a two-stage pipeline:
-
Source compile. The LAD/FBD/UDF editor compiles to a neutral block list (numbered
B001..Bnnn) that is independent of language. - Target compile. The neutral block list is projected onto the target firmware (0BA5, 0BA6, 0BA7, 0BA8). The target compile must satisfy the target's resource budget (block count, open connectors, retentive flags, timers, counters).
The contacts not connected to supply error is raised by the target compile stage. Ladder allows a contact to dangle visually because Ladder is a connection-oriented language; FBD is block-oriented. The translator introduces an implicit AND/OR block for every rung, and if any rung has an input that does not have an upstream connection in the FBD sense, that input is treated as unconnected.
Two specific Ladder constructs trigger this on the 0BA6:
- Trailing contacts on a rung with no output coil. A rung that only has contacts and feeds nothing produces a free-floating AND output.
- Mid-rung branches that terminate in a contact only. Branched Ladder code where the branch ends in a NO/NC contact without a coil on the branch side.
5. Hidden Block Artifacts from Clipboard Operations
Field experience shows that copy/paste in the LAD editor can create ghost blocks that are visible in the neutral block list (B084, B085, ...) but are not rendered back into the LAD canvas. This is one of the documented behaviors of the LOGO!Soft editor. The visible LAD looks clean, yet the block count and unconnected-input count are higher than expected.
To inspect the actual block list:
- Press F2 in the editor to open the status / message window.
- Read off every block number flagged as unconnected. They will be referenced as
Block Bxxx: input not connected to supply. - Switch to the FBD view (View -> FBD) to see where the dangling blocks live. The FBD view exposes branches that the LAD view hides.
6. Open Connector and Resource Limits on the 0BA6
| Resource | 0BA6 Limit | Note |
|---|---|---|
| Function blocks per program | 400 | Combined FBD and LAD source. |
| Open connectors (X flags) | 16 | Available for user routing; flags M1-M27 share a separate pool. |
| AND/OR inputs per block | 4 | Combine blocks in cascade to get more inputs. |
| Inputs per block on 0BA7/0BA8 | 4 (0BA7), up to 8 (0BA8) | Verify per generation. |
| Retentive flags | Up to 8 with optional battery | Battery is field-replaceable. |
| Timers | Limited by block count | No dedicated timer budget on 0BA6. |
The 16-open-connector ceiling is the hard cliff in the 0BA6 case described in the field. If a fix attempts to bind every dangling AND output to a unique X flag, the program will fail to fit long before all blocks are remediated.
7. Diagnostic Workflow
Run the following checks before attempting any repair:
-
Confirm firmware and software version. Open LOGO! -> Information inside LOGO!Soft Comfort and read the FW version of the connected base module. The 0BA6 reports firmware string starting with
0BA6(for exampleES2 0BA6). - Compile in LAD. Tools -> Compile (LAD) or F11. Resolve any errors flagged here first.
- Open the message window with F2. Record every unconnected block number and the FBD branch it lives on.
- Switch to FBD view. The FBD canvas exposes dangling branches that the LAD view hides, especially branches created by copy/paste.
-
Count open connectors in use. View -> Status shows the count of
Xflags already consumed versus the 16 budget. - Simulate first. Tools -> Simulation or F4. A program that simulates cleanly may still fail the download if the target compile rejects open connectors, but simulation isolates pure logic errors from compile errors.
8. Solution Method 1: Connect Open AND Outputs to X Flag Blocks
For a small program where the open-connector budget is not yet exhausted, the fastest fix is to bind every dangling AND output to a free X flag block. The flag becomes a scratch variable the rest of the program can read.
- Identify each block reported as unconnected in the F2 message window.
- In the FBD view, drag the output pin of the offending AND block onto a free
Xflag block in the toolbar (Insert -> Open Connector, or the flag icon). - Repeat until the F2 status window reports zero unconnected inputs.
- Compile and simulate.
This method fails on the 0BA6 when more than 16 dangling AND outputs must be parked. Move to Method 2 in that case.
9. Solution Method 2: Combine 4-Input AND Blocks to Drain Spare Outputs
Rather than binding every AND output to a flag, cascade the spare AND outputs back into other AND blocks to consume them as inputs. The 0BA6 allows 4 inputs per AND block, so an AND output that has nowhere meaningful to go can be wired into a free input of an existing AND block to use up the input and silence the error.
- For each dangling AND output, find an existing AND/OR block in the same network with fewer than 4 inputs.
- Wire the dangling output into the free input of that block. The signal is effectively ANDed with the existing logic.
- If no nearby block has a free input, add a dedicated 4-input AND block whose three other inputs are tied to a constant
1(high), then route the dangling output to one of its inputs. The block then becomes a transparent pass-through and its output can be left dangling without violating the unconnected-supply rule because the upstream connections are now satisfied.
1 leaves the original logic intact.10. Solution Method 3: Convert the Program to FBD
Switching the editor language forces a clean rebuild and exposes dangling blocks. The full procedure:
- View -> FBD to flip the editor.
- Save the project to a new file name to preserve the LAD original.
- Re-author the logic in FBD from the functional specification, not by re-translating the LAD. Ladder-to-FBD auto-conversion often preserves the dangling-block problem because the source itself contains the ghost blocks.
- Compile and verify zero unconnected inputs in the F2 message window.
- Simulate end-to-end against the original functional spec.
For programs that are deeply Ladder-shaped, fully rebuild in FBD. The FBD editor is the native language of the 0BA6 target compiler and gives the most predictable upload behavior.
11. Solution Method 4: Clean Rebuild from Scratch in FBD
If Methods 1-3 leave residual errors, the underlying LAD program contains structural damage from copy/paste. In that case:
- Export the program as a printable PDF or hard-copy the rungs.
- Create a new project. Set the target device to LOGO! 0BA6 explicitly (LOGO! -> Select Target Hardware).
- Re-author the logic in FBD, rung by rung, without copy/paste between networks.
- Compile and simulate. Press F2 after every network.
This is the only method that resolves the hidden block class of damage. Time spent on repair is usually longer than a clean rebuild, and the resulting FBD is portable across 0BA6/0BA7/0BA8 generations.
12. Verification Procedure
After any repair, run the verification sequence below before declaring the program good.
- LAD/FBD compile. F11. Must complete with zero messages other than informational.
- F2 message window. Must show No errors. The status bar at the bottom must read LOGO! can run program.
- Simulation. F4. Force every input through its expected range and watch every output and flag. Compare to the functional spec.
- Upload to LOGO!. LOGO! -> PC <-> LOGO! (or PC -> LOGO!). The download dialog must not show the unconnected-supply prompt.
- Run on hardware. Place the LOGO! in RUN, verify outputs toggle as expected. Cycle power to confirm the program is retained in the 0BA6 flash.
- Memory card round-trip. If the program is intended for a memory-card deployment, write the project to a 6ED1057-1AA00-0BA0 card and verify that the LOGO! boots and runs from the card on a separate unit.
13. Prevention Best Practices
- Author in FBD on 0BA6 targets. FBD is the native language of the target compiler and avoids the entire class of LAD-to-FBD translation artifacts.
- Avoid copy/paste in the LAD editor. Use the LAD editor's duplicate (Ctrl+D) where available. If copy/paste is required, switch to FBD view immediately after to confirm the block list is clean.
- Press F2 after every edit. Treat the message window as a CI lint check. Reject any edit that introduces an unconnected input.
- Track open-connector usage. Keep a count in the project notes. Stop at 12 to leave headroom for revisions.
- Use named flags (M1..M27) for true interlock logic. Reserve X flags for short-lived placeholders. The M-flag pool is larger and survives across 0BA6/0BA7/0BA8.
-
Version the project file. Save as
project_v01.lsc,project_v02.lsc, ... so a clean revert is always one click away.
14. Compatibility Notes Across LOGO! Generations
The dialog text is the same across LOGO!Soft Comfort versions, but the resource budgets differ. The 0BA7 raises the open-connector count and adds Ethernet; the 0BA8 further raises AND/OR input counts. The repair procedure described here applies to all three, but the budget of X flags available for Method 1 grows. On 0BA8 the same program may upload directly without Method 2. Always select the target device in LOGO! -> Select Target Hardware before authoring so the editor warns about over-budget decisions early.
For deployments that must work on multiple generations, write once in FBD and verify against the lowest-resource target (0BA6).
15. Related Tools and References
- LOGO! product page with current manuals: siemens.com/logo
- Siemens Industry Online Support entry point for LOGO!: support.industry.siemens.com
- LOGO!Soft Comfort download and release notes: Siemens Support download portal
Always cross-check the latest firmware notes and EDV (Ersatzteil-/Engineering Data) pages on the Siemens support portal before any field deployment.
Frequently Asked Questions
Why does my LAD program upload to LOGO! 0BA7 but not to 0BA6?
The 0BA6 reserves only 16 open connectors (X flags); the 0BA7 raises this budget and the 0BA8 raises it further. A program whose dangling AND outputs exceed 16 will upload on 0BA7/0BA8 but fail on 0BA6 with the contacts not connected to supply error. Apply Method 2 (cascade AND inputs) or rebuild in FBD to fit the 0BA6 budget.
Does wiring an AND output to an X flag block change the program logic?
No, the X flag is an internal placeholder and does not drive any external output. The visible program behavior is unchanged. Use M flags if you need to reference the value elsewhere in the program; reserve X flags for one-shot placeholders that drain the unconnected-input error.
How do I find hidden blocks created by copy/paste in the LAD editor?
Press F2 to open the LOGO!Soft message window and read the unconnected block list. The block numbers (B084, B085, ...) reference the neutral block list compiled from your project. Switch to FBD view to see where the dangling blocks live; LAD view hides them by design.
Can I just dismiss the "connect to supply now" dialog and download anyway?
No. The dialog is a hard compile error, not a warning. Dismissing it only re-prompts on the next compile or download. You must bind the unconnected input to a flag, an input terminal, or a constant before the target compile will accept the program.
Is FBD the recommended language for new LOGO! 0BA6 programs?
Yes. FBD is the native language of the LOGO! target compiler and avoids the LAD-to-FBD translation artifacts that cause the unconnected-supply error. For programs that must remain readable as Ladder, keep the program small (under 200 blocks) and audit the F2 message window after every edit.