팩토리 관리
목차
- 개요
- 화면 구성 — 6개 하위 메뉴
- 모델 화면 (
/model/index) - 에셋 화면 (
/asset/tree/index) - 태그 화면 (
/tag/index) - 온톨로지 화면 (
/ontology/index) - 메타데이터 화면 (
/metadata/index) - 기준정보 화면 (
/basedata/index) - 팩토리 모델 확정
- 활용 시나리오
- 자주 묻는 질문
- 관련 화면
개요
Factory Model 그룹은 공장 구조와 도메인 메타정보(자산·태그·온톨로지·메타데이터·기준정보)를 등록·수정·삭제하는 영역입니다. 6개 하위 화면으로 구성되며 모두 운영 메타 저장소와 직접 연결됩니다.
| 하위 메뉴 | 내부 URL | 용도 |
|---|---|---|
| 모델 | /model/index | 사이트 추가 + 논리/물리 모델 매핑 + 모델 확정 |
| 에셋 | /asset/tree/index | 자산 트리(사이트→구역→라인→설비) 편집 |
| 태그 | /tag/index | 등록된 태그 목록·검색·일괄 삭제·엑셀 내보내기 |
| 온톨로지 | /ontology/index | 자산 분류 체계(카테고리·메타속성) 등록 |
| 메타데이터 | /metadata/index | 도메인별 사용자 정의 메타속성 키-값 |
| 기준정보 | /basedata/index | 코드 마스터·기준값 등록 |
운영 시작 전에 이 메뉴에서 사이트·자산·태그를 모두 등록해야 대시보드·데이터 포인트·알람 등 다른 화면이 의미를 가집니다.
화면 구성 — 6개 하위 메뉴
운영 흐름:
[모델] → [에셋] → [태그]
사이트 추가 자산 계층 등록 태그 등록·매핑
│ │ │
└─────[온톨로지·메타데이터·기준정보 보강]──────┘
│
└→ [팩토리 모델 확정] (배포)
| 화면 | 사용 빈도 | 언제 여나 |
|---|---|---|
| 모델 | 중 | 사이트를 새로 추가하거나 논리↔물리 매핑을 손볼 때 |
| 에셋 | 높음 | 자산 계층·자산 메타를 바꿀 때 |
| 태그 | 매우 높음 | 태그 등록·수정·알람밴드 설정 — 가장 자주 씁니다 |
| 온톨로지 | 중 | 분류 체계를 정비할 때 |
| 메타데이터 | 낮음 | 사용자 정의 메타속성을 추가할 때 |
| 기준정보 | 낮음 | 코드 마스터를 손볼 때 |
모델 화면 (/model/index)
상단 도구
🗂 모델 [✓ 팩토리 모델 확정] [💾 메타 스토어 백업] [↻]
| 버튼 | 동작 |
|---|---|
| 팩토리 모델 확정 | deployAssetToEvent() — 등록된 자산/태그를 이벤트 룰에 적용해 룰 엔진에 반영 (아래 팩토리 모델 확정 참고) |
| 메타 스토어 백업 | backup() — 메타 저장소 전체를 백업(관리자 보관용) |
| 새로고침 | refresh() |
안내 박스
🏭 사이트 추가 및 물리/논리 모델 설정 인더스트리얼 데이터를 연결할 팩토리(사이트)를 등록하여 주십시오. 그 다음 사이트에 연결된 OPC나 기타 산업 프로토콜에 연결하여 물리 모델을 완성하여 주십시오. 이후 물리 모델을 논리 모델으로 치환하게 되면 사이트 구조 설정이 완료됩니다.
사이트 목록 (카드 그리드)
사이트 목록 [전체 N개의 사이트] [➕ 사이트 추가]
─────────────────────────────────────────────────
[ 사이트 카드 ] [ 사이트 카드 ] [ 사이트 카드 ] ...
각 사이트 카드(site-panel, 240px)에 다음이 표시됩니다.
| 영역 | 표시 |
|---|---|
| 상단 (site-title) | 사이트 ID (노란 배경) |
| 본문 (site-body) | 🏭 사이트 아이콘 + 사이트명 + 설명 — 클릭 시 그 사이트의 자산/연결 트리를 아래에 로드(loadTreeData()) |
| 푸터 (site-footer) | 🔧 수정(editSite()) / 📁 모델 삭제(deleteModels()) / 🗑 사이트 삭제(deleteSite()) |
사이트 추가 폼
| 입력 | 설명 |
|---|---|
| 기업명 | 사이트가 속할 기업. 기업은 설치에 하나뿐입니다 |
| 사이트 ID | 영문 대문자/숫자/_ 만 허용 — SITE_ 로 시작 |
| 사이트 명 | 사람이 식별할 이름 |
| 위치 | [지도에서 선택] 으로 좌표를 고릅니다 |
| 설명 | 자유 텍스트 |
| 운전 상태 | 가동 여부의 큰 단계 |
| 사이트 코드 (ERP/MES) | ERP·MES 가 부르는 공장 코드 (선택) |
| 주소 | 사업장 주소 (선택) |
논리·물리 모델 (좌·우 트리)
사이트 카드를 선택하면 그 아래에 두 트리가 좌·우로 펼쳐집니다.
좌측 — 에셋 [논리 모델] (assetTreeDiv)
| 동작 | 동작 ID | 설명 |
|---|---|---|
| 모델 트리 새로고침 | loadTreeData(last_tree_site_id) | 트리 다시 로드 |
| 에셋 검색 | searchItem('Asset') | 트리 위 검색 입력란 토글 |
| 에셋 추가 | showAddModal('Asset') | 새 에셋 추가 모달 |
| 에셋 수정 | showModifyModal('Asset') | 선택 에셋 수정 |
| 에셋 삭제 | deleteItem('Asset') | 선택 에셋 삭제 |
논리 모델 트리는 사이트→구역→라인→설비로 보이고, 태그는 설비에 붙습니다. 운영자가 의미적으로 구성하는 계층입니다.
데이터 계층은 그 위에 기업을 하나 더 둔 다섯 층이지만(V5 · MCP 응답에 나옵니다), 콘솔의 트리에는 기업이 나오지 않습니다 — 기업은 지도(/map/index)와 사이트 폼에서 고칩니다.
우측 — 연결 [물리 모델] (opcTreeDiv)
| 동작 | 동작 ID | 설명 |
|---|---|---|
| 연결 검색 | searchItem('OPC') | 트리 위 검색 입력란 토글 |
| 연결 추가 | addOpc() | 연결 관리 의 등록 폼으로 이동 |
물리 모델은 OPC 서버→채널→태그 형태의 통신 단위 트리입니다.
논리 ↔ 물리 매핑
좌측의 논리 자산 노드와 우측의 물리 OPC 태그를 드래그/매핑으로 연결합니다. 이렇게 매핑하면 논리 자산(예: 라인 A 의 모터)에서 발생한 데이터가 어느 물리 태그(예: OPC-LINE-A 의 PDI_001)에서 오는지 시스템이 알 수 있습니다.
에셋 추가/수정 모달
좌측 도구 모음의 에셋 추가 또는 에셋 수정 버튼을 누르면 표준 모달이 열립니다. V2026.05 디자인 시스템 적용으로 모달의 모든 양식이 fieldset + form-stack 구조로 통일되어 있습니다.
┌─🏭 에셋 추가 및 수정─────────────────── × ─┐
│ │
│ ┌─🗂 상위 에셋──────────────────────┐ │
│ │ 상위 에셋 ID [읽기 전용] │ │
│ │ 상위 에셋 명 [읽기 전용] │ │
│ └──────────────────────────────────┘ │
│ ┌─📦 에셋 정보─────────────────────┐ │
│ │ 에셋 ID [입력] │ │
│ │ 에셋 명 [입력] │ │
│ │ 설명 [입력] │ │
│ └──────────────────────────────────┘ │
│ │
├──────────────────────────────────────────┤
│ [× 취소] [💾 저장] │
└──────────────────────────────────────────┘
| 영역 | 표시 |
|---|---|
| 모달 헤더 | 🏭 아이콘 + 타이틀 + × 닫기 |
| 상위 에셋 fieldset | 부모 노드의 ID·이름 (읽기 전용 — 트리 선택값을 표시) |
| 에셋 정보 fieldset | 새 에셋의 ID·이름·설명 (입력) |
| 모달 푸터 | × 취소 / 💾 저장 (저장 시 saveForm('Asset')) |
모든 입력란 라벨은
form-label control-label클래스로 통일되어 폭·정렬이 일관됩니다. 다른 화면의 모달(워크오더·이벤트·근무표 등)도 동일한 fieldset + form-stack 패턴을 사용합니다.
에셋 화면 (/asset/tree/index)
자산 트리를 깊이 편집하고, 자산 단위 메타·태그·연결 관계를 한 화면에서 정의합니다. 좌측에 트리, 우측에 상세 폼 + 타임라인 + 자식 테이블/탭이 놓입니다.

| 번호 | 자리 | 하는 일 |
|---|---|---|
| ① | 좌측 상단 | 사이트 셀렉터 — 어느 사이트의 트리를 볼지 고릅니다 |
| ② | 좌측 본문 | 자산 트리 — 사이트 → 구역 → 라인 → 설비. 노드를 고르면 우측이 바뀝니다 |
| ③ | 좌측 하단 | 오브젝트 ID — 트리에서 마우스를 올린 노드의 도메인 ID 가 여기 뜹니다 |
| ④ | 우측 상단 | 에셋 정보 — 고른 노드의 기본 정보·상태 카드·이미지. 위 그림은 설비 하나를 고른 상태이고, 아무것도 안 골랐으면 «에셋을 선택하세요» 안내만 나옵니다 |
| ⑤ | 우측 상단 끝 | 저장 — ④ 에서 고친 내용을 저장합니다 |
| ⑥ | 우측 아래 | 타임라인 — 그 자산의 연결·건강 상태 추이 |
| ⑦ | 화면 우상단 | 팩토리 모델 확정 — 편집한 모델을 엔진에 반영합니다 (아래) |
위 그림이 그 상태입니다 — 「에셋이 선택되지 않았습니다」. 고장이 아닙니다.
좌측 — 자산 트리
🗂 모델 — 사이트 → 구역 → 라인 → 설비 [💬] [🔍] [📋]
사이트: [▼]
[에셋 트리 / 연결 트리]
─────────────────────
🔗 오브젝트 ID: - ← 트리에서 호버 시 도메인 ID 표시 (footer)
| 헤더 아이콘 | 동작 |
|---|---|
| 💬 (말풍선) — 태그 설명 표시 | 트리에 태그 노드의 설명을 함께 표시 토글 |
| 🔍 검색 | 트리 내 텍스트 검색 입력창 토글 |
| 📋 복사 | 선택된 태그명을 클립보드에 복사 |
우측 — 에셋 상세 폼 + 타임라인 + 자식/탭
빈 상태 — 에셋 미선택
좌측 트리에서 어느 노드도 선택하지 않으면 우측 상세 영역에 빈 상태 안내가 표시됩니다.
🟦 (큐브 아이콘)
에셋이 선택되지 않았습니다
왼쪽 에셋 트리에서 [에셋명을 선택]하여 주십시오.
에셋 정보 패널 — 풀컬러 그라디언트 상태 카드 2개
자산을 선택하면 패널 본문 최상단에 메타 한 줄(타입 + 등록/수정일) + 연결 상태 / 건강 상태 두 카드가 좌측에 표시됩니다.
| 카드 | 아이콘 | 표시 |
|---|---|---|
연결 상태 (connection_status) | 📶 와이파이 | 풀컬러 그라디언트 — 🟢 정상 / 🟡 지연 / 🔴 이상 / ⬛ 끊김 / ⚪ 미상 |
건강 상태 (health_status) | 💗 하트비트 | 풀컬러 그라디언트 — 🟢 정상 / 🟡 주의 / 🔴 위험 |
각 카드는 아이콘 + 라벨 + 값(예: "정상연결", "위험") 형태로 그라디언트 배경에 표시되어 멀리서도 색만으로 상태를 즉시 확인할 수 있습니다.
자산 이미지 (우측)
이미지가 등록되어 있으면 SVG/PNG 로 표시됩니다. 없을 때는 빈 상태 표시:
🖼 (이미지 아이콘)
이미지 없음
선택한 노드에 등록된 이미지가 없습니다.
기본 정보 패널 (입력)
| 입력 | path | placeholder/설명 |
|---|---|---|
| 에셋 ID | asset_id | 읽기 전용 |
| 에셋 명 | asset_name | placeholder: 예) 조립 1라인 (한글·영문·숫자·공백·_ . - ( ) & , / :) |
| 설비 분류 | asset_class_code | 이 층의 분류 — 셀렉터. 목록은 기준정보 의 그 층 분류 탭입니다 |
| 설명 | description | 자유 텍스트 |
에셋 이미지 패널
| 컨트롤 | 동작 |
|---|---|
| 📂 파일 선택 | PNG/SVG 선택 (권장 640×320) |
| ☁ 업로드 | 선택한 이미지를 그 자산에 등록 |
타임라인 패널 — 시간 추이
자산 선택 시 그 아래 타임라인 패널이 표시됩니다. 패널 헤더에 기간(from_to) 안내, 본문에 가로 막대 타임라인 + 우측 범례 5종.
| 범례 | 색 | 의미 |
|---|---|---|
| 미상 | ⚪ 회색 | 수신 이력 없음 |
| 정상 | 🟢 녹색 | 이상 없음 |
| 주의 | 🟡 노랑 | 경고 알람 존재 |
| 위험 | 🔴 빨강 | 심각 알람 존재 |
| 끊김 | ⬛ 진빨강 | 24시간 이상 미수신 |
패널 본문 좌상단의 ⓘ 정보 아이콘에 마우스를 올리면 연결 상태 5단계 + 건강 상태 3단계 매핑 표가 큰 툴팁으로 표시됩니다.
고유 속성 탭 — 층마다 가진 속성
사이트 · 구역 · 라인을 고르면 우측 탭은 고유 속성 하나만 나옵니다. 설비는 다른 탭과 함께 맨 끝에 있습니다. 그 층만 가진 속성과 공통 칸을 여기서 고치고, 아래 고유 속성 저장 으로 저장합니다. 고치는 것은 ADMIN 만 할 수 있습니다.

| 번호 | 자리 | 하는 일 |
|---|---|---|
| ① | 탭 줄 끝 | 고유 속성 탭 |
| ② | 탭 본문 | 층별 속성(그림은 설비) · 담당 · 운전 상태 · 외부 번호 |
| ③ | 오른쪽 아래 | 고유 속성 저장 |
| 층 | 항목 |
|---|---|
| 사이트 | 시간대(비우면 설치 시간대) · 국가 · 사이트 코드 · 주소 · 위도 · 경도 |
| 구역 | 기능(생산 / 보관 / 유틸리티) · 담당자 |
| 라인 | 종류(생산 라인 / 프로세스 셀 / 생산 유닛) · 설계 속도(시간당, 값과 단위를 함께) · 담당자 |
| 설비 | 제조사 · 모델 · 일련번호 · 기능 위치 · 중요도(A 높음 / B 보통 / C 낮음) · 설치일 · 가동 개시일 · 보증 종료일 |
| 공통 | 외부 시스템 + 외부 ID(함께 넣거나 함께 비움) · 운전 상태 |
| 칸 | 알아 둘 것 |
|---|---|
| 운전 상태 | 계획 · 시운전 · 운영 중 · 대기 · 사용 중지 · 폐기(ISO 14224). 가동 여부의 큰 단계이며 운전·정지 같은 실시간 상태와도, 알람의 서비스 제외와도 다릅니다 |
| 기능 위치 | 이 설비가 맡은 자리의 번호. 사이트 안에서 하나뿐이어야 합니다 |
| 실제 담당 | 구역·라인·설비에 나오는 읽기 전용 칸. 자기 담당이 비어 있으면 가장 가까운 상위(라인 → 구역)의 담당을 물려받습니다. 담당자 입력칸은 구역·라인에만 있습니다 |
하위 에셋 목록 (SITE/AREA/LINE 선택 시)
SITE / AREA / LINE 노드를 선택한 경우에만 표시됩니다.
| 컬럼 | 폭 | 표시 |
|---|---|---|
| 에셋 ID | 250px | 자식 자산의 ID (도메인 뱃지) |
| 에셋 명 | 250px | 자식 자산의 이름 |
| 설명 | 자동 | 메모 |
EQUIPMENT 선택 시 — 13개 탭 패널
설비(EQUIPMENT) 노드를 선택하면 자식 테이블 대신 13개 탭 패널이 표시됩니다.
| 탭 | 아이콘 | 패널 | 내용 |
|---|---|---|---|
| ① 연결 | 🌐 | 맵핑된 연결 목록 | 이 설비에 연결된 OPC/PLC/Modbus 등 데이터 소스 — 연결상태·ID·명·유형·서버 IP |
| ② 태그 | 🏷 | 맵핑된 태그 | 설비에 매핑된 태그와 현재 값·단위·데이터 타입·마지막 업데이트 |
| ③ 데이터 | 🗄 | 최근 데이터 | 최근 수집된 시계열 스냅샷 (타임스탬프 · 데이터 JSON) + [트렌드 이동] |
| ④ 알람 | 🔔 | 최근 알람 목록 | 설비 매핑 태그에서 발생한 알람 (SEQ · 활성 · 중요도 · 내용) + [알람 이동] |
| ⑤ 이벤트 | 📅 | 최근 이벤트 목록 | 스테이트먼트·플러그인이 발생시킨 이벤트 (이벤트명 · 색상 · 시작 시간 · 지속시간[MS]) |
| ⑥ 상태 | 👁 | 최근 상태 목록 | 스테이트먼트가 추적하는 키·값 컨텍스트 |
| ⑦ 집계 | 🥧 | 최근 집계 목록 | 스테이트먼트가 적재한 집계 키·값 |
| ⑧ 명령 | 🎮 | 커맨드 실행 + 최근 명령 목록 | 정의된 커맨드를 이 설비에서 실행 — 설비 명령 |
| ⑨ 레지스트리 | 💻 | 에셋 스테이트먼트 + 명령 레지스트리 | EQL 스테이트먼트·ISO 플러그인 등록 · 이 설비의 의미 커맨드 정의 |
| ⑩ 도큐먼트 | 📄 | 에셋 도큐먼트 | 설비 첨부 문서 관리 |
| ⑪ 정비 | 🔧 | 설비 정비 | 이 설비의 정비 오더 |
| ⑫ 기준값 | 📏 | 기준값 | 이 설비의 표준값 프로파일 |
| ⑬ 고유 속성 | ☑ | 고유 속성 | 위 절 + QR 라벨 |
이벤트 · 상태 · 집계 세 탭은 스테이트먼트(또는 ISO 플러그인)가 만들어낸 것을 보여 줍니다. 그 설비에 스테이트먼트를 하나도 붙이지 않았다면 세 탭 모두 비어 있는 것이 정상입니다 — ⑨ 레지스트리 탭에서 [스테이트먼트 추가] · [ISO 플러그인] 으로 붙이세요.
⑦ 집계는 태그의 «집계» 설정과 다른 것입니다. 태그 집계(1분/5분/…)는 트렌드 화면 에서 봅니다.
정의된 커맨드를 고르고 [실행] 을 누르면 PLC 에 값이 실제로 써집니다. 권한·파라미터·사전조건·인터록 게이트와 거절 코드는 설비 명령 에서 따로 다룹니다. 실행 패널은 ADMIN · MANAGER 에게만 보입니다.
태그 화면 (/tag/index)
등록된 모든 태그를 검색·일괄 삭제·엑셀 다운로드하는 화면입니다.
상단 도구
🏷 태그 [전체 N개] [✓ 팩토리 모델 확정]
| 버튼 | 동작 |
|---|---|
| 전체 N개 | 등록 태그 수 (천단위 콤마) |
| 팩토리 모델 확정 | deployAssetToEvent() — 모델 화면과 동일 |
목록 패널 헤더 우측에는 선택된 태그 삭제 / 엑셀 다운로드 / 새로고침 3 버튼.
검색 폼 (다중 필터)
| 입력 | id | 폭 | 옵션 |
|---|---|---|---|
| 사이트 | site_id | 180px | 등록 사이트 — 늘 하나가 골라져 있습니다 |
| 구역 | area_id | 180px | 모든 구역 + 구역 (사이트 변경 시 자동 갱신) |
| 라인 | line_id | 180px | 모든 라인 + 라인 (구역 변경 시 자동 갱신) |
| 설비 | equipment_id | 180px | 모든 설비 + 설비 |
| 연결 | opc_id | 180px | OPC 선택 + 등록 OPC |
| 태그 ID | tag_id | 180px | placeholder: "태그 ID" |
| 태그 명 | tag_name | 180px | placeholder: "태그 명 검색 ..." (자동완성) |
| 데이터 타입 | java_type | 180px | INT/FLOAT/STRING/BOOL 등 셀렉터 |
태그 테이블 (10 컬럼 + 액션)
| 컬럼 | 폭 | 표시 |
|---|---|---|
| 선택 | 50px | 일괄 삭제용 체크박스 |
| No. | 40px | 행 번호 |
| 태그 ID | 100px | 도메인 식별자 |
| 태그 명 | 300px | 사람이 읽기 쉬운 이름 |
| 데이터 타입 | 80px | String/Short/Integer/Long/Float/Double/Boolean/Date |
| 포인트 건수 | 80px | 누적 수신 건수 |
| 알람 건수 | 60px | 누적 알람 건수 |
| 현재 값 | 60px | 마지막 수신 값 |
| 단위 | 40px | 측정 단위 (°C, kPa, rpm 등) |
| 마지막 업데이트 시간 | 160px | 마지막 수신 시각 |
| 액션 | 60px | 🔧 수정 / 🗑 삭제 — ADMIN 에게만 보입니다 |
목록에 설명과 지연 [MS] 컬럼은 없습니다. 태그 설명은 태그 상세 에서, 지연은 연결 관리 의 연결된 태그 목록에서 봅니다.
액션 컬럼은
ADMIN만 볼 수 있습니다.USER와API역할에서는 컬럼째 사라지므로, 수정·삭제 아이콘이 안 보인다면 권한 문제입니다.
태그 등록/수정 양식 (/tag/form)
태그 양식은 화면 상단에 기본 정보 패널 + 하단에 9개 탭으로 구성된 2단 구조입니다.
이 화면은 하나의 폼이 아닙니다. 기본 정보 패널과 9개 탭이 각각 자기 폼(form-metadata,
form-link, form-alarm …)을 갖고, 각 패널 우측 하단의 저장 버튼은 그 패널만
서버로 보냅니다(POST /tag/updateMetadata/{tag_id} 처럼 탭별 엔드포인트).
여러 탭을 고쳐 놓고 마지막 탭에서 저장을 한 번 누르면, 나머지 탭의 변경은 사라집니다. 탭을 고칠 때마다 그 탭에서 저장하세요. 저장이 되면 우측 상단에 초록색 토스트가 뜹니다 — 토스트를 못 봤다면 저장되지 않은 것입니다.
상단 — 기본 정보 패널 (항상 표시)
| 입력 | 설명 |
|---|---|
| 태그 ID | 영문/숫자/_ (수정 모드에서는 읽기 전용) |
| 태그 명 | 필수. 사람 식별용 |
| 데이터 타입 | String / Short / Integer / Long / Float / Double / Boolean / Date |
| 태그 설명 | 자유 텍스트 (100자) |
패널 헤더 우측에 태그 보기 버튼 — 즉시 태그 상세 화면 으로 이동.
패널 하단의 저장은 이 네 항목만 저장합니다(/tag/updateBasic).
하단 — 9개 탭
번호는 화면에 놓인 왼쪽→오른쪽 순서입니다.
| 탭 | 아이콘 | 저장 대상 | 하는 일 |
|---|---|---|---|
| ① 태그 속성 | ☀ | updateMetadata | 태그 유형·태그 소스·앨리어스·단위·표시 포맷·소숫점·최저/최고값·주기[MS]·IO 주소·원본 태그명·위경도 |
| ② 링크 | 🔗 | updateLink | 이 태그를 설비에 매핑 — 아래 참고 |
| ③ 알람 밴드 | 🔔 | updateAlarm | 임계치 6단 (수치형) / TRUE·FALSE 조건 (Boolean) + 메시지·수신자·억제·이메일/SMS |
| ④ 계산 | 🧮 | updateCalculation | 가상 태그 계산식 (EQL, CodeMirror 편집기) + 사용 여부 — 가상 태그 |
| ⑤ 샘플링 | 💉 | updateSampling | 사용 여부 하나뿐 — 켜면 주기별 마지막 값을 샘플링해 저장 |
| ⑥ 집계 | 🪙 | updateAggregation | 사용 여부 + 집계 주기 1분 / 5분 / 10분 / 30분 / 1시간 선택 |
| ⑦ 인공지능 | 🧠 | updateAi | LLM 기반 실시간 이상 진단의 대상 컬럼 / 분기 컬럼 지정 |
| ⑧ 발행 | 📬 | updatePublish | Kafka 발행 · MQTT 발행 두 토글 |
| ⑨ 노트 | 💬 | updateAttribute | 태그에 대한 자유 형식 메모 |
① 태그 속성 탭 — 4 fieldset
| fieldset | 항목 |
|---|---|
| 태그 속성 | 태그 유형 · 중요도 · 태그 소스 · 메트릭 사용 |
| 데이터 속성 | 앨리어스 · 단위 · 표시 포맷 · 소숫점 반올림 모드 · 소숫점 스케일 · 최저값 / 최고값 · 주기 [MS] · 읽기/쓰기 |
| IO 및 원본 OPC 태그명 | IO 주소 (PLC 관리용) · 원본 태그명 |
| 위치 | 위도 / 경도 — [지도에서 선택] 버튼으로 지도를 띄워 좌표를 찍습니다 |
min_value / max_value 는 범위를 벗어난 값을 막지 않습니다. 화면 도움말 그대로
«최저/최고값을 입력하시면 게이지 차트의 기준으로 표시됩니다» — 캔버스 게이지 위젯의
눈금 양 끝을 정하는 값입니다. 값을 걸러내려면 알람 밴드나 계산식을 쓰세요.
주기 [MS] 도 수집 주기를 «바꾸는» 값이 아니라 이 태그가 어느 정도 간격으로 들어오는지 적어 두는 값입니다. 실제 폴링 간격은 연결(OPC/Modbus/PLC) 쪽 설정에서 정합니다.
앨리어스를 지정하면 그 이름이 이벤트와 에셋 데이터의 컬럼명이 됩니다 — EQL 로 조회할 때 보이는 이름이 바뀌므로, 이미 쓰이고 있는 태그의 앨리어스는 함부로 바꾸지 마세요.
② 링크 탭 — 설비 매핑 (OEE·RAM·EMS 의 전제조건)
| 항목 | 설명 |
|---|---|
| 설비 검색 | 설비 ID 또는 명으로 검색해 선택 (예: EQUIPMENT_000001, 사출기 #3) |
| 현재 매핑된 설비 ID | 읽기 전용 — 설비를 고르면 linked_asset_id 가 자동 갱신됩니다 |
| 매핑 해제 | 매핑을 비웁니다 |
링크 대상은 설비(asset_type='M') 뿐입니다. 라인이나 구역에는 매핑되지 않습니다.
매핑된 설비는 OEE / RAM / EMS 분석에서 이 태그의 데이터를 사용합니다. 뒤집어 말하면, 태그를 설비에 링크하지 않으면 그 태그는 ISO 분석에 잡히지 않습니다 — 분석 결과가 비어 보일 때 가장 먼저 확인할 곳입니다.
③ 알람 밴드 탭 — 5 fieldset
화면 경고 문구 그대로입니다 — «데이터 타입이 넘버(Short, Integer, Long, Float, Double) 유형
및 불린(Boolean) 인 경우만 밴드 알람 설정이 가능합니다.» String · Date 태그에는
알람 밴드를 걸 수 없습니다. 그런 태그를 감시하려면 고급 알람 을 쓰세요.
알람 설정은 태그 하나에 걸립니다. 여러 태그를 조합한 조건(예: 입구 − 출구 압력)에 알람을 걸려면 먼저 그 조합을 가상 태그로 만들고, 알람은 가상 태그에 겁니다.
임계치 / 불린 조건
수치형 태그는 한 줄 그래픽 막대가 표시되어, min_value ~ max_value 범위 안에서
lo_lo · lo · hi · hi_hi 가 어떤 색대역으로 매핑되는지 저장 전에 확인할 수 있습니다.
[ ███ lo_lo ████ lo ════════════ 정상 ════════════ hi ████ hi_hi ███ ]
🔴 심각 🟠 경고 🟢 정상 🟠 경고 🔴 심각
| 항목 | 설명 |
|---|---|
lo_lo / hi_hi | 심각 알람 임계 — 트립(Trip) 이전 마지막 경고선 |
lo / hi | 경고 알람 임계 |
trip_lo / trip_hi | 트립(설비 정지 명령) 임계 — 알람을 넘어 액션 발생 |
use_alarm | 알람 밴드 사용 여부 — 끄면 모든 임계 무시 |
Boolean 태그는 대신 알람 조건 (TRUE 일 때 / FALSE 일 때 / 사용 안 함) · 알람 등급 · 발생 시점 · 중요도 · 메세지 를 TRUE·FALSE 각각에 대해 지정합니다.
알람 메세지 — 치환 토큰
기본 문구는 {tag_name} 값이 임계치를 초과하였습니다 — 현재값 {value} 입니다.
다음 토큰이 발생 시점에 실제 값으로 치환됩니다.
| 토큰 | 치환되는 값 |
|---|---|
{tag_id} | 태그 ID |
{tag_name} | 태그 명 |
{value} | 현재 값 |
{timestamp} | 발생 시간 |
{band} | 알람 밴드 (TRIP_HI / HI_HI 등) |
수신자 · 중복 억제 · 발송
| fieldset | 항목 | 설명 |
|---|---|---|
| 수신자 | 기본 수신자 | 등록자에게 전달합니다 |
| 추가 수신자 | 그 외 수신자를 지정합니다 | |
| 중복 알람 억제 | 억제 시간 (분) | 이 시간 동안 같은 유형의 알람 푸시를 억제합니다 |
| 이메일 / SMS 발송 | 이메일 | 수신자의 이메일로 알람을 전달합니다 |
| SMS | 수신자의 핸드폰으로 SMS 전달 — SMS 게이트웨이가 있어야 합니다 |
경계값 근처에서 값이 떨리면 같은 알람이 초 단위로 반복 생성됩니다. 임계치를 넓히기 전에 억제 시간 (분) 을 먼저 올려 보세요 — 임계치를 넓히면 진짜 이상까지 놓칩니다.
⑤ 샘플링 · ⑥ 집계 — 둘의 차이
| 샘플링 | 집계 | |
|---|---|---|
| 저장하는 것 | 주기마다의 마지막 값 | 주기마다의 통계값 |
| 통계 종류 | — | 처음/마지막 값, 최저·최고·평균·표준편차·중앙값 |
| 주기 | 10초·30초·1분·5분·10분·30분·1시간 | 1분 / 5분 / 10분 / 30분 / 1시간 중 선택 |
| 화면 설정 | 사용 여부만 | 사용 여부 + 주기 |
화면 도움말 그대로입니다 — «포인트 생성 주기가 빠른 데이터일 경우 시스템 성능이 느려질 수 있으므로 긴 집계 주기 선택에 유의하여 주십시오.» 집계는 실시간 인-메모리 엔진이 돌리므로, 초 단위로 들어오는 태그에 1분 집계를 전 태그에 켜면 메모리와 CPU 가 함께 오릅니다.
⑦ 인공지능 탭 — 다변량 이상 진단의 «대상» 고르기
이 탭은 예측 모델을 붙이는 곳이 아닙니다. 화면 부제 그대로 LLM 기반 실시간 이상 진단에 이 태그를 어떻게 쓸지 두 가지를 정합니다. 각각 대상 / 대상 아님 두 값입니다.
| 항목 | 뜻 |
|---|---|
| 대상 컬럼 | 다변량 상관관계 분석의 대상으로 삼습니다. 설비 내 대상 태그가 2개 이상이어야 활성화됩니다 |
| 분기 컬럼 | 다변량 데이터를 나누는 카테고리(레시피 · 설비 모드 · 운전 등)로 씁니다 |
상관관계는 둘 이상의 변수 사이에서만 정의됩니다. 한 설비에 «대상» 태그를 하나만 켜 두면 분석이 활성화되지 않습니다 — 온도·압력·전류처럼 같이 움직이는 태그들을 함께 켜세요.
⑧ 발행 탭 — Kafka / MQTT
| 토글 | 하는 일 |
|---|---|
| KAFKA 발행 | Kafka 프로토콜로 포인트 메시지를 발행합니다 |
| MQTT 발행 | MQTT 프로토콜로 포인트 메시지를 발행합니다 |
화면 도움말에 그대로 적혀 있습니다 — «OPC-UA 서버 플러그인에서 데이터를 수신하려면 KAFKA 발행이 활성화되어야 합니다.» 플러그인을 붙였는데 값이 안 올라온다면 플러그인 설정보다 태그의 이 토글을 먼저 확인하세요.
입력 라벨 아래에는 인라인 도움말이 함께 표시되어 형식·제약 조건을 안내합니다.
가상 태그·가상 포인트
태그 화면에는 두 가지 특수 등록 방식이 있습니다.
| 화면 | 용도 |
|---|---|
tag/add_vtag.jsp | 가상 태그 — 연결 수정 화면의 연결된 태그 목록 → [가상 태그] 로 등록합니다. 값은 그 태그의 계산 탭 EQL 이 다른 태그 값으로 만듭니다 |
tag/add_vpoint.jsp | 가상 포인트 — 스트림 화면의 [가상 포인트] 로 태그 하나에 시각과 값을 손으로 넣습니다 |
만드는 법 · 예 · 알람과의 관계는 가상 태그에 있습니다.
태그 상세 화면 (/tag/view/{tag_id})
태그 목록에서 태그 명을 클릭하면 진입합니다. 한 태그의 모든 운영 정보를 한 화면에 모은 뷰로, 화면이 좌측 col-lg-3 (2 패널) + 우측 col-lg-9 (현재 값 패널 + 데이터/알람 탭) 으로 구성됩니다.
상단 — 페이지 헤더
🏷 태그 | {태그명} [ 태그명 입력 ▼ ] [태그 이동 →] [← 목록] [↻]
| 컨트롤 | 동작 |
|---|---|
| 태그명 입력 + 태그 이동 | 다른 태그를 자동완성으로 검색하여 즉시 그 태그의 상세 화면으로 이동 (moveTag()) |
| ← 목록 | 태그 목록(/tag/index) 으로 복귀 |
| ↻ | 화면 새로고침 (실시간 데이터 다시 구독) |
좌측 ① 태그 정보 패널 — 4 섹션 ds-dl
패널 헤더 우측에 ⚙ 톱니바퀴 — 태그 설정 양식(/tag/form)으로 이동합니다. 변경 권한이 있는 역할에서만 저장이 됩니다.
| 섹션 (view-section-title) | 표시 항목 (정의 리스트) |
|---|---|
| 🪪 기본 정보 | 태그 ID (도메인 뱃지 TAG) · 태그 명 · 데이터 타입 · 태그 설명 · 등록일 |
| 🔗 연결 정보 | 연결 ID (도메인 뱃지 OPC) · 연결 명 |
| 🏭 사이트 정보 | 사이트 ID (뱃지) · 사이트 명 |
| 🟦 에셋 정보 | 에셋 ID (뱃지) · 에셋 명 |
ID 는 모두 도메인별 색상 뱃지로 표시되며, 뱃지를 클릭하면 해당 도메인의 상세 화면으로 이동합니다 (예: 사이트 → 사이트 화면).
좌측 ② 통계 정보 패널 — 포인트·알람·중요도별 알람
패널 헤더 우측에 오늘 / 어제 토글 버튼 — 통계 기간 전환.
| 섹션 | 표시 |
|---|---|
| 📶 포인트 | 큰 숫자 "오늘 포인트 수신 건수" + 24시간 스파크 (point_24hh) + 전체 포인트 누적 카운터 |
| 🔔 알람 | 큰 숫자 "오늘 알람 발생 건수" + 24시간 스파크 (alarm_24hh) + 전체 알람 누적 카운터 |
| ❗ 중요도별 알람 | 3-카드 그리드 — 정보(파랑) · 경고(노랑) · 심각(빨강) 각각 큰 숫자 + 라벨 |
┌── 정보 ──┐ ┌── 경고 ──┐ ┌── 심각 ──┐
│ 1,234 │ │ 23 │ │ 2 │
│ (파랑) │ │ (노랑) │ │ (빨강) │
└──────────┘ └───────────┘ └───────────┘
↓ 그 아래에 도넛 차트
[중요도별 점유율 도넛 차트]
우측 ① 현재 값 패널 (5 컬럼)
패널 헤더 우측에 빠른 이동 버튼 그룹.
| 빠른 이동 | 동작 |
|---|---|
| 🔀 스트림 | 이 태그를 스트림 에서 실시간 보기 |
| 🗄 트렌드 | 이 태그의 트렌드 |
| 🔔 알람 | 이 태그의 알람 이력 |
| 컬럼 | 표시 |
|---|---|
| 현재 값 | 큰 숫자 — 품질 색상 뱃지 (good = 녹 · uncertain = 황 · bad = 빨강) |
| 마지막 업데이트 | 시각 (yyyy-MM-dd HH:mm:ss) |
| 지연 [MS] | 평균 응답 지연 |
| 품질 | OPC 품질 코드 (예: GOOD, BAD, UNCERTAIN) |
| 에러코드 | 마지막 수신에서 에러가 있었을 때 그 코드 |
우측 ② 데이터/알람 탭
| 탭 | 내용 |
|---|---|
| 📊 데이터 포인트 | 차트 패널 (실시간 트렌드 라인 — 수치형) 또는 상태 타임라인 (Boolean) + 집계 표 (오늘 수신 포인트 · 최저 · 최고 · 평균 · 합계 / Boolean 은 처음 · 마지막 · 합계) |
| 🔔 알람 | 이 태그에 발생한 알람 목록과 처리 상태 |
데이터 탭의 차트는 WebSocket 으로 실시간 갱신됩니다. 차트 로딩 중에는 "차트 로딩중..." 안내가 중앙에 표시됩니다.
이 상세 화면은 태그 단위 운영자 종합 점검 — 임계값 검토·이상 추적·물리 매핑 확인의 진입점입니다.
온톨로지 화면 (/ontology/index)
자산 분류 체계(카테고리·메타속성·관계)와 사이트 단위 지식 그래프를 시각화하는 고급 메타 화면입니다. 디자인 시스템 개편으로 사이트 배너 + 좌측 사이드 카드 + 그래프 본문 으로 재구성되었습니다.
상단 — 사이트 배너 (onto-site-banner)
페이지 헤더 바로 아래에 풀컬러 배너가 표시됩니다.
🏭 {사이트명} | {사이트 설명} [기준시간 : {gen_timestamp}]
- 사이트가 변경되면 배너 텍스트도 즉시 갱신됩니다
- 기준시간은 트리·메트릭이 마지막으로 새로고침된 시각
좌측 ① 사이트 패널 (col-w-280)
패널 헤더
| 버튼 | 동작 |
|---|---|
| ❄ 레디얼 토글 | 패널 본문의 트리를 일반 트리 ↔ 레디얼(방사형) 그래프로 전환 |
| ↻ 새로고침 | 트리 재구축 (createTree()) |
패널 본문 — 셀렉터 2종
| 셀렉터 | 옵션 |
|---|---|
| 사이트 선택 | 등록된 사이트 — 늘 하나가 골라져 있습니다 (변경 시 트리 즉시 재구성) |
| 초기 레벨 | 사이트 > 구역 / 사이트 > 구역 > 라인 / 사이트 > 구역 > 라인 > 설비 (기본) |
패널 푸터
전체 사이트 개수 표시 — 🏭 전체 사이트 N개.
좌측 ② 자산 카운트 카드 4종 (onto-count-stack)
사이트 패널 아래에 풀컬러 그라디언트 4-카드 그리드가 표시됩니다 — 선택 사이트의 자산 개수.
| 카드 | 아이콘 | 표시 |
|---|---|---|
| AREA | 🏭 차고 | 구역 수 (area_size) |
| LINE | 📜 컨베이어 | 라인 수 (line_size) |
| EQUIPMENT | 📺 베타맥스 | 설비 수 (equipment_size) |
| TAG | 🏷 태그 | 태그 수 (tag_size) |
본문 — 온톨로지 그래프
선택한 사이트의 자산 트리를 큰 캔버스에 시각화합니다.
| 동작 | 단축키 |
|---|---|
| 노드 클릭 | 그 노드의 메타 패널 표시 (선택 사이트 이벤트/상태/집계 컨테이너) |
| 줌 인/아웃 | 마우스 휠 |
| 노드 드래그 | 위치 이동 |
| 노드 호버 | onto-tip-* 툴팁 (도메인 ID 뱃지 + 메타 키 미리보기) — oklch 색상으로 도메인별로 다르게 표시 |
주요 기능
- 카테고리 트리 / 레디얼 — 자산 분류(예: 회전기계 → 모터 → AC 모터) 계층 구성
- 메타속성 정의 — 카테고리별로 자산이 가질 메타 키 정의 (예: 모터의 정격 출력·전압)
- 관계 정의 — 자산 간 관계(상위/연동/대체) 표현
- 검증 룰 — 메타 입력 시 검증 규칙 (필수/숫자/범위)
- 도메인 ID 뱃지 — SITE/AREA/LINE/EQUIPMENT/TAG 색이 도메인 ID 통합 검색 과 동일한 oklch 컬러로 통일
온톨로지는 일반 운영자가 자주 사용하는 화면이 아닙니다. 시스템 도입 초기 또는 자산 카테고리 정비 시 시스템 관리자가 정의합니다.
메타데이터 화면 (/metadata/index)
도메인 단위로 사용자 정의 메타 키-값을 등록하는 가벼운 화면입니다.
사용 예시
| 도메인 | 메타 키 | 값 |
|---|---|---|
| Asset | manufacturer | "ABC Industries" |
| Asset | installed_year | "2020" |
| Tag | description_en | "Pump discharge pressure" |
| Order | customer_class | "VIP" |
입력 형태
| 컬럼 | 설명 |
|---|---|
| 도메인 유형 | Asset/Tag/Order/Customer 등 |
| 도메인 ID | 그 도메인의 식별자 |
| 메타 키 | 사용자 정의 |
| 메타 값 | 자유 텍스트/숫자 |
메타데이터는 온톨로지 와 달리 카테고리에 묶이지 않은 자유 메타입니다. 빠른 임시 메타가 필요할 때 사용합니다.
기준정보 화면 (/basedata/index)
코드 마스터·기준값 등록 화면. 코드를 탭별로 관리합니다.
탭 구성
| 탭 | 설명 |
|---|---|
| 자산 유형 | 설비 계층의 층 코드 |
| 사이트 분류 · 구역 분류 · 라인 분류 · 설비 분류 | 그 층의 설비 분류(Asset class) 코드와 언어별 이름 — 에셋 화면의 설비 분류 셀렉터 목록입니다 |
| 설비 상태 | 설비 상태 코드 |
| 태그 유형 | 태그 유형 코드 |
| 불량 원인 · 정지 원인 · 고장 원인 | 원인 코드 |
| 원인 사전 | 원인 사전 |
| EQL 템플릿 | EQL 템플릿 |
| 근무표 유형 | 근무표 유형 코드 |
사이트·구역·라인·설비가 각자의 분류 목록을 갖습니다. 설비에는 설비 분류 탭의 코드만 넣을 수 있습니다 —
다른 층의 코드를 주면 저장이 거절됩니다. 분류는 코드(asset_class_code)로 저장되고 이름은 언어마다 따로 둡니다.
API 로는 /api/v5/reference/asset-class 입니다.
기준정보는 시스템 표준 값을 정의하는 화면이라 자주 변경되지 않습니다. 표준 코드를 정비할 때만 사용하세요.
팩토리 모델 확정
모델 또는 태그 화면 상단의 ✓ 팩토리 모델 확정 버튼을 클릭하면, 등록된 사이트·자산·태그가 이벤트 룰 엔진(CEP > 스테이트먼트)에 일괄 반영됩니다.
동작 절차
- 모든 사이트의 자산 트리·태그·매핑이 의도대로 등록되었는지 확인
- 상단 ✓ 팩토리 모델 확정 클릭
- 시스템이 자산 단위 도메인 룰(상태·집계·이벤트·명령)을 자동 등록
- 룰 등록 후 CEP > 스테이트먼트 에서 새 룰들이 보입니다
언제 확정해야 하나?
- 신규 사이트·자산을 대량 등록한 직후
- 자산의 분류·계층을 크게 변경한 후
- 알람밴드·메타속성을 일괄 변경한 후
팩토리 모델 확정은 자주 누르지 마세요(룰 엔진 재등록 비용이 있음). 변경 작업이 모두 끝난 뒤 한 번만 누르시는 것이 좋습니다.
활용 시나리오
| 시나리오 | 절차 |
|---|---|
| 신규 공장 셋업 | 모델 → 사이트 추가 → 에셋 화면에서 구역/라인/설비 트리 구성 → OPC 연결 등록 → 태그 자동/수동 등록 → 모델 확정 |
| 신규 라인 추가 | 에셋 화면 → 사이트의 구역 선택 → 라인 추가 → 라인 하위에 설비 트리 구성 → 태그 등록 |
| 태그 일괄 정리 | 태그 화면 → 검색 폼으로 폐기 대상 좁히기 → 선택 → 선택된 태그 삭제 |
| 자산 메타 강화 | 메타데이터 화면 → 도메인 = Asset, 키 = manufacturer 등 자유 추가 |
| 자산 카테고리 표준화 | 온톨로지 화면 → 카테고리 트리 정비 → 카테고리별 메타속성 정의 |
| 새 단위 추가 | 기준정보 → 단위 마스터 탭 → 추가 |
| 운영 메타 일괄 추출 | 태그 화면 → 검색 → 엑셀 다운로드 |
자주 묻는 질문
Q. 사이트를 추가했는데 대시보드 지도에 마커가 안 보입니다. A. 사이트 추가 시 위·경도를 등록하지 않으면 마커가 표시되지 않습니다. 사이트 카드의 🔧 수정 → 위/경도 입력.
Q. 모델 확정과 메타 스토어 백업의 차이는? A. 모델 확정은 자산/태그를 룰 엔진에 일괄 등록(운영 활성화), 메타 스토어 백업은 메타 저장소 전체를 백업 파일로 보관(데이터 보존)하는 별도 작업입니다.
Q. 자산 트리에서 부모 자산을 변경할 수 있나요? A. 일반적으로 자산의 상위 노드는 변경하지 않는 것을 권장합니다(이력·룰 정합성). 변경이 꼭 필요하면 시스템 관리자와 상의 후 진행하세요.
Q. 태그를 삭제하면 과거 데이터도 사라지나요? A. 태그 메타는 삭제되지만, 시계열 데이터는 보존 정책에 따라 일정 기간 유지됩니다. 시스템 관리자에게 정확한 보존 정책을 문의하세요.
Q. 가상 태그와 일반 태그의 차이는? A. 일반 태그는 실제 센서/PLC 에서 데이터를 받지만, 가상 태그는 다른 태그들의 값을 계산해 만들어진 가상의 시계열입니다. 예: A 센서와 B 센서의 차이를 가상 태그 C 로 정의. 만드는 법은 가상 태그를 보세요.
Q. 온톨로지를 사용하지 않으면 어떻게 되나요? A. 기본 운영에는 영향이 없습니다. 온톨로지는 자산을 분류 체계로 관리하고 싶을 때(예: 모든 모터의 통합 보고서) 사용합니다.
Q. 자산 트리에서 모델 확정 시간이 오래 걸립니다. A. 자산이 많을수록 시간이 걸립니다(수천 개 단위에서 수 분). 모델 확정은 영업 시간 외에 진행하시는 것을 권장합니다.
Q. 태그 검색에서 자동완성이 안 됩니다. A. 사이트가 선택되어야 자동완성이 동작합니다. 사이트 셀렉터 먼저 설정하세요.
Q. 메타데이터에 등록한 키-값을 어디서 볼 수 있나요? A. 자산 상세 화면, 자산 트리의 메타 영역, 그리고 플로우 의 도메인 CRUD 노드에서 메시지 페이로드의 일부로 사용할 수 있습니다.
Q. 기준정보의 코드를 변경하면 기존 데이터에 영향이 있나요? A. 네, 코드 변경은 기존 데이터에도 영향을 줍니다. 변경 전 시스템 관리자와 상의하시기 바랍니다.