> For the complete documentation index, see [llms.txt](https://kopens.gitbook.io/plantpulse-platform/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kopens.gitbook.io/plantpulse-platform/user/status.md).

# 상태 코드 정의

## 목차

* [개요](#overview)
* [알람 우선순위](#alarm-priority)
* [진단 레벨](#diagnostic-level)
* [통신 연결 상태 (OPC/엣지)](#opc-connection)
* [통신 지연 상태 (OPC 레이턴시)](#opc-latency)
* [건강 상태 (사이트/구역/라인/설비)](#health-status)
* [연결 상태 집계 (계층 단위)](#connection-status)
* [시스템 헬스 상태](#system-health)
* [헬스체크 상태 (인프라 컴포넌트)](#healthcheck)
* [설비 운전 상태 (OEE)](#oee-status)
* [작업지시 상태 (전체 라이프사이클)](#workorder-status)
* [캘린더(시프트) 상태](#calendar-status)
* [태그 알람밴드 코드](#tag-alarm-band)
* [엔티티 라이프사이클 이벤트](#entity-lifecycle)
* [플로우 노드 관계 (Relations)](#flow-relations)
* [공통 색상 팔레트](#color-palette)

***

## 개요 <a href="#overview" id="overview"></a>

플랫폼 화면 곳곳에 표시되는 상태 뱃지·아이콘·색상의 의미를 한 페이지에 모아 둔 레퍼런스입니다. 운영 중 마주치시는 색이나 코드의 의미가 헷갈리실 때 이 문서를 펼쳐 확인하시면 됩니다.

이 문서는 화면이 아닌 **상태 코드 레퍼런스** 문서로, 다음 화면 곳곳에 표시되는 코드를 매핑합니다.

* [대시보드](/plantpulse-platform/user/summary.md) · [일일 통계](/plantpulse-platform/user/statistics.md) · [연결 관리](/plantpulse-platform/user/connection.md) · [설비](/plantpulse-platform/user/equipment.md)
* [알람](/plantpulse-platform/user/alarm.md) · [진단](/plantpulse-platform/user/diagnostic.md) · [작업지시](/plantpulse-platform/user/production.md)

***

## 알람 우선순위 <a href="#alarm-priority" id="alarm-priority"></a>

알람의 심각도를 나타내는 3단계 레벨입니다.

| 코드      | 한국어 | 색상 | HEX       | 설명       | 권장 조치                  |
| ------- | --- | -- | --------- | -------- | ---------------------- |
| `INFO`  | 정보  | 녹색 | `#5eb561` | 정보성 알람   | 즉각 조치 불필요, 참고용         |
| `WARN`  | 경고  | 주황 | `#eb7f0a` | 주의 필요    | 추이 확인, 임계 근접 시 점검 준비   |
| `ERROR` | 심각  | 빨강 | `#d9534f` | 즉각 조치 필요 | 발생 자산 점검 또는 시스템 관리자 통보 |

### 알람 밴드와 우선순위 매핑

알람 밴드(임계값 구간)는 자동으로 우선순위에 매핑됩니다.

| 알람 밴드                    | 매핑 우선순위      |
| ------------------------ | ------------ |
| `NORMAL`                 | 알람 미발생       |
| `HIGH` / `LOW`           | `INFO` (정보)  |
| `HIGH-HIGH` / `LOW-LOW`  | `WARN` (경고)  |
| `TRIP-HIGH` / `TRIP-LOW` | `ERROR` (심각) |

### 알람 활성·확인 상태

| 필드        | 값   | 의미                 |
| --------- | --- | ------------------ |
| `is_on`   | `Y` | 알람 활성 (발생 중)       |
| `is_on`   | `N` | 알람 해제 (복구됨)        |
| `is_read` | `Y` | 확인됨 (Acknowledged) |
| `is_read` | `N` | 미확인 (Unread)       |

> 운영자가 알람을 확인했어도 (`is_read=Y`) 아직 복구되지 않았다면 (`is_on=Y`) 화면에서는 활성 알람으로 표시됩니다.

***

## 진단 레벨 <a href="#diagnostic-level" id="diagnostic-level"></a>

[진단](/plantpulse-platform/user/diagnostic.md) 화면에 표시되는 시스템 진단 로그의 심각도입니다.

| 코드      | 한국어 | 색상 | HEX       | 설명                    |
| ------- | --- | -- | --------- | --------------------- |
| `INFO`  | 정보  | 파랑 | `#5bc0de` | 정상 동작 정보 (시작/종료 알림 등) |
| `WARN`  | 경고  | 주황 | `#f0ad4e` | 잠재적 문제, 모니터링 필요       |
| `ERROR` | 심각  | 빨강 | `#d9534f` | 심각 상황, 즉시 점검 필요       |

> 화면 색상은 운영 환경의 테마 설정에 따라 다소 다를 수 있습니다.

***

## 통신 연결 상태 (OPC/엣지) <a href="#opc-connection" id="opc-connection"></a>

OPC 서버·엣지 디바이스의 데이터 수신 상태를 **마지막 수신 시각** 기준으로 판단합니다.

| 코드             | 한국어  | 색상    | HEX       | 임계값         | 설명          |
| -------------- | ---- | ----- | --------- | ----------- | ----------- |
| `OK`           | 정상연결 | 녹색    | `#2e7d32` | 10분 미만      | 데이터 수신 정상   |
| `WARN`         | 연결지연 | 주황    | `#e65100` | 10분 \~ 60분  | 데이터 미수신, 주의 |
| `ERROR`        | 연결이상 | 빨강    | `#b71c1c` | 60분 \~ 24시간 | 1시간 이상 미수신  |
| `DISCONNECTED` | 연결끊김 | 회색    | `#888`    | 24시간 초과     | 24시간 이상 미수신 |
| `UNKNOWN`      | 연결안됨 | 옅은 회색 | `#ccc`    | —           | 최종 수신 이력 없음 |

### 빠른 식별 팁

| 상황               | 의미                                                               |
| ---------------- | ---------------------------------------------------------------- |
| 신규 OPC 등록 직후     | `UNKNOWN` (한 번도 수신 안 됨)                                          |
| 수집 정상 운영         | `OK`                                                             |
| 잠시 단절 (네트워크/재시작) | `WARN`                                                           |
| 1시간 이상 단절        | `ERROR` (즉시 [연결 관리](/plantpulse-platform/user/connection.md) 점검) |
| 하루 이상 단절         | `DISCONNECTED` (디바이스/네트워크 점검)                                    |

***

## 통신 지연 상태 (OPC 레이턴시) <a href="#opc-latency" id="opc-latency"></a>

OPC 의 평균 응답 지연 시간으로 판단합니다.

| 코드        | 한국어  | 색상 | 임계값       | 설명             |
| --------- | ---- | -- | --------- | -------------- |
| `OK`      | 정상   | 녹색 | 1초 미만     | 응답 지연 없음       |
| `WARN`    | 지연   | 주황 | 1초 \~ 10초 | 응답 지연 발생       |
| `ERROR`   | 심각지연 | 빨강 | 10초 이상    | 심각한 응답 지연      |
| `UNKNOWN` | 알수없음 | 회색 | —         | 레이턴시 측정 데이터 없음 |

***

## 건강 상태 (사이트/구역/라인/설비) <a href="#health-status" id="health-status"></a>

계층별 건강 상태입니다. 해당 계층 하위에 발생한 알람의 최고 레벨로 결정됩니다.

| 코드        | 한국어 | 색상    | HEX       | 설명                     |
| --------- | --- | ----- | --------- | ---------------------- |
| `NORMAL`  | 정상  | 녹색    | `#3d8b40` | 알람 없음                  |
| `WARN`    | 주의  | 주황    | `#eb7f0a` | 경고 알람 1건 이상            |
| `ERROR`   | 위험  | 빨강    | `#d9534f` | 심각 알람 1건 이상            |
| `UNKNOWN` | 미상  | 옅은 회색 | `#ccc`    | 평가 데이터 없음 (신규 등록 직후 등) |

**판정 로직**: 심각 알람 1건 이상 → `ERROR`, 경고 알람 1건 이상 → `WARN`, 그 외 → `NORMAL`. 평가 자체가 없으면 `UNKNOWN`.

***

## 연결 상태 집계 (계층 단위) <a href="#connection-status" id="connection-status"></a>

사이트/구역/라인/설비 같은 계층의 연결 상태는 그 계층에 속한 모든 OPC/엣지의 상태를 집계해 결정됩니다.

| 코드             | 한국어  | 색상                | 설명                       |
| -------------- | ---- | ----------------- | ------------------------ |
| `NORMAL`       | 정상연결 | 녹색                | 하위 모두 `OK`               |
| `WARN`         | 연결지연 | 주황                | 하위에 `WARN` 1건 이상         |
| `ERROR`        | 연결이상 | 빨강                | 하위에 `ERROR` 1건 이상        |
| `DISCONNECTED` | 연결끊김 | 진한 빨강 (`#4a0e0e`) | 하위에 `DISCONNECTED` 1건 이상 |
| `UNKNOWN`      | 연결안됨 | 옅은 회색             | 하위에 평가 데이터가 없음           |

**판정 로직(우선순위 높음 → 낮음)**: `DISCONNECTED` → `ERROR` → `WARN` → `NORMAL` → `UNKNOWN`.

***

## 시스템 헬스 상태 <a href="#system-health" id="system-health"></a>

플랫폼 전체 건강 상태입니다. 진단 로그 카운트로 결정됩니다.

| 코드       | 한국어 | 색상 | 설명                  |
| -------- | --- | -- | ------------------- |
| `NORMAL` | 정상  | 녹색 | 진단 로그 없음            |
| `INFO`   | 정보  | 파랑 | 정보성 진단만 발생          |
| `WARN`   | 경고  | 주황 | 경고 진단 발생            |
| `ERROR`  | 위험  | 빨강 | 심각 진단 발생, 시스템 점검 필요 |

부하 워치독은 [대시보드 헬스 레일](/plantpulse-platform/user/summary.md#health-rail)·[진단](/plantpulse-platform/user/diagnostic.md) 의 **HEALTHY/DEGRADED/CRITICAL** 3단계 상태머신을 별도로 운영합니다.

| 워치독 상태     | 의미                   | 발행               |
| ---------- | -------------------- | ---------------- |
| `HEALTHY`  | 정상 부하                | (회복 시 1줄 기록)     |
| `DEGRADED` | 임계 1단계 초과가 30초 이상 지속 | 진단 로그 1줄 (WARN)  |
| `CRITICAL` | 임계 2단계 초과가 30초 이상 지속 | 진단 로그 1줄 (ERROR) |

***

## 헬스체크 상태 (인프라 컴포넌트) <a href="#healthcheck" id="healthcheck"></a>

[대시보드 헬스 레일](/plantpulse-platform/user/summary.md#health-rail) 의 "인프라" 섹션에 표시됩니다.

### 결과 코드

| 코드         | 한국어  | 의미          |
| ---------- | ---- | ----------- |
| `NORMAL`   | 정상   | 컴포넌트 정상 동작  |
| `ABNORMAL` | 비정상  | 컴포넌트 이상 감지  |
| `UNKNOWN`  | 알수없음 | 헬스체크 결과 미수신 |

### 헬스체크 대상 (대시보드 헬스 레일 라벨 기준)

| 라벨       | 역할             |
| -------- | -------------- |
| 인-메모리 캐시 | 운영 데이터 캐시      |
| 웹소켓      | 실시간 푸시 채널      |
| MQTT     | MQTT 메시지 채널    |
| KAFKA    | KAFKA 메시지 채널   |
| 이벤트 스토어  | 이벤트·시계열 영구 저장소 |
| 시계열 엔진   | 시계열 데이터 처리 엔진  |

> 컴포넌트 라벨은 운영 화면에 그대로 표시되는 명칭입니다. 내부 구현 변경이 있어도 화면 라벨은 유지됩니다.

***

## 설비 운전 상태 (OEE) <a href="#oee-status" id="oee-status"></a>

OEE(설비 종합 효율) 기반 설비 운전 상태입니다.

| 코드              | 한국어  | 색상    | HEX       | 설명                  |
| --------------- | ---- | ----- | --------- | ------------------- |
| `RUN`           | 가동   | 녹색    | `#15803D` | 정상 생산 가동 중          |
| `IDLE`          | 유휴   | 주황    | `#D97706` | 대기 (원자재 부족·지시 대기 등) |
| `FAULT`         | 고장   | 빨강    | `#B91C1C` | 설비 고장/이상으로 비가동      |
| `STOP`          | 정지   | 진한 회색 | `#374151` | 작업자 의도적 정지          |
| `SETUP`         | 셋업   | 파랑    | `#1D4ED8` | 준비/셋업 (금형 교체·워밍업)   |
| `PLANNED_STOP`  | 계획정지 | 파랑    | `#1D4ED8` | 계획된 정지 (점심·정기점검·휴무) |
| `PLANNED_START` | 계획시작 | 파랑    | `#1D4ED8` | 계획된 가동 시작           |
| `DOWN`          | 비가동  | 회색    | `#4B5563` | 비가동 상태              |
| `UNKNOWN`       | 알수없음 | 회색    | `#888`    | 상태 불명               |

### 가동/비가동 분류

| 분류                     | 포함 코드                                                      |
| ---------------------- | ---------------------------------------------------------- |
| **가동(Operating)**      | `RUN`, `SETUP` (생산 준비), `PLANNED_START`                    |
| **비가동(Non-operating)** | `IDLE`, `FAULT`, `STOP`, `PLANNED_STOP`, `DOWN`, `UNKNOWN` |

OEE 의 **가동률(Availability)** 은 가동 시간 ÷ 계획 운전 시간으로 계산됩니다(계획 정지는 분모에서 제외).

***

## 작업지시 상태 (전체 라이프사이클) <a href="#workorder-status" id="workorder-status"></a>

작업지시(WorkOrder) 의 상태머신입니다.

| 코드        | 한국어  | 색상    | HEX       | 설명                        |
| --------- | ---- | ----- | --------- | ------------------------- |
| `WAIT`    | 대기   | 회색    | `#888`    | 작업 지시 대기 (생성 직후 기본 상태)    |
| `START`   | 진행중  | 녹색    | `#15803D` | 작업 지시 실행 중                |
| `PAUSED`  | 일시정지 | 주황    | `#D97706` | 작업 일시 중단 (재개 가능)          |
| `END`     | 완료   | 진한 회색 | `#374151` | 작업 정상 완료                  |
| `ABORTED` | 중단   | 진한 빨강 | `#7f1d1d` | 작업 비정상 종료 (품질 이상·라인 격리 등) |

### 상태 전이 다이어그램

```
WAIT  ─[start]─▶  START  ─[pause]─▶  PAUSED
                    │  ▲              │
                    │  └─[resume]─────┘
                    │
                    ├─[end]──────▶  END
                    │
                    └─[abort]────▶  ABORTED
                          ▲
            PAUSED ───[abort]──┘
            PAUSED ───[end]────▶ END
```

| 전이                           | 자동화 노드                                            |
| ---------------------------- | ------------------------------------------------- |
| `WAIT` → `START`             | `flow_start_work_order`                           |
| `START` → `PAUSED`           | `flow_pause_work_order`                           |
| `PAUSED` → `START`           | `flow_resume_work_order`                          |
| `START`/`PAUSED` → `END`     | `flow_end_work_order`                             |
| `START`/`PAUSED` → `ABORTED` | `flow_abort_work_order` (`abort_code`/`notes` 옵션) |

> 자동화 노드 상세는 [플로우 — 작업지시 상태 전이](/plantpulse-platform/user/flow.md#actions-crud) 참고.

***

## 캘린더(시프트) 상태 <a href="#calendar-status" id="calendar-status"></a>

근무표(시프트) 일정의 상태입니다.

| 코드         | 한국어 | 색상    | HEX       | 설명           |
| ---------- | --- | ----- | --------- | ------------ |
| `UPCOMING` | 예정  | 회색    | `#888`    | 미래 일정        |
| `PROGRESS` | 진행중 | 녹색    | `#15803D` | 현재 진행 중인 시프트 |
| `DONE`     | 완료  | 진한 회색 | `#374151` | 종료된 시프트      |

***

## 태그 알람밴드 코드 <a href="#tag-alarm-band" id="tag-alarm-band"></a>

태그가 어떤 알람밴드 구간에 있는지를 나타내는 코드입니다.

### 수치형 (Numeric)

| 코드          | 한국어  | 의미                  |
| ----------- | ---- | ------------------- |
| `NORMAL`    | 정상   | 알람 미발생 구간           |
| `HIGH`      | 상한   | 사용자 정의 상한 초과        |
| `LOW`       | 하한   | 사용자 정의 하한 미만        |
| `HIGH-HIGH` | 상상한  | 심각 상한 초과            |
| `LOW-LOW`   | 하하한  | 심각 하한 미만            |
| `TRIP-HIGH` | 트립상한 | 트립 상한 초과 (즉시 정지 권고) |
| `TRIP-LOW`  | 트립하한 | 트립 하한 미만 (즉시 정지 권고) |

### 불린형 (Boolean)

| 코드           | 한국어 | 설명              |
| ------------ | --- | --------------- |
| `BOOL_TRUE`  | 참   | 태그 값이 true 일 때  |
| `BOOL_FALSE` | 거짓  | 태그 값이 false 일 때 |

각 불린값마다 우선순위(`bool_true_priority` / `bool_false_priority`)와 메시지(`bool_true_message` / `bool_false_message`)를 별도로 정의할 수 있습니다.

***

## 엔티티 라이프사이클 이벤트 <a href="#entity-lifecycle" id="entity-lifecycle"></a>

도메인 엔티티(자산·태그·작업지시·시프트 등)의 변경 이벤트 타입입니다.

| 이벤트              | 발생 시점        |
| ---------------- | ------------ |
| `ENTITY_CREATED` | 엔티티 신규 생성 직후 |
| `ENTITY_UPDATED` | 엔티티 메타 수정 직후 |
| `ENTITY_DELETED` | 엔티티 삭제 직후    |

[플로우](/plantpulse-platform/user/flow.md) 의 `flow_on_entity_event` 트리거가 이 이벤트들을 받습니다.

### 자산 단위 이벤트

| 이벤트                       | 발생               |
| ------------------------- | ---------------- |
| `ASSET_DATA`              | 자산 텔레메트리 인입      |
| `ASSET_EVENT`             | 자산 도메인 이벤트       |
| `ASSET_ALARM`             | 자산 알람 발생         |
| `ASSET_COMMAND`           | 자산 명령 발행         |
| `ASSET_AGGREGATION`       | 자산 집계(예: 6시간 평균) |
| `ASSET_CONTEXT`           | 자산 컨텍스트          |
| `ASSET_HEALTH_STATUS`     | 자산 헬스 주기 평가 결과   |
| `ASSET_CONNECTION_STATUS` | 자산 연결 주기 평가 결과   |

***

## 플로우 노드 관계 (Relations) <a href="#flow-relations" id="flow-relations"></a>

[플로우](/plantpulse-platform/user/flow.md) 화면에서 노드 간 와이어에 표기되는 관계 라벨입니다. **모두 대문자**입니다.

| 코드          | 의미                      |
| ----------- | ----------------------- |
| `SUCCESS`   | 정상 처리 완료                |
| `FAILURE`   | 처리 실패 (보통 에러 핸들러로 분기)   |
| `TRUE`      | 조건 필터의 참                |
| `FALSE`     | 조건 필터의 거짓               |
| `MATCH`     | Switch 노드의 일치 분기        |
| `NO_MATCH`  | Switch 노드의 불일치          |
| `DEFAULT`   | Switch 노드의 모든 case 미매칭  |
| `THROTTLED` | Throttle 노드 차단          |
| `EXHAUSTED` | Retry 최대 시도 초과          |
| `SKIPPED`   | 트리거 패턴 미매칭 (실행 카운트 미포함) |

***

## 공통 색상 팔레트 <a href="#color-palette" id="color-palette"></a>

### 기본 3단계 상태 색상

| 상태          | 색상명   | HEX                   |
| ----------- | ----- | --------------------- |
| 정상          | 녹색    | `#5eb561`             |
| 경고          | 주황    | `#eb7f0a`             |
| 심각/위험       | 빨강    | `#d9534f`             |
| 비활성/미상      | 회색    | `#888`                |
| 매우 위험(연결끊김) | 진한 빨강 | `#4a0e0e` / `#7f1d1d` |

### 설비 상태 색상 (OEE)

| 상태    | 색상명   | HEX       |
| ----- | ----- | --------- |
| 가동    | 녹색    | `#15803D` |
| 유휴    | 주황    | `#D97706` |
| 고장    | 빨강    | `#B91C1C` |
| 정지    | 진한 회색 | `#374151` |
| 셋업/계획 | 파랑    | `#1D4ED8` |
| 비가동   | 회색    | `#4B5563` |
| 알수없음  | 회색    | `#888`    |

### 알람 우선순위 색상 (별도 팔레트)

| 우선순위       | HEX                                    |
| ---------- | -------------------------------------- |
| 정보 (INFO)  | `#5bc0de` (사이드 패널) / `#5eb561` (목록 뱃지) |
| 경고 (WARN)  | `#f0ad4e` (사이드 패널) / `#eb7f0a` (목록 뱃지) |
| 심각 (ERROR) | `#d9534f` (공통)                         |

> 같은 의미의 색상이라도 화면 영역에 따라 미세하게 다른 톤이 사용됩니다. 표시 일관성은 같은 화면 내에서 유지됩니다.

### 차트 시리즈 기본 색상 순서

차트의 다중 시리즈는 다음 순서로 색이 부여됩니다.

```
파랑 → 녹색 → 주황 → 보라 → 청록 → 빨강 → 노랑 → 회색 → ...
```

차트별 시리즈 수가 많을 때 일부 색상이 반복될 수 있습니다.
