5.0 KiB
5.0 KiB
DXF 그래프 데이터로 할 수 있는 작업
DXF 파일에서 추출한 P&ID 그래프 데이터는 설비, 배관, 태그 간의 위상 관계를 구조화한 것입니다. 이 데이터로 다음과 같은 작업을 수행할 수 있습니다.
1. 영향도 분석 (Impact Analysis)
특정 설비가 고장 났을 때 하류(downstream)에 영향을 받는 설비를 자동으로 찾아냅니다.
- 구현:
analyze_impact()— NetworkX의descendants()를 사용하여 BFS 탐색 - API:
AnalyzeImpactAsync()— MCP 도구analyze_pid_impact호출 - UI:
pid_graph_view.html— 영향도 분석 결과 패널
사용 시나리오: "펌프 P-101이 고장났을 때 어떤 설비가 영향을 받나?" → 하류 밸브, 탱크, 컨트롤러 등을 시각화
2. P&ID 태그 → Experion 시스템 태그 매핑
DXF에서 추출한 태그명(예: FIC-6113)을 실제 Experion HS 시스템 태그(예: ficq-6113.pv)에 매핑합니다.
- 구현:
IntelligentMapper- 1차: RapidFuzz로 문자열 유사도 기반 후보 추출
- 2차: LLM(Qwen3.6-27B)이 위상 컨텍스트(이웃 노드, 연결 관계)를 고려하여 최종 매핑
- 컨텍스트 추출:
get_node_context()— 1-hop, 2-hop 이웃 정보를 포함
사용 시나리오: 도면에 FT-101이 있으면 → 시스템 태그 ft-101.pv에 매핑 → 실시간 데이터 조회 가능
3. 배관 기반 물리적 연결 추론
DXF의 LINE/LWPOLYLINE 객체를 분석하여 설비 간 배관 연결 관계를 자동으로 추론합니다.
- 구현:
build_graph()— 배관 라인이 설비 BBox와 교차하거나 근접하면 연결 엣지 생성 - 흐름 방향 추론: 좌표 기반으로 왼쪽→오른쪽, 위→아래 방향으로 흐름 방향 결정
- 성능 최적화: SpatialGrid 인덱스로 O(n) → O(1) 탐색
사용 시나리오: "어떤 설비가 어떤 배관으로 연결되어 있는가?" → 공정 흐름도 자동 생성
4. 태그-설비 논리적 연결 (Association)
텍스트 태그(예: FIC-6113)와 가까운 설비 노드를 거리 + 연결성 가중치로 매핑합니다.
- 구현:
_find_nearest_equipment()- 거리 점수 + 배관 연결성 보너스 조합
- SpatialGrid로 후보 집합을 빠르게 필터링
사용 시나리오: 도면에 적힌 태그명이 실제 어떤 설비 기호에 해당하는지 자동 연결
5. 위상 무결성 검증
그래프 구조의健全性을 검증합니다.
- 구현:
validate_topology()- 고립 노드(isolated nodes) 감지
- 노드/엣지 카운트 통계
사용 시나리오: 추출 품질 확인 — 연결되지 않은 노드가 있으면 도면 파싱 실패 가능성
6. 시각화
Canvas 기반 P&ID 그래프 시각화 UI가 준비되어 있습니다.
- 구현:
pid_graph_view.html— Canvas 렌더링 - 노드 클릭 시 상세 정보 표시
- 영향도 분석 결과를 시각적 목록으로 표시
7. OPC UA 실시간 데이터 연동 (간접)
매핑된 Experion 태그를 통해 실시간/히스토리 데이터와 연결할 수 있습니다.
- P&ID 태그 → Experion 태그 매핑 완료 후 → 시계열 데이터 조회
- NL2SQL을 통해 자연어로 P&ID 설비 데이터 조회 가능
요약 테이블
| # | 기능 | 핵심 함수 | 입력 | 출력 |
|---|---|---|---|---|
| 1 | 영향도 분석 | analyze_impact() |
graph_id, start_node_id | 영향받는 노드 목록 |
| 2 | 태그 매핑 | IntelligentMapper |
P&ID 태그 + 시스템 태그 | 매핑 결과 + 신뢰도 |
| 3 | 배관 연결 추론 | build_graph() |
DXF 기하 데이터 | 방향성 그래프 (노드+엣지) |
| 4 | 태그-설비 연결 | _find_nearest_equipment() |
태그 노드 + SpatialGrid | 매칭된 설비 노드 |
| 5 | 위상 검증 | validate_topology() |
그래프 | 고립 노드, 통계 |
| 6 | 시각화 | pid_graph_view.html |
그래프 JSON | Canvas 렌더링 |
핵심 가치
DXF에서 추출한 기하학적 데이터를 위상 그래프로 변환하면, 다음을 수행할 수 있습니다:
- 공정 흐름 분석: 설비 간 연결 관계와 흐름 방향을 자동 추론
- 장애 전파 시뮬레이션: 특정 설비 고장 시 영향 범위 예측
- 태그 자동 매핑: 도면 태그와 시스템 태그를 위상 컨텍스트로 매핑
- 실시간 모니터링 연동: 매핑된 태그로 OPC UA 데이터와 연결