Skip to content

Recipe Management#

Estimated time to read: 14 minutes

As manufacturing relies on increasingly more complex equipment, the management of the recipes that the equipment will use for a certain process becomes increasingly important. This type of management is a basic requirement to ensure that the right recipe, with the right parameters, is used for the right process.

The Recipe Management module provides capabilities to manage, download, upload, resolve and instantiate recipes.

Info

Recipe Management is a separately licensed module.

This document will guide you through the setup and usage of the Recipe Management module functionalities.

Overview#

A Recipe defines the equipment information required for processing a given Material in a Step. Recipe Management is a critical functionality for complex industries, and it ensures that a Material is correctly processed at an equipment.

Concepts#

The table below describes the main concepts related to Recipe Management.

Concept Description
Parameter An equipment variable to be controlled.
Recipe Parameter A Recipe Parameter qualifies the value of the parameter in the Recipe.
Sub-Recipe A Sub-Recipe provides a hierarchical structure to assemble recipes to any depth in order to promote re-usability of Recipes.
Recipe Body A Recipe Body can be human readable or not. It is often in a binary form, only understandable by the equipment.

Table: Recipe Management main concepts

The Recipe Management object model is shown in the figure below.

graph LR
    C1[Recipe Parameter Overrides Context] --- Main[Recipe]
    L1[Recipe Body] --- Main
    C2[Recipe Context] --- Main
    L2[Recipe Parameter] --- Main
    C1 --- L2
    A1[Parameter] --- L2
    Main --- L3[Recipe Instance]
    L3 --- L4[Recipe Instance Parameter]
    Main ---- L5[SubRecipe]
    L5 ----|SubRecipe| Main
    Main --- L6[SubRecipe Parameter]
    L6 --- A1

classDef mermaid_title color:#000, fill:#fafafa, stroke:#fafafa, stroke-width:0x, font-size:100%, font-weight:200;
classDef mermaid_start color:#000, fill:#fafafa, stroke:#fafafa, color:#fafafa, stroke-width:0x, font-size:100%, visibility: hidden;
classDef mermaid_businessdata color:#000, fill:#65CDE8, stroke:#65CDE8, stroke-width:0px, font-size:100%;
classDef mermaid_nonbusinessdata color:#000, fill:#B7DEE8, stroke:#B7DEE8, stroke-width:0px, font-size:100%;
classDef mermaid_entity color:#000, fill:#FB9F53, stroke:#FB9F53, stroke-width:0px, font-size:100%;
classDef mermaid_entitylinked color:#000, fill:#FCD5B5, stroke:#FCD5B5, stroke-width:0px, font-size:100%;
classDef mermaid_context color:#000, fill:#B9CDE5, stroke:#B9CDE5, stroke-width:0px, font-size:100%;
classDef mermaid_optional color:#000, fill:#B7DEE8, stroke:#65CDE8, stroke-width:1px, font-size:100%, stroke-dasharray: 5 5;
class Main mermaid_entity
class A1,A2,A3,A4,A5,A6,A7,A8,A9,A10 mermaid_businessdata
class L1,L2,L3,L4,L5,L6 mermaid_entitylinked
class C1,C2,C3,C4,C5,C6 mermaid_context
class N1,N2,N3,N4,N5,N6 mermaid_nonbusinessdata

click Main "../../userguide/business-data/recipe"
click A1 "../../userguide/business-data/parameter"
click C1 "../../userguide/administration/tables/smart-tables/recipeparameteroverridecontext"
click C2 "../../userguide/administration/tables/smart-tables/recipecontext"
click L5 "../../userguide/business-data/recipe"

The MES Recipe object model is based on SEMI E139, as shown in the table below. The SEMI E139 Recipe and Parameter Management is a standard developed to specify the cooperative interaction between the factory information and control system (FICS) and the equipment in order to manage the specifications of equipment processing (for instance, equipment recipes).

The PDE – Process Definition Element translates from the SEMI E139 into a Recipe in Critical Manufacturing, with the following element matching:

SEMI E139 Critical Manufacturing Description
uid – universally unique identifier Id Recipe Id
Name Name Recipe Name
Description Description Recipe Description
type Type Recipe Type
executable IsExecutable Defines if a Recipe is executable or not.
userInfo UserInfo Recipe User Information
supplierInfo SupplierInfo Recipe Supplier Information
author CreatedBy The User who created the Recipe.
Specification (PDEBody or PDEBodyReference) Body Recipe Body
specificationChecksum Checksum Recipe Body Checksum
{PDEHeader/PDEParameter} {RecipeParameter} Recipe Parameters
{PDEHeader/PDEParameter/ relatedParameters} {SubRecipeParameter} Recipe Sub-Recipe Parameters

Table: SEMI E139 and Critical Manufacturing MES concepts

Setting Up a Recipe#

The necessary steps to set up a Recipe shall be explained over the next sections.

Create a Parameter#

A Parameter provides an abstraction to Resource specific variable names which have the same meaning at the MES/human level. A Recipe can contain static or dynamic Parameters.

To create a Parameter to be used in a Recipe, the properties listed in the table below need to be defined.

Property Description
Scope It needs to be defined as Recipe or EDC_SPC_Recipe.
Data Type The Parameter Data Type.
Format The defined Format will influence the value input and display.
For more information about the Parameter Formats, please refer to the Create Parameter section.
Units The Units of the Parameter to be displayed.
Minimum Value A minimum value for the Parameter, only for numeric Parameters.
Maximum Value A maximum value for the Parameter, only for numeric Parameters.
Lookup Table A Lookup Table to be used as a source of values for the Parameter. The Lookup Table values must match the Data Type of the Parameter.

Table: Parameter creation wizard properties

Create a Recipe#

To create a Recipe there are configurations regarding its Parameters, Sub-Recipes and Body that need to be defined.

The next table describes the properties that need to be taken into consideration when creating a Recipe, the first step of the Recipe creation.

Info

The IsEnabled and IsExecutable properties are contained in the global data components of the Recipe, i.e. without Change Control required.

Property Description
IsEnabled Defines if a Recipe is enabled or not. A disabled Recipe cannot be used to create a Recipe instance.
IsExecutable Defines if a Recipe is executable or not. An Executable Recipe can be used as the Recipe for a Material, whereas a non-Executable Recipe can only be used as a Sub-Recipe.
Resource Recipe Name The Resource Recipe Name should match the local Recipe Name in the equipment.

Table: Recipe creation wizard properties

Recipe creation wizard

To manage the Recipe Parameters, the User must access the Manage Parameters wizard in the Recipe page, as shown in the table and figure below.

Property Description
Parameter Group Defines the Parameter Group name for display purposes.
Type The following options are available:
- Constant: a constant value
- Expression: an Expression that calculates the Parameter value based on other Parameters. Parameters referred by the Expression must be defined before adding the Expression Parameter
- Input: a value provided by the User or supplied by the parent Recipe
- Rule: a Rule to be used to evaluate the Parameter value
Value The value of the Parameter if the Type is Constant or Input.
Expression The Expression to be used to calculate the Parameter if the type is Expression. For more information about the Expression syntax, please refer to the Expression Evaluator section.
Rule The Rule to be used to evaluate the Parameter value. The Rule must have the scope defined as Recipe Management.
Overridable Defines if a Parameter is Overridable. An Overridable Parameter may have its value changed depending on the Recipe Parameter Override Context Smart Table configuration.

Table: Parameter management wizard properties

Info

If a Parameter has Minimum or Maximum values defined, values outside this interval cannot be defined on the Value property.

Parameter management wizard

To manage the Recipe Body, the User must access the Manage Recipe Body wizard in the Recipe page, as shown in the table and figure below.

Property Description
Source The Source of the Recipe. The following options are available:
- DownloadedFromEquipment: MES will retrieve the Recipes from a Resource whose RecipeManagement property is enabled and whose automation mode is online and that supports Recipe download
- EquipmentSupplier
- HumanEdited
- None
Format The Recipe Format. The following options are available:
- Binary: always set when the Recipe is DownloadedFromEquipment and available for selection for the EquipmentSupplier and HumanEdited Sources
- Text: available for selection for the EquipmentSupplier and HumanEdited Sources
- URL: available for selection for the EquipmentSupplier and HumanEdited Sources
Download From: Selection of a Resource, if the selected Source is DownloadedFromEquipment.
Resource Recipe: Selection of a Resource Recipe, if the selected Source is DownloadedFromEquipment.
Recipe Checksum: It is used to ensure Recipe integrity since Recipes are often locally modified at the equipment.
File Name: If the selected Format was URL, then the User must provide a URL. If the selected Format was Binary, then the User must provide a file. If the selected Format was a Text then the User can choose to load a file and edit the contents manually.

Table: Manage Recipe Body wizard properties

Recipe Body management wizard

To manage the Recipe Sub-Recipes, the User must access the Manage Sub-Recipes wizard in the Recipe page, as shown in the table and figure below.

Property Description
Recipe The Recipe to be defined as a Sub-Recipe.
Display Name The Recipe display Name.
Parameter Mapping For each Sub-Recipe, it is mandatory to define the Parameter mapping for the Sub-Recipe Parameters which are of type Input and have no default value. For the Sub-Recipe Parameters which are Overridable, it is possible (but not mandatory) that the Sub-Recipe Parameters mappings are defined as well. A Parameter mapping is based on an expression that refers to the Parent Recipe Parameters.

Table: Manage Sub-Recipes wizard properties

Manage Sub-Recipes wizard

Compare Recipes#

The Compare Recipes page provides the functionality to verify not only changes in Recipe Versions, but also to compare different Recipes, as shown on the figure below.

Compare Recipes page

Recipe Context Resolution and Recipe Instance Creation#

A Material requires a Service at a Step, as defined in the Service Context Smart Table, and this Service is provided by a Resource. For this Service, in order to provide the necessary setup and configuration information to process a Material in a Resource, the Recipe Context is defined.

For a particular Material Context, the MES creates a Recipe Instance when performing a Material track-in. The Recipe Instance stores the used Recipe Version and Parameter information for traceability and analysis purposes.

The relationship between the above presented concepts can be found in the figure below.

Recipe Schema

Manage Recipe Context#

A Recipe is configured for processing a Material in a Step and Resource through the Service defined in the Recipe Context table, as detailed in the table and figure below.

Info

A Recipe needs to be marked as Executable to be referenced on the Recipe Context table.

Property Description
Service The Service which requires the Recipe.
Running Mode The Running Mode provides an additional flexibility degree in maintaining and resolving Recipes in the case that the Recipe to be used depends on a particular Resource configuration. The Running Mode can be defined on the Resource Running Mode Smart Table.

Table: Add Recipe Context Record

Add Recipe Context Record

Manage Parameter Overrides Context#

To promote Recipe reusability and to support a dynamic resolution of Parameters during runtime, a Parameter can be marked as Overridable.

Info

A Parameter needs to be marked as Overridable on the Recipe Parameters to be referenced on the Recipe Parameter Override Context table.

Property Description
Parameter The Parameter to be overridden.
Value The Value to be considered for the Parameter on the defined context.

Table: Add Parameter Overrides Context Record

Add Parameter Overrides Context Record

Experiment Definition#

An Experiment Definition allows the User to carry out controlled variations of the production process. A typical use case for this situation is the creation of an Experiment Definition in order to test a new Recipe. This can be configured by defining the Action SetRecipe at the Track-in Event for an Experiment Definition Material Group, as shown in the figure below.

SetRecipe Action for an Experiment Definition

For more information about the Experiment Definition, please refer to the Create Experiment Definition section.

Using a Recipe#

Over the next sections it is detailed how a Recipe can be used in MES.

Resource Configuration#

In order to use Recipe Management for a particular Resource, it is necessary to set the property Recipe Management Enabled to true, as shown in the figure below.

Resource Details

Set Resource Recipe#

When the setup is performed manually, the User can access the Set Recipe wizard in order to select the Recipe to be set on the Resource, as shown in the figure below.

If the option Validate Recipe Context is set to True, then only Recipes that are defined on the Recipe Context are displayed.

After selecting the Recipe, it is set as the Current Recipe and the Current Recipe Source is set as User.

In this wizard it is also possible to clear the Resource Current Recipe, by selecting Clear and then Set.

Info

When a Recipe is set manually, it can only be reset manually as well.

Info

The Resource must have the property Recipe Management Enabled set to True.

Set Recipe wizard

If the Resource has lanes configured and Is Multilane Active enabled, you will have to select a valid Lane of the Resource for your recipe.

Set Recipe wizard

For more information, see Set Resource Recipe.

Perform Resource Setup#

Before tracking-in a Material in a Resource it is possible to perform the Resource setup. The Perform Setup For Material at Resource wizard is available on the Resource view after selecting a Material, as shown in the figure below.

Info

Only Recipes that are defined on the Recipe Context are displayed.

If the option Set Selected Recipe is set to True, then the User has the option to set it manually at the Resource. The selected Recipe is set as the Resource Current Recipe and Current Recipe Source is set as User.

Perform Setup wizard

Material Track-in#

When a Material is tracked-in, the Recipe defined in the Recipe Context is displayed, as shown in the figure below.

For the Recipe Input Parameters, it is possible to specify their values.

Track-in Material wizard

Info

The Resource property Verify Material Recipe at Track-In defines whether the System will validate if the Resource Current Recipe matches the defined Recipe Context when tracking-in material. If the Verify Material Recipe at Track-In is set to False and the Current Recipe Source is System, then it is possible to track-in the Material even if the Resource Current Recipe does not match the defined Recipe Context.

After performing the track-in, the resolved Recipe is set as the Resource Current Recipe, if not already, in which case the Current Recipe Source is set as System, and a Recipe Instance is created, as shown in the figure below.

Recipe Instance creation

Info

If the track-in is performed in a Line Resource, then the Recipe Instances are also created for the Resources of the Line Flow which provide the Services resolved, using the Service Context, and for which the Recipe Management is enabled.

The Recipe set for the Resource can be viewed on the Resource View Recipe tab, as shown in the figure below.

Resource view Recipe tab

Recipe Active Instances#

All active instances of the Recipe can be found on the Active Instances section of the Recipe page, as shown in the figure below.

Active Recipe Instance