Files
LFP_48V_LCD_SW/doc/BMS_D1000_Project_Review.md
2026-08-11 16:20:44 +09:00

4.5 KiB

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