TP900 Comfort Recipe Data Not Saved TIA Portal V16

David Krause12 min read
HMI / SCADASiemensTroubleshooting
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

1. Problem Statement

On SIMATIC HMI TP900 Comfort panels running runtime generated from TIA Portal V16 (WinCC Advanced, RT Advanced), operator-edited recipe values that are saved through the Recipe View toolbar are not retained across a panel restart. After power-off/power-on or a runtime restart, the Recipe View loads the initial values compiled into the HMI project under the Recipes > Data records editor rather than the modified values the operator saved during the last session.

The defect reproduces regardless of the selected recipe memory target:

  • Recipe storage on internal flash memory of the TP900 Comfort.
  • Recipe storage on SD card inserted in the panel's card slot.

When the engineer deletes the data record entry from the TIA Portal project (so that the project ships no data record at all) the symptom disappears — operator-saved values persist across restart as expected.

Important: Removing the data record from the project is a workaround that loses the ability to ship a known default record. The intended engineering workflow is to keep a default record in the project and have runtime changes preserved. The fix described below restores this workflow.

2. Affected Versions and Hardware

The following combination has been verified to reproduce and resolve the defect:

Component Identified Version Notes
TIA Portal (STEP 7 / WinCC) V16 Update 4 Project created from scratch in V16 (not migrated)
WinCC Advanced / RT Advanced V16.0 Engineering component for Comfort Panels
SIMATIC Panel Images V16.0 Runtime image installed on TP900 Comfort
Operator Panel SIMATIC TP900 Comfort (6AV2 124-1JC01-0AX0) 9" widescreen, 16M colors, PROFINET
Recipe storage target Flash or SD card Both paths affected equally

Projects migrated from WinCC flexible 2008 SP5 or earlier to TIA Portal V16 may exhibit the same behavior when the original data record definition is carried over via the migration wizard. See section 9 for migration-specific guidance.

3. Root Cause Analysis

When an HMI project containing one or more data records is compiled and downloaded to a Comfort Panel, the generated runtime image carries a default record in the project bundle. The panel's file system places this compiled record in the recipe memory path during boot. Runtime save operations performed by the operator overwrite this file, so during normal operation the latest operator values are visible.

The defect occurs when TIA Portal's incremental compiler does not regenerate the recipe database for the data record elements whose initial values were not changed in the engineering tree. In this state:

  1. The runtime project bundle still contains the originally compiled default record.
  2. The operator's runtime save writes the updated record to the recipe memory area.
  3. On the next panel boot, the boot sequence re-applies the project image before it re-applies the saved recipe file. Because the incremental build left an outdated project-side default, the boot path restores the stale default values and discards the operator save.

The official Siemens documentation describes the intended lifecycle for transferring recipe data records between engineering and runtime; it confirms that the panel must load or save complete data records from the recipe memory rather than overlaying partial fragments. See Transferring recipe data records (Basic Panels, Panels, Comfort Panels, RT Advanced).

Engineering takeaway: An incremental "Compile & Download" of an HMI whose recipe definition has not changed in the engineering tree may ship a stale recipe database even though no recipe-related compiler warning is reported. Only a full Rebuild All regenerates every record definition and forces the runtime to honor runtime-saved values on the next boot.

4. Recipe Memory Architecture on Comfort Panels

Comfort Panels support two physical storage targets for recipe data records. Understanding the path layout is essential when verifying the fix from a service perspective.

Storage Recipe Memory Path (RT Advanced) Persistence Capacity
Internal Flash /home/industrial/HMI/Recipes/ (mounted in the project under Recipes > Settings > Storage location: Flash) Yes, non-volatile Up to 4 MB usable on TP900 Comfort
External SD Card /media/sd/Recipes/ (mounted via Storage location: SD card) Yes, non-volatile; subject to card wear Limited only by SD capacity (recommend industrial-grade SLC)

When the HMI boots, the boot sequence performs the following for each recipe:

  1. Reads the compiled record from the project image (read-only bundle).
  2. Looks for a matching file under the configured recipe memory path.
  3. If the file is newer than the project-side timestamp, the runtime loads the runtime-saved values.
  4. If the file is missing or older than the project-side timestamp, the runtime restores the project-side defaults.

The defect manifests at step 3: the project-side timestamp is incorrectly stamped at the most recent incremental compile instead of at the full Rebuild All, so the runtime always considers its in-memory copy to be "older" than the project copy, restoring defaults.

5. Diagnostic Procedure

Run the following checks before applying the fix. They confirm the failure mode and rule out other common causes.

  1. Confirm the recipe structure. In TIA Portal, open Recipes > [RecipeName] and verify that at least one data record exists under Data records.
  2. Confirm the storage location. In Recipes > Settings, check that Storage location is set to either Flash or SD card. The None setting is invalid for runtime saves.
  3. Reproduce at runtime. In the Recipe View on the panel, edit any element, press the Save toolbar button, confirm the message "Data record saved", then perform a panel restart (power cycle or Start > Run > Stop Runtime > Start Runtime).
  4. Read back the values. After restart, open the Recipe View. If the values revert to the TIA-defined defaults, the defect is confirmed.
  5. Check compiler output. Switch to Compile > HMI > [Device] and look at the warning tab. A clean compile with no warnings on the recipe element still allows this defect to occur, which is why the diagnostic step continues to step 6.
  6. Check the operator button wiring. On the Recipe View toolbar, confirm that Save is mapped to the system function SaveDataRecord (or SaveDataRecordWithPassword) and not to LoadDataRecord. A misconfigured toolbar reverses the symptoms in a way that can be confused with this defect.

6. Primary Fix — Rebuild All and Full Download

The defect is resolved by forcing TIA Portal to regenerate every recipe artifact, then downloading the complete project image.

  1. In TIA Portal, select the HMI device in the project tree.
  2. Right-click and choose Compile > Software (rebuild all). Wait for the operation to finish. Confirm no errors in the Inspector window.
  3. Connect the engineering station to the panel via PROFINET or Ethernet and ensure the panel is online (the Online status indicator in the project tree should be green).
  4. Right-click the HMI device and select Download to device > Software (all).
  5. In the Download to device dialog, tick Overwrite all under Target data. This ensures that the recipe memory files on the panel are removed and replaced with the freshly compiled records.
  6. Confirm the download. The panel reboots into the new runtime image.
  7. On the panel, open the Recipe View, edit a value, save it, and restart the panel. The saved value must now be retained.
Why "Rebuild All" matters: An incremental Compile only processes changed objects. Recipe element binaries are not re-emitted unless the element definition was edited. Rebuild all forces a fresh pass over every recipe and data record, which corrects the stale timestamp described in section 3. After a successful Rebuild all + Download (all), the boot sequence will defer to the runtime-saved file in step 3 of the boot logic.

7. Storage Location Selection — Flash vs SD Card

Both storage targets behave identically with respect to this defect, but the choice has operational implications that affect long-term reliability.

Criterion Flash (Internal) SD Card
Wear Limited write cycles (NAND) Limited write cycles (depends on card; industrial SD recommended)
Hot swap Not possible; panel must be powered down Possible on supported Comfort Panels
Backup / transfer Via ProSave or project download Card can be removed and archived
Capacity Limited (≈ 4 MB recipe partition on TP900) Limited only by SD card size
Recommendation Default for fixed recipes with infrequent save cycles Default for large recipes or batch-oriented process data

For plants with high recipe churn (for example, several hundred save operations per shift), prefer an industrial-grade SD card (Siemens 6AV2 181-2AB00 or equivalent) and configure the recipe storage target to SD card. The internal flash of the TP900 Comfort is sized for typical recipe workloads but is not designed for continuous high-frequency writes.

8. Verification Checklist

After applying the fix, run the following checks to confirm full restoration of the recipe lifecycle.

  1. Compile clean: Inspector window reports 0 errors, 0 warnings for the HMI device after Rebuild all.
  2. Download complete: Download log shows "Download (all) completed successfully" with the Overwrite all option.
  3. Initial record present: After the first boot, the Recipe View shows the TIA-defined default values for the data record.
  4. Operator save persists: Modify a value, save, restart, and confirm the modified value is loaded.
  5. Project download does not regress: Without changing the recipe definition in TIA, perform a normal Compile & Download. The runtime-saved record must remain intact.
  6. Data record list synchronizes: If multiple data records are defined, switch between them after restart and confirm each retains the last saved state.
  7. Export / import round-trip: Use ProSave or the panel's Service > Backup to export the recipe memory, then re-import on a second panel. Records must arrive with the operator-modified values.

9. Migration from WinCC flexible Projects

Projects migrated from WinCC flexible 2008 SP5 to TIA Portal V16 inherit the original data record definition. After migration, perform a one-time Rebuild all + Download (all) on the migrated HMI before commissioning, even if no recipe elements were edited. The migration wizard translates the XML record into the TIA V16 representation but does not guarantee a clean runtime timestamp; only a full rebuild does.

Additional points specific to migrated projects:

  • Tags that previously used the Synchronize option in WinCC flexible must be re-confirmed under Properties > Synchronization in TIA Portal.
  • If the original project referenced recipe tags by symbolic name without a connection to the PLC, add the connection after migration. Recipe variables without a valid PLC connection still save locally but will not exchange with the controller, which can be mistaken for the present defect.
  • Remove any legacy Coordination bits that the migration wizard may have imported. Coordination bits left over from WinCC flexible can interfere with the new V16 transfer model described in the official documentation.

10. Best Practices for Recipe Engineering in TIA Portal V16

Adopt the following conventions to prevent recurrence and to keep recipe data traceable.

  • One recipe, many records: Define a single recipe element and ship multiple data records (StartUp, Recipe_A, Recipe_B). Avoid duplicating recipe elements to represent variants — this inflates the compiled bundle and amplifies timestamp drift.
  • Naming convention: Apply RecipeName_RecipeNumber to every data record so that operators see a deterministic list in the Recipe View.
  • Validate before save: Wire the toolbar Save button to SaveDataRecordWithPassword when recipes are safety-relevant. Provide a confirmation dialog using a separate RecipeView screen.
  • Audit trail: In the PLC, latch the recipe name and timestamp on each successful save so the SCADA layer can reconstruct which record was active at any point in time.
  • Compile cadence: After any change to the recipe element (addition of tags, change of limits, reordering), perform Rebuild all before downloading. Document this in the project's engineering guideline.
  • Backup cadence: Schedule a daily ProSave backup of the recipe memory partition. Use the panel's Service > Backup / Restore function or a scripted approach via WinCC Viewer.
  • SD card hygiene: Replace SD cards every 24 months in plants with high write rates. Log the card's serial number and replacement date in the maintenance system.

11. Related Settings and Parameter Reference

The following settings in TIA Portal V16 directly govern the recipe lifecycle on Comfort Panels. Review them whenever you troubleshoot recipe persistence.

Setting Path in TIA Portal Parameter Recommended Value Notes
Recipes > [Recipe] > Properties > General Storage location Flash or SD card "None" disables runtime save.
Recipes > [Recipe] > Properties > General Synchronize with PLC On (if PLC-side tags are required) Requires matching PLC tag names.
Recipes > Settings > Storage Memory card path Default Used when SD card is selected.
Recipes > [Data record] > Properties > General Default values Set per element These are the values restored at first boot.
Runtime settings > Services Recipe data record password Configured for protected records Required when SaveDataRecordWithPassword is used.
HMI device > Properties > General Image version V16.0 or later Must match engineering version.
Compile > HMI > [Device] Rebuild all Mandatory after recipe edits Forces full recipe regeneration.
Download to device Overwrite all Selected on first commissioning Ensures no stale runtime files survive.

System functions commonly wired on the Recipe View toolbar:

  • LoadDataRecord — loads the named record into the Recipe View.
  • SaveDataRecord — saves the Recipe View contents to the configured recipe memory.
  • SaveDataRecordWithPassword — protected variant.
  • DeleteDataRecord — removes the runtime-saved file (used for reset to defaults).
  • ExportDataRecord / ImportDataRecord — file-based exchange via USB / SD card.

12. Frequently Asked Questions

Why does removing the data record from the TIA Portal project make the save behavior correct?

Without a project-side data record, the boot sequence has no compiled default to fall back on. The runtime-saved file becomes the only source of truth and is therefore retained across restart. This is a workaround, not a fix, because it removes the ability to ship a known default record to the panel.

Does this defect occur on TP700, TP1200, TP1500, or TP2200 Comfort Panels as well?

The defect is independent of panel size and has been reproduced on the TP900 Comfort and reported on multiple Comfort devices in TIA Portal V16 projects. The same Rebuild all + Download (all) workflow resolves it on all Comfort Panels running Panel Image V16.0.

Will upgrading to TIA Portal V17 or later eliminate the issue?

Later TIA Portal updates revised the recipe compiler and runtime timestamp handling, which significantly reduces the frequency of this defect. Sites already running V16 can apply the Rebuild all + Download (all) workflow described above without a portal upgrade.

How do I export runtime-saved recipes to a USB stick for backup?

Wire a button to the system function ExportDataRecord, select the target record, and set the storage path to the USB medium (typically /media/usb/ on Comfort Panels). The record is written as a binary file that can be re-imported with ImportDataRecord on the same or a replacement panel.

Can I verify from ProSave that the recipe memory file is being updated by the operator save?

Yes. Open ProSave, connect to the panel, select Recipes, and use Read from device. After the operator saves and before the restart, the file should reflect the latest values. If it does, but the restart still reverts, the cause is the project-side timestamp described in section 3 and the Rebuild all + Download (all) workflow will resolve it.

Back to blog