You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »


UNS Design Based on ISA-95

Overview

ISA-95 provides the international standard for integrating enterprise and control systems, defining hierarchical levels, data models, and information flows. This guide implements ISA-95 principles within FrameworX's Unified Namespace (UNS), creating a standardized data architecture that bridges OT and IT systems while maintaining clear functional boundaries.

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:
  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 (Business to Manufacturing Markup Language)

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

  1. Assessment Phase:

    • Map existing systems to ISA-95 levels
    • Identify integration points
    • Define data models
  2. Design Phase:

    • Create UNS structure
    • Define naming conventions
    • Establish data contracts
  3. Implementation Phase:

    • Deploy level by level
    • Start with Level 2 (SCADA)
    • Expand up and down
  4. Validation Phase:

    • Verify data flows
    • Test transaction boundaries
    • Validate performance

Related Documentation



  • UNS Design Based on ISA-95 (Reference)

    Keep under Industry Standards (Reference) (it already appears there). 

Cross-link both from Solution Concepts → Unified Namespace (Foundation) and from the UNS pages in Modules Reference.   



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.


  • No labels