TIA Portal · WinCC · Alarm Engineering

From TIA Portal to WinCC: Configuring Alarms & Runtime Messages Step-by-Step

Engineer alarms from the PLC condition through WinCC Runtime: alarm bits, priorities, messages, acknowledgement behavior, timestamps and commissioning tests.

PLC alarm logic WinCC alarm mapping Runtime messages Commissioning & diagnostics

Learning Overview

Part 1: PLC alarm conditionsPart 2: WinCC alarm configurationPart 3: Runtime commissioningEstimated time: 150 minutes

Prerequisites / What You’ll Need

  • TIA Portal project with a Siemens PLC or simulation environment
  • WinCC Runtime project with an established PLC connection
  • Defined alarm philosophy or at minimum severity classes
  • A test plan that can safely force/simulate alarm conditions
Design principle

The PLC should determine whether the process condition is abnormal. WinCC should present, classify, acknowledge and record that condition. Keep safety trips and machine protection in the controller; do not rely on SCADA acknowledgement logic for protection.

  • Create stable alarm conditions in PLC logic before configuring messages in WinCC.
  • Separate process alarm state from HMI acknowledgement state unless the process specification explicitly requires a PLC handshake.
  • Use consistent severity, priority, text and equipment naming across the plant.
  • Test activation, return-to-normal, acknowledgement and communication loss as separate cases.

Practical WinCC Engineering Guide

This technical guide focuses on TIA Portal alarm logic, WinCC alarm configuration and hands-on Siemens PLC / SCADA commissioning practices.

1. Alarm Engineering Model: PLC Condition → WinCC Message

A useful alarm path is Process Condition → PLC Alarm Bit → WinCC Tag → Alarm Message → Operator Action → History. The PLC owns the condition because it has deterministic access to the process. WinCC owns presentation and operator interaction.

Examples include high-high temperature, VFD fault, low pressure, communication failure, motor overload and permissive failure. Each condition should have a clear setpoint or logical cause and a defined return-to-normal rule.

2. Create Alarm Conditions in TIA Portal

Keep alarm logic readable and group related alarm bits in a dedicated interface DB. The following SCL pattern is deliberately simple and can be translated to LAD/FBD:

// Example alarm conditions
AlarmDB.HighHighTemp := Temp_Act >= Temp_HH_SP;
AlarmDB.VFDFault     := VFD01_Fault;
AlarmDB.LowOilLevel  := Oil_Level_Pct <= Oil_Low_SP;
AlarmDB.IOCommFault  := NOT RemoteIO_Healthy;

Do not add artificial latching automatically. Decide whether an alarm should follow the live condition, latch until reset, or require a PLC reset based on process risk and the alarm philosophy.

3. Build a Dedicated PLC Alarm Interface

PLC memberMeaningWinCC use
HighHighTempTemperature above HH limitCritical process alarm
VFDFaultDrive reports faultEquipment alarm
LowOilLevelOil level below low limitProcess warning/alarm
IOCommFaultRemote I/O communication unhealthySystem/maintenance alarm

A dedicated alarm interface makes SCADA mapping predictable and avoids searching through unrelated DBs during commissioning.

4. Configure Alarm Messages in WinCC

  1. Create or verify the PLC connection.
  2. Create WinCC process tags for the alarm bits or use integrated symbolic tags where supported.
  3. Open the WinCC alarm/message editor appropriate to the product generation.
  4. Create the message and select the trigger tag/bit.
  5. Assign message class, priority, text and optional process value.
  6. Configure acknowledgement behavior according to the alarm philosophy.
  7. Place an alarm control/message view on the Runtime screen.
  8. Activate Runtime and test one alarm end-to-end before bulk import.
Version note: WinCC Classic, WinCC Professional/Advanced and WinCC Unified use different engineering screens and terminology. The engineering principles are the same, but menu names and alarm object types must match your installed version.

5. Alarm Classes, Priority and Acknowledgement

Do not use the same priority for every event. A practical classification may separate critical trips, process alarms, warnings, maintenance/system events and operator information.

ClassExampleTypical operator expectation
CriticalFurnace overtemperature tripImmediate action
Process alarmLow pressureInvestigate/correct
WarningApproaching high temperatureMonitor/prevent escalation
SystemRemote I/O communication faultMaintenance response
InformationBatch completeNo alarm acknowledgement required

Acknowledgement confirms that an operator has seen the alarm; it does not mean the process condition is healthy. Keep “active”, “returned” and “acknowledged” states conceptually separate.

6. Runtime Messages and Operator Context

Alarm text should tell the operator what happened, where it happened and what to check. Avoid generic messages such as “Fault 27”. A better message is “Line 2 / VFD-03 fault — inspect drive fault code and motor permissives.”

Use dynamic process values in the message only when they add context, for example actual temperature at the time of alarm. Do not overload every alarm with unnecessary parameters.

7. Timestamp Strategy

For sequence analysis, the timestamp source matters. If network delay is important, controller-generated event timestamps or appropriately configured system timestamps may be required. For ordinary HMI alarm display, the WinCC Runtime timestamp may be sufficient. Define this requirement before commissioning rather than after a difficult incident.

8. Alarm Commissioning Test Sequence

  1. Record the normal state.
  2. Simulate or safely create the alarm condition.
  3. Verify PLC alarm bit.
  4. Verify WinCC tag changes with good quality.
  5. Verify message text, class and priority.
  6. Verify audible/visual indication if configured.
  7. Acknowledge and confirm acknowledgement state.
  8. Remove the abnormal condition and verify return-to-normal.
  9. Check history/archive entry.
  10. Test communication loss so stale values are not mistaken for normal process state.

9. WinCC Alarm Troubleshooting

SymptomLikely issueDiagnostic action
PLC bit changes, no alarmWrong trigger/tag mappingWatch WinCC tag and message trigger
Alarm appears but never clearsPLC condition remains trueMonitor underlying condition/setpoint
Wrong message textMessage mapping/import errorCheck alarm ID, tag and text assignment
Acknowledgement confusingState model not definedSeparate active/returned/acknowledged behavior
Alarm time appears delayedTimestamp source/communication delayConfirm time source and synchronization

10. Hands-On Alarm Lab

Create four alarm bits in a PLC DB: HighHighTemp, VFDFault, LowOilLevel and IOCommFault. Map them into WinCC, assign different priorities, commission an alarm view and document the expected active/return/acknowledge sequence for each alarm.

TIA Portal → WinCC Alarm Commissioning Lab

Hands-on lab
Before you start
  • 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.
1

Build PLC alarm interface

Create four deterministic alarm conditions in a dedicated DB.

Online watch table shows each alarm bit correctly.
2

Map WinCC messages

Create process tags and alarm messages with distinct severity.

Runtime message list shows the correct text and class.
3

Test alarm lifecycle

Activate, acknowledge, return and reactivate each condition.

Active/returned/acknowledged behavior matches the specification.
4

Verify history

Review archived message events and timestamps.

Commissioning record can reconstruct the alarm sequence.

Lab Manual: PLC Alarm Interface to WinCC in Six Stages

This lab implements the alarm interface described above with the logic in both ladder and SCL, including the acknowledgement written back by WinCC and a horn.

Lab manual flow: field input to tested HMI screenSix stages: field device and PLC tag, input mapping to DB_IO, PLC logic, HMI tags, graphics linking, and perform and test.1Field + tags%I10.2 %I10.3door, temperature2Input mappingFC_InputMapping→ DB_IO3LogicDB_AlarmIFLAD + SCL, ack4WinCC tagsalarm + ack wordsymbolic5Alarm Loggingsingle messagesack tag6Perform + testSimulatorack orderAddress rule for every lesson: %I only in FC_InputMapping, %Q only in FC_OutputMapping, symbolic DB members everywhere else – including the HMI.
Six-stage lab flow used in every lesson of the Softwell lab manual series.

Stage 1 – Field wiring and PLC tags

PLC tagAddressTypeDevice / comment
B701_Door_OK%I10.2BoolGuard door switch, NC, 1 = closed
B702_Temp_OK%I10.3BoolCabinet thermostat, NC, 1 = normal
H701_Horn%Q4.5BoolHorn

Stage 2 – Input mapping into DB_IO

// FC_InputMapping
"DB_IO".B701_Door_OK     := "B701_Door_OK";
"DB_IO".B702_Temp_OK     := "B702_Temp_OK";

Stage 3 – PLC logic in ladder and SCL

PLC alarm interface with acknowledgement from WinCCLadder diagram: Network 1 — Bit 0 latched until the cause is gone AND WinCC has acknowledged; Network 2 — Horn: on for every new alarm, off on any acknowledgementNetwork 1 — Bit 0 latched until the cause is gone AND WinCC has acknowledgedB701_Door_OK"DB_IO" · NC wiredAlarm.%X0"DB_AlarmIF"Alarm.%X0seal-inAck.%X0"DB_AlarmIF" (from WinCC)Network 2 — Horn: on for every new alarm, off on any acknowledgementNewAlarm"DB_AlarmIF" (edge)Horn"DB_AlarmIF"Hornseal-inAckAny"DB_AlarmIF"
Alarm latch released by the WinCC acknowledgement, and a horn that stops on acknowledgement.

The same logic in SCL – use whichever your plant standard prefers; both write the same DB members that WinCC reads:

// FC_AlarmIF – alarm word for WinCC, acknowledgement word written back by WinCC
// DB_AlarmIF: Alarm, AlarmOld, Ack : Word; NewAlarm, AckAny, Horn : Bool;
"DB_AlarmIF".Alarm.%X0 := NOT "DB_IO".B701_Door_OK OR ("DB_AlarmIF".Alarm.%X0 AND NOT "DB_AlarmIF".Ack.%X0);
"DB_AlarmIF".Alarm.%X1 := NOT "DB_IO".B702_Temp_OK OR ("DB_AlarmIF".Alarm.%X1 AND NOT "DB_AlarmIF".Ack.%X1);
"DB_AlarmIF".NewAlarm := ("DB_AlarmIF".Alarm AND NOT "DB_AlarmIF".AlarmOld) <> 16#0000;
"DB_AlarmIF".AlarmOld := "DB_AlarmIF".Alarm;
"DB_AlarmIF".AckAny   := "DB_AlarmIF".Ack <> 16#0000;
"DB_AlarmIF".Horn     := ("DB_AlarmIF".NewAlarm OR "DB_AlarmIF".Horn) AND NOT "DB_AlarmIF".AckAny;
"DB_AlarmIF".Ack      := 16#0000;                      // PLC consumes the acknowledgement

// FC_OutputMapping
"H701_Horn" := "DB_AlarmIF".Horn;

Stage 4 – Link PLC tags to WinCC

In Tag Management add the SIMATIC S7-1200, S7-1500 Channel, create a connection with the CPU IP address, then use AS Symbols to load the PLC symbols and drag the DB members you need into a tag group. The DB members must have Accessible from HMI ticked in TIA Portal. Names and menus can differ slightly between WinCC versions.

WinCC tagData typeConnection / addressUsed by
DB_AlarmIF_AlarmUnsigned 16-bitsymbolicMessage tag of each single message
DB_AlarmIF_AckUnsigned 16-bitsymbolicAcknowledgement written back per bit
DB_AlarmIF_HornBinarysymbolicHorn indicator

Stage 5 – Configure the single messages and acknowledgement

Message propertySetting
Message tag / bitDB_AlarmIF_Alarm, bit 0 (door), bit 1 (temperature)
Message classFault, acknowledgement required
Acknowledgement back to the PLCLink the message's acknowledgement tag/bit to DB_AlarmIF_Ack, or set the bit in a short action on acknowledgement – check the direction of the acknowledgement and status tags in your WinCC version's help
TextsDevice + first action, e.g. "B701 guard door open – close door, then acknowledge"

Classes, limits and flood control are covered in WinCC alarm management; the TIA panel version in HMI alarm configuration.

Stage 6Perform and Test: PLC Alarm Interface and WinCC Acknowledgement

The PLC latches each alarm until its cause is gone and WinCC has acknowledged it; the horn stops on the first acknowledgement. Try acknowledging before and after clearing the cause.

Field and PLC
WinCC Runtime · AlarmControl
Alarms.pdlHorn: off
TimeMessageState

Frequently Asked Questions

Should alarm logic be in the PLC or WinCC?

The abnormal process condition should normally be determined in the PLC. WinCC should present, classify, acknowledge and archive the alarm.

Does acknowledging an alarm clear the PLC fault?

Not necessarily. Acknowledgement only confirms operator recognition unless a separately engineered reset handshake is part of the process design.

Why does a WinCC alarm remain active after acknowledgement?

Because the underlying PLC alarm condition is still true. Active state and acknowledgement state are different.

Can alarm priorities all be the same?

Technically possible, but poor practice. Priorities should reflect consequence and required operator response.

What should be tested during alarm commissioning?

Test activation, text, priority, acknowledgement, return-to-normal, history, timestamp behavior and communication failure.

Verified learning pathway

Discuss SQL Fundamentals and Automation Training

Explore practical SQL Server, PLC/SCADA integration and industrial data training options.

Content reviewed: 4 August 2026

☎ Call WhatsApp ✉ Email Enquire Now