Fix 'Command Now Not Possible' Error in WinCC Flexible 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

Fixing "Command Now Not Possible!" in WinCC Flexible 2008 Recipe Views

When a WinCC Flexible 2008 SP2 Recipe View returns the status message Command now not possible! for New record, Save, To PLC, or From PLC, the runtime is rejecting the operator action because the recipe state machine, the data record area pointer, or the HMI/PLC connection is in an invalid state. This article consolidates the field-verified recovery sequence for the MP 277 10" Touch (firmware 1.1.3.0) and the broader SIMATIC HMI Comfort/Operator panel family, and documents the underlying area pointer and job mailbox mechanics so the error does not reappear after a project rebuild.

1. Problem Scope and Affected Versions

Item Value
Engineering software SIMATIC WinCC flexible 2008 SP2 (also observed on SP3/SP4/SP5)
Controller engineering STEP 7 V5.4 SP3 (also valid for V5.5, TIA Portal V13+ with WinCC Comfort/Advanced)
HMI hardware MP 277 10" Touch (6AV6 643-0CD01-1AX1), firmware 1.1.3.0
Related panels MP 270B, MP 277, MP 370, MP 377, TP 177B, OP 270, OP 277
Error text "Command now not possible!" in status bar of Recipe View
Affected buttons New record, Save, Save As, Transfer to PLC, Transfer from PLC, Modify
Non-affected buttons Delete record (always enabled, even when other commands are disabled)
The status string "Command now not possible!" is generated internally by the WinCC flexible runtime when the recipe tag, the data record number, or the data record area pointer is not consistent with the current operator input. It is not a free-text alarm; it is a fixed string tied to runtime state machine REC_STATE_IDLE / REC_STATE_BUSY transitions.

2. Root Cause Analysis

The Recipe View on a WinCC flexible panel is a state-driven control. Each command button posts a request that the runtime translates into either a local memory operation (new record, save) or a remote data record transfer (To PLC / From PLC). The runtime silently refuses a command when any of the following preconditions fail:

  1. Data record area pointer is busy. The Data Record area pointer is locked while the controller has not yet acknowledged the previous transfer (RDY bit not set).
  2. Recipe number tag is invalid. The integer tag that carries the active record number has not been written, has overflowed, or is mapped to a non-existent record.
  3. Project has not been recompiled. Removing or replacing a Recipe View invalidates the compiled recipe database; the runtime still loads the old *.fwx image until a Rebuild All is performed.
  4. Recipe is not synchronized with the PLC. The recipe tags in the HMI project point at PLC addresses that do not exist in the current STEP 7 hardware configuration (DB number, byte offset, or length mismatch).
  5. Display mode is wrong. When the Recipe View is set to Single record display instead of Display table, the runtime hides internal columns and disables write-back commands because the operator has no visible row to commit.

Diagnostic decision path:

  • If only Delete record works -> the area pointer is healthy; the problem is the row/commit state. Check Display mode and active row selection.
  • If Delete record also fails -> the data record area pointer is locked or the recipe tag is invalid. Check PLC connection and area pointer configuration.

3. Preconditions Before Troubleshooting

  • WinCC flexible 2008 SP2 (or later) installed with administrative rights on the engineering PC.
  • STEP 7 V5.4 SP3 (or later) project with the HMI station integrated, or a standalone HMI project with the PLC configured as a partner.
  • USB / MPI / PROFIBUS / Ethernet route from PC to the MP 277 panel (for transfer of the rebuilt *.fwx).
  • Recipe tags exist in the PLC data block and are at the offsets configured under Recipes > Properties > Tags.
  • Data record area pointer and (optionally) job mailbox area pointer configured under Connections > Area Pointers.

4. Step-by-Step Recovery Procedure

4.1 Verify and reset the Data Record area pointer

  1. Open the WinCC flexible project and select Connections > Area Pointers.
  2. Confirm that the Data record area pointer is enabled and points to a valid DB in the S7-300/S7-400 PLC (or the equivalent area in S7-200/LOGO!).
  3. The default layout is:
    Offset Name Width Direction
    0 Job number WORD HMI → PLC
    2 Record number WORD HMI → PLC
    4 Field number WORD HMI → PLC
    6 Step number WORD HMI → PLC
    8 Status / Error WORD PLC → HMI
  4. In the PLC program, force the Status/Error word (offset 8) to 0 and the Job number word (offset 0) to 0 to release the area pointer. A non-zero Status word tells the HMI runtime that a previous transfer is still in progress, which is the most common reason Command now not possible! persists.
  5. Perform an online → download to the panel after the change.

4.2 Confirm the Recipe Tag and Record Number

  1. Open Recipes > [RecipeName] > Properties > Tags.
  2. Verify the Recipe number tag is a 16-bit INT (WORD) and that its initial value (default record) is a valid index (1 .. number_of_records). A value of 0 disables all write commands because the runtime cannot address record 0.
  3. Verify the Recipe data record tag list is fully populated; a missing tag silently marks the recipe as invalid and disables transfer commands.
  4. If the recipe number tag is mapped to DB_RECIPE_NO, write a value of 1 in the PLC or HMI tag view before pressing New record or To PLC.

4.3 Force a full Rebuild and Re-transfer

  1. In the WinCC flexible project, choose Project → Compiler → Rebuild All. This regenerates the recipe database, the area pointer table, and the *.fwx runtime image.
  2. Stop the runtime on the panel (transfer mode or Start → Control Panel → OP → Start Runtime toggle).
  3. Transfer the rebuilt project (delta or complete) to the panel via Ethernet, USB, MPI, or PROFIBUS.
  4. Recycle power on the MP 277 to clear the recipe cache.
A delta transfer of a recipe change is not always sufficient on MP 277 firmware 1.1.x. Recipe structure changes require a complete transfer (transfer mode → *.fwx + recipes) or a manual Reset to factory settings on the panel before the new recipe structure becomes active.

4.4 Synchronize the Recipe with the PLC

  1. Open the recipe, select Properties > Synchronization and enable Synchronize with PLC.
  2. Set the Coordination area pointer if not already configured (used for life-sign between HMI and PLC).
  3. Confirm that the same DB number and offsets exist in the S7 project. A typical mapping for a 10-element recipe of 20 bytes each is:
    PLC address Recipe tag Length
    DB100.DBX0.0 – 19.7 Element 1 20 bytes
    DB100.DBX20.0 – 39.7 Element 2 20 bytes
    DB100.DBX200.0 – 219.7 Element 10 20 bytes
    DB100.DBW220 Recipe number 2 bytes
    DB100.DBW222 Record number (return) 2 bytes

4.5 Adjust the Display Mode of the Recipe View

If only the row-level commands (New record, Save, To PLC, From PLC) are disabled, the cause is the General > Display setting of the Recipe View. Two valid display modes exist:

Display mode Visible elements Command availability
Display table All records as a table; row selector active All row-level commands enabled
Single record (no table) One record at a time; no row list Only Delete record enabled; New/Save/Transfer require a row context

To work without showing the full table, keep the Recipe View set to Display table but hide the table by setting General > Visible to No, or use a separate screen with the table visible only in service mode. An alternative is to drive the transfer from the PLC using the job mailbox (see Section 5).

5. Programmatic Transfer with Job Mailbox 69 / 70

When you do not want the operator to interact with the Recipe View at all, you can transfer a record from the PLC using the job mailbox area pointer. This bypasses the Recipe View state machine entirely.

Job number Direction Effect
69 PLC → HMI Read data record from PLC: HMI reads the record specified by the Record number in the job mailbox and writes it into the recipe database.
70 PLC → HMI Write data record to PLC: HMI reads the record specified by the Record number from the recipe database and writes it into the PLC data block.

Job mailbox layout (per SIMATIC HMI WinCC flexible 2008 Communication Part 1, section 2.4.1.7):

Offset Field Width
0 Job number (69 or 70) WORD
2 Record number (1-based) WORD
4 Field number (optional, 0 = all fields) WORD
6 Step number (sequence) WORD
8 Status (set by HMI, 0 = OK, >0 = error) WORD

Sample ST code in STEP 7 to trigger a read of record 5 from the PLC:

// Trigger Job 69: Read data record 5 from PLC into HMI recipe
IF bStartRecipe AND NOT bJobActive THEN
    "dbJobMailbox".JobNo := 69;
    "dbJobMailbox".RecordNo := 5;
    "dbJobMailbox".FieldNo := 0;
    "dbJobMailbox".StepNo := "dbJobMailbox".StepNo + 1;
    bJobActive := TRUE;
END_IF;

// Wait for HMI to acknowledge
IF bJobActive AND "dbJobMailbox".Status = 0 AND "dbJobMailbox".JobNo = 0 THEN
    bJobActive := FALSE;
END_IF;

The HMI runtime sets the Status word to a non-zero value if the job fails. Status codes for job mailbox 69/70 are documented in the WinCC flexible Communication manual (see References for link). The runtime also clears the Job number back to 0 when the job is complete, which is the signal to the PLC that the area pointer is free again.

6. Verification Checklist

  1. Open the Recipe View on the panel. New record, Save, To PLC, and From PLC buttons are no longer greyed out.
  2. Create a new record, enter values, press Save. Status bar shows Data record saved instead of Command now not possible!.
  3. Press To PLC. The status bar shows Data record transferred to PLC within 1–2 seconds (typical for 20-byte records over MPI/Profibus; <200 ms over PROFINET).
  4. In STEP 7 online, open the target DB and confirm the values were written.
  5. Power-cycle the panel and re-open the screen. The new record must still be present (verifies that the recipe is in the persistent *.fwx and not in transient memory).

7. Common Error Codes in the Status Word

Status word (dec) Meaning Likely cause
0 Job completed without error None
1 Error in job mailbox layout Wrong DB number or offset
2 Record not found Record number > number of records
3 Recipe not synchronized with PLC Tag mapping mismatch
4 Connection to PLC lost Check bus, partner, area pointer
5 PLC is in STOP or has not started Restart PLC; check OB1 / OB100

8. Edge Cases and Field-Notes

  • Two Recipe Views on the same recipe. The runtime serializes access; if a second Recipe View is opened on another screen while a transfer is active, the second view displays Command now not possible!. Close the first view or wait for the transfer to complete before opening the second.
  • MP 277 firmware 1.1.3.0 specifics. This firmware is known to leave the area pointer in BUSY state after a recipe structure change. A full panel reboot (not just runtime restart) is required to clear it.
  • Two recipes with the same name on different screens. WinCC flexible 2008 does not allow two recipes with identical names in the same project. The compiler flags this as Duplicate recipe; renumber or rename one.
  • Tags defined as STRING. STRING tags in recipes must have an even length (WORD-aligned). Odd-length STRING tags cause silent misalignment and disabled commands.
  • Tag name length. Recipe tag names longer than 24 characters are truncated in some runtime builds. Shorten the tag name to rule this out.
  • Multi-language projects. If the project has multiple runtime languages, the recipe view must be configured for each language; missing translations can cause the Command now not possible! status when the operator switches languages.

9. Migration to TIA Portal / WinCC Comfort

When migrating from WinCC flexible 2008 to TIA Portal V13+ with WinCC Comfort/Advanced, the area pointer concept is preserved under Connections → Area pointers. The data record area pointer is now called Data record and uses the same offset layout. Job mailbox 69/70 are still supported on Comfort Panels. However:

  • Comfort Panels require a panel reboot after a recipe structure change, just like MP 277.
  • The Rebuild All equivalent in TIA Portal is Project → Compile → Software (rebuild all).
  • Recipe display modes (Display table, Single record) are now under HMI tags → Recipes → [Recipe] → Properties → View.

10. Quick-Reference Troubleshooting Matrix

Symptom First check Second check Resolution
All buttons disabled except Delete Display mode = Display table? Active row selected? Switch to Display table; select a row
All buttons disabled including Delete Data record area pointer status = 0? Recipe number tag valid? Reset Status word; write valid record number
Buttons enabled but "Command now not possible!" PLC in RUN? Recipe tags exist in PLC? Start PLC; download DBs
Error appears after editing recipe structure Rebuild All performed? Complete transfer done? Rebuild All; complete transfer; panel reboot
Error appears only on second screen Two views open at once? First view still transferring? Close first view; wait for transfer

11. Safety and Operational Notes

Always back up the existing *.fwx and recipe CSV files from the panel (Start → Control Panel → OP → Backup) before performing a Rebuild All. A recipe structure change can invalidate the existing recipe data if the new tag list differs in length or order.
Recipe transfers to the PLC are not atomic. A PLC in STOP mode will accept partial data and leave the DB in an inconsistent state. Always verify the Status word returned by job mailbox 69/70 before continuing process logic.

Why does WinCC Flexible 2008 show "Command now not possible!" only on a second Recipe View?

The runtime serializes access to a recipe; the second view sees the area pointer still locked by the first view. Close the first view, wait for the data record area pointer Status word (offset 8) to read 0, and re-open the second view, or use job mailbox 69/70 from the PLC to drive the transfer.

How do I enable New record, Save, To PLC, and From PLC without showing the recipe table?

Keep the Recipe View set to Display table so the row state machine is fully active, but hide the table visually by setting General → Visible to No on the operator screen, or expose the table only in service mode. Alternatively, trigger the transfer from the PLC using job mailbox 69 (read) and 70 (write).

What area pointer offsets are used by the data record interface?

Offset 0 = Job number (WORD), offset 2 = Record number (WORD), offset 4 = Field number (WORD), offset 6 = Step number (WORD), offset 8 = Status/Error (WORD, written by the HMI). The HMI refuses all commands while the Status word is non-zero.

Do I have to do a complete transfer after a recipe structure change on MP 277?

Yes. MP 277 firmware 1.1.x does not always refresh the recipe cache on a delta transfer. Use Project → Compiler → Rebuild All in WinCC flexible, perform a complete transfer of the *.fwx plus the recipe files, and power-cycle the panel.

Can the recipe number tag be zero?

No. A recipe number tag value of 0 disables all write and transfer commands because the runtime cannot address record 0. Write a value of 1 (or any valid 1-based index) before pressing New record, Save, or To PLC.

Back to blog