1. Overview
Sizing an HMI/SCADA project begins with one critical number: the tag count. Every discrete input, every analog measurement, every alarm bit, and every command that crosses the PLC↔HMI boundary consumes a tag from a finite license pool. Under-sizing the tag budget forces a license upgrade mid-project or, worse, a costly re-engineering of the data model after commissioning. Over-sizing wastes capital on unused power-tag seats and inflates the scan-cycle load on the controller/HMI link.
This reference consolidates field-tested methods for estimating and reducing tag counts in Siemens WinCC, WinCC Flexible, and TIA Portal WinCC projects. The methodology generalizes to any OPC-enabled HMI/SCADA platform, but the license tier mapping shown here is Siemens-specific.
2. Tag Fundamentals: What a Tag Actually Is
A tag is a named, typed memory location used by the SCADA/HMI runtime to read from or write to the controller. The PLC access width chosen in the data block determines how many HMI tags are consumed per N signals.
| PLC Access Width | Tags for 16 Inputs | Typical Use |
|---|---|---|
| Bool (1 bit) | 16 | Individual status, commands, alarms |
| Byte (8 bits) | 2 | Grouped digital I/O blocks |
| Word (16 bits) | 1 | Packed digital status, function flags |
| DWord (32 bits) | 0.5 (round up to 1) | Combined status + control packs |
The HMI script or faceplate then unpacks the bits in the display logic. Example: a motor starter with Start (I0.0), Stop (I0.1), Running (I0.2), and Fault (I0.3) consumes four Bool tags if exposed individually, or one Word tag (IW0) plus a faceplate script that masks the relevant bits via WAND_W.
Tag data types should match the engineering unit being displayed:
- Bool / Int — discrete status, commands, mode bits
- Real / Float — analog process values (level, pressure, temperature)
- DInt / DWord — counters, totals, packed status
- String — operator messages, batch IDs, equipment names
For archive and datalogging, Siemens WinCC restricts logged variables to 1, 2, or 4 byte primitives. String logs require an external handler or a custom archive block; they cannot be logged directly as a process tag in the standard tag logging system.
3. WinCC License Tiers and Tag Categories
Siemens does not charge per individual tag — it sells power-tag packages in stepped tiers. The exact tier granularity depends on the WinCC variant (WinCC V7.x, WinCC Professional, WinCC Unified), but the published runtime tag (RT-tag) tiers for legacy WinCC follow this pattern:
| RT Tag License Tier | Typical Use | Indicative Plant Class |
|---|---|---|
| 128 | Single-machine, bench HMI | Lab, skid |
| 256 | Small line, two PLCs | Packaging line |
| 1,024 | Single process cell | Skid, small unit |
| 8,000 | Plant area | Substation bay cluster, batch reactor farm |
| 64,000 (64K) | Site license, large plant | Mill, refinery unit |
| 128,000 (128K) | Enterprise license | Multi-site, integrated operations |
Two tag categories are licensed independently:
- RT tags (Runtime tags) — live I/O points exchanged with the controller. These count against the primary power-tag license.
- P tags (Process tags / Tag Logging tags) — variables persisted by the tag logging system for trending and reporting. P tags are licensed separately from RT tags.
For WinCC V7.0 and later, internal (computed) tags are not counted against the RT-tag license. Internal tags include script variables, math results, and constants. Always confirm the exact rule in your installed build by checking SIMATIC HMI WinCC V7.x Release Notes / License Terms on the Siemens Industry Online Support portal.
4. Signal List Methodology for Tag Estimation
The most defensible tag estimate is derived from a signal list — a structured I/O database that documents every monitored point. The signal list is typically generated in Excel or an EPlan P&ID export, then imported into the PLC engineering tool and the SCADA tag database.
The signal-list counting procedure is:
- Enumerate every physical I/O point: discrete inputs, discrete outputs, analog inputs, analog outputs, counters, and string fields.
- Add derived tags: calculated values, setpoints, control words, mode flags, interlock states.
- Add archive tags (P tags) for trending. A common field ratio is 70% of analog signals logged plus all critical discrete alarms.
- Apply a growth contingency of 15–25% to absorb late additions during commissioning and site acceptance testing.
This method scales linearly with process scope and is the only sizing approach that survives a customer audit.
5. Per-Device Rule of Thumb
When the signal list is not yet mature, an order-of-magnitude estimate can be built from the device count with a rule of thumb of 10 tags per device as a starting point. Larger or more complex devices — VFDs, analyzers, robotic cells — require 20–40 tags each; simple sensors and pushbuttons require fewer.
| Device Class | Tags / Device (Low) | Tags / Device (Typical) | Tags / Device (High) |
|---|---|---|---|
| Pushbutton / indicator | 2 | 3 | 4 |
| Solenoid valve | 3 | 4 | 6 |
| Motor starter (DOL) | 6 | 8 | 12 |
| VFD (PowerFlex, SINAMICS) | 20 | 30 | 45 |
| Soft starter | 12 | 18 | 25 |
| Process transmitter (AI only) | 3 | 4 | 6 |
| Valve with positioner | 6 | 10 | 14 |
| Circuit breaker (substation) | 25 | 35 | 50 |
| Robot cell | 80 | 150 | 300 |
The composite estimate is:
Tag_count ≈ Σ (n_devices × tags_per_device) × 1.20 (contingency)
Use the formula for early-stage budgeting, then replace it with the signal-list method once I/O assignment begins.
6. Bit-Packing and Tag Optimization
Bit-packing consolidates multiple Boolean signals into a single Word or DWord tag, with the HMI faceplate or script extracting the individual bits. This is the single most effective tag-reduction technique, cutting external tag count by 50–90% for digital I/O-heavy areas.
Practical packing rules:
- Group signals by scan class and update rate — do not mix fast interlocks (100 ms) with slow status (1 s) in the same word.
- Reserve bits for ACK and reset paths if the alarm subsystem will not tolerate packed access.
- Document the bit map in the signal list; downstream engineers must be able to read
StatusWord.3and know it means Fault.
7. WinCC Flexible Tag Converting Tool
Siemens provides a free Tag Converting / Importing utility that reads a STEP 7 symbol table or a WinCC Flexible tag export and produces a WinCC Flexible / TIA Portal HMI tag file. The tool also reports an estimated tag count from the import, which serves as a quick sizing cross-check.
- Export the STEP 7 symbol table (Options → Symbol Table → Export) as a
.awlor.sdffile. - Open the WinCC Flexible / TIA Portal project and select Project → HMI Tags → Import.
- Point to the exported file and accept the data-type mapping. The dialog reports the count of imported tags.
- Reconcile the imported count with the signal list; large deltas indicate unmapped symbols or duplicate names.
The exact menu paths vary between WinCC Flexible 2008, TIA Portal V13, and TIA Portal V18. The functional workflow and the import-count reporting are documented in the Siemens Industry Online Support portal under the application ID “Tag handling — Importing tags” (search the support site for the latest KB article number tied to your installed version). Refer also to the SIMATIC HMI catalog page on SIMATIC HMI for current software builds.
8. Substation and Process Skid Sizing
For substation and bay-controller applications using SIPROTEC devices, the per-bay signal count is well known and stable. A typical HV bay exposes roughly 30–60 status points, 10–20 measurements, and 5–15 commands to the SCADA layer. The total tag count scales linearly with bay count:
Tag_count ≈ signals_per_bay × n_bays + station_level_tags
Example: a 12-bay double-busbar substation using SIPROTEC 7SA86 distance relays:
| Signal Group | Per-Bay Count | 12 Bays | Station Level |
|---|---|---|---|
| Status (breaker, isolator, earth switch) | 24 | 288 | 40 |
| Measurements (V, I, P, Q, f, cosφ) | 14 | 168 | 20 |
| Commands (CB open/close, isolator) | 10 | 120 | 25 |
| Alarms / protection flags | 32 | 384 | 60 |
| Subtotal | 80 | 960 | 145 |
Total external SCADA tags for this example: ~1,105 RT tags, before archive tags. Adding P tags for 70% of measurements and all alarms pushes the budget to ~1,400–1,600 power-tag equivalents. This fits inside the 8,000-tier WinCC license.
9. Step-by-Step Estimation Procedure
The following procedure produces a defensible tag budget suitable for license procurement and engineering-hour planning.
- Define the process scope. Identify every MCC bucket, VFD, instrument, and operator station in the P&ID or single-line diagram.
- Generate the signal list. Produce one row per I/O point: tag number, P&ID reference, PLC address, data type, scan class, alarm class, and archive flag.
- Categorize the signals. Split into digital-in, digital-out, analog-in, analog-out, counter, string, and derived.
- Apply bit-packing where possible. Reorganize the signal list so that digital signals in the same scan class share a common Word or DWord. Recount external tags after packing.
- Add derived and computed tags. Include faceplate-derived values, alarm summaries, and aggregations. These are typically 10–20% of the I/O count.
- Identify archive (P) tags. Mark every analog and every alarm-worthy discrete for logging. Apply a 70% analog-archive rule unless the data-management plan says otherwise.
- Apply a 20% contingency. Reserve headroom for late additions during factory acceptance testing (FAT) and site acceptance testing (SAT).
- Select the license tier. Round up to the next available RT-tag tier (128 / 256 / 1,024 / 8,000 / 64K / 128K).
- Document the estimate. Save the signal list, the per-category totals, and the tier-selection rationale as part of the project design baseline.
10. Verification and Capacity Planning
After the design is implemented, the WinCC project itself reports the actual tag count at compile time. Use the runtime diagnostic to validate the estimate:
- WinCC Explorer → Tag Management shows the number of configured tags, broken down by connection.
- WinCC Channel Diagnosis (applet) reports live tag statistics, error counts, and connection state.
- TIA Portal → HMI Tags → Compile outputs a compile log with tag count and any license overflow warnings.
| Check | Tool Path | Pass Criterion |
|---|---|---|
| Compile-time tag count | WinCC Explorer → Tag Management | ≤ license tier × 0.85 (15% headroom) |
| Connection error count | Channel Diagnosis applet | 0 transient errors in 24 h soak |
| Internal tag count | WinCC Explorer → Internal Tags | Documented; non-licensed in V7.x |
| Archive tag count | Tag Logging → Archives | ≤ P-tag license count |
| Runtime scan period | Channel Diagnosis → Statistics | Within scan class target ± 10% |
11. Common Estimation Pitfalls
- Confusing RT and P tags. Both consume license seats. A project that imports 800 analog signals with 70% logged requires ~800 RT + ~560 P tag seats, not 800 total.
- Forgetting faceplate internals. A Siemens Motor Faceplate may inject 8–12 derived tags per device that the signal list does not enumerate. Add 10–15 derived tags per motor faceplate to the budget.
- Undercounting alarms. Each alarm event tag is counted as an RT tag. A 2,000-point I/O system can easily produce 4,000–5,000 alarm tags after priority and class expansion.
- Ignoring multilingual strings. Each language version of a string tag is a separate tag in WinCC. A 200-string text library in 5 languages = 1,000 string tags.
- Assuming the license is per-controller. In WinCC V7.x, the power-tag license is per HMI station, not per PLC. Two HMI stations sharing the same PLC each consume their own license.
- Skipping the FAT signal-list review. Most late tag additions originate in the FAT. If the project enters FAT at > 90% of the license tier, the FAT itself will trigger a license upgrade.
12. Frequently Asked Questions
Is there a fixed limit on internal tags in WinCC 7.0?
No. In WinCC V7.0 and later releases, internal (computed) tags are not counted against the power-tag license. They still consume HMI runtime memory and CPU, so very large internal-tag sets (tens of thousands) should be reviewed for performance impact. Always confirm the rule in the release notes for your installed build.
How do I convert STEP 7 tags to WinCC Flexible tags?
Export the STEP 7 symbol table (Options → Symbol Table → Export) and import it into WinCC Flexible via Project → HMI Tags → Import. The importer reports the tag count after mapping, which serves as a sizing cross-check. The exact menu path varies by build (WinCC Flexible 2008 vs TIA Portal V13/V15/V18); the workflow is documented in Siemens KB articles under “Tag handling — Importing tags”.
What is the difference between RT tags and P tags?
RT (Runtime) tags are live I/O points exchanged with the PLC and count against the primary power-tag license. P (Process) tags are the variables persisted by the WinCC Tag Logging system for trending and reporting, and are licensed separately. An analog signal that is read live and also logged typically consumes one RT tag and one P tag.
How do I estimate tag count for a substation project?
Use the per-bay signal count from the IEC 61850 SCD export (typically 60–120 external signals per HV bay) and multiply by the number of bays, then add station-level tags. For a 12-bay double-busbar station, expect ~1,000–1,200 RT tags before archive tags — well within the 8,000-tier WinCC license.
Can I pack multiple bits into one HMI tag?
Yes. Bit-packing consolidates up to 16 Boolean signals into a single Word tag, or 32 Booleans into a DWord tag. The HMI script or faceplate then masks the relevant bits (for example StatusWord AND 16#0001 to test bit 0). Bit-packing reduces external tag count by 50–90% on digital-heavy areas, but alarm and ACK paths often still need dedicated Bool tags.
How much contingency should I add to a tag estimate?
Apply 20% contingency on top of the signal-list total to absorb late additions during FAT, SAT, and post-commissioning. After compilation, keep the running project at or below 85% of the licensed tier to leave headroom for bug fixes and scope changes.