Initial commit
This commit is contained in:
85
doc/BMS_D1000_Project_Review.md
Normal file
85
doc/BMS_D1000_Project_Review.md
Normal file
@@ -0,0 +1,85 @@
|
||||
# BMS_D1000 프로젝트 검토 보고서
|
||||
|
||||
**작성일시**: 2026-08-11
|
||||
**프로젝트명**: BMS_D1000H (Battery Management System)
|
||||
**대상 솔루션**: `BMS_D1000.sln`
|
||||
|
||||
---
|
||||
|
||||
## 1. 프로젝트 개요
|
||||
|
||||
본 프로젝트는 **KT / 산업용 ESS 및 배터리 랙(Rack) 및 트레이(Tray) 상태 모니터링 시스템**을 위한 임베디드 GUI 애플리케이션입니다.
|
||||
SmartX 터치패널(Windows CE 기반) 디바이스에서 실시간 배터리 상태(전압, 전류, 온도, SOC, SOH, 알람 등)를 모니터링하고, 파라미터 설정 및 알람 이력을 관리하는 역할을 수행합니다.
|
||||
|
||||
---
|
||||
|
||||
## 2. 기술 스택 및 개발 환경
|
||||
|
||||
- **타겟 OS**: Windows CE 5.0 (Windows Embedded)
|
||||
- **프레임워크**: .NET Compact Framework v3.5 (C# / Windows Forms)
|
||||
- **개발 환경 (IDE)**: Visual Studio 2008 / .NET Compact Framework 개발 툴킷
|
||||
- **주요 외산/하드웨어 전용 라이브러리**:
|
||||
- `SmartXCommon.dll`, `SmartXCommonExt.dll`, `SmartX_IEC1000.dll` (SmartX 임베디드 디바이스제어/GUI 터치 컴포넌트)
|
||||
- `Microsoft.WindowsCE.Forms`
|
||||
- `System.Data.SqlServerCe` (임베디드 로컬 DB)
|
||||
|
||||
---
|
||||
|
||||
## 3. 디렉터리 및 파일 구조
|
||||
|
||||
```
|
||||
BMS_D1000_V1009_AG/
|
||||
├── BMS_D1000.sln # Visual Studio 솔루션 파일
|
||||
└── BMS_D1000/ # 메인 C# 프로젝트 디렉터리
|
||||
├── BMS_D1000.csproj # 프로젝트 빌드 및 어셈블리 참조 설정
|
||||
├── Program.cs # 애플리케이션 진입점 (Main)
|
||||
├── Revision history.txt # 버전 수정 이력 (V1.0.0.1 ~ V1.0.0.7)
|
||||
├── DataStructure/ # BMS 데이터 모델 및 상수 정의
|
||||
│ ├── BMSData.cs
|
||||
│ └── BMSConstData.cs
|
||||
├── Functions/ # 통신 및 데이터 처리 모듈
|
||||
│ └── csModbusDataProcess.cs
|
||||
├── Utils/ # 유틸리티 기능
|
||||
│ └── Function/
|
||||
│ ├── AlarmFile.cs # 알람 로그 CSV 파일 생성 및 관리
|
||||
│ └── ConvertTo.cs # 데이터 변환 유틸리티
|
||||
├── Form/ # Windows Forms 화면 구성 요소
|
||||
│ ├── fmBMSMain.cs # 메인 BMS 모니터링 화면
|
||||
│ ├── fmTrayInfo.cs # 모듈/트레이 상세 정보 화면
|
||||
│ ├── fmHistory.cs # 알람 이력 조회 화면
|
||||
│ ├── fmNetConfig.cs # 네트워크 설정 화면
|
||||
│ ├── fmParamSet.cs # BMS 파라미터 설정 화면
|
||||
│ ├── fmSystemSet.cs # 시스템 설정 화면
|
||||
│ ├── fmPassword.cs # 비밀번호 인증 화면
|
||||
│ └── fmScreenSaver.cs # 화면 보존(Screen Saver) 화면
|
||||
└── Service/ # 확장 서비스 모듈 디렉터리
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 주요 기능 모듈 분석
|
||||
|
||||
### 4.1 데이터 구조 (`DataStructure/`)
|
||||
- `BMSData.cs`: 랙(Rack) 및 트레이(Tray) 단위의 배터리 상태 전압, 전류, Cell 별 온도, SOC, SOH, 경고/보호(Trip) 비트 플래그 정보 데이터 구조체 포함.
|
||||
- `BMSConstData.cs`: BMS 장비 통신에 사용되는 상수, 알람 코드 및 시스템 파라미터 정의.
|
||||
|
||||
### 4.2 통신 및 데이터 처리 (`Functions/csModbusDataProcess.cs`)
|
||||
- Modbus RTU/TCP 프로토콜을 통해 BMS 하드웨어 제어기와의 시리얼/Ethernet 통신 수행.
|
||||
- 수신 데이터 바이트를 파싱하여 `BMSData` 구조체로 바인딩하고 UI 업데이트 이벤트 전달.
|
||||
|
||||
### 4.3 알람 이력 관리 (`Utils/Function/AlarmFile.cs`)
|
||||
- 알람 발생 시 `Flash Disk\Run\Alarm\` 경로 등에 CSV 형태의 알람 기록 파일 자동 생성 및 저장.
|
||||
- 최신 버전(V1.0.0.7) 기준 Debug GUI에서 이력 삭제 기능 지원.
|
||||
|
||||
### 4.4 사용자 인터페이스 (`Form/`)
|
||||
- 터치패널 환경에 최적화된 사용자 인터페이스 구성.
|
||||
- 랙 전체 모니터링(`fmBMSMain`), 셀/트레이 상세 상태(`fmTrayInfo`), 네트워크 및 IP 설정(`fmNetConfig`), 경보 내역 조회(`fmHistory`) 화면 제공.
|
||||
|
||||
---
|
||||
|
||||
## 5. 특이사항 및 고려사항
|
||||
|
||||
1. **임베디드 종속성 주의**:
|
||||
- `SmartX_IEC1000` 등 특정 하드웨어 전용 벤더 라이브러리에 의존하고 있으므로, 빌드 환경에 `C:\Program Files\HNS\Embedded SmartX Component\IEC1000_DNCF35\` 디렉터리의 라이브러리가 필요합니다.
|
||||
2. **.NET Compact Framework 3.5 지원 종료 이슈**:
|
||||
- .NET CF 3.5는 구형 Windows CE 전용이므로 최신 윈도우 OS 개발 환경에서 Visual Studio 이전 버전 설치 및 전용 엠베디드 SDK 구성 필요.
|
||||
Reference in New Issue
Block a user