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.
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:
- 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.
- 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.
Identify the connected module's firmware version through one of three methods:
- Online > Accessible devices in TIA Portal: select the CPU, click Online & diagnostics, expand Diagnostics > General — the firmware version is reported in the device summary.
- CPU display: navigate to Settings > PLC Information > Firmware Version on the integrated HMI.
- 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.xor 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/24if CPU is192.168.0.10). - Project archive of the source CPU, if available, to enable a clean comparison.
5.2 Create a New Empty Project
- Launch TIA Portal.
- Create new project → name the project, set author and comment, click Create.
- From Project view, open the Devices & networks editor.
5.3 Detect the Connected CPU
- In the project tree, double-click Add new device.
- Select SIMATIC PLC > S7-1200 > CPU > S7-1212FC DC/DC/DC. Match the article number to
6ES7 212-1AF40-0XB0if a specific version is required; otherwise pick the latest with the matching firmware. - Click OK to insert a placeholder device.
- 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
- Right-click the CPU in the device view.
- Select Online & diagnostics > Online & diagnostics.
- Click Go online. If a protection password is configured, enter it.
- Once online, in the device view, right-click the CPU and select Upload from device > Hardware and software (complete).
- Confirm the overwrite prompt. The dialog should report that hardware configuration, software, and PLC tag tables will be uploaded.
- Click Apply. TIA Portal will rebuild the project tree to match the online CPU, including the SM 1223 in its proper slot position.
5.5 Verify PLC Tag Table Population
- Open the project tree.
- Expand PLC_1 > PLC tags > Default tag table.
- 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).
- 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
- Expand PLC_1 > Program blocks.
- Select the Program blocks folder.
- 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
- Open the offline project in the older TIA Portal version.
- Project > Migrate project.
- Select the target TIA Portal version (the same one you will use to upload).
- Resolve any compile errors that surface during migration. These typically include obsolete block types or changed function signatures.
- 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
- Go online with the CPU.
- Right-click Program blocks → Compare > Online/offline.
- Confirm the comparison report shows No differences for all blocks.
9.2 Tag Table Cross-Check
- Right-click PLC tags > Default tag table → Go online > Monitor all.
- Verify the online values are displayed. If the table is read-only and empty, the upload did not transfer the tags; repeat Section 5.
- For F-CPUs, repeat the monitor step on the F-PLC tag table.
9.3 Hardware Configuration Coherence
- In the device view, click the Go online icon.
- The online/offline difference indicator should be green for all slots, including slot 1 (where the SM 1223 is installed).
- 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
- From the safety administration editor, note the current F-collective signature.
- Compile the safety program in offline mode.
- 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
- Right-click the CPU → Compile > Software (rebuild all).
- 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:
- TIA Portal S7-1200 Manual Collection — Uploading elements of the project
- Siemens Support FAQ 41885693 — Upload/Download procedure for S7-1200
- SIMATIC S7-1200 Programmable Controller System Manual
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.