Problem Description
On a TIA Portal V14 engineering station connected to a SIMATIC S7-314 PN/DP (6ES7314-6EH04-0AB0), a project block appeared in the project tree with a non-standard comparison indicator: instead of the familiar half-blue/half-orange circle that flags an online/offline difference, the icon rendered as a half-orange, half-white semicircle. The block could not be opened, its interface (IN, OUT, IN_OUT, STAT, TEMP) was empty, and the symbol/I/O addresses referenced inside the online block did not appear in the offline tag table.
An "Upload to PG" operation reported Upload successful (no errors), yet the icon did not transition to the solid green "identical" state. The block remained in a state where it is known to the PLC's online view but has no matching offline counterpart in the project — the so-called online-only state.
Root Cause Analysis
In TIA Portal's project tree, each block carries a comparison status icon that encodes the relationship between the offline copy (in the engineering project) and the online copy (currently loaded in the CPU's load memory / work memory). The half-orange/half-white icon is Siemens' visual encoding for the online-only state — a block instance exists in the connected CPU but has no matching object in the offline project at the corresponding path/FB/FC/DB number.
The contrast with the more familiar half-blue/half-orange icon is important:
| Icon appearance | Meaning | Recovery direction |
|---|---|---|
| Solid green circle | Online and offline blocks are byte-identical (same timestamp, checksum, code). | None required — state is healthy. |
| Half blue / half orange | Online and offline blocks differ in content. Both copies exist. | Decide PG → PLC (download) or PLC → PG (upload) for the changed block. |
| Half blue / half white | Online block is newer than offline (online timestamp > offline timestamp). | Upload the online block to PG, then recompile. |
| Half orange / half white | Block exists only in the PLC (online only). No offline counterpart at this path/number. | Upload to PG, then verify interfaces and tags; do not simply re-download the offline block, which will overwrite the PLC copy. |
| Half white / half orange (inverted) | Block exists only offline; the CPU has no object at this path/number. | Download the offline block to the PLC. |
| Red circle with cross | Block cannot be opened / inconsistent (e.g., corruption, interface mismatch with active instance). | Delete and re-create, or upload fresh from PLC. |
The official TIA Portal help topic that documents this icon set is "Displaying diagnostics status and comparison status using icons", available from the TIA Portal help system (F1) under the Programming and Diagnostics manual. Cross-reference the same topic in the TIA Portal V14 Programming and Operating Manual on the Siemens Industry Online Support portal.
Why does the online block show an empty interface? When a block lives only in the PLC and the offline engineering project has no matching object, TIA Portal cannot resolve symbolic references for the online copy. The block container is read back from the CPU's load memory with its compiled code, but the source-level interface declaration (variable names, types, comments) is a property of the offline source — it does not round-trip through the S7-300's load-memory block header in human-readable form. The PLC retains only the compiled MC7 code plus a stripped-down interface for I/O/data-access. Hence the visible "empty" interface when the block is forced open from the online view.
When the Online-Only State Is Created
The online-only state is most commonly introduced by one of the following operator actions or tool behaviours:
- Sequential online sessions with different PG stations. Engineer A goes online, modifies, downloads, and disconnects. Engineer B opens a stale offline project (older revision) and connects to the PLC. The PLC contains blocks that no longer exist in Engineer B's offline tree at the same block number.
- Out-of-band tool operations on the CPU. A separate tool (e.g., a third-party HMI configurator, an S7-PCT/PROFINET tool, or a memory-card image load via SIMATIC Automation Tool) wrote a block directly to the CPU's load memory that was never authored in the TIA project.
- Corrupt project re-compilation. A compile operation in TIA Portal can in some failure modes remove a block from the offline tree while the CPU retains its in-memory copy from a previous download. The S7-300 does not garbage-collect blocks in work memory on its own.
- Accidental block-number collision. A new FB/FC/DB was created with the same number as a PLC-resident block from a prior project, but with a different interface, leaving the original block stranded in the CPU.
- Incomplete upload after a CPU memory reset. After a factory reset (MRES), the CPU is empty. An upload operation that aborts midway (e.g., PG crash) can leave the offline project and online state misaligned.
Diagnostic Workflow
Before taking recovery action, confirm exactly which blocks are in the online-only state and which paths they occupy.
- Connect online. In the project tree, right-click the CPU S7-300 > CPU 314 PN/DP and select Go online. Use a direct Ethernet connection to the PN port (X1) or via the DP interface with a PC adapter (USB MPI/DP, 6ES7972-0CB20-0XA0).
- Open the online view. Expand Program blocks under the online entry. The online tree is a separate, read-only view of the CPU's load memory.
- Compare offline vs online trees. Side-by-side compare Project tree > PLC > Program blocks (offline) with Online > Accessible devices > [CPU] > Program blocks (online). Any block number present in the online tree but missing from the offline tree at the same container is online-only.
- Inspect the online block header. Double-click the online-only block. Even if the source interface appears empty, the Properties > General tab shows block number, author, family (FB/FC/DB/SDB/OB), last code-change timestamp, and the checksum. Record these — they identify what was in the CPU before you do anything destructive.
- Read the diagnostic buffer. Open Online & Diagnostics > Diagnostic buffer on the CPU. Filter for events with block number references; this often shows the most recent download/operations on the suspect block.
-
Cross-reference tags. In the offline project, open PLC tags > Show all tags. If a referenced tag is missing, the block may have used an absolute address (e.g.,
%IW256,%M10.0) that is not symbolic, in which case it will still execute but cannot be traced by name in the project.
Solution: Recover the Block
The correct recovery depends on whether the online block contains valuable logic that the offline project has lost, or whether the online block is the rogue/orphan copy that must be removed.
Option A — Upload the online block to the project (online is the source of truth)
- Right-click the online CPU entry in the online view.
- Select Upload from device (software). Confirm the prompt "Upload device to PG".
- In the resulting "Upload preview" dialog, TIA Portal lists every block, tag table, and configuration object that will be created in the offline project. Inspect this list carefully. Untick anything you do not want transferred.
- Finish the upload. The newly created offline blocks will carry the half-orange/half-white icon briefly, then transition to a healthy state once the project is recompiled.
- Select the CPU and click Compile > Software (rebuild all blocks). Resolve any compile errors — typically missing PLC tags or unused-symbol warnings on newly uploaded blocks.
- Reconnect online. The comparison status for the recovered block should now show the solid green circle.
Option B — Delete the online block (offline is the source of truth)
Use this path only when you have confirmed — by inspection of the online block's code, timestamp, and known project history — that the online copy is orphan/rogue and the offline project contains the correct, production-tested block.
- Go online with the CPU.
- In the online Program blocks tree, right-click the online-only block.
- Select Delete (the online context menu, not the offline one). Confirm the safety prompt; the S7-300 will require you to be in STOP or to have deletion rights enabled in the CPU's protection settings.
- From the offline project, perform a Download to device > Software (only changes). TIA Portal will now see the offline block as the only copy and will write it to the CPU.
- Verify the icon returns to solid green.
Option C — Rebuild from a clean, archived project
When the online project has drifted significantly and the offline project is unreliable, the cleanest recovery is:
- Bring the CPU to STOP.
- Perform an MRES (memory reset) on the CPU: turn the mode switch to MRES, hold, watch the LED pattern, release. The CPU retains its IP address and MPI/DP configuration in the system data blocks (SDBs).
- Open a known-good archived project version (typically the last signed-off version from the project archive). Do not use the corrupted in-progress project.
- Download the hardware configuration first, then the program blocks in the order: OBs, system data, FBs, FCs, instance DBs, global DBs.
- Go online and verify every block shows the solid green icon.
Verification Steps
After any recovery, run the following checks to confirm the system is in a known-consistent state:
- Visual consistency check. All blocks in the project tree show the solid green comparison icon. No half-coloured icons remain.
- Compile clean. Compile > Software (rebuild all blocks) completes with zero errors and zero warnings that mention block numbers, interface mismatches, or unresolved tags.
- Cross-reference integrity. Open Project tree > Common data > Cross-references. Every block that calls another block or accesses a tag resolves without "unresolved symbol" entries.
- Online diagnostic buffer. Reset and read the diagnostic buffer; no "Block mismatch", "Interface error", or "I/O access error" events should appear after a controlled online cycle.
- CPU operating mode. Switch to RUN. Verify Online & Diagnostics > Operating mode shows RUN, and that the process behaves as expected.
- Watchdog and OB1 cycle time. Open Online & Diagnostics > Cycle time. The current cycle should be well below the configured maximum (default 150 ms on a 314 PN/DP). Spike here indicates a watchdog caused by an interface mismatch during restart.
Understanding the Online Block Interface Display
When the online block opens (or appears to open) with an empty interface, this is not a corruption of the running logic — the S7-300 executes the compiled MC7 code in work memory regardless of the visibility of symbols in the PG. The interface is rendered from the offline source that TIA Portal has matched to the online block. If no offline source exists, the PG cannot reconstruct symbolic names and types; it shows whatever the load-memory block header retains (typically nothing in the S7-300 family).
Practical implication: a process running on the PLC can continue normally while the engineering view shows an "empty" online block. Do not interpret the empty interface as "the logic is gone". The logic is intact in MC7 form; only the symbolic source is missing from the engineering project.
TIA Portal V14 Specific Considerations
Several known behaviours of TIA Portal V14 (V14.0.0.x through V14 SP1) exacerbate the online-only state:
- Project save-corruption vector. V14 had a documented defect where saving a project after an online session could fail to persist the online-comparison metadata, leaving the next PG open with stale comparison icons. Upgrade to V15.1 or later (TIA Portal V17 is the current mainstream line) to mitigate. See Siemens entry ID 109751706 on Industry Online Support for the V14 SP1 fix list.
- Multi-user server races. If the project lives on a TIA Multiuser Server, two engineers editing the same block and racing to download can leave one engineer's blocks in the CPU while the other engineer's project is the offline "source of truth". The fix is to enforce a checkout/return discipline on the multiuser server and to never download a block whose number you do not own.
- Know-how protected blocks. If the online-only block is know-how protected (S7-Know-How-Protection: read protection with a password), TIA Portal will not be able to show the source even after a successful upload — the interface will remain opaque. To confirm the block's identity, read its checksum via Online & Diagnostics > Block and compare with the archive.
Prevention Strategies
- One PG, one online session at a time. Establish a discipline: only one engineer goes online against a given CPU at a time. Lock the CPU with a password (CPU protection level 2 or 3) to enforce this.
- Always close TIA Portal fully between sessions. Do not leave the PG in an online state overnight. Closing TIA Portal flushes the online-comparison cache to disk.
- Archive before every online session. Use Project > Archive > Archive project immediately before going online. If the session corrupts the project, the archive is the rollback point.
- Use the TIA Portal project comparison tool. Periodically (weekly, or after every OEM release) run Tools > Project comparer against the archived baseline. Any "only in project A" or "only in project B" entries on the Program blocks node indicate a drift that must be reconciled.
- Lock down the CPU's load memory. Configure the CPU's access protection to require a password for any online modification. This blocks accidental writes by engineers who pick up the wrong project.
- Avoid "Upload from device (software)" against a CPU running production. The upload can briefly stop the CPU on some firmware versions, and the side-effect of bringing unrecognised blocks into the offline project is exactly the online-only state described here. Use an offline archive for production CPUs.
Comparison Icon Reference (SVG State Diagram)
Related Diagnostic and Diagnostic-Buffer Events
| Diagnostic event ID | Meaning | Implication for the online-only state |
|---|---|---|
| 0x13A1 | Block loaded successfully (PG → PLC) | Recent download, blocks in PLC reflect last PG action. |
| 0x13A2 | Block deleted in PLC | Confirms operator action; useful for forensic trail of orphan blocks. |
| 0x3570 | STOP due to interface error | If the CPU went to STOP after the orphan appeared, an instance DB was likely bound to the wrong FB version. |
| 0x39A1 | Block inconsistency detected at startup | Indicates the offline upload was performed against a CPU that was already in an inconsistent state. |
| 0x4301 | Module/IO error | Unrelated to block state but often co-occurs during rushed recovery. |
These event IDs are documented in the S7-300/400 system and standard functions reference manual on the Siemens Industry Online Support portal.
FAQ
What does the half-orange, half-white block icon mean in TIA Portal?
It indicates the block exists only in the PLC (online) and has no matching offline object in the engineering project. This is the "online-only" comparison state, distinct from the half-blue/half-orange icon that means both copies exist but differ.
Why does an online-only block show an empty interface (no IN/OUT/STAT/TEMP)?
The S7-300 stores compiled MC7 code plus a minimal block header in load memory. The full symbolic interface (variable names, types, comments) is a property of the offline source. Without an offline source to match, TIA Portal cannot reconstruct symbols; the running logic in the CPU is unaffected.
Why does "Upload to PG" report success but not bring the online-only block into the project?
When the block number is already occupied in the offline project by a different object, TIA Portal treats the upload as a destructive overwrite and leaves the existing offline object untouched, even though the operation completes without error. The block then remains in the online-only state.
Can I just download the offline block to clear the online-only state?
Only if you are certain the online copy is orphan/rogue and the offline block is the correct, production-tested version. Otherwise, downloading overwrites the live block and may change the running process. Inspect the online block's timestamp, checksum, and (if possible) source first.
How do I prevent this state from recurring on an S7-300 fleet?
Enforce one-PG-at-a-time online discipline, password-protect the CPU (protection level 2+), archive the project before every online session, run periodic Project Comparer against a baseline, and avoid "Upload from device (software)" against production CPUs.