WinCC terminology varies by generation. In WinCC Classic, a PLC-connected variable is commonly described as a process/external tag. In this guide, “direct tag” means a WinCC tag mapped directly to a PLC address or symbolic PLC item. “Structured tag” refers to grouping based on a defined structure/type where supported.
- Use internal tags for HMI-only state; do not waste PLC bandwidth on values that never leave Runtime.
- Use process/direct tags when the value is owned by the controller and must reflect PLC quality.
- Use structured organization for repeated equipment such as motors, valves, tanks and drives.
- Tag naming, data type and ownership must be defined before graphics, alarms and scripts are built.
Practical WinCC Engineering Guide
This technical guide focuses on WinCC tag types, PLC-SCADA communication and hands-on Siemens PLC / SCADA commissioning practices.
1. PLC-SCADA Communication Architecture in WinCC
A reliable WinCC project starts with a clear ownership model. The PLC owns machine logic, interlocks, sequence state and field values. WinCC visualizes and supervises those values, adds operator commands, alarms, trends and reports, and may hold HMI-only state. The communication driver and connection object sit between the two systems.
Field Device → PLC Tag/DB → WinCC Connection → WinCC Process Tag → Screen / Alarm / Trend / Script
Before creating hundreds of tags, define the controller, connection type, PLC namespace, update requirement and whether each value is read-only, write-enabled or purely internal to the HMI.
2. WinCC Tag Types at a Glance
| Tag type | Data owner | Typical use | PLC traffic |
|---|---|---|---|
| Internal tag | WinCC Runtime | Navigation state, temporary values, script flags, local calculations | None |
| Process / direct tag | PLC or external device | Motor status, temperature, setpoint, VFD speed, alarms | Yes |
| Structured tag / grouped structure | Usually PLC + WinCC type definition | Repeated motor/valve/tank objects with consistent members | Depends on members |
3. Internal Tags: Values Owned by WinCC
Internal tags exist in WinCC and are not addressed through a PLC connection. They are ideal for values such as selected screen number, report start/end time, local simulation flags, operator-entered temporary values or a script result that does not need to be stored in the controller.
- Choose a data type that matches the HMI function.
- Use a clear prefix or folder so internal values are not mistaken for PLC tags.
- Do not use an internal tag to imitate a real PLC status. That can create a dangerous visual mismatch.
- If the value must survive Runtime restart, confirm the required persistence mechanism instead of assuming all internal tags are retained.
HMI.Screen.SelectedUnit INT
HMI.Report.StartTime DATETIME
HMI.Simulation.Enable BOOL
HMI.Popup.ActiveMotor STRING
4. Direct / Process Tags Mapped to the PLC
A process tag represents a real item in the PLC or another external device. Configure the WinCC communication connection first, then create the tag with the correct controller data type and address. For a Siemens PLC, prefer symbolic addressing when the engineering environment and driver support it because the tag name follows the controller object rather than depending on a fixed byte/bit address.
Typical process tags include Motor01.RunFeedback, Tank01.Level_PV, Furnace.Temp_Set, VFD01.Speed_Act and AlarmDB.HighTemp.
5. Structured Tags for Repeated Equipment
Structured organization becomes valuable when many pieces of equipment share the same data model. Instead of engineering unrelated tag names for every motor, define a repeatable member set and apply consistent naming across the controller and SCADA.
Motor01.CmdStart
Motor01.CmdStop
Motor01.RunFB
Motor01.Fault
Motor01.Current_A
Motor01.Speed_Pct
Motor01.ModeAuto
The same member pattern can be reused for Motor02, Motor03 and so on. This improves faceplate engineering, alarm templates, scripting and maintenance. Where the WinCC generation supports structure types or integrated PLC structures, map the controller structure carefully and verify every member data type after compile/download.
6. Symbolic vs Absolute Addressing
| Approach | Example | Advantage | Risk |
|---|---|---|---|
| Symbolic | DB_Motor01.RunFB | Readable and easier to maintain | Requires supported symbolic integration |
| Absolute | DB10.DBX2.0 | Explicit physical address | Can break if DB layout changes |
| Internal | HMI.ScreenIndex | No PLC dependency | Not a live controller value |
For optimized data blocks, do not assume an absolute address exists in the same way as a non-optimized DB. Use the addressing method supported by the PLC/WinCC combination and keep the PLC and HMI engineering model aligned.
7. Tag Quality, Timestamp and Communication Status
A screen showing the last good numeric value can be misleading if communication has failed. For critical values, engineer visual quality indication or communication status. Distinguish a process value of zero from a tag that is bad, stale or unavailable.
- Monitor connection health and controller reachability.
- Use quality information where exposed by the WinCC interface.
- Record communication alarms separately from process alarms.
- Do not automatically overwrite a bad process value with zero.
8. Naming and Folder Strategy
A scalable project uses predictable names. One useful pattern is Area.Equipment.Signal or an equivalent hierarchy supported by the project. Keep commands, feedbacks, setpoints and process values distinguishable.
Line1.Conv01.CmdStart
Line1.Conv01.RunFB
Line1.Conv01.Fault
Line1.Conv01.Speed_SP
Line1.Conv01.Speed_PV
Use the same engineering vocabulary in PLC tags, WinCC tags, alarm text and documentation. Consistency reduces commissioning time more than clever abbreviations.
9. Step-by-Step WinCC Communication Workflow
- Confirm PLC IP address, reachable network and controller operating state.
- Create the correct WinCC communication channel/driver and PLC connection.
- Test one known Boolean and one known analog value before bulk tag creation.
- Create internal HMI tags separately from PLC process tags.
- Build a structured naming convention for repeated equipment.
- Verify data types and write permissions.
- Place tags on a diagnostic screen showing value, quality and command status.
- Only after communication is proven, map tags into alarms, trends, recipes and scripts.
10. Practical Lab: Motor + Analog Value
Create a small test with one motor and one analog process value. The PLC should expose Motor_RunFB, Motor_Fault, Speed_SP and Temperature_PV. WinCC should also contain an internal tag named HMI_SelectedMotor.
| Tag | Type | Direction | Expected test |
|---|---|---|---|
| Motor_RunFB | PLC process tag | PLC → SCADA | Changes with controller feedback |
| Motor_Fault | PLC process tag | PLC → SCADA | Alarm/indicator follows fault bit |
| Speed_SP | PLC process tag | SCADA → PLC | PLC validation accepts valid range |
| Temperature_PV | PLC process tag | PLC → SCADA | Analog value updates continuously |
| HMI_SelectedMotor | Internal tag | WinCC only | No PLC address configured |
11. Troubleshooting WinCC Tag Communication
| Symptom | Likely cause | Check |
|---|---|---|
| All PLC tags bad | Connection/network issue | IP, route, driver, PLC state, firewall |
| Only one tag bad | Address/type mismatch | PLC symbol, DB member, WinCC type |
| Read works, write fails | Access/logic restriction | PLC permissions, command logic, write path |
| Value freezes | Connection interrupted or acquisition issue | Quality, update cycle, diagnostics |
| Structured member wrong | Layout/type mismatch | Structure definition and member mapping |
WinCC Tag Architecture Verification Lab
Hands-on lab- Use a training or test system, not a live production plant.
- Document the starting PLC/WinCC state and expected result.
- Verify communication and backups before applying engineering changes.
Prove the connection
Read one Boolean and one analog PLC value before bulk engineering.
Separate ownership
Create one internal tag and confirm it has no PLC address.
Build repeated structure
Map a motor signal set using consistent member names.
Test safe writes
Write a bounded speed setpoint through PLC validation logic.
Frequently Asked Questions
What is an internal tag in WinCC?
An internal tag is owned by WinCC Runtime and has no PLC communication address. Use it for HMI-only state, temporary values and local script logic.
What is a direct tag in WinCC?
In this guide, a direct tag means a WinCC process tag mapped directly to a PLC address or symbolic PLC item. Exact terminology differs by WinCC generation.
When should structured tags be used?
Use structured organization when repeated equipment shares the same signal model, such as multiple motors, valves, drives or tanks.
Should I use symbolic or absolute PLC addressing?
Prefer symbolic addressing where the PLC and WinCC combination supports it. Absolute addressing can be valid but is more sensitive to DB layout changes.
Why is tag quality important?
Quality distinguishes a true process value from a stale or unavailable value caused by communication failure.
