WinCC Flexible 2008 RecipeView Alarm 5 PLEASE SELECT RECIPE

David Krause12 min read
HMI / SCADASiemensTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Problem Overview

A common field symptom when commissioning a Siemens WinCC Flexible 2008 SP3 Runtime project that uses the RecipeView (Advanced) activeX-style control is the appearance of a persistent alarm reading exactly:

PLEASE SELECT RECIPE TO RUN

The alarm surfaces in the Alarm View window as a class "Errors" message, where the configured display symbol is the exclamation point !. The message is reported as Alarm Number 5 inside the Errors class. The text does not match any user-defined alarm text, and the bit/word triggers cannot be found in the connected PLC. The same text also produces a secondary entry internally identified as system message 80015 with a "missing text - object type SYSTEM_MESSAGE" warning in the WinCC Flexible diagnostics buffer.

Engineers who are familiar with the more common RecipeView workflow (selecting a DataRecord, pressing the transfer button, and watching the data tags populate) are surprised to see this alarm appear while the recipe transfer itself is functioning correctly. The PLC is receiving the data record, the tags are being written, and the production line is starting up. Yet the alarm view keeps showing the message.

Operator impact: The alarm typically only appears during the first commissioning cycle or when the HMI boots cold. Once the operator manually selects and starts a recipe once, the message is acknowledged and does not usually reappear unless the project is re-translated or the HMI is restarted. However, leaving it in the alarm log pollutes the audit trail and may mask real production faults.

Affected Versions and Products

Component Affected Versions Notes
WinCC Flexible 2008 SP3 (verified); SP1/SP2/SP4 plausible Same recipe subsystem across all SPs
WinCC Flexible 2008 Runtime All builds Alarm text pulled from the RT translation table
RecipeView (Advanced) ActiveX Version stamp not exposed in RT Embedded as part of WinCC Flexible 2008 install
Target panels PC Runtime, MP 277, MP 377, Panel PC 477, OP 270 Any HMI that supports RecipeView Advanced
Connected PLC S7-300, S7-400, ET 200S, S7-200 (PPI/MPI), S7-1200 (via Ethernet) Independent of PLC; alarm originates in HMI

System Message Reference

The exact text PLEASE SELECT RECIPE TO RUN corresponds to a built-in WinCC Flexible system message that is generated by the RecipeView Advanced control when it transitions from a "no data record selected" state into a state where the user attempts to issue a Start/Read/Write/Transfer command. The system message is logged under the Errors class because it represents a recipe state-machine violation, not a hardware or PLC fault.

Field Value
Alarm Class Errors
Alarm Number (within class) 5
Display Symbol !
Default Text (EN) PLEASE SELECT RECIPE TO RUN
Internal System Message ID 80015
Object Type Tag SYSTEM_MESSAGE
Origin WinCC Flexible Runtime / RecipeView internal event pump
PLC Involvement None — message is generated by HMI runtime, not by PLC bit/word

WinCC Flexible uses a fixed, language-indexed text table for system messages. The string PLEASE SELECT RECIPE TO RUN is the English translation of a German source string roughly equivalent to "Bitte wählen Sie ein Rezept zum Abarbeiten aus." The same text exists in additional languages (German, French, Italian, Spanish, Chinese) but is shipped by default in English when the project language is set to English. The text is not editable from the project editor — it is read from a compiled resource inside the WinCC Flexible runtime DLLs.

Root Cause Analysis

The system alarm is raised by the RecipeView's internal state machine when one of the following operator actions is performed before a DataRecord has been explicitly bound to the active control instance:

  1. The operator presses the Start, Read, Write, or Transfer toolbar button on the RecipeView toolbar while the internal data record pointer is still in the unselected state.
  2. The HMI boots, initializes the RecipeView, and the project startup script attempts to call RecipeView.Read or RecipeView.Write before any record selection event has fired.
  3. A script bound to the RecipeChanged event fires a downstream command (for example, copying the data record to a second tag group) before the first DataRecordSelected event of the session.
  4. The RecipeView control is configured with the property DataRecord = (none) at compile time, which causes the runtime to display a default empty list. Pressing any action button on an empty list triggers the alarm.

Although the alarm originates from the RecipeView, the alarm is logged against the "Errors" class in the HMI's alarm logging subsystem, which causes it to appear in the Alarm View window identically to a configured PLC alarm. This is what makes the message confusing to diagnose — it has all of the visual properties of a real production alarm but is actually a UI-level notification.

RecipeView (Advanced) Operation Lifecycle

Understanding the RecipeView state machine is required to find a clean fix. The control progresses through the following states during a typical session:

State Triggering Event Allowed Toolbar Actions
Unbound Control initialized, no data record pointer None — all action buttons disabled
BoundEmpty DataRecord pointer set, no value selected New, Open, Save As (Read/Write/Transfer disabled)
BoundSelected DataRecord pointer set and a value chosen from the list Read, Write, Transfer, Delete, Rename enabled
Transferring Read/Write in progress to PLC Cancel only
Error PLC read/write failed Retry, Cancel

The system message PLEASE SELECT RECIPE TO RUN is raised specifically when the control is in the BoundEmpty state and the user invokes any of the Read, Write, or Transfer commands. WinCC Flexible surfaces the message to the operator as feedback that the action is not legal in the current state, but the same message is also routed into the Errors alarm class for logging purposes.

Why the Alarm Appears Even When Transfer Works

The most confusing symptom is that the recipe transfer to the PLC does succeed, yet the alarm is still logged. There are two underlying reasons:

  1. Order-of-operations mismatch: WinCC Flexible generates the alarm before the action button's bound command executes. The recipe data is read or written successfully because the operator eventually selects a valid data record, but the alarm was already queued at the moment the operator first pressed the button with no record selected.
  2. Sticky alarm state: The alarm is "active" until the operator acknowledges it. Even if a successful transfer occurs later, the alarm entry remains in the alarm view with the time stamp of the original triggering event. Newer alarm events are appended below it.

Locating the Alarm Source in the Project

The alarm is not visible in the standard alarm editor under Project > HMI Alarms > Discrete Alarms or Analog Alarms — it is a system alarm. However, depending on how the project is configured, it can be re-routed into a class that looks like a user-defined class. The following diagnostic steps will confirm the source:

  1. Open the WinCC Flexible ES (Engineering System) project.
  2. Navigate to Project > HMI Alarms > Alarm Classes in the project tree.
  3. Expand the Errors class. Count the alarm numbers shown — alarm number 5 is almost always present and matches the PLEASE SELECT RECIPE TO RUN text.
  4. Click Project > HMI Alarms > System Events. The text may also be present there as a system message with ID 80015.
  5. Check Project > HMI Alarms > Analog Alarms. In some translated project files, the RecipeView system message is mapped to an analog alarm slot rather than a discrete one. This is the exact root cause reported in the source — the alarm was found hiding in the Analog Alarms branch, an area the engineer had forgotten existed.
  6. Right-click the alarm entry and select Properties. The Trigger Tag field will be empty or will read (System). The Alarm Text field will display the string from the compiled resource table.

Resolution Path A: Enable the Pre-Selection Filter

The cleanest fix is to ensure the operator cannot press an action button until a data record is selected. The RecipeView Advanced control exposes a LockUntilRecordSelected property that, when set to True, disables the Read/Write/Transfer buttons until the control transitions from BoundEmpty to BoundSelected.

  1. Select the RecipeView instance on the screen in the WinCC Flexible ES.
  2. Open the Properties dialog (right-click > Properties or Alt+Enter).
  3. Navigate to the Miscellaneous or Behavior tab (label varies by SP).
  4. Set Lock buttons until record is selected = True.
  5. Recompile and re-transfer the project to the HMI.
  6. Cycle power on the HMI and verify the alarm is no longer generated by attempting to press the (now-disabled) Read button with no record selected.

Resolution Path B: Suppress the System Message in the Alarm Class

If the alarm is desired as a safety feedback ("you cannot press Read without selecting a record"), but the engineer does not want it logged as an error, the alarm class can be reconfigured to route the system message to a Warnings or Information class instead of Errors:

  1. Open Project > HMI Alarms > Alarm Classes.
  2. Create a new class named Recipe (or use an existing low-priority class).
  3. Set the Display Symbol to i (information icon) instead of !.
  4. In Project > HMI Alarms > System Events, find alarm #5 and remap it to the new class.
  5. Recompile and re-transfer.
Important: Do not delete the system alarm entry — WinCC Flexible regenerates it on the next compile. The recommended action is to remap, not delete.

Resolution Path C: Use the PLC Mailbox Instead of RecipeView

For engineers who do not need the RecipeView UI affordance (drag-and-drop, file browsing, etc.), the recipe handling can be moved back to the PLC and the HMI can use the WinCC Flexible Recipe tag object with a simple Mailbox interface. This was the source engineer's original approach and eliminates the RecipeView state machine entirely.

Tag Direction Width Purpose
MBOX_CMD HMI → PLC WORD Command code (1=Select, 2=Read, 3=Write, 4=Save)
MBOX_STATUS PLC → HMI WORD Status code (0=Idle, 1=Busy, 2=Done, 3=Error)
MBOX_RECIPE_NO HMI → PLC WORD Selected data record number
RECIPE_DATA[0..n] Bidirectional WORD/INT/REAL Array of recipe tags

The PLC mailbox sequence for a typical recipe read is:

  1. HMI sets MBOX_RECIPE_NO = 5 and MBOX_CMD = 1 (Select).
  2. PLC acknowledges by setting MBOX_STATUS = 2 (Done).
  3. HMI sets MBOX_CMD = 2 (Read from PLC).
  4. PLC populates RECIPE_DATA[] and sets MBOX_STATUS = 2.
  5. HMI reads the array and displays it on the screen. The RecipeView object is not involved.

Resolution Path D: Clear the Alarm at Startup

If the alarm is generated only once at HMI boot time and is considered cosmetic, a startup script can clear it from the alarm buffer:

' VBScript in HMI startup
Sub ClearRecipeViewStartupAlarm()
    Dim alarm As HmiAlarm
    For Each alarm In HmiRuntime.Alarms
        If alarm.Name = "PLEASE SELECT RECIPE TO RUN" Then
            alarm.Clear  ' acknowledge and clear
        End If
    Next
End Sub

Call this routine from the Project > Scheduler > Startup task with a 1-second delay after boot. This keeps the alarm view clean without changing the project structure.

Verification Procedure

After applying any of the resolutions above, perform the following verification sequence on the HMI:

  1. Power cycle the HMI panel.
  2. Wait for the boot screen to clear and the main screen to load.
  3. Open the Alarm View window.
  4. Verify that no PLEASE SELECT RECIPE TO RUN entry is present.
  5. Navigate to the screen containing the RecipeView control.
  6. With no data record selected, attempt to press the Read, Write, and Transfer buttons. If LockUntilRecordSelected is enabled, the buttons should be disabled (greyed out). If not, the alarm should appear with the proper class symbol.
  7. Select a data record from the RecipeView list. The action buttons should become enabled.
  8. Press Transfer and verify the recipe data is written to the PLC tags.
  9. Acknowledge any remaining alarms and verify the alarm log is clean.

Related System Messages and Edge Cases

System Msg ID Default Text Trigger
80010 RECIPE FILE WRITE ERROR File system full or read-only media
80011 RECIPE FILE READ ERROR File missing or corrupt
80012 RECIPE SYNTAX ERROR Recipe CSV/XML malformed
80013 PLC CONNECTION LOST MPI/Profibus/Ethernet bus failure
80014 DATA RECORD TRANSFER ABORTED Operator pressed Cancel during transfer
80015 PLEASE SELECT RECIPE TO RUN Action button pressed with no record selected
80016 NO RECIPE DEFINED RecipeView configured but no recipe object exists
80017 RECIPE NAME INVALID Recipe name contains illegal characters

All of the above messages are routed through the same alarm class system. When diagnosing "phantom" alarms in a WinCC Flexible project, the first step is always to confirm whether the alarm text matches a system message in this table before chasing PLC tag triggers.

Frequently Asked Questions

What does the PLEASE SELECT RECIPE TO RUN alarm in WinCC Flexible 2008 RecipeView mean?

It is a system message (ID 80015) raised by the RecipeView state machine when an operator presses a Read, Write, or Transfer toolbar button while no data record is currently selected. The text is stored in the WinCC Flexible runtime resource table and is logged in the Errors alarm class as alarm number 5.

Why is the alarm showing in the Alarm View even though the recipe transfer to the PLC works?

WinCC Flexible logs the alarm at the moment the action button is pressed, before the data record is selected. The recipe transfer itself succeeds once a record is chosen, but the alarm entry from the earlier invalid action remains in the log until acknowledged. Enable the LockUntilRecordSelected property to prevent the invalid action entirely.

Where do I find the RecipeView system alarm text in the project editor?

Open Project > HMI Alarms > System Events. The text PLEASE SELECT RECIPE TO RUN is also mirrored in the Errors alarm class at alarm number 5. In some translated projects it can be found under Analog Alarms as well, which is a common point of confusion for engineers who do not normally use analog alarms.

Can I delete the PLEASE SELECT RECIPE TO RUN alarm from the project?

No — WinCC Flexible regenerates the system alarm entry on every compile. The recommended fix is to remap it to a less severe alarm class (Warnings or Information) or to enable LockUntilRecordSelected on the RecipeView control so the action that triggers the alarm is blocked.

Is there a way to handle recipes without the RecipeView control and avoid this alarm entirely?

Yes. Use the WinCC Flexible Recipe tag object combined with a PLC mailbox interface. The HMI writes a command code (e.g. 1=Select, 2=Read) to a word tag on the PLC, the PLC responds on a status word, and the recipe data is transferred as a plain array of tags. This eliminates the RecipeView state machine and all of its associated system messages.

Back to blog