duckil_plm/README.md

588 lines
14 KiB
Markdown
Raw Normal View History

2024-12-12 18:31:36 +09:00
# FEMS(Factory Energy Management System)
## 1. 개요
FEMS는 공장 내에 공급, 소비되는 에너지를 최적화 시켜주는 에너지관리시스템입니다.
## 2. 프로젝트 아키텍처
### 2.1 시스템 구조
```bash
wacefems/
├── fems-admin/ # 공급업체 슈퍼 관리자 시스템
│ ├── src/
│ │ ├── app/
│ │ │ ├── (auth)/ # 관리자 인증
│ │ │ ├── dashboard/ # 전체 현황 대시보드
│ │ │ ├── companies/ # 기업 관리
│ │ │ │ ├── list/ # 기업 목록
│ │ │ │ ├── registration/ # 기업 등록
│ │ │ │ └── [id]/ # 기업 상세
│ │ │ ├── contracts/ # 계약 관리
│ │ │ ├── billing/ # 과금/결제 관리
│ │ │ ├── support/ # 기술 지원
│ │ │ └── settings/ # 시스템 설정
│ │ ├── components/
│ │ ├── lib/ # 라이브러리
│ │ ├── services/
│ │ └── types/
├── fems-app/ # 사용 기업용 FEMS 시스템
│ ├── src/
│ │ ├── app/
│ │ │ ├── (auth)/ # 인증 시스템
│ │ │ │ ├── login/
│ │ │ │ └── register/
│ │ │ ├── (admin)/ # 기업 관리자용 기능
│ │ │ │ ├── company/ # 회사 설정
│ │ │ │ │ ├── profile/ # 회사 프로필
│ │ │ │ │ ├── branches/ # 지점/공장 관리
│ │ │ │ │ └── billing/ # 결제 관리
│ │ │ │ ├── user/ # 사용자 관리
│ │ │ │ │ ├── departments/ # 부서 관리
│ │ │ │ │ ├── roles/ # 권한 관리
│ │ │ │ │ └── accounts/ # 계정 관리
│ │ │ │ └── system/ # 시스템 설정
│ │ │ │
│ │ │ ├── (general)/ # 일반 사용자용 기능
│ │ │ │ ├── layout.tsx
│ │ │ │ ├── dashboard/ # 대시보드
│ │ │ │ │ ├── overview/ # 전체 현황
│ │ │ │ │ │ └── page.tsx
│ │ │ │ │ ├── kpi/ # KPI 지표
│ │ │ │ │ │ └── page.tsx
│ │ │ │ │ └── costs/ # 비용 현황
│ │ │ │ │ └── page.tsx
│ │ │ │ │
│ │ │ │ └── settings/ # 개인 설정
│ │ │ │ └── page.tsx
│ │ │ │
│ │ │ ├── (monitoring)/ # 에너지 모니터링
│ │ │ │ ├── electricity/ # 전력
│ │ │ │ ├── gas/ # 가스
│ │ │ │ ├── water/ # 용수
│ │ │ │ └── steam/ # 스팀
│ │ │ │
│ │ │ ├── (equipment)/ # 설비 관리
│ │ │ │ ├── inventory/ # 설비 목록
│ │ │ │ ├── monitoring/ # 상태 모니터링
│ │ │ │ └── maintenance/ # 정비 관리
│ │ │ │
│ │ │ ├── (analysis)/ # 분석/리포트
│ │ │ │ ├── energy/ # 에너지 분석
│ │ │ │ ├── efficiency/ # 원단위 분석
│ │ │ │ └── reports/ # 보고서
│ │ │ │
│ │ │ ├── (alarm)/ # 알람/이벤트
│ │ │ │ ├── realtime/ # 실시간 알람
│ │ │ │ ├── history/ # 이력 관리
│ │ │ │ └── settings/ # 알람 설정
│ │ │ │
│ │ │ ├── (planning)/ # 에너지 계획
│ │ │ │ ├── targets/ # 절감 목표
│ │ │ │ ├── forecast/ # 수요 예측
│ │ │ │ └── optimization/# 최적화
│ │ │ │
│ │ │ ├── (support)/ # 도움말/지원
│ │ │ │ ├── manual/ # 사용자 가이드
│ │ │ │ ├── faq/ # FAQ
│ │ │ │ └── contact/ # 문의하기
│ │ │ │
│ │ │ └── (community)/ # 커뮤니티
│ │ │ ├── notice/ # 공지사항
│ │ │ ├── forum/ # 게시판
│ │ │ └── news/ # 뉴스
│ │ │
│ │ ├── components/ # 공통 컴포넌트
│ │ │ ├── ui/ # UI 컴포넌트
│ │ │ ├── charts/ # 차트 컴포넌트
│ │ │ └── forms/ # 폼 컴포넌트
│ │ │
│ │ ├── lib/ # 라이브러리
│ │ ├── hooks/ # 커스텀 훅
│ │ ├── services/ # API 서비스
│ │ ├── stores/ # 상태 관리
│ │ ├── types/ # 타입 정의
│ │ └── utils/ # 유틸리티
├── fems-api/ # 백엔드 API 서버
│ ├── src/
│ │ ├── config/ # 설정
│ │ ├── controllers/ # 컨트롤러
│ │ │ ├── admin/ # 슈퍼 관리자 API
│ │ │ │ ├── companies/
│ │ │ │ ├── contracts/
│ │ │ │ └── billing/
│ │ │ │
│ │ │ └── app/ # 기업용 API
│ │ │ ├── auth/
│ │ │ ├── dashboard/
│ │ │ ├── monitoring/
│ │ │ └── ...
│ │ │
│ │ ├── routes/ # 라우터
│ │ ├── utils/ # 유틸리티
│ │ ├── models/ # 데이터 모델
│ │ ├── services/ # 비즈니스 로직
│ │ └── middleware/ # 미들웨어
├── shared/ # 공통 코드
├── .env.development
├── .env.production
├── docker-compose.base.yml # 기본 설정
├── docker-compose.dev.yml # 개발 환경 설정
├── docker-compose.full.yml # 전체 시스템 설정
└── docker-compose.prod.yml # 개발 환경 설정
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
```
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
```mermaid
flowchart TB
subgraph Factory[공장 현장]
E1[설비] --> NR
E2[전력계] --> NR
subgraph EDGE[엣지 서버]
NR[Node-RED] --> |저장| LDB[(로컬 DB)]
NR --> |실시간| MQTT[MQTT Client]
NR --> |API 호출| REST[REST Client]
end
end
subgraph Cloud[클라우드]
subgraph MainService[기존 서비스]
API[API Gateway] --> BE[Main Backend]
BE --> PG[(PostgreSQL)]
end
subgraph RealtimeService[실시간 서비스]
MB[MQTT Broker] --> RT[Realtime Backend]
RT <--> |구독 확인| BE
RT --> TSDB[(TimescaleDB)]
RT --> REDIS[(Redis Cache)]
end
end
MQTT --> |SSL/TLS| MB
REST --> |HTTPS| API
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
```
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
### 2.2 데이터베이스 모델
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
## 데이터베이스 생성
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
```bash
createdb wacefems_database
```
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
### 데이터베이스 마이그레이션
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
```bash
npx sequelize-cli db:migrate
2024-11-01 11:57:37 +09:00
```
2024-12-12 18:31:36 +09:00
### 데이터베이스 ERD
```bash
### 2.3 기술 스택
#### Frontend
- **Next.js App Router**: SSR, 라우팅, 코드 스플리팅
- **shadCN UI**: 재사용 가능한 UI 컴포넌트
- **TailwindCSS**: 유틸리티 퍼스트 CSS
- **TypeScript**: 정적 타입 체크
- **NextAuth.js**: 인증 및 세션 관리
#### Backend
- **Node.js**: 이벤트 기반 서버
- **PostgreSQL + TimescaleDB**: 시계열 데이터 관리
#### 데이터 수집 및 처리
1. **데이터 수집 계층**
- Open PLC: PLC 통신
- Eclipse Milo: OPC UA 통신
- Eclipse Kura: IoT 게이트웨이
2. **데이터 전송 계층**
- Eclipse Mosquitto: MQTT 브로커
- Node-RED: 데이터 흐름 관리
3. **데이터 처리 계층**
- Apache Kafka: 메시지 스트리밍
- Apache Spark: 실시간 처리
4. **데이터 저장 계층**
- TimescaleDB: 시계열 데이터
- Redis: 캐시 관리
5. **모니터링 도구**
- Prometheus + Grafana
- ELK Stack
## 3. 시스템 구성요소
## 시스템 주요 기능
### 3.1 FEMS Admin (공급업체용) - 주요 기능
- 기업 관리
- 계약 관리
- 과금/결제 관리
- 기술 지원
- 시스템 설정
## 3. 시스템 구성요소 및 주요 기능
### 3.1 FEMS Admin (공급업체용)
#### 핵심 관리 기능
1. 기업 관리
2. 계약 관리
3. 과금/결제 관리
4. 기술 지원
5. 시스템 설정
### 3.2 FEMS App (사용 기업용)
#### 1. 대시보드
##### 1.1 실시간 현황
###### 에너지 사용량 모니터링
- 전력, 가스, 용수, 스팀 등 실시간 사용량 표시
- 설비별/구역별 사용량 분포
- 목표 대비 실적 현황
###### 시각화 대시보드
- 그래프 및 차트를 통한 직관적 표시
- 실시간 업데이트되는 데이터 표현
- 사용자 정의 위젯 구성 가능
##### 1.2 KPI 지표
###### 핵심 성과 지표
- 에너지 효율성 지표
- 비용 절감률
- CO2 배출량
- 설비 가동률
###### 목표 대비 실적
- 일간/주간/월간 목표 달성률
- 전년 동기 대비 비교
- 업계 평균 대비 비교
##### 1.3 에너지 비용
###### 비용 현황
- 에너지원별 사용 비용
- 실시간 요금 계산
- 예상 청구액 산정
###### 비용 분석
- 시간대별 요금 분석
- 계절별 비용 변동
- 절감 기회 도출
#### 2. 에너지 모니터링
##### 2.1 전력 모니터링
###### 실시간 데이터 수집
- 전력 사용량 측정
- 피크 전력 관리
- 역률 모니터링
###### 품질 관리
- 전압/전류 품질
- 고조파 분석
- 정전 관리
##### 2.2 가스/용수/증기 모니터링
###### 사용량 관리
- 실시간 유량 측정
- 압력/온도 모니터링
- 품질 데이터 수집
###### 효율성 평가
- 손실률 계산
- 최적 운영점 도출
- 누수/누기 감지
#### 3. 설비 관리
##### 3.1 설비 목록
###### 기본 정보 관리
- 설비 마스터 데이터
- 설비 사양 정보
- 위치 정보
###### 문서 관리
- 설비 매뉴얼
- 도면 관리
- 인증서 관리
##### 3.2 설비 상태 모니터링
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
###### 실시간 모니터링
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
- 가동 상태 확인
- 성능 지표 모니터링
- 이상징후 감지
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
###### 데이터 로깅
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
- 운전 데이터 기록
- 상태 변화 이력
- 센서 데이터 저장
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
##### 3.3 정비 관리
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
###### 정비 계획
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
- 정기 점검 계획
- 예방 정비 일정
- 부품 교체 계획
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
###### 이력 관리
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
- 정비 작업 기록
- 부품 교체 이력
- 비용 관리
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
#### 4. 분석/리포트
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
##### 4.1 에너지 분석
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
###### 사용량 분석
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
- 시계열 분석
- 패턴 분석
- 이상치 탐지
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
###### 효율성 분석
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
- 설비별 효율
- 구역별 효율
- 개선점 도출
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
##### 4.2 원단위 분석
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
###### 생산성 분석
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
- 생산량 대비 에너지 사용량
- 제품별 에너지 원단위
- 공정별 에너지 효율
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
###### 벤치마킹
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
- 업계 평균 비교
- 최적 사례 분석
- 개선 목표 설정
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
##### 4.3 보고서 생성
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
###### 정기 보고서
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
- 일일/주간/월간 보고서
- 분기/연간 보고서
- 관리 보고서
2024-11-01 11:57:37 +09:00
2024-12-12 18:31:36 +09:00
###### 맞춤형 보고서
- 사용자 정의 보고서
- 규제 대응 보고서
- 경영 분석 보고서
#### 5. 알람/이벤트
##### 5.1 실시간 알람
###### 알람 유형
- 설비 이상 알람
- 에너지 사용량 초과
- 효율 저하
- 정비 필요
###### 알람 우선순위
- 긴급 (Red)
- 경고 (Yellow)
- 주의 (Blue)
- 정보 (Gray)
##### 5.2 알람 설정
###### 조건 설정
- 임계값 설정
- 시간대별 조건
- 복합 조건
###### 수신자 관리
- 담당자 설정
- 통보 방식 설정
- 에스컬레이션 규칙
#### 6. 에너지 계획/최적화
##### 6.1 절감 계획
###### 목표 설정
- 에너지원별 절감 목표
- 비용 절감 목표
- CO2 감축 목표
###### 실행 계획
- 단기/중기/장기 계획
- 투자 계획
- 효과 분석
##### 6.2 수요 예측
###### 예측 모델
- 시계열 분석
- 머신러닝 기반 예측
- 시나리오 분석
###### 최적화
- 운전 최적화
- 비용 최적화
- 효율 최적화
#### 7. 사용자/관리자 설정
##### 7.1 기업 정보
###### 기본 정보
- 회사 정보
- 사업장 정보
- 조직 구조
###### 계약 정보
- 에너지 공급 계약
- 요금제 설정
- 목표 관리
##### 7.2 사용자 관리
###### 계정 관리
- 사용자 등록/수정/삭제
- 권한 그룹 설정
- 접근 이력 관리
###### 조직 관리
- 부서 관리
- 직책 관리
- 업무 분장
#### 8. 시스템 설정
##### 8.1 일반 설정
###### 환경 설정
- 시스템 기본 설정
- 언어/시간대 설정
- 화면 설정
###### 데이터 설정
- 데이터 수집 주기
- 보관 기간 설정
- 백업 설정
##### 8.2 연동 설정
###### 외부 시스템 연동
- ERP 연동
- MES 연동
- 센서 데이터 연동
###### API 설정
- API 키 관리
- 접근 권한 설정
- 로그 관리
#### 9. 도움말/지원
##### 9.1 사용자 가이드
###### 매뉴얼
- 시스템 사용 설명서
- 기능별 가이드
- FAQ
###### 교육 자료
- 동영상 매뉴얼
- 실습 가이드
- 문제 해결 가이드
##### 9.2 기술 지원
###### 지원 센터
- 문의 접수
- 원격 지원
- 장애 처리
###### 자료실
- 기술 문서
- 참고 자료
- 양식 다운로드
#### 10. 커뮤니티
##### 10.1 게시판
- 공지사항
- 자유게시판
- 기술 토론
- 개선 제안
##### 10.2 뉴스
- 에너지 뉴스
- 정책 동향
- 기술 동향
- 성공 사례
```