Resolving LOGO! 8.3 Network Input Address Overlap in Multi-LOGO KTP700 Networks
1. Problem Definition
In multi-LOGO! projects programmed with LOGO!Soft Comfort V8.3 and integrated to a SIMATIC KTP700 Basic PN, integrators routinely observe that several Network Inputs (NI) on different LOGO! 8.3 modules transition from LOW to HIGH and back again without any operator action on the HMI. The transitions correlate with analog input scaling operations and with parameter edits made on the panel.
1.1 Project context
- 4 x LOGO! 8.3 (0BA8 Standard, MLFB 6ED1052-1xxx08-0BA8) controllers networked over Ethernet.
- 1 x SIMATIC KTP700 Basic PN (6AV2 123-2MA03-0AX0) acting as the operator panel.
- LOGO!Soft Comfort V8.3 for program development and VM mapping.
- WinCC Comfort V16 or TIA Portal V16 for the KTP700 tag database and screens.
- Mixed use of digital inputs (DI), digital outputs (DQ), flags (M), network inputs (NI), network outputs (NQ), and VM mapping for both display and parameter adjustment.
1.2 Symptom signature
The defective behavior has a deterministic signature that distinguishes it from electrical noise or grounding faults:
- Multiple NIs on different physical LOGO! units toggle simultaneously or within a few scan cycles of each other.
- The toggling rate is unrelated to HMI button presses and unrelated to the state of physical digital inputs.
- Toggling correlates with the user changing a VM-mapped parameter on the KTP700, such as a timer preset, an analog threshold, or a counter setpoint.
- LOGO!Soft Comfort online mode shows the affected Network Inputs changing state at the same instant a word write from the HMI lands on the LOGO! that owns that VM word.
This signature is diagnostic: it is the textbook symptom of overlapping VM address ranges across the Network Input map of one LOGO! and the user-data area of that same LOGO!. Different LOGO! stations on different IP addresses do not collide with each other; the collision is strictly internal to one LOGO! where the boolean map and the word map share bytes.
2. Root Cause: Byte-Oriented VM Memory Overlap
Every LOGO! 8.3 controller exposes a single contiguous Variable Memory (VM) area that is accessible from three origins:
- The internal LOGO!Soft Comfort ladder program, via the VM and AM function blocks.
- The Network Input / Output (NI / NQ) tables consumed by other LOGO! stations over Ethernet.
- The S7 communication server that the KTP700 reads from and writes to over the LOGO! built-in Ethernet port.
The VM area is byte-oriented. LOGO!Soft Comfort allocates bits, bytes, words and double-words into the same memory pool, with no boundary between the area reserved for digital flags and the area reserved for an analog scaling result.
| Data type | Width | Notation | Address span example |
|---|---|---|---|
| Bit (BOOL) | 1 bit | Vx.y | V0.0 - V0.7 = byte 0 |
| Byte | 8 bits | VBx | VB0 = V0.0 - V0.7 |
| Word | 16 bits / 2 bytes | VWx | VW0 = VB0 + VB1 = V0.0 - V1.7 |
| Double Word | 32 bits / 4 bytes | VDx | VD0 = VW0 + VW2 = VB0-VB3 = V0.0 - V3.7 |
Because every higher-level type spans multiple bytes, the following overlap rules apply without exception:
- Writing VW0 occupies V0.0 through V1.7. You cannot simultaneously use V0.0, V0.1, V1.5 or any bit of byte 0 or byte 1 for an independent boolean.
- Writing VD0 occupies V0.0 through V3.7. You cannot simultaneously use V0.0, V1.4, V2.0 or any individual bit of bytes 0 to 3 for any other purpose.
- Conversely, allocating eight individual bits V0.0 - V0.7 silently consumes VW0 and the lower half of VW1, so any attempt to write a word starting at VW0 will corrupt those boolean flags.
3. Why LOGO!Soft Comfort Defaults Cause the Fault
LOGO!Soft Comfort V8.x assigns a VM address to every tag placed in the VM mapping table. The default allocation algorithm is greedy: it places the new variable at the lowest free byte address that fits its width.
- The integrator first drags a Network Input NI1 onto the ladder diagram. LOGO!Soft Comfort books bit V0.0 (the conventional default). Byte 0 of the VM is now in use.
- The integrator then adds NI2 through NI8, which are placed sequentially at V0.1, V0.2, ..., V0.7. Byte 0 is now full and the next eight Network Inputs spill into V1.0 - V1.7.
- Only after the booleans does the integrator open the VM mapping editor and begin adding parameters such as a timer preset (word), a threshold value (word), or an analog display (word). LOGO!Soft Comfort V8.x defaults the first word tag to
VW0, which is the same address already in use by NI1 - NI16. - From that moment on, every HMI write to the timer preset mutates the boolean state of NI1 - NI16, because the high and low bytes of VW0 are exactly the bits V0.0 - V1.7.
The original poster's diagnostic ("the NI bits react to the analog input value") matches this scenario exactly. The NI bits are not reacting to the analog input; they are being overwritten by the word containing that analog value because both share the same bytes.
4. Network I/O Mapping in Multi-LOGO Networks
Each LOGO! 8.3 supports up to 64 Network Inputs (NI1 - NI64) and 64 Network Outputs (NQ1 - NQ64). The NI/NQ are mapped into the local VM area at fixed offsets as follows for the standard VM mapping layout:
| Block | VM byte offset | Default bit address range | Default word span covered |
|---|---|---|---|
| NI 1 - 8 | 0x00 | V0.0 - V0.7 | VW0 (low byte) |
| NI 9 - 16 | 0x08 | V1.0 - V1.7 | VW0 (high byte) |
| NI 17 - 24 | 0x10 | V2.0 - V2.7 | VW2 (low byte) |
| NI 25 - 32 | 0x18 | V3.0 - V3.7 | VW2 (high byte) |
| NI 33 - 40 | 0x20 | V4.0 - V4.7 | VW4 (low byte) |
| NI 41 - 48 | 0x28 | V5.0 - V5.7 | VW4 (high byte) |
| NI 49 - 56 | 0x30 | V6.0 - V6.7 | VW6 (low byte) |
| NI 57 - 64 | 0x38 | V7.0 - V7.7 | VW6 (high byte) |
4.1 Per-LOGO isolation
A critical misconception is that two LOGO! stations having different IP addresses isolates their VM areas. It does not, in any way, isolate the local VM layout of either station. The HMI's view of LOGO! 1 (192.168.1.10) and LOGO! 2 (192.168.1.20) is fully separate at the connection level; the HMI establishes two independent S7 connections. Each LOGO!'s local VM layout, however, is the integrator's responsibility. If V0.0 is used as a flag on LOGO! 1 and V0.0 is used as a flag on LOGO! 2, the two flags are unrelated. The HMI does not collide; the collision is strictly between variables within the same LOGO!.
This was confirmed by the source case: "Every LOGO! has its own storage area. You can transfer V0.0 from LOGO! to the HMI without problems if LOGO! 1 has its own connection."
5. KTP700 HMI Integration Considerations
The SIMATIC KTP700 Basic PN provides a single Ethernet port that handles both PROFINET and S7 communication to up to four LOGO! 8 stations. Each connection is configured in WinCC Comfort / TIA Portal as a separate "LOGO! 8 connection" with its own IP address, rack and slot.
| LOGO! connection slot | Typical IP | Used VM area | HMI access path |
|---|---|---|---|
| LOGO_1 | 192.168.1.10 | VW0 - VWnnn (private) | S7 read/write, TSAP 01.00 |
| LOGO_2 | 192.168.1.20 | VW100 - VWnnn (private) | S7 read/write, TSAP 01.00 |
| LOGO_3 | 192.168.1.30 | VW200 - VWnnn (private) | S7 read/write, TSAP 01.00 |
| LOGO_4 | 192.168.1.40 | VW300 - VWnnn (private) | S7 read/write, TSAP 01.00 |
The HMI does not enforce any addressing discipline on the LOGO! side. Each HMI tag is a free-form VM reference (for example VW 100 or V 5.2). If two HMI tags on two different LOGO! connections reference the same VM offset, each LOGO! resolves the reference locally and the HMI shows the same numeric value twice, but the underlying physical I/O is still correct on each LOGO!. The collision only becomes user-visible when a single LOGO! mixes its own internal tags.
5.1 S7 connection limits
- LOGO! 8.3 supports 8 concurrent S7 connections (TSAP-limited). The KTP700 Basic uses 1 connection per LOGO! peer. A 4-LOGO network leaves 4 spare connections for engineering and additional HMI clients.
- Each connection supports up to 32 KiB of input area and 32 KiB of output area, but the LOGO! internal VM is only 850 bytes on 0BA8. Always configure WinCC tags with the exact VM offset you intend, never a generic "DB1" range or a wide speculative reservation.
- Keep the polling cycle above 250 ms for non-critical tags to avoid saturating the LOGO! S7 server. Critical interlocks should be wired in the ladder, not read over S7.
6. Systematic Address Allocation Methodology
Plan the VM map before dragging the first block onto the ladder. The allocation grid below is the field-proven template for four-station LOGO! networks with a KTP700 master panel. The granularity is 100 words per LOGO!, a comfortable envelope for typical small-machine programs (timer presets, counters, thresholds, scaling results, status words) plus a generous reserve for future expansion.
| LOGO! | IP address | Boolean area (NI / NQ / flags) | Word area | DWord area |
|---|---|---|---|---|
| LOGO_1 | 192.168.1.10 | VB0 - VB63 (V0.0 - V63.7) | VW64 - VW255 | VD256 - VD511 |
| LOGO_2 | 192.168.1.20 | VB512 - VB575 | VW576 - VW767 | VD768 - VD1023 |
| LOGO_3 | 192.168.1.30 | VB1024 - VB1087 | VW1088 - VW1279 | VD1280 - VD1535 |
| LOGO_4 | 192.168.1.40 | VB1536 - VB1599 | VW1600 - VW1791 | VD1792 - VD2047 |
Notes:
- VM is bounded at 850 bytes on a single LOGO! 8.3. For a 4-LOGO network you only need to enforce non-overlap within each LOGO!. The grid above is a planning template for the HMI tag database, not a memory reservation on the LOGO! itself.
- If you must place more than 64 boolean tags on one LOGO!, the remaining bits must come from a word-aligned area (e.g., V64.0 onward) that is not used by any analog parameter.
- Reserve a contiguous block of read-only status words (typically VW200 - VW255) for diagnostic display on the HMI. Use only word-typed VM tags in this range.
- Reserve a contiguous block of read/write parameter words for HMI-driven setpoint changes. Document every HMI tag with the LOGO! tag name and physical meaning.
6.1 Boolean-then-word ordering rule
The single most effective rule for avoiding the source fault: assign every boolean tag (NI, NQ, M, internal flag) first, then assign every word and double-word tag afterward, anchoring the word block at the next free address whose two (or four) bytes contain no booleans. Most LOGO! programs contain fewer than 64 booleans; using V64.0 - V127.7 for booleans leaves VW0 - VW63 entirely free for parameter words and removes any chance of an accidental overlap with the NI/NQ default range.
7. Step-by-Step: Reorganizing an Existing Project
The remediation procedure below is the exact sequence that resolved the source case. It assumes you are online-capable to LOGO!Soft Comfort V8.3 and have the existing .lsc project available.
- Open the project in LOGO!Soft Comfort V8.3 and select Tools > VM Mapping (or right-click the VM area block in the navigation tree).
- Export the current VM mapping to CSV via File > Export > VM Mapping. The CSV contains the tag name, data type, VM address, and access mode (read / write / read+write) for every mapped variable on every LOGO! in the project.
- Sort the export by address in ascending order and inspect each entry. Highlight any word-typed variable whose address overlaps with one or more boolean tags.
- Mark the overlap zones. In the source case, a timer preset assigned to VW0 conflicted with NI1 - NI8 at V0.0 - V0.7 and NI9 - NI16 at V1.0 - V1.7. Document the conflict in a planning spreadsheet before editing.
- Allocate new addresses for every conflicting tag, choosing the next free word boundary that does not collide with any boolean tag. A safe default is to assign all parameter words to a dedicated block starting at VW200 (or any address greater than or equal to 100) on each LOGO!.
- Edit the VM mapping in LOGO!Soft Comfort: double-click the address cell of each conflicting tag and enter the new address. Verify in the status bar that the new address is shown as "free".
- Re-wire the ladder diagram. Any block that referenced the old VM address (e.g., a VM block connected to a scaling function or a threshold comparison) must be re-pointed to the new address. Use Find > Replace across the project for the old symbol.
-
Re-export the VM mapping and re-sort. Verify that no two tags share any bit. Quick check: for each word-typed tag at VWn, ensure no boolean tag references any bit in
{V(2n).0 - V(2n+1).7}. - Update the WinCC / TIA Portal project. For each HMI tag that referenced the old VM address, change the address in the HMI tag database. Recompile and download to the KTP700.
- Download the LOGO! program to all four stations. Always power-cycle each LOGO! after a VM remap to flush any cached state.
- Run the verification procedure from section 8 below.
8. Verification and Commissioning
Use the following acceptance tests before declaring a multi-LOGO + KTP700 project ready for production.
8.1 Offline VM audit
- In LOGO!Soft Comfort, select Tools > VM Mapping and sort the VM table by address.
- For each word (VWn), confirm that no boolean tag occupies any of the eight bits of the two bytes covered by the word.
- For each double word (VDn), confirm that no boolean tag occupies any of the 32 bits covered by the four bytes.
- Verify that the sum of all allocated VM bytes is less than 850 (the LOGO! 8.3 limit).
8.2 Online NI stability test
- Connect LOGO!Soft Comfort in online mode to LOGO_1. Place a watch window on all 64 NI bits.
- Disconnect the HMI. Force all NIs LOW at the source (for example, disconnect the Ethernet cable from the upstream LOGO! that publishes them).
- Read the NIs on LOGO_1. They should all remain LOW indefinitely.
- Reconnect the HMI and force the KTP700 to write to every parameter word assigned to LOGO_1, one at a time. Observe the NI bits. They must remain LOW regardless of the parameter value written.
- If any NI toggles when a parameter is written, that parameter's VM address still overlaps the NI. Return to step 5 of section 7.
8.3 HMI round-trip test
- On the KTP700, navigate to the parameter screen for LOGO_1 and change a timer preset from 10 s to 20 s. Acknowledge the change.
- In LOGO!Soft Comfort online mode on LOGO_1, observe the corresponding VM parameter block. The new value must appear within one scan cycle.
- Observe the NI bits on LOGO_1. They must remain unchanged.
- Repeat for every HMI-driven parameter on every LOGO! in the project.
8.4 Network bandwidth test
Open LOGO! > Diagnostics > Ethernet > Connections on each LOGO! and confirm the S7 connection count is at most 4 (KTP700 + engineering + spare). A connection count of 8 indicates an HMI client has inadvertently opened duplicate sessions; this does not cause the overlap fault but it can mask intermittent communication errors.
9. Troubleshooting Matrix
| Symptom | Likely cause | Diagnostic step | Resolution |
|---|---|---|---|
| One or more NI bits toggle spontaneously | Boolean NI shares bytes with a word parameter | Sort VM map by address; check byte overlap | Move word parameter to a non-overlapping address |
| NI bits "react" to analog values displayed on HMI | Analog scaling word written to VW that covers NI bits | Audit analog block VM addresses | Move analog tag to a dedicated word block at VW200 or higher |
| Parameter setpoint on HMI does not reach LOGO! | HMI tag address does not match LOGO! VM address | Compare WinCC tag address with LOGO! VM mapping | Correct HMI tag address; recompile and download |
| One LOGO! shows correct values; another shows garbage | HMI tag database has the wrong connection ID for one LOGO! | In TIA Portal, inspect the Connections table | Re-assign connection ID per LOGO! IP |
| Communication error "S7 connection refused" on one LOGO! | TSAP / port mismatch or wrong IP | LOGO! diagnostics > Ethernet > Connections | Verify TSAP = 01.00, port = 102, IP matches project |
| All NIs on all LOGO!s toggle at the same instant | HMI write targets a broadcast or wrong connection | Disable HMI writes and re-test | Bind HMI tags to specific LOGO! connections only |
| VM mapping shows "out of memory" warning | Total VM allocation exceeds 850 bytes | Sum of all bytes in VM table | Consolidate booleans into word-packed blocks or upgrade to LOGO! 8.4 (1400 bytes) |
| LOGO!Soft Comfort online: parameter value flickers between two values | Two program blocks are writing to the same VM word | Search ladder for duplicate writes to the VM address | Remove duplicate write or move one tag to a new address |
| LOGO! shows VM value different from HMI display | HMI tag points to a byte (VBx) where LOGO! uses a word (VWx) | Compare data types in WinCC tag database | Match HMI tag data type to LOGO! VM data type |
| VM remap succeeds but NIs still toggle after power-cycle | Stale VM cache in non-volatile memory | Run Tools > Clear All then re-download | Perform factory reset of the LOGO! before reloading |
10. Firmware and Edition Compatibility
| LOGO! device | Order number (MLFB) | VM size | Max NI / NQ | S7 server | Notes |
|---|---|---|---|---|---|
| LOGO! 8.3 (0BA8 Standard) | 6ED1052-1xxx08-0BA8 | 850 bytes | 64 / 64 | Yes (8 conn.) | Affected by the V0.x default overlap |
| LOGO! 8.3 (0BA8.FS4) | 6ED1052-2xxx08-0BA8 | 850 bytes | 64 / 64 | Yes (8 conn.) | Same VM map; FS4 adds webserver |
| LOGO! 8.4 (0BA8.1) | 6ED1052-xxx08-0BA1 | 1400 bytes | 64 / 64 | Yes (8 conn.) | Wider VM reduces overlap pressure |
| LOGO! 7 (0BA7) | 6ED1052-1xxx07-0BA0 | 250 bytes | 32 / 32 | Yes (4 conn.) | Smaller VM; limited S7 |
| LOGO! 6 (0BA6) | 6ED1052-1xxx06-0BA0 | 130 bytes | 16 / 16 | No | Not suitable for KTP700 integration |
For new projects, prefer LOGO! 8.4 firmware. The expanded 1400-byte VM area plus the strengthened S7 communication stack reduce, but do not eliminate, the overlap risk; the discipline documented in this reference still applies.
11. Best Practices and Field Tips
- Address booleans first, words second. Plan all NI, NQ, M-flag and discrete I/O addresses before opening the VM mapping editor for parameters.
- Anchor word tags at a round boundary. Reserve VW100 - VW199 for status and diagnostics, VW200 - VW255 for parameter setpoints, and VW256+ for free use. This single rule eliminates 90 percent of accidental overlaps.
- Never reuse the byte range of NI/NQ for anything else. The first eight bytes of the VM area are reserved for NI/NQ on LOGO! 8.x. Use V8.0 onward for boolean flags and V16.0 onward for application booleans.
- Document each HMI tag with both the VM address and the physical meaning in a single spreadsheet column. Future maintainers will thank you.
- Export the VM mapping to CSV after every edit and store the CSV in the project repository. Use git or your version-control system to track VM map evolution.
- Avoid mid-word boolean flags inside a word block. If you must pack booleans into a word, dedicate the whole word to bit packing and document the bit layout (for example, "VW300: bit0 = pump1_run, bit1 = pump1_fault, bit2 = pump1_overload, bits 3-15 reserved").
- Use LOGO!Soft Comfort's Tools > Check > Consistency before every download. The tool flags overlapping VM addresses but does not always catch every case (for example, word/bool overlap is detected but analog block internal scaling collisions are not).
- Test with the HMI disconnected. If NIs still toggle when the HMI is offline, the fault is internal to the LOGO! program and unrelated to HMI addressing.
- Power-cycle each LOGO! after a VM remap. LOGO! 8.x caches the VM layout in non-volatile memory; a warm restart may not flush stale bits.
- For networks with more than four LOGO!s, consider moving to a S7-1200 or ET200S CPU as the central controller. The LOGO! remains an excellent distributed I/O drop, but its 850-byte VM area does not scale beyond a small machine.
- Use the LOGO! webserver (FS4 and 8.4) for remote VM diagnostics. A browser-based view of the VM area often reveals the overlap immediately, without needing a desktop engineering session.
- Lock the VM mapping by exporting the CSV, converting it to a read-only spreadsheet, and including it in the project archive. This prevents accidental address drift across firmware updates.
12. Frequently Asked Questions
Why do my LOGO! 8.3 Network Inputs toggle by themselves when the HMI is online?
Almost always, this is a byte-oriented VM memory overlap. A word parameter (for example VW0) is being written by the HMI at the same byte addresses occupied by Network Input bits (V0.0 - V1.7). Every HMI write then overwrites the booleans. Fix by moving the word parameter to a non-overlapping word block, typically VW200 or higher on each LOGO!.
Can I use V0.0 on LOGO! 1 and V0.0 on LOGO! 2 in the same project?
Yes, with no conflict. Each LOGO! has its own VM area and the HMI establishes a separate S7 connection to each IP address. The HMI will show the two V0.0 flags independently. The collision risk is only when addresses collide within the same LOGO!.
How large is the VM area on a LOGO! 8.3?
The LOGO! 8.3 (0BA8) provides 850 bytes of VM. The 8.4 firmware (0BA8.1) extends this to 1400 bytes. The 0BA7 has 250 bytes and the 0BA6 has 130 bytes.
How do I check for VM address overlaps in LOGO!Soft Comfort?
Open Tools > VM Mapping, sort the resulting table by address in ascending order, and verify that no word (VWn) or double word (VDn) shares any byte with a boolean (Vx.y). The built-in Tools > Check > Consistency also flags the most common overlaps before every download.
Should I use the standard LOGO! VM addresses or assign them myself?
Assign them yourself with a documented plan. The LOGO!Soft Comfort default assignment is greedy and will reuse the NI/NQ byte range for the first word parameter, which is the root cause of the spontaneous-toggle fault. A disciplined layout (NI/NQ at bytes 0 - 7, flags at bytes 8 - 63, status words at VW100 - VW199, parameter words at VW200+) eliminates the fault class.
What is the maximum number of LOGO! stations a KTP700 can connect to?
The KTP700 Basic PN supports up to 4 LOGO! 8 connections over Ethernet. Each LOGO! 8.3 supports up to 8 simultaneous S7 connections, so four HMI / engineering clients can talk to a single LOGO! without exhausting its server stack.
Does the LOGO! webserver expose VM values for diagnostics?
Yes, on LOGO! 0BA8.FS4 (6ED1052-2xxx08-0BA8) and LOGO! 8.4 (0BA8.1) firmware, the webserver provides a Variables page that lists every VM-mapped tag with its current value. Use this to verify that the HMI write actually lands on the expected VM address without needing a desktop engineering session.