Using Recipe Management
This guide walks you through configuring and using the Recipe Management system to store and apply production parameters.
Overview
Recipe Management consists of two phases:
- Recipe Configuration (Development): Define recipe sets, parameters, and recipes
- Recipe Application (Runtime): Switch and apply recipes in production
💡 Tip: Recipe parameter values configured in development are synchronized only on the first runtime. Subsequent changes in development do not affect runtime values.
Part 1: Recipe Configuration
Configure recipes in the development environment before using them in production.
Step 1: Create a Recipe Set
Recipe sets group related recipes together (e.g., all coffee variants, all paint colors).
- Navigate to Basic Management > Recipe Management
- Click Add Recipe Set
- Enter a descriptive name (e.g., "Coffee Recipes", "Paint Formulas")
- Click Confirm
📷 [Screenshot: Recipe Management interface showing recipe set list]
💡 Tip: Organize recipes by product line, equipment, or production area for easier management.
Step 2: Define Recipe Parameters
Recipe parameters are the values that vary between recipes (temperature, speed, ingredient ratios, etc.).
- Select the recipe set
- Click the Parameters tab
- Click Add Parameter
- Configure parameter properties:
| Property | Description | Example |
|---|---|---|
| Parameter Name | Descriptive name | Coffee_Beans_Ratio |
| Data Type | Value type | Float, Int, Bool, String |
| Unit | Measurement unit (optional) | %, °C, kg |
| Linked Tag | Tag to write value to | Line1.CoffeeBeansRatio |
| Default Value | Initial value | 0.0 |
- Click Confirm
- Repeat to add all parameters
📷 [Screenshot: Parameter configuration dialog]
⚠️ Caution: All recipes in the same recipe set share the same parameter definitions. Ensure parameters are applicable to all recipes in the set.
Example Parameters for Coffee Recipe Set:
| Parameter Name | Data Type | Unit | Linked Tag | Default |
|---|---|---|---|---|
| Coffee_Beans | Float | g | Line1.CoffeeBeansAmount | 0.0 |
| Milk | Float | ml | Line1.MilkAmount | 0.0 |
| Sugar | Float | g | Line1.SugarAmount | 0.0 |
| Water | Float | ml | Line1.WaterAmount | 0.0 |
| Temperature | Float | °C | Line1.BrewTemperature | 0.0 |
Step 3: Create Recipes
Create individual recipes with specific parameter values.
- Select the recipe set
- Click the Recipes tab
- Click Add Recipe
- Enter recipe name (e.g., "Latte", "Espresso", "Cappuccino")
- Set parameter values for this recipe:
Example: Latte Recipe
| Parameter | Value |
|---|---|
| Coffee_Beans | 18.0 g |
| Milk | 200.0 ml |
| Sugar | 5.0 g |
| Water | 50.0 ml |
| Temperature | 92.0 °C |
- Click Save
- Repeat to create more recipes
📷 [Screenshot: Recipe configuration showing parameter values]
💡 Tip: Use descriptive recipe names that clearly identify the product variant.
Step 4: Save Configuration
- Click Save to save all changes
- The recipe configuration is now ready for runtime use
Part 2: Recipe Application
Use recipes in production through the Recipe Management component or custom interfaces.
Method 1: Using Recipe Management Component
The system provides a pre-built Recipe Management component with all recipe operations.
Add Component to View
- Open a view in the View Editor
- Navigate to Components > Runtime
- Drag Recipe Management component to the canvas
- Resize and position as needed
📷 [Screenshot: Recipe Management component in component library]
Component Features
The Recipe Management component provides:
| Feature | Description |
|---|---|
| Recipe Set Selector | Dropdown to switch between recipe sets |
| Recipe List | Display all recipes in current set |
| Recipe Selector | Dropdown to switch recipes |
| Parameter Display | Show current recipe parameter values |
| Apply Button | Apply current recipe to equipment |
| Save Button | Save changes to recipe |
| New Recipe | Create new recipe |
| Delete Recipe | Remove current recipe |
| Duplicate Recipe | Create copy of current recipe |
| Read from Equipment | Read current tag values into recipe |
📷 [Screenshot: Recipe Management component showing all features]
Using the Component
Switch Recipe Set:
- Click the recipe set dropdown
- Select desired recipe set
- Recipe list updates automatically
Switch Recipe:
- Click the recipe dropdown
- Select desired recipe
- Parameter values update automatically
Apply Recipe:
- Select the recipe to apply
- Click Apply button
- Parameter values are written to linked tags
- Equipment receives new setpoints
Create New Recipe:
- Click New Recipe button
- Enter recipe name
- Set parameter values
- Click Save
Edit Recipe:
- Select recipe to edit
- Modify parameter values
- Click Save to save changes
Delete Recipe:
- Select recipe to delete
- Click Delete button
- Confirm deletion
Duplicate Recipe:
- Select recipe to duplicate
- Click Duplicate button
- New recipe is created with same parameter values
- Rename and modify as needed
Read from Equipment:
- Select recipe to update
- Click Read from Equipment button
- Current tag values are read into recipe parameters
- Click Save to save updated values
Method 2: Custom Recipe Interface
Build your own recipe interface using event-actions for complete control over the UI and workflow.
Available Recipe Actions
Configure recipe actions through event-actions:
| Action | Description | Parameters |
|---|---|---|
| Switch Recipe Set | Change active recipe set | Recipe set name (fixed or variable) |
| Switch to First Recipe | Load first recipe in set | None |
| Switch to Previous Recipe | Load previous recipe | None |
| Switch to Next Recipe | Load next recipe | None |
| Switch to Last Recipe | Load last recipe in set | None |
| Switch Recipe | Load specific recipe | Recipe name (fixed or variable) |
| Add Recipe | Create new recipe | None |
| Rename Recipe | Change recipe name | New name (variable) |
| Delete Recipe | Remove recipe | None |
| Save Recipe | Save parameter values | None |
| Read from Equipment | Read tag values to recipe | None |
| Apply Recipe | Write recipe to equipment | None |
| Duplicate Recipe | Create copy of recipe | None |
💡 Tip: See Creating Event-Actions for detailed instructions on configuring recipe actions.
System Variables for Recipe Display
Use these system variables to display recipe information:
| Variable | Description | Use Case |
|---|---|---|
| Current Recipe Set | Name of active recipe set | Display in title |
| Current Editing Recipe | Name of recipe being edited | Display in header |
| Current Applied Recipe | Name of last applied recipe | Show active recipe |
| Recipe Parameter Values | Array of current parameter values | Display in table/form |
| Recipe Parameter Names | Array of parameter names | Display labels |
Example: Custom Recipe Interface
Scenario: Build a coffee production interface with recipe switching and application.
Components:
- Text display: Show current editing recipe
- Text display: Show current applied recipe
- Dropdown: Select recipe
- Table: Display parameter values
- Button: Apply recipe
- Button: Save recipe
Configuration Steps:
-
Display Current Editing Recipe:
- Add Text Display component
- Link to system variable:
Current Editing Recipe
-
Display Current Applied Recipe:
- Add Text Display component
- Link to system variable:
Current Applied Recipe
-
Recipe Selector Dropdown:
- Add Dropdown component
- Data source: Data Management > Recipe Records
- Field: Recipe Name
- Add event: Input Change
- Add action: Recipe Control > Switch Recipe
- Recipe name:
event.target.value
📷 [Screenshot: Dropdown configuration for recipe selection]
-
Parameter Display Table:
- Add Table component
- Data source: Data Management > Recipe Records
- Dimensions: Parameter Name, Parameter Value
-
Apply Recipe Button:
- Add Button component
- Add event: Click
- Add action: Recipe Control > Apply Recipe
-
Save Recipe Button:
- Add Button component
- Add event: Click
- Add action: Recipe Control > Save Recipe
-
Parameter Value Editors:
- Add Read/Write Box components for each parameter
- Link to system variable:
Recipe Parameter Values[index] - Values update automatically when recipe switches
📷 [Screenshot: Custom recipe interface layout]
Advanced Scenarios
Scenario 1: Barcode-Driven Recipe Selection
Use Case: Scan product barcode to automatically load and apply the corresponding recipe.
Implementation:
- Configure barcode scan event (Global or View level)
- Add condition: Validate barcode format
- Add actions:
- Query database for product info using barcode
- Switch recipe using product's recipe name
- Apply recipe
- Display confirmation notification
Event Configuration:
Event: Barcode Scan
Condition: event.code.StartsWith("PROD")
Actions:
1. Query to Tags: SELECT RecipeName FROM Products WHERE Barcode = event.code
2. Recipe Control > Switch Recipe: RecipeName variable
3. Recipe Control > Apply Recipe
4. System Notification: "Recipe applied: " + RecipeName
Scenario 2: Recipe Switching with Navigation Buttons
Use Case: Provide Previous/Next buttons to cycle through recipes.
Implementation:
-
Add "Previous Recipe" button:
- Event: Click
- Action: Recipe Control > Switch to Previous Recipe
-
Add "Next Recipe" button:
- Event: Click
- Action: Recipe Control > Switch to Next Recipe
-
Add recipe counter display:
- Text: "Recipe
{current}of{total}" - Use system variables or custom calculation
- Text: "Recipe
Scenario 3: Recipe Modification with Confirmation
Use Case: Require confirmation before saving recipe changes.
Implementation:
-
Add "Save" button:
- Event: Click
- Action: View > Popup View (Confirmation dialog)
-
Create confirmation dialog view:
- Add message: "Save changes to recipe?"
- Add "Confirm" button:
- Action 1: Recipe Control > Save Recipe
- Action 2: View > Close View
- Action 3: System Notification: "Recipe saved"
- Add "Cancel" button:
- Action: View > Close View
Scenario 4: Read Equipment Values into Recipe
Use Case: Capture current equipment settings as a new recipe.
Implementation:
-
Add "Capture Current Settings" button:
- Event: Click
- Actions:
- Recipe Control > Add Recipe
- Recipe Control > Read from Equipment
- Recipe Control > Save Recipe
- System Notification: "New recipe created from current settings"
-
Add recipe name input:
- Read/Write Box linked to variable:
NewRecipeName - Modify action 1 to use this variable for recipe name
- Read/Write Box linked to variable:
Scenario 5: Recipe Comparison
Use Case: Compare parameter values between two recipes.
Implementation:
- Add two recipe selectors (Dropdown A and Dropdown B)
- Add comparison table:
- Columns: Parameter Name, Recipe A Value, Recipe B Value, Difference
- Data source: Custom query joining recipe data
- Highlight differences with conditional formatting
Data Tables
Recipe Management automatically creates data tables for recipe storage and history.
Recipe Records Table
Stores all recipe configurations.
| Field | Description |
|---|---|
| Recipe Set | Recipe set name |
| Recipe Name | Recipe name |
| Parameter Name | Parameter name |
| Parameter Value | Parameter value |
| Data Type | Parameter data type |
| Unit | Parameter unit |
| Linked Tag | Associated tag |
| Last Modified | Last update timestamp |
Usage:
- Query recipes for dropdown lists
- Display recipe history
- Export recipe configurations
Recipe Application Log
Records when recipes are applied.
| Field | Description |
|---|---|
| Timestamp | When recipe was applied |
| Recipe Set | Recipe set name |
| Recipe Name | Recipe name |
| User | User who applied recipe |
| Equipment | Target equipment |
| Status | Success/Failure |
Usage:
- Audit trail for recipe changes
- Troubleshoot production issues
- Analyze recipe usage patterns
Best Practices
Recipe Organization
Naming Conventions:
- Use descriptive, consistent names
- Include product variant: "Coffee_Latte_Medium"
- Avoid generic names: "Recipe1", "Test"
Recipe Set Structure:
- Group by product family or equipment
- Limit recipe sets to 20-30 recipes for usability
- Create separate sets for different production lines
Parameter Management:
- Define only essential parameters
- Use consistent units across parameters
- Document parameter meanings and ranges
Recipe Application
Testing:
- Test new recipes in development environment first
- Verify parameter ranges are within equipment limits
- Confirm linked tags are correct
Change Control:
- Document recipe changes with notes
- Keep backup copies of working recipes
- Test recipe changes during planned downtime
Operator Training:
- Train operators on recipe switching procedures
- Establish clear guidelines for when to switch recipes
- Define approval process for recipe modifications
Data Management
Recipe Versioning:
- Use recipe duplication to create versions
- Name versions clearly: "Latte_v1", "Latte_v2"
- Archive old recipes instead of deleting
Backup and Recovery:
- Export recipe configurations regularly
- Store backups in version control
- Document recipe restoration procedures
Performance:
- Limit number of parameters per recipe (< 50)
- Avoid frequent recipe switching (< 1 per minute)
- Monitor tag write performance during application
Troubleshooting
Recipe Not Applying
Problem: Clicking "Apply" doesn't update equipment.
Possible Causes:
- Linked tags are incorrect or don't exist
- Tag write permissions are insufficient
- Equipment communication is offline
Solutions:
- Verify tag names in parameter configuration
- Check tag access mode (must be Read/Write or Write Only)
- Test tag writes manually using Read/Write Box
- Check equipment communication status
- Review system logs for error messages
Parameter Values Not Saving
Problem: Changes to parameter values are lost after switching recipes.
Possible Causes:
- "Save" button not clicked
- Recipe is read-only
- Database write error
Solutions:
- Always click "Save" after modifying values
- Check recipe permissions
- Verify database connection
- Review system logs for errors
Recipe Selector Shows No Recipes
Problem: Recipe dropdown is empty.
Possible Causes:
- No recipes created in selected recipe set
- Recipe set not selected
- Data query error
Solutions:
- Verify recipes exist in recipe set
- Select correct recipe set
- Check data source configuration in dropdown
- Verify Recipe Records table has data
Custom Interface Not Updating
Problem: System variables don't update when recipe changes.
Possible Causes:
- Variables not linked correctly
- Event-actions not configured properly
- Recipe actions not executing
Solutions:
- Verify system variable names are correct
- Check event-action configuration
- Test recipe actions individually
- Add System Notification actions to debug execution flow
Recipe Application Slow
Problem: Applying recipe takes several seconds.
Possible Causes:
- Too many parameters
- Slow tag writes
- Network latency to equipment
Solutions:
- Reduce number of parameters
- Optimize tag polling settings
- Check network connection to equipment
- Consider batching tag writes
Next Steps
Now that you know how to use Recipe Management, explore:
- Using Equipment Statistics: Monitor equipment performance
- Creating Event-Actions: Build advanced recipe workflows
- Understanding Data Management: Analyze recipe usage data
Related Topics
- Understanding Applications: Learn about the Applications module
- Understanding Tags: Configure tags for recipe parameters
- Creating Views: Design recipe management interfaces