Yogurt & Ice Cream Factory
Prerequisites
3
Build the Asset Hierarchy
Main Plant Site
Main Plant
├── MP Mix Room (class: Room)
│ ├── MP Receiving Tanks (class: Room)
│ │ ├── W3 (class: Receiving Tank) ← milk
│ │ ├── W2 (class: Receiving Tank) ← milk
│ │ ├── C1 (class: Receiving Tank) ← cream
│ │ ├── C2 (class: Receiving Tank) ← cream
│ │ └── Liquid Sugar (class: Receiving Tank)
│ ├── MP Tanker Arrival (class: Tanker Arrival)
│ └── MP Mix Plant (class: Mix Plant)
├── MP Ageing Tanks (class: Room)
│ ├── A1 through A10 (class: Ageing Tank) ← 10 tanks
├── MP Production Room (class: Room)
│ ├── MP Spiral Line (class: Filling Line) ← small tub line
│ ├── MP 2L Line (class: Filling Line) ← 2-litre tub line
│ ├── MP 5L Line (class: Filling Line) ← 5-litre tub line
│ ├── MP Bulk Line (class: Filling Line) ← bulk (16L, 5L)
│ ├── MP Bulk Blast Line (class: Filling Line) ← blast-frozen bulk
│ └── MP Specialty Filler (class: Filling Line) ← specialty filler
├── MP Packing Area (class: Packing Room)
│ ├── MP Packing Room (class: Packing Room)
│ └── MP Pack Unload (class: Packing Room)
├── MP Freezer (class: Freezer)
├── MP Laboratory (class: Lab)
└── MP CIP (class: CIP)Secondary Plant Site
Secondary Plant
├── SP Mix Room (class: Room)
│ ├── SP Receiving Tanks (class: Room)
│ │ ├── SP Silo 4 through Silo 7 (class: Receiving Tank)
│ │ └── SP Tanker Arrival (class: Tanker Arrival)
│ ├── SP Mix Plant (class: Mix Plant)
│ └── SP Ageing Tanks (class: Room)
│ └── SP A1 through A6 (class: Ageing Tank) ← 6 tanks
├── SP Production Room (class: Room)
│ ├── SP Line One (class: Filling Line)
│ ├── SP Line Two (class: Filling Line)
│ ├── SP Line Three (class: Filling Line)
│ └── SP Bulk Line (class: Filling Line)
├── SP Packing Room (class: Room)
│ ├── SP Spiral Lane One (class: Freezer)
│ ├── SP Spiral Lane Two (class: Freezer)
│ ├── SP Robot 1 (class: Packing Line)
│ └── SP Robot 2 (class: Packing Line)
└── SP Laboratory (class: Lab)Key points
4
7
8
Define Attributes
Order Number Attributes
Product & Recipe
Attribute
Data Type
Purpose
Production Parameters
Attribute
Data Type
Purpose
Temperature & Processing
Attribute
Data Type
Purpose
Quality & Testing
Attribute
Data Type
Purpose
Allergen Flags
Attribute
Data Type
Purpose
Market & Compliance
Attribute
Data Type
Purpose
Mix & Ingredient Control
Attribute
Data Type
Purpose
9
11
Build Activity Templates
Core Activity Categories
Tanker & Receiving
Activity
Triggered by
Purpose
Mix Room
Activity
Triggered by
Purpose
Ageing Tanks & Flavouring
Activity
Triggered by
Purpose
Production / Filling
Activity
Triggered by
Purpose
Yoghurt-Specific
Activity
Triggered by
Purpose
Packing Room
Activity
Triggered by
Purpose
Quality & Lab
Activity
Triggered by
Purpose
CIP & Cleaning
Activity
Triggered by
Purpose
Consumption Tracking
Activity
Triggered by
Purpose
Building an activity template
12
Configure Order Templates
Main Plant - Spiral Line (small tub line)
Order Template
Operation
From Asset
To Asset
Main Plant - 2L Line
Order Template
Operation
From Asset
To Asset
Main Plant - 5L Line
Order Template
Operation
From Asset
To Asset
Main Plant - Bulk Line
Order Template
Operation
From Asset
To Asset
Main Plant - Supporting Operations
Order Template
Operation
From Asset
To Asset
Secondary Plant - Filling Lines
Order Template
Operation
From Asset
To Asset
Secondary Plant - Supporting Operations
Order Template
Operation
From Asset
To Asset
Key points
13
Set Up the Scheduler
6
Define Operations and Production Routes
Operation (one per finished good -- code = the product's material code)
└── Route
└── Segment "Fill and Pack"
├── Consumed materials -- the bill of materials (milk, cream, sugar, cultures)
├── Produced material -- the one finished good this operation makes
└── Run rate -- throughput in units per second14
Integrate Order Loading from ERP
Order Payload Structure
[
{
"orderNumber": "WO-20260101-001",
"orderDate": "2026-01-01",
"dueDate": "2026-01-03",
"scheduledStart": "2026-01-02T06:00:00",
"scheduledEnd": "2026-01-02T14:00:00",
"quantityTarget": 5000,
"defaultRunRate": 80,
"status": "NEW",
"name": "Vanilla 6x2L",
"asset": "MP 2L Line",
"material": {
"externalId": "FG-VAN-2L-6PK",
"name": "Vanilla Ice Cream 6x2L"
},
"attributes": [
{ "attributeName": "Base Flavour", "value": "Vanilla" },
{ "attributeName": "Brand", "value": "Brand A" },
{ "attributeName": "Mix Code", "value": "MIX-PLAIN-10" },
{ "attributeName": "Mix Type", "value": "Plain" },
{ "attributeName": "Pack Size", "value": "6x2L" },
{ "attributeName": "TubsPerCarton", "value": "6" },
{ "attributeName": "Cartons On Pallet", "value": "60" },
{ "attributeName": "Tub Per Minute Target", "value": "40" },
{ "attributeName": "Shelf Life", "value": "365" },
{ "attributeName": "ContainsMilk", "value": "true" },
{ "attributeName": "ContainsEgg", "value": "true" },
{ "attributeName": "ContainsSoy", "value": "false" },
{ "attributeName": "ContainsGluten", "value": "false" },
{ "attributeName": "ContainsTreeNuts", "value": "false" },
{ "attributeName": "ContainsInclusion", "value": "false" },
{ "attributeName": "ContainsRipple", "value": "false" },
{ "attributeName": "isHalal", "value": "false" },
{ "attributeName": "isYoghurt", "value": "false" },
{ "attributeName": "FlavouringRequired", "value": "true" },
{ "attributeName": "Ageing Tank Count", "value": "2" },
{ "attributeName": "First Ageing Tank", "value": "A1" },
{ "attributeName": "Current Ageing Tank", "value": "A1" },
{ "attributeName": "Species", "value": "Cow" }
],
"tolerances": [
{ "processVariableName": "Tub Weight", "target": 2050, "lowerLimit": 2030, "upperLimit": 2070 },
{ "processVariableName": "Fat", "target": 10.0, "lowerLimit": 9.5, "upperLimit": 10.5 },
{ "processVariableName": "Overrun", "target": 90, "lowerLimit": 80, "upperLimit": 100 }
],
"orderComponents": [
{ "componentExternalId": "MIX-PLAIN-10", "componentGroup": "Semi-Finished Goods", "componentName": "IC Mix Plain 10%", "target": 3000 },
{ "componentExternalId": "FLV-VANILLA", "componentGroup": "Ingredients", "componentName": "Vanilla Flavour", "target": 15 },
{ "componentExternalId": "PKG-TUB-2L-VAN", "componentGroup": "Packaging", "componentName": "Vanilla 2L Tub", "target": 5100 },
{ "componentExternalId": "PKG-LID-2L-VAN", "componentGroup": "Packaging", "componentName": "Vanilla 2L Lid", "target": 5100 },
{ "componentExternalId": "PKG-CTN-6x2L", "componentGroup": "Packaging", "componentName": "Outer Carton 6x2L", "target": 850 }
]
}
]Key points
Typical attribute categories in the payload
Category
Attributes
Purpose
Summary Checklist
Related Articles
Last updated