Problem Description
When a STEP 7 / PCS 7 project is downloaded to a real S7-300 or S7-400 CPU through an EPROM or Flash memory card, engineers frequently lose the ability to monitor block I/O inside the CFC (Continuous Function Chart) editor. The symptom is reproducible: opening a CFC chart online produces a dialog warning that "the CFCs are not matching" the CPU program and prompts the user to switch the CPU into Test mode. After accepting that dialog, clicking an input or output pin of a function block (FB) with CTRL+click does not open the watch window. Instead, a message box is displayed stating that the parameter cannot be added to the watch list, or that the online/offline view of the block is inconsistent. PLCSIM is unaffected by the same condition - charts downloaded to PLCSIM monitor cleanly. The problem is specific to real hardware and to charts whose time stamps were written to a non-volatile memory card during a different engineering session than the chart folder in the offline project.
Root Cause: Time-Stamp Conflict Between Charts and Blocks
Siemens CFC tracks two independent time stamps for every block instance and every chart container. When a chart is compiled and downloaded, the block-header time stamp inside the CPU's load memory is rewritten to match the chart that generated the block. The chart folder on the programming device, however, retains the original PC clock time stamp from the last Compile pass. If the project is then re-opened on a different engineering station, retrieved from a backup, or reconstructed after loading only the S7 program from the EPROM card, the chart folder on disk carries older time stamps than the blocks now loaded into the CPU. The CFC online monitor compares these two values; if they differ, the editor refuses to bind the block I/O to the watch table and refuses to install the watch entry. The error path is internal to the CFC runtime and is not surfaced in the standard STEP 7 diagnostics buffer.
The decisive diagnostic is a Siemens Technical Support confirmation: the message is the result of a timestamp conflict between blocks and charts. Realigning the two - not recompiling, not deleting the chart, not changing the CPU operating mode - is the only correct fix.
Affected Versions and Platforms
| Component | Versions Affected | Notes |
|---|---|---|
| STEP 7 | V5.4 SP3 through V5.6 | Classic CFC is part of STEP 7; PCS 7 bundles the same engine. |
| CFC add-on | V7.0 through V9.0 SP3 | Issue is observed in both PCS 7 V7/V8 and standalone S7 CFC installations. |
| SIMATIC S7-300 CPUs | CPU 313/314/315/317/319, all firmware variants with MMC | Reproduction confirmed on CPU 315-2 PN/DP with 6ES7 315-2EH14-0AB0. |
| SIMATIC S7-400 CPUs | CPU 412/414/416/417, all firmware variants | Same root cause; the symptom is identical. |
| Memory cards | EPROM (deleted by UV), Flash (MMC, FEPROM) | Triggered when SW is loaded to the card and then transferred to the CPU; also reproducible with Service-mode EPROM procedure per Siemens KB 22123632. |
| PLCSIM | V5.4 SP3 and newer | Not affected - PLCSIM inherits the chart time stamps from the PC, so they match by construction. |
Diagnostic Procedure
Before applying the resolution, confirm that the symptom is in fact the time-stamp conflict and not a different issue (corrupt block, wrong version, missing HW config, write-protection on the memory card).
- Open the S7 project in STEP 7 and navigate to the Charts folder. Right-click the affected CFC and select Chart > Check Chart Consistency. The check should pass without errors. Failures here point at a different cause (FB interface mismatch, deleted instance DB).
- Right-click the same chart and select Chart > Chart Time Stamps. Record the displayed Time stamp of the chart and the Time stamp of the block in the CPU. If the chart time stamp is older than the block time stamp by more than a few minutes, the conflict is confirmed.
- Open the online view of the same block (PLC > Monitor/Modify on the FB instance DB). If the online block shows the new time stamp and the offline project shows the old one, the watch-list error is the documented timestamp issue. Proceed to the resolution.
- Cross-check by going online with PLCSIM using the same project. If monitoring works against PLCSIM but not against the real CPU, the root cause is hardware-specific timestamp drift, almost always introduced by an EPROM/Flash download. Proceed to the resolution.
- Verify the CPU operating mode. The CPU must be in RUN with Test mode active. The mode toggle is reachable via PLC > Operating Mode in SIMATIC Manager. If the CPU is in Process mode the watch dialog is also blocked, but for a different reason; in that case Process mode is the cause and switching to Test mode alone resolves the symptom without the PLCSIM workaround.
Step-by-Step Resolution
The following sequence forces the chart folder on the programming device to carry the same time stamps as the blocks already in the CPU. It is the procedure recommended by Siemens Technical Support.
- Open PLCSIM and bring the project online. Start S7-PLCSIM from SIMATIC Manager (Options > SIMATIC S7 PLCSIM or via the toolbar). In PLCSIM, switch the simulated CPU to RUN-P so that the project is fully downloadable.
-
Download the S7 program to PLCSIM. Select the S7 program (the
S7 Programcontainer including Blocks and Charts) and choose PLC > Download. Confirm the dialog. PLCSIM accepts the full chart folder in one pass; the chart time stamps written into PLCSIM are taken from the project's offline chart folder, but because PLCSIM does not have a non-volatile pre-existing image, the chart folder on disk is treated as the source of truth. - Open the affected CFC chart in the editor and go online against PLCSIM. Online view against PLCSIM succeeds because the chart folder and the blocks in PLCSIM share the same time stamps after the download. Confirm the chart can be monitored by pressing CTRL and clicking an FB I/O pin.
- Close PLCSIM. Use File > Exit in PLCSIM. Do not save any state.
- Close the CFC editor and the open chart. This is important: the editor must release its lock on the chart time-stamp cache before the next open.
- Reopen the chart against the real CPU. With the project open, go online with the real S7-300/S7-400 CPU. Open the CFC chart and accept the "CFCs are not matching" dialog by clicking Yes to switch to Test mode.
- Re-test the watch dialog. CTRL+click on any FB I/O pin. The watch list now opens, the parameter is bound to the online value, and the online block time stamp matches the chart time stamp displayed in Chart > Chart Time Stamps.
Why the Test-Mode Dialog Is Required
STEP 7 protects the CPU against unintentional program changes by enforcing two operating modes:
- Process mode: The CPU treats the online program as read-only. Watch points can be installed, but any write operation (force, modify, download of changed blocks) is rejected. Useful on running plants where the operator must not be able to alter control logic.
- Test mode: The CPU accepts writes to outputs and inputs from the programming device but does not commit them to the load memory. After a power cycle the values revert. This mode is required for full CFC monitoring, including forcing test values, because CFC's online extension uses the same write path.
The dialog is the runtime's safety interlock, not an error. Accepting it is mandatory for the resolution to work. If the user clicks No, the CPU stays in Process mode and the watch list will continue to be blocked even after the PLCSIM workaround - the chart time stamps have been normalized, but the CPU mode prevents binding the watch point.
Verification
After completing the seven-step resolution, run the following checks to confirm that monitoring is fully restored:
- Open the affected CFC chart. The header should display a green online indicator on the chart object. If the indicator stays grey or yellow, repeat the PLCSIM download step.
- Right-click the chart and select Chart > Chart Time Stamps. The two displayed values must match to the second. A difference larger than the compile clock granularity (typically 1 s on Windows file systems) means the normalization did not complete.
- Hover over any FB I/O pin. The tooltip should show the symbol name and the online value. If the tooltip shows the offline value only, the chart is still in offline view; use View > Online in the CFC toolbar to switch.
- Open the watch table from the CFC. Add the parameter and confirm that the Status column reads
OK(green) and the Value column updates at the configured refresh interval. - Run a full Check Chart Consistency pass across the entire plant. There should be zero timestamp-related warnings.
- Open a second engineering station against the same CPU. The watch dialog should succeed there as well - this confirms that the fix is project-wide and not a per-station cache artifact.
Preventive Measures
Once the issue is resolved, the following engineering practices prevent recurrence:
- Always download the chart folder with the S7 program. When transferring a project to a new engineering station, copy the entire S7 program container, not only the Blocks subfolder. The Charts folder is the source of truth for time stamps.
- Centralize the master project on an engineering server. Use a project server or a version-controlled share. Each station works on a checkout, never on a local copy. This eliminates clock-drift between stations.
- Synchronize the engineering-station clocks. Use NTP with a stratum-2 source. Two stations with clocks more than a few seconds apart produce chart time stamps that are internally consistent but globally inconsistent after cross-downloads.
- Avoid mixing EPROM and online downloads. If the plant procedure mandates EPROM loading for traceability, do not perform partial online modifications afterward. The mixing of the two download paths is the single most common trigger of the time-stamp conflict.
- Run Compile and Download as a single transaction. Never compile on one station and download from another without re-checking out the chart folder.
- Document the PLCSIM workaround in the commissioning manual. Field engineers who have never seen the error will reject the test-mode dialog and lose hours. Add the seven-step sequence to the project's commissioning plan.
Related Watch-List Errors in CFC
The time-stamp error is one of several monitoring problems that share the same UI but have different root causes. Distinguish carefully:
| Symptom | Root Cause | Resolution |
|---|---|---|
| "Cannot add to watch list" + charts not matching dialog | Timestamp conflict after EPROM/Flash download | PLCSIM normalization procedure (this article) |
| "Cannot add to watch list" + CPU in Process mode | Operating-mode protection | Switch CPU to Test mode via PLC > Operating Mode |
| "Block does not exist in the CPU" | FB instance DB not downloaded or deleted on CPU | Recompile and download the S7 program in full |
| "Interface description inconsistent" | FB source modified after download; instance DB outdated | Recompile chart, regenerate instance DB, download |
| Watch list shows values but tooltip is offline | Chart still in offline view | Toggle View > Online in CFC toolbar |
| Watch list shows constant 0 or 16#0000 | Block I/O not connected, or symbol wrong | Verify chart run sequence and interconnections |
Troubleshooting Matrix
| Check | Pass Condition | Fail Action |
|---|---|---|
| Chart time stamp = CPU block time stamp | Equal to the second | Repeat PLCSIM normalization |
| CPU mode = Test mode | SF LED off, RUN LED on, mode field = Test | Accept the Test-mode dialog at next go-online |
| CFC Check Chart Consistency | No errors, no warnings | Recompile, fix interface mismatches, redownload |
| Watch dialog status column | OK (green) | Investigate specific error code in the dialog header |
| FB attribute on parameter = S7_dynamic | Attribute visible in symbol table | Set attribute to Watch-attribute S7_dynamic on the FB input |
| Engineering-station clock | Drift < 1 s vs NTP source | Rejoin domain, restart time service |
| Project location | Charts folder present and non-empty | Restore from backup, never copy Blocks folder alone |
Functional Block (FB) Attribute Considerations
The original symptom is reported on FB instance DBs. FBs and FCs behave differently in the CFC online view:
-
FB (Function Block): The instance DB carries the parameter values. Monitoring works against the instance DB. The
S7_dynamicattribute on the FB input/output is required for the parameter to be visible in the watch table without a symbol entry. If the attribute is missing, the watch dialog refuses the parameter with a different error message ("no instance DB" or "parameter not visible"). - FC (Function): FCs do not have an instance DB. The watch dialog attempts to read the parameter from the temporary local data of the block. The CFC editor can show the static view but cannot bind a watch point to a temporary. The "Cannot add to watch list" message in this case is by design, not the timestamp bug. Confirm that the block under inspection is an FB before applying the PLCSIM workaround.
To inspect the attribute, open the FB source in the LAD/FBD/STL editor, go to File > Properties, and inspect the Attributes tab. The relevant rows are S7_dynamic on inputs and S7_dynamic on outputs. Modify with the FB properties dialog, then recompile and redownload the chart.
STEP 7 vs TIA Portal CFC
The PLCSIM workaround is documented against the classic CFC that ships with STEP 7 V5.x and PCS 7 V7-V9. The TIA Portal successor (CFC in the SIMATIC PCS 7 neo / Open Development Kit lineage) does not use the same time-stamp mechanism. In TIA Portal, chart binding is via the Software Unit concept and the watch dialog reads directly from the PLC tag table. The time-stamp conflict is structurally impossible because the chart folder and the blocks are compiled together into the same project artifact. If the symptom appears in a TIA Portal project, the cause is different (typically an unloaded PLC tag fragment or a project library mismatch), and the PLCSIM workaround will not help.
FAQ
What causes the "CFCs are not matching" warning when going online?
The chart folder on the programming device carries older time stamps than the blocks resident in the CPU's load memory. This typically happens after an EPROM or Flash memory card download, after a project restore, or after a transfer between engineering stations. The CPU is offering to switch to Test mode so that the online monitor can bind the parameters despite the timestamp drift; it is not a CPU fault.
Why does PLCSIM work but the real CPU does not?
PLCSIM inherits its image from the project's offline chart folder on every download, so the time stamps in PLCSIM and on disk match by construction. A real CPU, by contrast, retains the time stamps written by the last EPROM or online download, which were generated by a different engineering session. The symptom is therefore reproducible on the real CPU even when the offline project appears clean.
Is the Test-mode dialog mandatory for the fix?
Yes. The chart time-stamp normalization alone does not enable the watch dialog if the CPU remains in Process mode. You must accept the Test-mode dialog at the next go-online, or manually switch the CPU to Test mode via PLC > Operating Mode in SIMATIC Manager. Process mode blocks all binding operations regardless of the chart state.
Can I avoid the PLCSIM workaround by re-compiling the chart?
No. Re-compiling the chart updates the chart folder on disk but does not change the time stamp of the block already resident in the CPU. The chart time stamp will still be newer than the block time stamp, and the watch dialog will continue to refuse the parameter. The PLCSIM download is the only procedure that synchronizes both sides without reloading the production CPU.
Does the PLCSIM workaround apply to TIA Portal CFC?
No. TIA Portal CFC uses a different binding model based on software units and PLC tags. The timestamp conflict does not exist in the same form. If the "Cannot add to watch list" symptom appears in a TIA Portal project, the cause is a different issue (unloaded tag fragment, library version mismatch, or PLC tag visibility settings) and the resolution steps in this article do not apply. Diagnose against the TIA Portal online help and the project's diagnostic buffer.