S7-1212FC PLC Tag Upload Failure: TIA Portal Diagnostic Guide

David Krause16 min read
S7-1200SiemensTroubleshooting
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

S7-1212FC PLC Tag Upload Failure: TIA Portal Diagnostic Guide

This troubleshooting reference addresses a recurring field issue: a S7-1212FC DC/DC/DC CPU uploads its program blocks successfully from the online device to the TIA Portal project, but the PLC tag table is empty or incomplete. The symptom occurs most often when the offline project and the online CPU were created under different TIA Portal versions, or when the project was migrated without re-reading the tag table. The procedure below applies to article number 6ES7 212-1AF40-0XB0 (SIMATIC S7-1212FC fail-safe DC/DC/DC) paired with signal module 6ES7 223-1PL32-0XB0 (SM 1223 DI16/DQ16 x relay), and is valid for TIA Portal V15.1 through V19.

Note: The S7-1212FC is a fail-safe controller. Failsafe tag handling differs from standard tags and must be treated separately when uploading.

1. Problem Statement

User-reported behavior: when performing an "Upload from device" action in TIA Portal against an S7-1212FC DC/DC/DC, the resulting offline project contains the program blocks (OB, FB, FC, DB) but the PLC tags and PLC tag tables in the project tree are either empty or absent. A subsequent compile of the uploaded project succeeds, but the tag table shows zero entries. The associated SM 1223 DI16/DQ16 x relay I/O is also sometimes missing from the device configuration.

Two root causes account for the majority of these cases:

  1. Offline project was authored in a different (often newer) TIA Portal version than the firmware of the connected CPU, causing a partial upload when the online data structure does not map to the offline schema.
  2. The user is conflating "Upload device to PG/PC" with "Download to device." Siemens terminology is strict: download pushes the offline project onto the CPU; upload pulls the CPU content back to the engineering station. A failed "upload" attempt that was actually intended as a download produces an empty project tree by design.

2. Hardware Identification and Configuration

Before any upload operation, confirm the article numbers, firmware version, and signal module configuration on the physical hardware. The relevant catalog data for the reported system is summarized in the table below.

Module Article Number Role Key Specs
SIMATIC S7-1212FC DC/DC/DC 6ES7 212-1AF40-0XB0 Fail-safe CPU 8 DI 24 V DC / 6 DQ 24 V DC / 2 AI 0-10 V; bit memory 4096 B; work memory 100 KB code / 75 KB data; F-capable
SM 1223 DI16/DQ16 x relay 6ES7 223-1PL32-0XB0 Digital I/O expansion 16 DI 24 V DC (sink/source) / 16 DQ relay, 2 A per point; usable in slots 1-1 (signal board position limitation applies on 1212)

The 1AF40-0XB0 suffix decodes as firmware V4.x hardware platform. The "F" suffix indicates a fail-safe CPU. This affects how PLC tags are categorized: a fail-safe CPU supports both standard and F-PLC tag tables, and these are stored in different paths in the project tree.

Critical: When working with F-CPUs, the F-signature, F-collective signature, and the F-runtime version must be recorded before any upload. A project rebuilt without these values will not pass acceptance test and will not download back to the CPU.

Identify the connected module's firmware version through one of three methods:

  1. Online > Accessible devices in TIA Portal: select the CPU, click Online & diagnostics, expand Diagnostics > General — the firmware version is reported in the device summary.
  2. CPU display: navigate to Settings > PLC Information > Firmware Version on the integrated HMI.
  3. Web server: if enabled, browse to the CPU's IP and view Module Information.

3. TIA Portal Upload vs Download: Terminology Clarification

Siemens documentation enforces a strict naming convention that is the source of much confusion in field reports:

  • Download to device — transfers the offline project (PG/PC) onto the connected CPU. This is the action performed during commissioning.
  • Upload from device — transfers the content of the connected CPU back to the offline project. This is the action required to reconstruct an offline backup from a CPU whose project archive is lost.
  • Upload to PG/PC — older menu wording (pre-V14) for the same action; still appears in some translated menus.

If the original intent was to put a finished project onto a freshly flashed CPU, the correct command is Download to device, not upload. Running the upload command in this case either fails outright (mismatch error) or, if the CPU is empty, returns an empty project tree. Confirm the action first before reading the rest of this guide — it is the most common source of the reported behavior.

4. Root Cause Analysis: Why PLC Tags Disappear During Upload

When the upload completes for program blocks but the PLC tag table is empty, the most probable causes are:

4.1 Offline/Online TIA Portal Version Mismatch

If the offline project was last saved in TIA Portal V17 and the connected CPU's project was created in V15.1, the online-to-offline mapping logic for tag tables can fail silently. The blocks are mapped through the compiled interface descriptions, but the tag table editor refuses to merge because the underlying XML schema differs. The same is true for V18 ↔ V16, V19 ↔ V17, and any cross-SPARC migration.

4.2 Tag Table Belongs to a Different Object

PLC tag tables can be assigned to a specific program block (DB-scoped tags) or to the CPU globally. When uploading, TIA Portal only reconstructs the CPU-global PLC tag table from the CPU; block-scoped tags are reconstructed from the block's interface section. If the offline project uses block-scoped tags exclusively, the global table will appear empty even after a successful upload.

4.3 F-PLC Tag Tables Not Transferred

Fail-safe CPUs maintain a second tag table, the F-PLC tag table, in a separate container. The default "Upload from device" operation in TIA Portal does not always include F-tag tables in its scope. They must be re-imported manually or via the "Upload to PG/PC (complete)" option, which was added in TIA Portal V16.

4.4 Device Configuration Not Coherent

When the SM 1223 signal module is not detected in the uploaded project, the tags that reference its inputs (%I) and outputs (%Q) are stripped during the upload because their hardware association is broken. This is the most common reason for the "I uploaded everything but the tags are gone" symptom. See Section 5.4 for the fix.

5. Step-by-Step Upload Procedure in TIA Portal

The complete procedure for a clean upload of program blocks, hardware configuration, and PLC tag tables from an S7-1212FC is as follows. The procedure is valid for TIA Portal V17 and later; V15.1 differs only in menu text and is noted inline.

5.1 Prerequisites

  • TIA Portal installed with the SP/version matching (or one step higher than) the project that was last downloaded to the CPU.
  • CPU firmware 4.4.x or later recommended for F-CPU. Older firmware may not expose the F-tag table for upload.
  • Ethernet or PROFIBUS connection between PG/PC and CPU. Direct connection through the integrated PROFINET port is the most reliable path.
  • Target CPU IP address known and reachable. Configure a matching IP on the PG/PC interface (e.g., 192.168.0.1/24 if CPU is 192.168.0.10).
  • Project archive of the source CPU, if available, to enable a clean comparison.

5.2 Create a New Empty Project

  1. Launch TIA Portal.
  2. Create new project → name the project, set author and comment, click Create.
  3. From Project view, open the Devices & networks editor.

5.3 Detect the Connected CPU

  1. In the project tree, double-click Add new device.
  2. Select SIMATIC PLC > S7-1200 > CPU > S7-1212FC DC/DC/DC. Match the article number to 6ES7 212-1AF40-0XB0 if a specific version is required; otherwise pick the latest with the matching firmware.
  3. Click OK to insert a placeholder device.
  4. Right-click the inserted device → Compile > Hardware (rebuild all). This step is required so TIA Portal generates the necessary offline structure to accept the upload.

5.4 Upload Hardware Configuration Including SM 1223

  1. Right-click the CPU in the device view.
  2. Select Online & diagnostics > Online & diagnostics.
  3. Click Go online. If a protection password is configured, enter it.
  4. Once online, in the device view, right-click the CPU and select Upload from device > Hardware and software (complete).
  5. Confirm the overwrite prompt. The dialog should report that hardware configuration, software, and PLC tag tables will be uploaded.
  6. Click Apply. TIA Portal will rebuild the project tree to match the online CPU, including the SM 1223 in its proper slot position.
Critical: If the dialog only lists software and not hardware, the CPU firmware and TIA Portal version are too far apart to allow a complete upload. Either upgrade the TIA Portal or downgrade the upload to a partial operation and reconstruct the hardware manually.

5.5 Verify PLC Tag Table Population

  1. Open the project tree.
  2. Expand PLC_1 > PLC tags > Default tag table.
  3. Confirm the tag entries are now present. Compare row count with the CPU's online tag count (right-click the table → Go online > Monitor all).
  4. For fail-safe tags, expand PLC_1 > PLC tags > F-PLC tag table. If the F-tag table is empty, see Section 7.

5.6 Upload Program Blocks

  1. Expand PLC_1 > Program blocks.
  2. Select the Program blocks folder.
  3. Right-click and choose Upload from device > Software (only). This step pulls every OB, FB, FC, and DB from the CPU into the offline project.

For TIA Portal V15.1 and earlier, the equivalent menu path is Online > Upload from device. The V16+ terminology change occasionally trips engineers who have upgraded. Reference: TIA Portal S7-1200 Manual Collection — Uploading elements of the project.

6. F-CPU Specific Upload Considerations

The S7-1212FC requires additional steps that do not apply to a standard S7-1212C. These steps are non-obvious and missing them produces the exact symptom of "program blocks uploaded, tags missing."

6.1 F-Tag Table Location

The F-PLC tag table is not in the same project node as the standard tag table. It is found at:

PLC_1 > PLC tags > F-PLC tags > F-PLC tag table

Engineers frequently check the standard tag table only and conclude that the upload failed when the F-tags are in fact present in the dedicated F-tag table.

6.2 F-Signature Recording

Before any upload that will result in a re-download to the same or a different F-CPU, record:

  • F-collective signature (right-click CPU → Properties > F-parameters).
  • F-target signature from the safety program properties.
  • F-runtime version displayed in the safety editor.

These values must be re-entered before the project can be downloaded back to a fail-safe CPU. A modified F-signature causes the safety program to fail acceptance test and the CPU to enter STOP with diagnostic buffer entry "F-collective signature changed without authorization".

6.3 Safety Administration Editor

After upload, open Safety Administration from the project tree. If the editor reports "Safety program not consistent", the F-tag table was not fully transferred. Recompile the safety program (Safety Administration > Compile). Compilation forces a re-read of the F-tag table from the offline project and re-generates the runtime group signatures.

7. PLC Tag Types and F-Tag Handling

Understanding the tag structure on a fail-safe CPU helps diagnose the apparent upload failure. The S7-1212FC supports the following tag scopes:

Tag Scope Location in Project Tree F-Capable Upload Behavior
Standard PLC tag table PLC tags > Default tag table No Uploaded as part of "Hardware and software (complete)"
User-defined PLC tag tables PLC tags > Tag table 1...N Optional Uploaded but only if names match the online entries
F-PLC tag table PLC tags > F-PLC tags > F-PLC tag table Yes Uploaded only with "complete" option in V16+
Block interface tags Inside FB/FC/DB interface Optional Reconstructed from the uploaded block
Instance DB tags Inside instance DB Optional Reconstructed from the uploaded block

When a tag is declared in a user-defined table (e.g., Tag table_Motor), the upload logic checks the table name against the online catalog. A name mismatch — for instance Tag table_Motor offline versus Tag_Table_Motor online — causes TIA Portal to create a new empty table and the tags are assigned to the original (now-hidden) table. Manually rename one of the tables to consolidate.

8. Version Mismatch Resolution

When the offline TIA Portal version differs from the project that was downloaded to the CPU, a multi-step reconciliation is required before the tag table is fully reconstructed.

8.1 Identify Both Versions

From the offline project, read the TIA Portal version: Project > Properties > Project information. From the online CPU, read the firmware version as described in Section 2.

8.2 Compatibility Matrix

CPU Firmware Minimum TIA Portal Upload Tag Table F-Tag Table Support
V4.0 V13 SP1 Partial No
V4.2 V14 SP1 Partial No
V4.4 V15.1 Full No (V15.x), Yes (V16+)
V4.5 V16 Full Yes
V4.6 V17 Full Yes
V4.7 V18 Full Yes

For the 1212FC 1AF40-0XB0 the firmware is V4.x. If the offline TIA Portal is V15.1 and the CPU firmware is V4.4, upload works for standard tags but not for F-tags. A V16 or later TIA Portal is required to upload the F-tag table.

8.3 Perform a Project Migration

  1. Open the offline project in the older TIA Portal version.
  2. Project > Migrate project.
  3. Select the target TIA Portal version (the same one you will use to upload).
  4. Resolve any compile errors that surface during migration. These typically include obsolete block types or changed function signatures.
  5. Compile the migrated project. Save and archive.

8.4 Re-Do the Upload

With both projects now in the same TIA Portal version, repeat the Section 5 procedure. The PLC tag table will populate correctly because the schema is now consistent.

9. Verification and Test Procedure

After a successful upload, perform the following verification steps to confirm the project is operationally equivalent to the CPU.

9.1 Online Comparison

  1. Go online with the CPU.
  2. Right-click Program blocksCompare > Online/offline.
  3. Confirm the comparison report shows No differences for all blocks.

9.2 Tag Table Cross-Check

  1. Right-click PLC tags > Default tag tableGo online > Monitor all.
  2. Verify the online values are displayed. If the table is read-only and empty, the upload did not transfer the tags; repeat Section 5.
  3. For F-CPUs, repeat the monitor step on the F-PLC tag table.

9.3 Hardware Configuration Coherence

  1. In the device view, click the Go online icon.
  2. The online/offline difference indicator should be green for all slots, including slot 1 (where the SM 1223 is installed).
  3. If the SM 1223 is missing from the offline view, right-click the rack → Detect module or manually drag the module from the catalog.

9.4 F-Signature Round-Trip Test

  1. From the safety administration editor, note the current F-collective signature.
  2. Compile the safety program in offline mode.
  3. Compare the new signature with the recorded one. If they differ, the F-tag table was modified during upload and must be reconciled before any future download.

9.5 Compile and Check Consistency

  1. Right-click the CPU → Compile > Software (rebuild all).
  2. Resolve any errors. The most common errors after a partial upload are "Tag not declared" and "Multiple assignment to I/O address".

10. Troubleshooting Matrix

Symptom Probable Cause Diagnostic Step Resolution
Blocks uploaded, standard tag table empty TIA Portal version mismatch with CPU project Check CPU firmware vs TIA Portal version Migrate project to matching TIA Portal version, re-upload
Blocks uploaded, F-PLC tag table empty V15.x or earlier TIA Portal Confirm TIA Portal version Upgrade to V16+ and re-upload with "complete" option
Upload completes but device configuration missing SM 1223 Hardware not detected due to slot addressing Online & diagnostics → module information Use "Hardware and software (complete)" upload; manually add SM 1223 if needed
Tags visible offline but compile error "tag not declared" Block-scoped tags not in uploaded blocks Check uploaded block interface Re-upload blocks individually; verify interface section
Upload fails with protection password prompt CPU is password-protected (read/write level) Confirm access level set on CPU Enter the password; for read-only upload, configure Read access level on CPU
Project downloads but tags do not appear in watch table Tag table not associated with the watch table Check watch table filter Add the tag table as a filter source for the watch table
CPU enters STOP after upload + download cycle F-collective signature changed Check diagnostic buffer for F-signature message Re-enter original F-signature in safety administration editor; perform acceptance test

11. Diagnostic Buffer Entries to Watch For

The CPU diagnostic buffer records the upload action and surfaces related errors. Common entries to recognize:

Event ID (hex) Meaning Action
0x4502 Download of project data to CPU completed None — informational
0x4504 Upload from CPU to PG completed None — informational
0x4570 Tag table inconsistency detected Re-upload with complete option; check TIA Portal version
0x75A1 F-runtime group changed Re-run safety acceptance test
0x75A3 F-collective signature mismatch Re-enter original signature or perform new acceptance test

These event IDs are documented in the S7-1200 system manual: S7-1200 Programmable Controller System Manual.

12. Protection and Access Level Notes

If the CPU is configured with write protection but read-only access, the upload will succeed but any subsequent download will be rejected. Configure the access level from:

Device configuration > Properties > Protection & Security > Access level

For an upload-only scenario (e.g., service engineer retrieving the program from a customer CPU without modification rights), set the CPU to Full access (no protection) temporarily, perform the upload, then restore the original protection. The F-CPU may require a password for this change.

13. References to Siemens Documentation

For full coverage of the upload procedure, consult:

For the fail-safe variant, see the SIMATIC S7-1200 Functional Safety manual in the same documentation portal. The safety acceptance test procedure is mandatory before the CPU can be returned to production operation after any change to the F-tag table.

Why are my PLC tags missing after uploading from my S7-1212FC?

Most often the TIA Portal version used for the upload does not match the project version on the CPU. A V15.1 TIA Portal cannot upload the F-PLC tag table from a V4.4 firmware CPU. Upgrade to TIA Portal V16 or later and re-upload using Upload from device > Hardware and software (complete).

Is there a difference between "upload" and "download" in TIA Portal?

Yes. Download to device transfers the offline project onto the CPU. Upload from device reads the CPU content into the offline project. If your goal is to commission the CPU with a new program, the action you want is Download to device.

Where is the F-PLC tag table in the project tree?

Navigate to PLC_1 > PLC tags > F-PLC tags > F-PLC tag table. The standard and F-tag tables are stored in different containers. The upload succeeds even if the standard table is empty because the F-tags are in a separate table that the upload routine may not transfer in V15.x.

Can I upload a project from an F-CPU without losing the F-signature?

Yes, but the F-collective signature and F-collective signature of the safety program must be recorded before upload. The upload itself does not change the signatures on the CPU; only a subsequent download will. A modified signature requires a new safety acceptance test before the CPU is allowed back into production.

The SM 1223 DI16/DQ16 x relay is missing from the uploaded project. How do I add it back?

If the complete upload did not include the module, manually drag the SM 1223 (article 6ES7 223-1PL32-0XB0) from the hardware catalog into the correct slot of the device view. Compile the project, then re-attempt the online comparison to confirm the slot addressing matches the CPU.

Back to blog