HMI Engineering · Technical Blog

HMI Sequence Status Screen: Step Number, Waiting-For Text and Cycle Diagnostics in TIA Portal

When a machine stops without an alarm, it is waiting in a step. This lesson builds a sequence status screen that says which step, what it is waiting for and for how long: a drilling station sequence in SCL with wait codes, step watchdogs and cycle data, the TP700 screen with every object specified, and a live simulator.

2,500+ engineers trained 4.9/5 Google rating 21+ years, Chinchwad, Pune Next batch: contact for dates
Quick answer

A sequence status screen shows the active step number and name, the condition the step is waiting for, the step time against a watchdog limit, and cycle data. In TIA Portal, write the step, a wait code and the step time from the sequence FB into an HMI interface DB, map step and wait code to text lists on the panel, and highlight the active step with an appearance animation.

  • "Waiting for B5 slide bottom" beats "Step 30" – always publish what the step is waiting for.
  • Give machine-driven steps a watchdog so a stuck step becomes an alarm, not silence.
  • Number steps in tens and keep step names in one text list shared by PLC comments and HMI.

Why a Sequence Status Screen Matters

Most machines run as a step sequence: clamp, drill down, drill up, unclamp, repeat. When such a machine stops without an alarm, it is almost always waiting in a step for a condition that never comes – a sensor that did not switch, a cylinder that did not reach its end, a part that was not loaded. Without a sequence screen, finding that condition means opening the PLC program online. With a good sequence screen, the operator reads it directly: Step 30 DRILL DOWN – Waiting: slide at bottom (B5) – 9.2 / 8.0 s.

What the Sequence Screen Must Show

ElementWhy
Active step number and nameWhere the machine is in its cycle
Waiting-for textThe exact transition condition that is missing, named by sensor or command
Step time against a watchdogShows whether the wait is normal or too long; raises an alarm when exceeded
Step chain overviewContext: which steps are done and what comes next
Last cycle time and part countPerformance at a glance and a first hint of slow cylinders or blunt tools
Mode and commandsAUTO / STEP, START, STOP at end of cycle, RESET, NEXT for commissioning

The screen is a Level 2 display in the HMI display hierarchy, and follows the same grey-when-normal colour rules.

Example: Drilling Station Sequence

A simple drilling station clamps a part, drills it with a vertical slide and releases it. The sequence has seven steps; four of them are driven by the machine and get a watchdog time, three wait for the operator or for home position and have none.

Drilling station sequence: seven steps from INIT to COMPLETE with their transition conditionsSteps 0 INIT, 10 READY, 20 CLAMP, 30 DRILL DOWN, 40 DRILL UP, 50 UNCLAMP and 60 COMPLETE in a loop; each arrow is labelled with the sensor or command that allows the transition, and steps 20 to 50 have a watchdog time.0INITB4·B310READYSTART·B120CLAMPwatchdog 3 sB230DRILL DOWNwatchdog 8 sB540DRILL UPwatchdog 6 sB450UNCLAMPwatchdog 3 sB360COMPLETENOT B1 (part removed) → back to 10Steps numbered in tens so a new step (e.g. 35 chip blow-off) can be inserted later without renumbering the HMI text lists.
Figure 1 – Drilling station sequence with transition conditions and watchdog times.
StepName (text list TL_Step)Outputs activeTransition to next stepWait codeWatchdog
0INIT – home positionAll outputs offB4 slide top AND B3 clamp open1 / 2–
10READY – wait for startAll outputs offSTART latched AND B1 part present3 / 4–
20CLAMPY1 clamp closeB2 clamp closed53 s
30DRILL DOWNY1, K2 drill motor, Y2 slide downB5 slide bottom68 s
40DRILL UPY1, K2, slide upB4 slide top76 s
50UNCLAMPY1 offB3 clamp open83 s
60COMPLETE – remove partAll outputs off; count cycleNOT B1 part removed9–

Station I/O

The station follows the same IO mapping rule as the alarm lesson: %I only in FC_InputMapping, %Q only in FC_OutputMapping.

PLC tagAddressDeviceDB_IO / output
B1_PartPresent%I3.0Inductive sensor, part in fixtureDB_IO.B1_PartPresent
B2_ClampClosed%I3.1Cylinder reed switch, clamp closedDB_IO.B2_ClampClosed
B3_ClampOpen%I3.2Cylinder reed switch, clamp openDB_IO.B3_ClampOpen
B4_SlideTop%I3.3Limit switch, slide topDB_IO.B4_SlideTop
B5_SlideBottom%I3.4Limit switch, slide bottom (drill depth)DB_IO.B5_SlideBottom
Y1_Clamp%Q1.0Monostable valve, 1 = clamp closedfrom DB_SeqOut.Y1_Clamp
Y2_SlideDown%Q1.1Monostable valve, 1 = slide downfrom DB_SeqOut.Y2_SlideDown
K2_Drill%Q1.2Drill motor contactorfrom DB_SeqOut.K2_Drill

PLC Side: DB_Seq Interface and FB_DrillSeq

Create a global data block DB_Seq as the HMI interface: Step (Int), WaitCode (Int), StepTime_s and StepMax_s (Real), CycleTimeLast_s (Real), CycleCount (DInt), Mode_Auto (Bool), the command bits Cmd_Start, Cmd_StopEOC, Cmd_Reset, Cmd_Next (Bool) and Alarms (Word). Outputs go to DB_SeqOut. Then write the sequence as an SCL function block with a CASE statement:

// FB_DrillSeq – called in OB1 after FC_InputMapping, before FC_OutputMapping
// STAT: Step, StepOld, Wait : Int;  StartReq, StopReq, NextOld, Go : Bool;
//       StepMax : Time;  tStep, tCycle : TON_TIME;

// ---- step timer: restarts on every step change and on RESET
#tStep(IN := (#Step = #StepOld) AND NOT "DB_Seq".Cmd_Reset, PT := T#1H);
#tCycle(IN := #Step >= 20, PT := T#1H);
#StepOld := #Step;

// ---- commands
IF "DB_Seq".Cmd_Reset THEN "DB_Seq".Alarms.%X0 := FALSE; END_IF;
IF "DB_Seq".Cmd_Start THEN #StartReq := TRUE; #StopReq := FALSE; END_IF;
IF "DB_Seq".Cmd_StopEOC THEN #StopReq := TRUE; END_IF;
#Go := ("DB_Seq".Mode_Auto OR ("DB_Seq".Cmd_Next AND NOT #NextOld))
       AND NOT "DB_Seq".Alarms.%X0;              // no transition while timed out
#NextOld := "DB_Seq".Cmd_Next;

// ---- sequence
#Wait := 0;
CASE #Step OF
    0:  // INIT – home position
        IF NOT "DB_IO".B4_SlideTop THEN #Wait := 1;
        ELSIF NOT "DB_IO".B3_ClampOpen THEN #Wait := 2;
        ELSE #Step := 10;
        END_IF;
    10: // READY
        IF #StopReq THEN #StartReq := FALSE; #StopReq := FALSE; END_IF;
        IF NOT #StartReq THEN #Wait := 3;
        ELSIF NOT "DB_IO".B1_PartPresent THEN #Wait := 4;
        ELSIF NOT #Go THEN #Wait := 10;
        ELSE #Step := 20;
        END_IF;
    20: // CLAMP
        IF NOT "DB_IO".B2_ClampClosed THEN #Wait := 5;
        ELSIF NOT #Go THEN #Wait := 10;
        ELSE #Step := 30;
        END_IF;
    30: // DRILL DOWN
        IF NOT "DB_IO".B5_SlideBottom THEN #Wait := 6;
        ELSIF NOT #Go THEN #Wait := 10;
        ELSE #Step := 40;
        END_IF;
    40: // DRILL UP
        IF NOT "DB_IO".B4_SlideTop THEN #Wait := 7;
        ELSIF NOT #Go THEN #Wait := 10;
        ELSE #Step := 50;
        END_IF;
    50: // UNCLAMP
        IF NOT "DB_IO".B3_ClampOpen THEN #Wait := 8;
        ELSIF NOT #Go THEN #Wait := 10;
        ELSE
            "DB_Seq".CycleTimeLast_s := DINT_TO_REAL(TIME_TO_DINT(#tCycle.ET)) / 1000.0;
            "DB_Seq".CycleCount := "DB_Seq".CycleCount + 1;
            #Step := 60;
        END_IF;
    60: // COMPLETE – operator removes the part
        IF "DB_IO".B1_PartPresent THEN #Wait := 9;
        ELSE #Step := 10;
        END_IF;
    ELSE
        #Step := 0;
END_CASE;

// ---- watchdog per step (0 = no watchdog for operator-driven steps)
CASE #Step OF
    20, 50: #StepMax := T#3S;
    30:     #StepMax := T#8S;
    40:     #StepMax := T#6S;
    ELSE    #StepMax := T#0S;
END_CASE;
IF #StepMax > T#0S AND #tStep.ET > #StepMax THEN
    "DB_Seq".Alarms.%X0 := TRUE;                   // HMI discrete alarm: step timeout
END_IF;

// ---- outputs (written to DB_SeqOut, mapped to %Q in FC_OutputMapping)
"DB_SeqOut".Y1_Clamp     := #Step >= 20 AND #Step <= 40;
"DB_SeqOut".Y2_SlideDown := #Step = 30;
"DB_SeqOut".K2_Drill     := (#Step = 30 OR #Step = 40) AND NOT "DB_Seq".Alarms.%X0;

// ---- publish status for the HMI
"DB_Seq".Step       := #Step;
"DB_Seq".WaitCode   := #Wait;
"DB_Seq".StepTime_s := DINT_TO_REAL(TIME_TO_DINT(#tStep.ET)) / 1000.0;
"DB_Seq".StepMax_s  := DINT_TO_REAL(TIME_TO_DINT(#StepMax)) / 1000.0;
  • Step timer: IN := Step = StepOld is false for exactly one scan after every step change, so ET always shows time in the current step. RESET also restarts it, so a cleared timeout does not trip again immediately.
  • Wait code: each step checks its conditions in order and writes the number of the first missing one. That single integer becomes the waiting-for text on the panel.
  • Watchdog: only machine-driven steps have one; operator steps such as loading a part would otherwise raise false alarms.
  • STOP at end of cycle: the request is only acted on in step 10, so a part is never left half-drilled.
  • Interlocks: in a real machine, add the collective fault from the permissive and interlock logic to #Go and to the outputs.

HMI Side: Tags, Text Lists and the Sequence Screen

Drag DB_Seq into the HMI tag table, then create two text lists: TL_Step with the step names from the step table and TL_Wait with the wait codes below. Add one discrete alarm on DB_Seq_Alarms bit 0 with the text "Drilling station: step timeout" and an output field for the step number in the alarm text.

HMI tagTypePLC memberUsed by
DB_Seq_StepInt"DB_Seq".StepStep boxes ①, step number and text ②
DB_Seq_WaitCodeInt"DB_Seq".WaitCodeWaiting-for field ③
DB_Seq_StepTime_s, DB_Seq_StepMax_sReal"DB_Seq".StepTime_s, .StepMax_sStep time bar and text ④
DB_Seq_CycleTimeLast_sReal"DB_Seq".CycleTimeLast_sLast cycle ⑤
DB_Seq_CycleCountDInt"DB_Seq".CycleCountCycle count ⑥
DB_Seq_Mode_AutoBool"DB_Seq".Mode_AutoMode text ⑦, AUTO/STEP button ⑪
DB_Seq_Cmd_Start, _Cmd_StopEOC, _Cmd_Reset, _Cmd_NextBool"DB_Seq".Cmd_…Buttons ⑧ ⑨ ⑩ ⑫
DB_Seq_AlarmsWord"DB_Seq".AlarmsDiscrete alarm, bit 0 = step timeout
WaitCodeText list TL_Wait
0Transition in progress
1Waiting: slide at top (B4)
2Waiting: clamp open (B3)
3Waiting: START command
4Waiting: part present (B1)
5Waiting: clamp closed (B2)
6Waiting: slide at bottom (B5)
7Waiting: slide at top (B4)
8Waiting: clamp open (B3)
9Waiting: part removed (B1)
10Waiting: NEXT (step mode)
Sequence status screen layout on an 800 by 480 TP700 Comfort panelHeader and alarm line from the template, a row of seven step boxes with the active step highlighted, step number and text, a waiting-for message, a step time indicator with watchdog limit, cycle data, mode and command buttons, and the navigation bar.Drilling station · SequenceNo active alarms16/10/2026 11:220INIT10READY20CLAMP30DRILL DOWN40DRILL UP50UNCLAMP60COMPLETEActive step30DRILL DOWNWaiting forWaiting: slide at bottom (B5)Step time / watchdog4.0 / 8.0 sLast cycle14.2 sCycle count1 248ModeAUTOSTARTSTOP END OF CYCLERESETAUTO / STEPNEXT STEPOverviewSequenceAlarmsDiagnosticsTrends123456789101112
Figure 2 – Sequence status screen on an 800 × 480 TP700 Comfort panel. Numbers match the object table.
#ObjectKey propertiesTag / event
①7 rectangles + text fields Step_00 … Step_60, 72 × 44 px at y 60Appearance animation, type Range on the step number: value = this box's step → fill #334155, text white; other values → white fillDB_Seq_Step
②Output field (step number) + symbolic I/O field (step name)Symbolic field mode Output, text list TL_Step, 20 px boldDB_Seq_Step
③Symbolic I/O field 520 × 30 pxMode Output, text list TL_WaitDB_Seq_WaitCode
④Bar (or rectangle with horizontal size animation) + red limit line + output fieldBar with process value = step time and maximum = watchdog of the active step (if your panel version cannot link the maximum to a tag, use a fixed 10 s scale and place the red line with a movement animation); text "x.x / y.y s"DB_Seq_StepTime_s, DB_Seq_StepMax_s
⑤ ⑥ ⑦Output fieldsLast cycle format 99.9 s; count with thousands separator; mode via text list AUTO / STEPTags above
⑧Button STARTAuthorisation: OperatorPress: SetBit, Release: ResetBit DB_Seq_Cmd_Start
⑨Button STOP END OF CYCLEFinishes the current part, then stops in step 10Press/Release on DB_Seq_Cmd_StopEOC
⑩Button RESETClears the step timeout after the cause is fixedPress/Release on DB_Seq_Cmd_Reset
⑪Button AUTO / STEPText from mode; authorisation: MaintenanceClick: InvertBit DB_Seq_Mode_Auto
⑫Button NEXT STEPVisible / operable only in STEP mode (visibility animation on Mode_Auto = 0)Press/Release on DB_Seq_Cmd_Next

Header, alarm line and navigation come from the screen template, built exactly as in Build the same HMI screens in TIA Portal. Button behaviour and status lamps are covered in HMI buttons, lamps and auto/manual mode.

Interactive Simulator: Drilling Station Sequence and Status Screen

The station on the left is animated from the same logic as FB_DrillSeq; the panel on the right is the sequence status screen. Load a part, press START and watch the step boxes, the waiting-for text and the step time bar. Then inject a fault and see how the screen tells you exactly where the machine is stuck.

Faults:
Drilling station
HMI · Sequence screen
Drilling station · SequenceNo active alarms
Active step
Waiting for
Step time / watchdog
Last cycle–
Cycle count0
ModeAUTO
Press START. With automatic loading on, a part is placed in the fixture and the cycle begins.

Diagnosing a Stopped Machine with the Sequence Screen

What the screen showsMeaningFirst check
Step 30, Waiting: slide at bottom (B5), time bar past the red line, step timeout alarmSlide did not reach depth in 8 sDrill blunt or feed too slow, slide jammed, B5 limit switch misaligned or wire broken
Step 20, Waiting: clamp closed (B2), timeoutClamp valve switched but sensor not seenAir pressure, clamp cylinder, B2 reed switch position on the cylinder
Step 10, Waiting: part present (B1)Machine is ready, nothing to doLoad a part; if a part is loaded, check B1 sensing distance
Step 0, Waiting: slide at top (B4)After power-up the slide is not homeJog the slide up in manual mode, check B4
Step 60, Waiting: part removed (B1)Cycle finished, operator has not unloadedRemove the part; if removed, B1 is stuck ON
Step changes but cycle time keeps increasingLong operator waits in step 10 are countedCycle time is measured from step 20 only; check the timer condition

Combine the sequence screen with a trend of cycle time over the shift to see tools wearing or cylinders slowing down; see HMI trends and data logs. For CPU-level diagnosis, use the diagnostic buffer and watch tables.

Hands-On Lab: Build the Drilling Station Sequence Status Screen

Hands-on
Before you start
  • TIA Portal with an S7-1200 or S7-1500 CPU and a TP700 Comfort panel, or PLCSIM with HMI simulation
  • The DB_IO and mapping-FC structure from the HMI alarm configuration lesson
  • Simulation only; do not test on live equipment
  • Estimated time: 90 minutes
1

Map the station I/O

Add B1 – B5 and the outputs Y1, Y2 and K2 to the PLC tag table, copy the inputs into DB_IO and the outputs from DB_SeqOut in the mapping FCs.

Every input appears once in DB_IO and every output is written only in FC_OutputMapping.
2

Create DB_Seq

Add Step, WaitCode, StepTime_s, StepMax_s, CycleTimeLast_s, CycleCount, Mode_Auto, the four command bits and the Alarms word, all accessible from HMI.

DB_Seq compiles and every member the panel needs is accessible from HMI.
3

Write FB_DrillSeq

Program the CASE sequence with wait codes, the step timer, per-step watchdogs, cycle time and counter, and call it in OB1 between the mapping FCs.

Going online, Step, WaitCode and StepTime change as you toggle the sensors in PLCSIM.
4

Create text lists and HMI tags

Add TL_Step and TL_Wait, drag DB_Seq into the HMI tag table and add the step timeout discrete alarm on DB_Seq_Alarms bit 0.

The text lists show readable names for every step and wait code.
5

Build the Sequence screen

Draw objects 1 – 12 from the layout figure on the screen template, with the appearance animations and button events from the object table.

The active step box is dark, the rest white, and the waiting-for text always names a sensor or command.
6

Test every wait and timeout

Run cycles in PLCSIM or the simulator, block B5 to force a step 30 timeout, recover with RESET, and step through a full cycle in STEP mode.

A blocked B5 raises the step timeout after 8 s, RESET restarts the timer, and STEP mode needs NEXT for every transition.
Checkpoint—how to know you did it right

From the sequence screen alone, anyone can say which step the machine is in, what it is waiting for, whether it has waited too long, and how long the last cycle took.

Frequently asked questions

What is an HMI sequence status screen?

It is a screen that shows where a step sequence is: the active step number and name, what the step is waiting for, how long it has been waiting compared with its watchdog time, and cycle data such as last cycle time and part count.

Why number sequence steps in tens?

Steps 0, 10, 20 … leave room to insert a new step such as 35 later without renumbering the PLC code, the HMI text lists and the documentation.

How do I show which condition a step is waiting for?

In each step, write a wait code that names the first missing transition condition, and show it on the HMI with a symbolic I/O field linked to a text list, for example Waiting: slide at bottom (B5).

What is a step watchdog?

A maximum time for a machine-driven step. If the step time exceeds it, the PLC raises a step timeout alarm and blocks further transitions, so a jammed axis or failed sensor is reported instead of the machine silently waiting.

How do I measure step time in TIA Portal?

Call a TON with IN = (Step = StepOld) and a long PT, then copy StepOld := Step. Every step change makes IN false for one scan, which resets ET, so ET is the time spent in the current step.

What is step mode on an HMI?

A commissioning mode in which each transition needs a NEXT button press as well as its normal condition, so engineers can check every step slowly. It should be protected by a maintenance authorisation.

Reviewed by Bhawesh Kumar SinghIndustrial Automation Trainer and Industry 4.0 Consultant · Softwell Automation · 21+ years industry experience

Get the full syllabus + free demo class

Share your details—a Softwell training advisor will contact you with batch dates, fees and hardware-practice options.

No spam. Used only to share course details for this enquiry.

Learn with practical industrial examples

Join live online, Pune classroom or corporate in-plant automation training.

Request Course Details
Verified learning pathway

Discuss HMI Sequence Screens

Explore practical curriculum, software, hardware and batch options for this technology.

Content reviewed: 16 October 2026

Siemens PLC & TIA Portal Learning Path

Continue with the related Siemens PLC tutorials in this practical learning series.

  1. SCL vs Ladder Logic
  2. Upload PLC Program
  3. TIA Selection Tool
  4. Analog Input Scaling
  5. PLC Counters
  6. PLC Timers
  7. Addressing & Data Types
  8. Hardware & PLC Tags
  9. OB, FB, FC & DB
☎ Call WhatsApp ✉ Email Enquire Now