Export the active step number from the PLC step sequence as an INT tag, then display it through a text list so the operator reads Filling Tank instead of Step 4. Add the missing transition condition as a second message, plus cycle time and hold reason, so a stalled machine explains itself without anyone opening TIA Portal.
- A step number alone is a diagnostic dead end; the operator needs the step name and the condition that is missing.
- Text lists turn integers into readable text and stay translatable for multilingual sites.
- Cycle time per step exposes the slow step long before it becomes a production complaint.
What the PLC Sequence Must Publish
A step sequence in the PLC moves through numbered states with defined transition conditions. To make it visible on a panel, the program has to publish a small set of status tags into the HMI interface data block.
- StepNumber: INT holding the active step.
- StepTimer: time elapsed in the current step.
- BlockingCondition: INT identifying which transition condition is not satisfied.
- CycleTime: duration of the last complete cycle.
- HoldReason: INT for paused, aborted, waiting for operator, or waiting for upstream machine.
The blocking condition tag is the one most often forgotten, and the one that saves the most time. When the sequence is waiting at step 4, the program should write the number of the missing condition so the panel can name it. Building the sequence itself is covered in PLC step sequence programming.
Keep the numbering stable between the PLC and the HMI. If step numbers are renumbered during a modification and the text list is not updated, the screen confidently displays the wrong step name, which is worse than showing nothing.
Text Lists and Readable Step Display
A text list maps values to text. Create one under Text and graphic lists, choose value or range selection, and add one entry per step.
| Value | Displayed text |
|---|---|
| 0 | Idle, waiting for start |
| 10 | Homing axes |
| 20 | Filling tank |
| 30 | Mixing, timer running |
| 40 | Discharging to line |
| 90 | Cycle complete |
| 99 | Aborted, reset required |
Number steps in tens rather than ones. When a new step has to be inserted during commissioning, it becomes step 25 and nothing else needs renumbering.
Place a symbolic I/O field on the screen in Output mode, link it to StepNumber and select the text list. Add a small numeric output field beside it showing the raw number as well, because maintenance staff and programmers often prefer the number when they are looking at the code.
Text lists are stored in the project languages, so the same screen serves an English and a regional language operator without any change to the PLC program.
Showing the Blocking Condition
Knowing the machine is at step 20 is useful. Knowing it has been at step 20 for four minutes because the level switch has not made is what actually restarts production.
In the PLC, when a transition condition is evaluated and found false, write its identifier into BlockingCondition. Then create a second text list on the panel:
| Value | Displayed text |
|---|---|
| 0 | No condition pending |
| 1 | Waiting for high level switch LS-102 |
| 2 | Waiting for inlet valve closed feedback |
| 3 | Waiting for mixer running feedback |
| 4 | Waiting for downstream conveyor ready |
| 5 | Waiting for operator confirmation |
Display this immediately under the step text, in a slightly smaller font, and make it visible only when the value is not zero using a visibility animation. On a healthy machine the line stays hidden; when the cycle stalls it appears with the answer.
Build a full sequence screen in class
Practical Siemens PLC and HMI sessions covering step sequences, diagnostics and operator screens.
Cycle Time and Step Diagnostics
Once the step number is on the screen, adding time data costs very little and produces real production insight.
- Current step time: shows how long the sequence has been in the present step.
- Last cycle time: the duration of the previous complete cycle.
- Step time exceeded: a warning when a step runs longer than its expected maximum.
- Slowest step: a small table of maximum recorded times per step.
The step-time-exceeded warning is worth building in the PLC as a discrete alarm rather than only as a screen element, so it is archived and appears in the alarm history. See HMI alarm configuration for the setup.
Layout that works on a shop floor
Keep the sequence screen simple: the step name large and central, the blocking condition beneath it, times in a small block to one side, and mode plus cycle counters along the bottom. Resist the temptation to add a full machine mimic to the same screen. The sequence screen has one job, and it is read from several metres away.
The same status tags feed a SCADA overview at plant level; that version is covered in the WinCC sequence overview screen.
Hands-On Lab: Build a Sequence Status Screen
Hands-on- TIA Portal with WinCC Comfort and a panel or simulation
- A PLC step sequence with StepNumber, BlockingCondition and step timer tags
- Simulated inputs only
- Estimated time: 35 minutes
Publish the status tags
Add StepNumber, BlockingCondition, StepTimer and CycleTime to the HMI interface DB and write them from the sequence logic.
Create the step text list
Add a text list with one entry per step, numbered in tens.
Display the step
Add a symbolic I/O field in Output mode linked to StepNumber with the text list selected, plus a numeric field showing the raw value.
Add the blocking condition
Create the second text list, add a symbolic field beneath the step text and set a visibility animation for values greater than zero.
Add times and test a stall
Show step time and last cycle time, then hold a transition condition false and watch the screen.
An operator with no access to TIA Portal can look at the screen during a stall and correctly say which step is active and what the machine is waiting for.
Frequently asked questions
Why use a text list instead of separate visibility objects for each step?
A text list needs one screen object and one tag for any number of steps, is easier to maintain, and translates automatically into the other project languages.
Why number steps in tens?
So a step inserted during commissioning fits between existing steps without renumbering the whole sequence and the matching text list.
What is a blocking condition tag?
An integer the PLC writes when a transition condition is not satisfied. The panel maps it to text so the operator sees exactly which signal the sequence is waiting for.
Should step time exceeded be an alarm or just a screen value?
Make it an alarm as well. A screen value disappears when the condition clears, while an archived alarm lets a supervisor see how often the step ran long during the shift.
