Back to blog

Designing Safe Recipe Management in Logix and PanelView

A controller-centered recipe architecture for Logix and PanelView that separates editing, validation, storage and activation while enforcing limits, revisions, permissions, rollback and complete tr...

A recipe can change temperature, speed, pressure, timing, motion, and product quality without a controller download. That makes recipe data operationally important even when it is stored in an ordinary Logix UDT array. The design goal is not merely to save values; it is to prevent incomplete, stale, unauthorized, or incompatible values from becoming active.

PanelView Plus terminal displaying a controlled Logix recipe workflow

A controlled workflow separates operator editing from the values currently driving the machine.

Give recipe data four distinct roles

Use separate structures for stored recipes, the selected source, an editable working copy, and the active process copy. The HMI edits only the working copy. A save request validates and commits that working copy to a selected storage record. A separate activation request validates again and transfers one complete approved record into the active structure.

This separation prevents each HMI keystroke from changing a live setpoint. It also supports cancel, compare, approval, rollback, and clear operator messages. The active recipe remains stable while another recipe is reviewed.

PanelView hardware is organized in the Allen-Bradley PanelView collection, with controller platforms available through PLC & PAC Systems. Hardware selection does not replace the transaction rules implemented in the application.

Design the UDT as a governed record

Group related process values in a UDT so storage, comparison, and transfer use one defined layout. Add metadata such as recipe identifier, name, format version, product code, revision, created time, modified time, validity state, and the role responsible for the change. Keep operational status outside the setpoint structure when it should not be copied with a recipe.

Every numeric member needs engineering units, allowed range, and a reason for that range. Use bounded enumerations or validated codes for discrete modes rather than free-form text. Define default values only when a default is safe and technically meaningful.

A format version is important across software upgrades. If a later controller program adds fields or changes units, old records must be rejected or migrated deliberately. Copying an older binary layout into a newer UDT without a compatibility rule can create valid-looking but incorrect setpoints.

Validate relationships, not just individual limits

Checking each field against a minimum and maximum is necessary but insufficient. A high limit must remain above a low limit. Ramp time must agree with rate and distance. Phase durations must fit the sequence. Mutually exclusive options cannot both be enabled. A speed may be acceptable for one product size and unsafe for another tooling configuration.

Build validation in controller logic because the controller owns the process response. The HMI can repeat checks for immediate feedback, but it should not be the only enforcement layer. Return a specific validation code and identify the member or relationship that failed. “Recipe invalid” alone sends maintenance staff hunting through dozens of values.

Distinguish a warning from a rejection. A warning may require confirmation or supervisor review, while a rejected record cannot be saved or activated. Never allow a generic confirmation button to override a hard equipment or safety limit.

Use an explicit transaction state machine

Momentary HMI commands can be missed, repeated, or remain asserted after communication interruption. Implement a request-and-acknowledge sequence with a transaction number. The HMI writes the working data, increments the request number, and waits. The controller captures a stable copy, validates it, performs the requested action once, and returns the same transaction number with result and error code.

Reject a new request while another transaction is busy. Apply a timeout at the HMI and retain the controller result long enough for the operator to read it. After reconnection, the HMI compares transaction numbers rather than assuming the previous save failed.

The controller should transfer the complete validated record at one defined execution point. Scattered moves controlled by separate conditions can create a mixture of old and new values. If data can be modified concurrently by another task or communication path, design a stable snapshot and verify that its sequence did not change during the copy.

Separate save from activation

Saving records a reviewed working copy in storage. Activating changes the values used by the process. Those actions deserve separate permissions, messages, and interlocks. A technician may be allowed to prepare a recipe without being authorized to run it.

Define when activation is permitted: machine stopped, cycle complete, actuators in a safe state, correct tooling confirmed, no critical fault, and required operator role present. If some values may change during production, list them explicitly and control their transfer. Do not depend on operator memory to know which fields are safe online.

After activation, return the active recipe identifier and revision to the HMI. Compare the active copy with the approved source and alarm on an unexpected difference. Downstream sequence logic should consume only the active copy, never the HMI working tags.

Make permissions and evidence proportionate

At minimum, distinguish view, edit, save, activate, delete, and restore actions. Restrict deletion more tightly than selection. Avoid shared credentials where the application requires individual accountability. If the platform supports auditing, record user, time, action, recipe identifier, old revision, new revision, and result.

The controller should also retain operational evidence that does not depend entirely on the HMI: active identifier, revision, last transaction, validation result, and activation time. HMI logs are useful but may be lost during terminal replacement or application download.

Be clear about limits. An ordinary machine recipe history is not automatically an electronic record system for regulated production. If signatures, tamper evidence, retention, or validated audit trails are required, evaluate the full architecture and procedures.

Design power-up and communication-loss behavior

Specify which recipe becomes active after controller restart, program download, memory restore, or HMI replacement. Blindly loading record zero can be unsafe. Retentive data must be validated before use, including format version and all relationships. If validity cannot be proven, hold the machine in a defined state and require selection and confirmation.

A loss of HMI communication must not partially activate a recipe. The controller continues with the last complete active record or follows the process-specific safe response. When communications return, clear stale edit states and show the actual controller transaction status before enabling another command.

Test the failure paths

Commission normal save, invalid field, invalid relationship, unauthorized action, repeated button press, network interruption during transfer, controller restart, HMI restart, full storage, deletion, rollback, and an old-format record. Confirm that no case creates a mixed active recipe.

Perform a boundary test for every important numeric field and verify units at the HMI and controller. Compare all active members after transfer. Record the results and keep a known-good recipe outside the controller backup so recovery does not depend on one device.

A strong recipe system makes proposed changes visible, validates them in the controller, activates one complete revision at a controlled state, and leaves enough evidence to reconstruct what happened. That discipline matters more than whether storage begins as a UDT array or an HMI recipe component.

Leave a comment

Please note, comments need to be approved before they are published.