工場データ基盤
対応エディションEdgeCloudEnterprise
Tier0 では、工場データは UNS(Unified Namespace)の考え方に基づき、明確なツリー構造のモデルとして整理され、統一されたデータ基盤を形成します。
- Broker は model topic を通じてデータを受信、送信します。
%%{init: {"flowchart": {"defaultRenderer": "elk", "nodeSpacing": 32, "rankSpacing": 48, "diagramPadding": 8}}}%%
flowchart TB
source["データソース / コンシューマー"]
subgraph UNS["Unified Namespace"]
direction LR
Model["Model<br/>path、topic、payload を定義"]
Broker["Broker<br/>データ交換を処理"]
Storage["ストレージ<br/>データを永続化"]
Model <--> Broker
Broker --> Storage
end
source <-- "MQTT / API" --> Broker
classDef broker fill:#F7FAF2,stroke:#D8E6B8,stroke-width:1px,color:#2A2A2A,stroke-dasharray:5 5
class Broker broker- Model は Metric、State、Action の 3 種類に分類されます。
- データは model type に応じて異なるデータベースに保存されます。
- Action/State: JSONB (PostgreSQL)
- Metric: リアルタイムデータ(TSDB)
%%{init: {
"themeVariables": {
"fontSize": "14pt"
},
"flowchart": {
"defaultRenderer": "elk",
"nodeSpacing": 40,
"rankSpacing": 56,
"diagramPadding": 8
}
}}%%
flowchart LR
subgraph Model["モデルタイプ"]
direction TB
metric["Metric<br/>高頻度の数値データ"]
state["State<br/>現在の事実または状態"]
action["Action<br/>コマンドまたは要求操作"]
end
subgraph Storage["ストレージ"]
direction TB
tsdb["TSDB<br/>Metric 履歴の時系列ストレージ"]
jsonb["JSONB<br/>State と Action のドキュメントストレージ"]
end
metric --> tsdb
state --> jsonb
action --> jsonbBroker
Section titled “Broker”UNS broker は、データモデルに基づいて MQTT または OpenAPI 経由でデータを受信、送信するプラットフォームコンポーネントです。
- MQTT の場合:model tree 内の各 node の完全な path が topic address として機能し、message payload を渡します。
- OpenAPI の場合:HTTP request を通じて data model に対する CRUD コマンドを実行します。
Metric, State, Action
Section titled “Metric, State, Action”産業データは変化頻度と用途が異なるため、Tier0 は UNS model を 3 つの固定 type に分けます。
| Type | Object | Example |
|---|---|---|
METRIC |
継続的に収集され、時系列保存が必要な高頻度データ向けに設計されています。 | Machine temperature/pressure/voltage |
STATE |
変化頻度が比較的低く、object の現在状態または事実を表すデータ向けに設計されています。 | Machine operational status |
ACTION |
外部システムまたは operator が実行すべき内容を記録する低頻度の command data 向けに設計されています。 | Start batch, stop machine |
Path/Topic, Payload
Section titled “Path/Topic, Payload”各 UNS model には path、topic、payload が含まれます。これらが一緒になって、business context を持ち産業データを運ぶ tree 構造を形成します。
- Path/Topic:path はデータの所属を表し、topic は message payload を運びます。これらが model address を定義します。
- Payload:topic が保持する message payload です。key-value 形式の JSON で、model data を定義します。
たとえば、UNS 内の model は次のような tree になります。
Factory_A └── Site_01 └── SMT_Line_1 └── Metric └── Machine_001- Path:
Factory_A/Site_01/SMT_Line_1/Metric - Topic:
/Machine_001. - Payload
Terminal window "temperature": 85,"vibration": 2.8,
Factory_A └── ERP └── ProductionOrders └── State └── OrderList- Path:
Factory_A/ERP/ProductionOrders/State - Topic:
/OrderList. - Payload
Terminal window "orders": "0123569876","updated_at": 2026-7-13,
Storage
Section titled “Storage”Tier0 は PostgreSQL を使ってデータを保存します。データ type によって変化速度と保存要件が異なります。
| Data Type | Storage | Description |
|---|---|---|
METRIC |
TSDB | 温度や圧力などの高頻度測定値に最適化されています。各 topic には default field として timestamp と quality が含まれます。 |
STATE |
PostgreSQL | machine または system state を柔軟な JSONB 形式で保存します。 |
ACTION |
PostgreSQL | command または action を柔軟な JSONB 形式で保存します。 |
- UNS にデータを接続する - 工場を UNS にモデル化し、データをモデルへ接続する方法。
- 工場データを扱う - MQTT と API を通じて UNS model を操作する方法。