Problem Description
A PCS 7 V8.1 Operator Station (OS) with 300 logged tags produces 600-650 MB of tag logging archive data per day, while a comparably-sized WinCC V7.2 station with the same number of tags produces only ~20 MB/day. The PCS 7 OS archive configuration was set to 150 MB per segment, which causes the system to create four to five segments per day. Historical baseline data shows the same PCS 7 OS once produced ~100 MB/day with identical configuration, indicating a recent change in either system behavior, project configuration, or runtime load. The 6× increase is too large to be explained by routine process variation and points to a configuration or library regression.
| Parameter | PCS 7 V8.1 OS | WinCC V7.2 |
|---|---|---|
| Total tags | 300 | 300 |
| Tags at 1 s | 200 | 298 |
| Tags at 2 s | 20 | 0 |
| Tags at 500 ms | 60 | 2 |
| Daily archive size | 600-650 MB | ~20 MB |
| Segment size | 150 MB | 150 MB |
| Time period for all segments | 12 weeks | n/a |
| Maximum size of all segments | 100 GB | n/a |
WinCC Tag Logging Architecture
WinCC and PCS 7 OS share the same underlying tag logging engine. Process values are written to segmented circular archives with configurable size and time limits. The engine routes samples to one of three primary databases based on cycle speed:
-
TagLoggingFast— high-speed acquisition (default: 500 ms and faster) -
TagLoggingSlow— standard-speed acquisition (default: 1 s and slower) -
TagLoggingUFS— process-controlled archiving on change
Each archive consists of one or more segments. When a segment reaches its configured size or age, the system switches to a new segment. The parameters Time period for all segments and Maximum size of all segments control the entire archive's retention, not per-segment behavior. When either limit is reached, the oldest segment is deleted.
The archive file format is proprietary binary with internal compression. Typical record overhead is 12-16 bytes per sample (8-byte Win64 timestamp + status/quality bytes + index pointer). Raw data type sizes:
| Data type | Payload | With overhead |
|---|---|---|
| BOOL | 1 B | 13-17 B |
| INT / WORD | 2 B | 14-18 B |
| DINT / DWORD | 4 B | 16-20 B |
| REAL / FLOAT | 4 B | 16-20 B |
| STRING (n) | n+1 B | n+13-17 B |
Using a conservative 16 B/sample average, the PCS 7 sample volume per day is:
- 200 tags × 1 s × 86400 s = 17,280,000 samples
- 20 tags × 2 s × 43200 = 864,000 samples
- 60 tags × 500 ms × 172800 = 10,368,000 samples
- Total: ~28.5 million samples × 16 B = ~456 MB raw
With index blocks, segment headers, and quality flags, the 600-650 MB figure is plausible — but only if all 300 tags use uncompressed REAL data types. The historical 100 MB/day figure suggests compression was active or fewer tags were registered at the time.
Root Cause Analysis
The most common drivers of inflated tag logging volume in PCS 7 V8.1 are:
- Segment size set too low. A 150 MB cap forces 4-5 segments/day. Each segment has a fixed header overhead of 200-500 KB (timestamps, index blocks, configuration records). Multiple small segments produce cumulative waste of 1-2 MB/day from headers alone.
- Total retention set disproportionately high. 12 weeks × 100 GB means the system never deletes segments for capacity — only time. Combined with the 150 MB segment size, the system is forced to spin up multiple new segments daily because the per-segment cap is hit before the day ends.
- Excessive 500 ms acquisition tags. 60 fast tags quadruple the per-second sample rate versus all-1s logging. A 500 ms tag generates 172,800 samples per day — twice the volume of an equivalent 1 s tag.
- Compression disabled. Tag logging supports run-length and delta compression for tags that do not change frequently. PCS 7 OS enables compression by default, but a project migration, manual edit, or corrupted configuration can disable it.
- Duplicate logging paths. PCS 7 OS often logs the same tag in multiple archives (e.g., process value archive, long-term archive, custom user archive). Verify each tag has only one logging path assigned.
- Suboptimal data type selection. Logging REAL where INT would suffice, or using STRING tags where BOOLEAN suffices, inflates per-record size by 2-4×.
- Trigger-driven logging without hysteresis. Without hysteresis limits, process value archives can record every PLC scan even when the value has not changed beyond tolerance.
- Library upgrade that auto-registered archive tags. PCS 7 APL (Advanced Process Library) blocks automatically register archive tags for setpoints, process values, and outputs. An APL upgrade can silently add dozens of tags.
Diagnostic Procedure
Use the following checks in order to isolate the cause of excessive archive growth on a PCS 7 OS.
- Confirm segment configuration. Open WinCC Explorer on the OS, navigate to Tag Logging, right-click the archive → Properties. Record: segment size, time period for all segments, maximum size of all segments.
- Inventory actual logging tags. Run a CSV export: Tag Logging → Archive → Export. Compare the list of tags actually being logged against the project plan. Look for orphaned tags, duplicate references, or tags that should be disabled.
-
Inspect the TagLoggingFast folder. Default path:
C:\Program Files (x86)\Siemens\Automation\WinCC\ArchiveManager\TagLoggingFast\. List all*.LDFand*.MDFfiles with timestamps. If four or more small segments exist per day, the segment size is too low for the generation rate. - Check compression settings. In Tag Logging → Archive → Properties → Archive, verify "Compression" is enabled. This setting is project-specific and may have been disabled by a migration or manual edit.
- Compare historical baseline. If a year-old backup exists, restore it to a test OS and compare the same archive configuration. Diff the tag list and the per-tag acquisition settings. The historical 100 MB/day vs. 600 MB/day discrepancy of 6× cannot be explained by a small number of additional tags.
- Review project change log. Check WinCC project version history, PCS 7 master data library changes, and any recent CFC/SFC chart changes that added or modified tags. Pay particular attention to motor blocks, valve blocks, and PID controllers that auto-create archive tags.
- Check for hidden / non-process tags. PCS 7 APL blocks automatically create archive tags for setpoints, process values, and outputs. If APL was upgraded, additional archive tags may have been registered automatically.
- Enable Tag Logging runtime diagnostics. Start CCArchivingControl (or PDL RT Diagnostics in PCS 7) to observe per-tag logging frequency at runtime. Tags logging more frequently than their configured cycle are a red flag for duplicate trigger sources.
Configuration Parameters and Recommended Values
For the reported PCS 7 OS generating 600-650 MB/day, the segment size must be increased to reduce header overhead, and the time-period / total-size parameters must be rebalanced. The trade-off is recovery granularity: smaller segments mean less data loss after a crash; larger segments mean lower header overhead and fewer files.
| Parameter | Default (problematic) | Recommended (≈600 MB/day) |
|---|---|---|
| Segment size (single segment) | 150 MB | 1-2 GB |
| Time period for all segments | 12 weeks | 4-8 weeks (adjust per regulatory requirements) |
| Maximum size of all segments | 100 GB | 20-50 GB |
| Compression | Enabled (verify) | Enabled (mandatory) |
Apply the change in WinCC Explorer:
- Open WinCC Explorer on the OS in Configuration mode.
- Expand Tag Logging in the navigation tree.
- Right-click the archive (e.g., TagLoggingFast) → Properties.
- Switch to the Archive tab.
- Set Segment size to a value large enough to hold at least one full day of data (recommended: 1-2 GB).
- Set Time period for all segments to the desired retention window.
- Set Maximum size of all segments to a value that satisfies both retention and disk budget constraints. The lower of the two limits (time or size) determines actual retention.
- Confirm compression is enabled.
- Save and download the project to the OS runtime.
Optimizing Acquisition Cycles and Compression
The 60 tags at 500 ms in the reported PCS 7 OS are the largest contributor to the sample volume. Each 500 ms tag generates 172,800 samples per day — 2× the volume of an equivalent 1 s tag. If the 500 ms cycle is not justified by the process, increase the cycle to 1 s and re-evaluate the archive size.
| Cycle | Samples/day | Ratio vs. 1 s |
|---|---|---|
| 100 ms | 864,000 | 10× |
| 250 ms | 345,600 | 4× |
| 500 ms | 172,800 | 2× |
| 1 s | 86,400 | 1× (baseline) |
| 2 s | 43,200 | 0.5× |
| 5 s | 17,280 | 0.2× |
| 10 s | 8,640 | 0.1× |
Best practices for acquisition cycle selection:
- Use 1 s as the default for all non-critical measurements.
- Reserve 500 ms or faster for fast closed-loop control values where the controller cycle truly requires it (e.g., PID output, valve position feedback on critical loops).
- For values used only for trending or operator information, use 2-10 s.
- Apply hysteresis (e.g., ±0.5% of span) to suppress redundant logging of slowly-changing values.
WinCC tag logging supports two compression modes that can reduce archive size by 70-90% for typical process data:
- Run-length compression: Identical consecutive values are stored as a single record with a duration.
- Delta compression: Values within a configured tolerance of the previous value are not stored.
Enable both in Tag Logging → Archive → Properties → Compression. The compression factor depends on process behavior — a stable temperature or level tag may compress to 1-5% of its raw size, while a noisy flow tag may only compress to 50-70%. After enabling compression, a full re-archive of existing segments is required to realize the savings on historical data.
PCS 7 OS-Specific Behavior
PCS 7 OS stations include several automatic logging behaviors that are not present in a standalone WinCC V7.2 project:
- APL block archive tags. Every PCS 7 APL block (CTRL_PID, MOT_SPEED, VALVE_ANA, etc.) automatically registers archive tags in the process value archive. Library upgrades can silently add archive tags without any user action in the CFC chart.
- SFC and step logging. SFC (Sequential Function Chart) instances log step transitions and operator actions to a separate archive that is added to the OS's total archive footprint. A plant with 50+ SFCs can generate substantial SFC archive volume.
- Alarm logging. PCS 7 OS logs messages to the alarm archive. While not part of the tag logging volume, the alarm archive shares the same disk and disk pressure can affect both subsystems.
- Redundant OS pair. PCS 7 OS servers typically run as redundant pairs. Both OS instances must have identical tag logging configurations to avoid divergence in archive size and content.
- Long-term archive forwarding. If Process Historian is configured, the OS forwards compressed data to the historian in parallel with local storage. Verify that the same tag is not being double-logged locally and remotely.
Compare the actual number of archive tags registered in the PCS 7 OS project (WinCC Explorer → Tag Logging → Statistics) with the documented tag count. A discrepancy of 100+ tags is common after APL library upgrades.
Verification and Monitoring
After applying configuration changes, verify the new behavior:
-
24-hour observation. Restart the WinCC runtime and observe archive size for 24 hours. Calculate:
actual_MB_per_day = (total_size_after_24h - initial_size) / 1. - Segment count check. List the TagLoggingFast folder at 24-hour intervals. The number of new segments per day should be ≤ 1 (if segment size ≥ daily volume).
-
Performance counters. Open Windows Performance Monitor → Add counters → WinCC Tag Logging. Monitor:
- Tag Logging: Tags written/sec — should match expected sample rate.
- Tag Logging: Archive write time (ms) — sustained values > 100 ms indicate storage bottleneck.
- Tag Logging: Queue overflows — any non-zero value indicates dropped samples.
-
Disk I/O verification. Use Resource Monitor or
typeperf "\PhysicalDisk(*)\Disk Write Bytes/sec"to confirm the OS disk can sustain the write rate. Tag logging is sequential I/O — a 7200 RPM HDD typically caps at 100-150 MB/s; a SATA SSD at 400-500 MB/s; an NVMe SSD at 1-3 GB/s. For 600-650 MB/day, even a single HDD is sufficient, but burst writes from segment rollovers can cause short stalls. - Trend view test. Open a WinCC trend view in the OS runtime and verify all expected tags are still being recorded at the expected cycle. Compression should not affect the displayed values.
- Redundancy sync test. For redundant OS pairs, perform a failover and verify the standby OS has the same archive content and configuration. Divergent configurations will cause asymmetric archive sizes.
Troubleshooting Matrix
| Symptom | Likely cause | Action |
|---|---|---|
| 4-5 segments/day, ~150 MB each | Segment size too small for daily volume | Increase segment size to 1-2 GB |
| Archive size grew 6× vs. last year | Library upgrade added archive tags | Inventory tags, disable unused APL archives |
| Tag values logged at higher rate than configured | Duplicate trigger (archive + UFS) | Remove duplicate archive assignment |
| No compression observed in raw files | Compression disabled in archive properties | Enable compression, recreate affected segments |
| WinCC runtime slow during segment rollover | Disk I/O bottleneck | Move archives to separate SSD/RAID volume |
| Different archive sizes on redundant OS | Configurations diverged | Re-download project to both OS servers |
| Tags logging as STRING instead of numeric | External tag mapping error | Correct tag data type in WinCC tag management |
| Archive size matches expectation but trends show gaps | Storage path on network share, network blip | Move archives to local disk, mirror via redundancy |
| Trend shows correct data but disk file is empty | Antivirus locking archive files | Add WinCC archive paths to AV exclusion list |
| Archive stops writing silently | Disk full on archive volume | Reduce retention, move archives, expand disk |
Long-Term Optimization
For plants where the OS archive retention must satisfy regulatory or operational requirements (e.g., 5-10 years), integrate the PCS 7 OS with a SIMATIC Process Historian. The Process Historian stores compressed, indexed historical data at far higher volumes than an OS, supports reporting, and provides web access via the Information Server. Configuration is in WinCC Explorer under the Process Historian node; data is forwarded automatically by the OS runtime once the connection is established.
For diagnostic environments (test OS, acceptance test OS), the same archive configuration should be used as the production OS. A test OS with relaxed archive configuration will not surface performance issues that appear only in production. Always keep test and production archive segment sizes, time periods, and compression settings identical.
If growth remains excessive after all the above steps (segment size increase, compression enabled, acquisition cycle review, APL tag audit), open a technical support request via the Siemens Industry Online Support portal with the WinCC project archive and a Tag Logging export attached. Engineering will analyze the per-tag growth rate and identify residual contributors such as internal tags, indirect tag references, or driver-side sampling anomalies. For the foundational concepts of data logging applicable across WinCC generations, see the official Basics of data logging (RT Unified) documentation.
Frequently Asked Questions
Why does my PCS 7 V8.1 OS archive grow 6× faster than a year ago despite no project changes?
The most common cause is an APL or driver library upgrade that automatically registered additional archive tags. Library upgrades can also change default compression behavior. Export the current tag list from WinCC Explorer → Tag Logging → Archive → Export, then diff against the previous year's tag list. Disable or delete orphaned tags and re-enable compression if it was reverted.
What is the difference between "Segment size" and "Maximum size of all segments"?
"Segment size" controls when a new archive segment is created — when the current segment's size reaches this value, the system rolls over to a new segment file. "Maximum size of all segments" is a retention limit — when the total size of all segments in the archive exceeds this value, the oldest segment is deleted. The first controls segment frequency; the second controls total retention duration.
Can I increase segment size without losing historical data?
Yes. Existing segments remain unchanged when you modify the segment size parameter; the new value applies only to the next segment created. To apply the new size to existing segments, export the data, reconfigure, and re-import via the Tag Logging export/import tools. Always back up the archive directory before changing the segment size on a running production OS.
Does tag logging compression affect displayed trend values?
No. WinCC decompression is transparent — trend views show the original time-stamped values regardless of whether run-length or delta compression is enabled at storage. Compression only affects disk footprint, not display accuracy or query performance. Values compressed for hours will be displayed as a flat line in the trend view at the last stored value.
How do I move PCS 7 OS archives from a slow disk to a faster disk?
Change the archive path in WinCC Explorer → Tag Logging → Archive → Properties → Archive path. Stop the WinCC runtime, move the existing segment files to the new path, then restart the runtime. Ensure the new path is on a disk with sufficient free space (at least 2× the configured maximum size of all segments) and that the WinCC service account has write permission to the new location.
Should I also reduce SFC step logging to control total archive size?
SFC step logs are stored in a separate archive but consume disk on the same volume. If SFC step transitions dominate the archive footprint, increase the SFC archive segment size and enable its compression settings, or extend the SFC step transition cycle from 1 s to 2-5 s where the process allows. Verify with WinCC Explorer → Tag Logging → Statistics that SFC archive tags are not contributing the majority of daily volume before adjusting.