콘텐츠로 이동

공장 데이터 모델링

지원 에디션EdgeCloudEnterprise

물리적 위치가 있는 기계와 설비의 산업 데이터는 일반적으로 ISA-95 표준을 기반으로 모델링합니다.

Terminal window
Enterprise (Level 4)
└── Site (Level 3/4)
└── Area (Level 3)
└── Work Center / Process Cell (Level 2/3)
└── Equipment / Unit (Level 1/2)
└── Control Module / Device (Level 0/1)

ERP의 생산 주문, 작업 지시 계획 같은 비즈니스 계획 및 프로세스 객체는 비즈니스 context에 맞게 모델링합니다.

Terminal window
Factory / Business Domain / Business Object / Topic Type / Topic
  • Business Domain: data가 속한 business process 또는 system을 확인합니다.

    Terminal window
    ERP
    MES
    WMS
    QMS
    EAM
    LIMS
    Planning
    Inventory
    Maintenance
    Quality
    Logistics
    ...
  • Business Object: business domain에서 관리되는 핵심 object입니다.

    Terminal window
    ProductionOrders
    WorkOrderPlan
    MaterialInventory
    QualityInspection
    MaintenanceOrders
    PurchaseOrders
    Shipments
    ...
  • Topic Type: Metric, Action, State 중 data type을 선택합니다.

    Topic Type Used for Examples

| STATE | 현재 상태 또는 현재 사실 | work order status, order status, equipment status | | METRIC | 지속적으로 변하는 숫자 값 | Temperature, speed, output, OEE, energy consumption | | ACTION | 외부 실행자를 위한 command | 설비 시작, 설비 정지, alarm reset, work order dispatch 요청 |

Terminal window
DemoFactory
└── ERP
├── ProductionOrders
│ └── State
│ ├── UpsertProductionOrder
│ └── OrderList
└── WorkOrderPlan
├── Metric
│ └── SplitCount
└── State
├── PlanStatus
└── WorkOrderList

Tier0는 topic 폭증을 피하기 위해 Metric, Action, State 세 가지 고정 topic type을 사용합니다.

  • Use Metric for high-frequency real-time data

    각 signal 세부 항목마다 namespace를 확장하지 말고, 고빈도 측정값과 telemetry는 Metric 아래에 둡니다.

    Terminal window
    Factory_A
    └── SMT_Line_1
    └── Machine_001
    ├── Temperature_Value
    ├── Temperature_Unit
    ├── Temperature_Status
    └── Speed_Value
  • Use State for low-frequency status data

    저빈도 상태, snapshot, 현재 비즈니스 상태는 State 아래에 둡니다. 작업, batch, 주문처럼 변하는 entity마다 새 topic을 만들지 않습니다.

    Terminal window
    Factory_A
    └── SMT_Line_1
    └── State
    ├── Job_001
    ├── Job_002
    └── Job_003
  • Use Action for low-frequency action data

    명령, 요청, operator action은 Action 아래에 둡니다. action 입력은 parameter별 topic이 아니라 topic의 field로 유지합니다.

    Terminal window
    Factory_A
    └── SMT_Line_1
    └── Machine_001
    ├── Start_Command
    ├── Target_Height
    └── Light_On

topic payload를 설계할 때는 소비할 데이터와 다시 쓸 데이터를 모두 고려해야 합니다.

  • Action

    Action payload에는 데이터가 Tier0 데이터베이스에 저장된 시간을 기록하는 _timestamp가 자동 포함됩니다.

    Terminal window
    {
    "light_turn_on": true,
    "height_adjust": 12.5,
    "_timestamp": "2026-07-10T10:00:00Z"
    }
  • Metric

    Metric payload에는 데이터가 Tier0 데이터베이스에 저장된 시간을 기록하는 _timestamp와 데이터 품질을 나타내는 _quality가 자동 포함됩니다.

    Terminal window
    {
    "production_order_id": "PO-20260710-001",
    "plan_id": "PLAN-001",
    "plan_number": "WOP-20260710-001",
    "split_count": 3,
    "updated_at": "2026-07-10T10:00:00Z",
    "_timestamp": "2026-07-10T10:00:00Z",
    "_quality": "Good"
    }
  • State

    State payload에는 데이터가 Tier0 데이터베이스에 저장된 시간을 기록하는 _timestamp가 자동 포함됩니다.

    Terminal window
    {
    "event_id": "EVT-001",
    "event_type": "UPSERT",
    "source": "ERP",
    "production_order_id": "PO-20260710-001",
    "order_number": "PO-001",
    "product_code": "SKU-1001",
    "planned_qty": 1200,
    "unit": "pcs",
    "status": "Released",
    "due_date": "2026-07-12T00:00:00Z",
    "updated_at": "2026-07-10T10:00:00Z",
    "_timestamp": "2026-07-10T10:00:00Z"
    }