# 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 구성 필요.