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
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.
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
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
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.
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.
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.

