In this page:
Quick Reference
- Standard Focus: Enterprise-Control System Integration
- Hierarchy Levels: Level 0 (Process) through Level 4-5 (Enterprise)
- Key Models: Equipment hierarchy, functional hierarchy, physical asset model
- UNS Pattern: Event-driven architecture with semantic naming conventions
1. ISA-95 Functional Hierarchy
Level Definitions and UNS Mapping
Level 0: Physical Process
- Function: Actual physical processes
- UNS Path:
/Plant/Area/Process/Sensors/
- Data Types: Raw sensor values, actuator states
- Update Rate: Milliseconds to seconds
/Plant/Production/Reactor1/Temperature/TT-1001
/Plant/Production/Reactor1/Pressure/PT-1001
/Plant/Production/Reactor1/Valves/XV-1001/State
Level 1: Intelligent Devices
- Function: Sensing and manipulation of physical process
- UNS Path:
/Plant/Area/Cell/Equipment/Device/
- Data Types: Scaled values, device diagnostics
- Update Rate: 100ms - 1 second
/Plant/Production/Cell1/PLC/CPU/Status
/Plant/Production/Cell1/PLC/IO/Module1/Health
/Plant/Production/Cell1/Drives/VFD-1001/Speed
Level 2: Control Systems
- Function: Supervisory control, monitoring, automated control
- UNS Path:
/Plant/Area/Control/
- Data Types: Control loops, setpoints, modes, alarms
- Update Rate: 1-5 seconds
/Plant/Production/Control/Loops/TIC-1001/PV
/Plant/Production/Control/Loops/TIC-1001/SP
/Plant/Production/Control/Loops/TIC-1001/Mode
/Plant/Production/Control/Alarms/Active/Count
Level 3: Manufacturing Operations
- Function: Workflow to produce desired products
- UNS Path:
/Enterprise/MES/
- Data Types: Work orders, recipes, batch records, KPIs
- Update Rate: Minutes to hours
/Enterprise/MES/WorkOrders/WO-2024-001/Status
/Enterprise/MES/Production/Batch/B-12345/Recipe
/Enterprise/MES/Quality/Samples/S-98765/Results
/Enterprise/MES/OEE/Line1/Availability
Level 4-5: Business Planning
- Function: Business logistics and planning
- UNS Path:
/Enterprise/ERP/
- Data Types: Production schedules, inventory, costs
- Update Rate: Hours to days
/Enterprise/ERP/Planning/Schedule/Week45
/Enterprise/ERP/Inventory/RawMaterials/RM-001/Quantity
/Enterprise/ERP/Orders/PO-2024-1234/Status
2. Equipment Hierarchy Model
Physical Asset Structure
Enterprise: "Acme_Corp"
??? Site: "Plant_Chicago"
??? Area: "Production"
??? ProductionLine: "Line_1"
??? WorkCell: "Cell_1A"
??? WorkUnit: "Reactor_1"
??? EquipmentModule: "Agitator"
??? ControlModule: "Motor_M101"
UNS Implementation
// Equipment Model Template
const EquipmentModel = {
Enterprise: "Acme_Corp",
Site: {
Name: "Chicago_Plant",
Areas: [
{
Name: "Production",
ProductionLines: [
{
Name: "Line_1",
WorkCells: [
{
Name: "Cell_1A",
Units: ["Reactor_1", "Reactor_2"],
StorageZones: ["Tank_Farm_A"]
}
]
}
]
}
]
}
};
// UNS Path Generation
function generateUNSPath(equipment) {
return `/${equipment.Enterprise}/${equipment.Site}/${equipment.Area}/${equipment.Line}/${equipment.Cell}/${equipment.Unit}`;
}
3. Functional Hierarchy Model
Role-Based Organization
Production Operations:
??? Production Scheduling
? ??? Detailed Scheduling
? ??? Resource Allocation
? ??? Dispatching
??? Production Control
? ??? Recipe Management
? ??? Batch Control
? ??? Process Control
??? Production Data Collection
? ??? Process Data
? ??? Quality Data
? ??? Equipment Data
??? Production Performance Analysis
??? OEE Calculation
??? SPC Analysis
??? Energy Monitoring
UNS Functional Paths
/Operations/Scheduling/Current/Orders/
/Operations/Control/Recipes/Active/
/Operations/DataCollection/Process/Trends/
/Operations/Performance/OEE/Realtime/
4. B2MML Integration
Personnel Model
<Personnel>
<ID>EMP-12345</ID>
<Name>John Smith</Name>
<PersonnelClass>
<ID>Operator_Level2</ID>
<Property>
<ID>Certification</ID>
<Value>Process_Control</Value>
</Property>
</PersonnelClass>
<UNSPath>/Personnel/Operations/EMP-12345</UNSPath>
</Personnel>
Equipment Model
<Equipment>
<ID>REACTOR-001</ID>
<Description>Primary Reactor Vessel</Description>
<EquipmentClass>
<ID>Reactor_Type_A</ID>
<Property>
<ID>MaxTemperature</ID>
<Value>200</Value>
<UoM>Celsius</UoM>
</Property>
</EquipmentClass>
<UNSPath>/Plant/Production/Cell1/Reactor1</UNSPath>
</Equipment>
Material Model
<Material>
<ID>MAT-5678</ID>
<Description>Raw Material A</Description>
<MaterialClass>
<ID>Chemical_Grade_1</ID>
<Property>
<ID>Purity</ID>
<Value>99.5</Value>
<UoM>Percent</UoM>
</Property>
</MaterialClass>
<UNSPath>/Materials/Raw/MAT-5678</UNSPath>
</Material>
5. UNS Semantic Structure
Naming Convention Standards
Pattern: /{Context}/{Asset}/{Attribute}/{SubAttribute}
Context Types:
- Plant: Physical equipment and processes
- Operations: Manufacturing execution
- Enterprise: Business systems
- Quality: Quality management
- Maintenance: Asset management
Standard Attribute Names
Process Values:
- PV: Process Variable
- SP: Setpoint
- OP: Output
- Mode: Control mode (Auto/Manual/Cascade)
States:
- State: Current state (Running/Stopped/Fault)
- Command: Requested state
- Status: Detailed status information
Measurements:
- Value: Current measured value
- EU: Engineering units
- Range: Min/max limits
- Quality: Data quality indicator
Data Quality Model
const DataQuality = {
Good: 192, // Good quality data
Uncertain: 64, // Uncertain quality
Bad: 0, // Bad quality
// Sub-quality codes
GoodLocalOverride: 216,
UncertainLastUsableValue: 68,
BadNotConnected: 8,
BadDeviceFailure: 12
};
6. Event-Driven Architecture
Event Structure
{
"timestamp": "2024-10-30T14:23:45.123Z",
"source": "/Plant/Production/Cell1/Reactor1",
"eventType": "StateChange",
"payload": {
"previousState": "Running",
"currentState": "Stopped",
"reason": "BatchComplete",
"batchId": "B-12345",
"operator": "EMP-12345"
},
"quality": 192,
"metadata": {
"ISA95Level": 2,
"Equipment": "REACTOR-001",
"Area": "Production"
}
}
MQTT Topic Structure
# ISA-95 Aligned Topics
Plant/+/+/+/data # Level 0-1 Process data
Control/+/+/status # Level 2 Control status
MES/+/+/production # Level 3 Production data
ERP/+/+/planning # Level 4-5 Business data
# Examples
Plant/Production/Cell1/Reactor1/data
Control/Area1/Loop/TIC-1001/status
MES/Orders/Active/WO-2024-001/production
ERP/Inventory/Raw/MAT-5678/planning
7. FrameworX UNS Configuration
Asset Tree Configuration
<AssetTree>
<Enterprise name="AcmeCorp">
<Site name="Chicago" ISA95Level="4">
<Area name="Production" ISA95Level="3">
<ProductionLine name="Line1">
<WorkCell name="Cell1A" ISA95Level="2">
<WorkUnit name="Reactor1" ISA95Level="1">
<Tags>
<Tag name="Temperature" path="TT-1001"/>
<Tag name="Pressure" path="PT-1001"/>
<Tag name="Level" path="LT-1001"/>
</Tags>
</WorkUnit>
</WorkCell>
</ProductionLine>
</Area>
</Site>
</Enterprise>
</AssetTree>
Tag Provider Mapping
// ISA-95 Level-based Tag Provider Configuration
const TagProviders = {
Level0_1: {
provider: "OPCUAProvider",
endpoint: "opc.tcp://plc1:4840",
updateRate: 1000,
tags: "/Plant/*/Sensors/*"
},
Level2: {
provider: "SCADAProvider",
endpoint: "http://scada:8080",
updateRate: 5000,
tags: "/Control/*/*"
},
Level3: {
provider: "MESProvider",
endpoint: "http://mes:9090",
updateRate: 60000,
tags: "/MES/*/*"
},
Level4_5: {
provider: "ERPProvider",
endpoint: "http://erp:8443",
updateRate: 300000,
tags: "/Enterprise/*/*"
}
};
Performance Optimization
UNS Optimization Settings:
Level0_1:
BufferSize: 10000
Compression: true
DeadbandType: Absolute
DeadbandValue: 0.5
Level2:
BufferSize: 5000
StoreAndForward: true
Priority: High
Level3:
BufferSize: 1000
BatchingInterval: 60s
Priority: Normal
Level4_5:
BufferSize: 100
BatchingInterval: 300s
Priority: Low
8. Data Exchange Patterns
Vertical Integration (Between Levels)
Level 4-5 (ERP) <--> REST/SOAP
?
Level 3 (MES) <--> OData/GraphQL
?
Level 2 (SCADA) <--> OPC UA
?
Level 0-1 (PLC) <--> EtherNet/IP
Horizontal Integration (Within Levels)
Pattern: Publish/Subscribe via MQTT
Publisher: /Plant/Production/Cell1/Reactor1/Temperature
Subscribers:
- /Control/Loops/TIC-1001 (Control)
- /MES/Batch/Current/Temperature (MES)
- /Maintenance/Monitoring/Reactor1 (Maintenance)
Transaction Boundaries
// Level 3 to Level 2 Transaction
async function sendProductionOrder(order) {
const transaction = {
id: generateUUID(),
timestamp: new Date().toISOString(),
source: "/MES/Orders",
target: "/Control/Production",
type: "ProductionOrderRequest",
payload: {
orderId: order.id,
product: order.product,
quantity: order.quantity,
recipe: order.recipe,
scheduledStart: order.startTime
},
requiresAck: true,
timeout: 30000
};
await publishToUNS(transaction);
await waitForAcknowledgment(transaction.id);
}
9. Best Practices and Guidelines
Do's
? Maintain ISA-95 level separation - Clear boundaries between levels
? Use semantic naming - Self-describing paths and attributes
? Implement data contracts - Defined schemas between levels
? Version your models - Track changes to data structures
? Monitor data quality - Include quality indicators with data
? Design for scalability - Consider future growth
Don'ts
? Skip levels - Direct Level 0 to Level 4 connections
? Mix contexts - Business logic in control systems
? Ignore standards - Custom implementations without ISA-95 alignment
? Forget security - Each level needs appropriate security
? Overlook performance - Consider update rates and data volumes
Migration Strategy
Assessment Phase:
- Map existing systems to ISA-95 levels
- Identify integration points
- Define data models
Design Phase:
- Create UNS structure
- Define naming conventions
- Establish data contracts
Implementation Phase:
- Deploy level by level
- Start with Level 2 (SCADA)
- Expand up and down
Validation Phase:
- Verify data flows
- Test transaction boundaries
- Validate performance
Related Documentation
- UNS Asset Tree Configuration
- UNS Tags Reference
- MQTT Integration Tools
- OPC UA Configuration
- IEC 62443 Security Implementation
ISA-95 — Enterprise–Control Integration (Reference)
Contents (bullets)
What ISA-95 covers (levels, models, when to use).
Levels at a glance (L0–L4) and typical system scope.
Data objects & flows (orders, materials, production, status).
How it maps in FrameworX
UNS concepts you’ll use (Asset Tree, Tags, DataTemplates/UDTs, Enumerations).
Relevant connectors (OPC UA, MQTT/Sparkplug B) for L2↔L3 integration.
Design patterns (area/site/line/equipment decomposition, naming).
Evidence & compliance: what to document and test.
Related How-to Guides (link out): UNS Configuration; Connect OPC UA/MQTT; Map UDTs to equipment models.
UNS Design Based on ISA-95 (Reference)
Contents (bullets)
Why model UNS with ISA-95 (stable topology, clearer ownership).
Asset Tree modeling guide (site → area → line → unit → equipment).
Templates & semantics
Build DataTemplates (UDTs) for equipment classes.
Use Enumerations for states, modes, alarms.
Tag strategy (granularity, names, metadata) and provider choices (OPC UA, MQTT Sparkplug B, SQL, PI, Canary, etc.).
Runtime considerations (historian, KPIs, security zones, redundancy; link to architecture/deployment patterns).
Common anti-patterns (flat tag lists; mixing levels; template drift).
Worked example: map a packaging line to Asset Tree + UDTs, then ingest via OPC UA and publish via MQTT/Sparkplug B.
Cross-links to keep UX tight
From Unified Namespace (Modules Reference) pages—Asset Tree, Tags, DataTemplates, Enumerations, TagProvider Connections—link to both Reference pages above.
From Connectivity Hub (MQTT/Sparkplug B, OPC UA) link to the UNS Design page for modeling guidance.
If you want, I can draft the first page with headers and one-line blurbs so you can paste it directly into the docs.