300MW Battery Energy Storage System (BESS) Energy Management System
Real-time monitoring and control system for battery energy storage systems
- Overview
- Screenshots
- Features
- Architecture
- System Requirements
- Installation
- Usage
- Project Structure
- User Interface
- Documentation
- Development
- Contributing
- License
HILS (Hardware-in-the-Loop Simulation) EMS is a comprehensive Energy Management System designed for monitoring and controlling a 300MW Battery Energy Storage System (BESS). The system provides real-time control, monitoring, and analysis capabilities for large-scale energy storage installations.
- Real-time Control: Direct control of battery charging/discharging and PCS (Power Conversion System) operations
- Comprehensive Monitoring: Live tracking of power, frequency, voltage, temperature, and battery SOC (State of Charge)
- Advanced UI: Modern 4-panel layout with intuitive controls and visual feedback
- Scalability: Supports multiple battery packs and PCS units
- Safety Features: Multi-level emergency stop system and comprehensive alarm management
HILS EMS v2.0 - Complete 4-panel layout showing battery control, center tabs, and real-time monitoring
Left control panel - Battery SOC monitoring and charge/discharge control
Complete control interface with battery and PCS management
Real-time monitoring - Power, frequency, voltage, temperature, alarms, and events
Real-time battery simulation interface with cycle testing
Battery Testing System client interface for cycle management
Complete HILS hardware cabinet with battery simulator and control systems
Laboratory setup showing equipment racks and thermal chamber
Dedicated power monitoring station for real-time data acquisition
Server rack with open console showing system configuration
Environmental thermal chamber for battery testing under controlled conditions
Temperature monitoring device installed in cabinet
Physical battery module stack for testing and validation
Rack-mounted DC power supplies with organized wiring
Rooftop environmental sensor with tripod mount and solar panel
Indoor environmental monitoring sensor with solar power
Close-up of RAK4630-based environmental sensor PCB
Top view of environmental sensor head with components
Solar-powered sensor node components in natural light
LoRa environmental sensor development on workbench
Desktop solar panel prototype for sensor power testing
Data acquisition system for vibration logging and analysis
Complete emissions analyzer station for environmental monitoring
Mobile emissions analyzer cart with measurement equipment
- Real-time SOC monitoring and control
- Battery pack health status tracking
- Charge/discharge power control (-300MW to +300MW)
- Target SOC setting with slider controls
- Individual pack balancing and diagnostics
- Power Conversion System real-time control
- Multiple operation modes (Standby, Constant Power, Constant Frequency, Voltage Control, Auto)
- Frequency regulation (59.5-60.5Hz)
- Power output control with visual feedback
- System diagnostics and advanced configuration
- Real-time power trend charts
- SOC history visualization
- Frequency stability monitoring
- Grid interconnection status
- System efficiency tracking
- Real-time alarm monitoring with priority classification
- Event logging with timestamps
- Visual status indicators (color-coded)
- System health status dashboard
- User permission management (Admin, Operator, Monitor)
- Communication protocol settings (Modbus TCP, DNP3, IEC 61850)
- System parameter configuration
- Email/SMS notification setup
- Multi-level Emergency Stop System:
- Individual PCS emergency stop
- Overall system emergency stop
- Individual battery pack isolation
- Real-time Diagnostics:
- PCS diagnostic reports
- Battery pack health checks
- Overall system status summary
- Comprehensive Alarm System: Priority classification, email notifications
- Efficient UI Updates: Redraw only changed components
- Memory Management: Timer and resource cleanup
- Scroll Optimization: Support for large data volumes
- Immediate Feedback: Confirmation messages for all control actions
- Error Handling: User-friendly error messages and recovery guides
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β HILS EMS v2.0 β
ββββββββββββββββ¬βββββββββββββββββββ¬ββββββββββββββββββββ€
β Left Panel β Center Panel β Right Panel β
β β β β
β Battery β System Tabs β Monitoring β
β Control β - Overview β - Power β
β β - Battery β - Frequency β
β PCS β - PCS Detail β - Voltage β
β Control β - Grid β - Temperature β
β β - Charts β - Alarms β
β β - Config β - Events β
ββββββββββββββββ΄βββββββββββββββββββ΄ββββββββββββββββββββ
MainForm.java (Main UI Container)
βββ Top Panel (Header) - java MainForm top
β βββ Time and system status display
βββ West Panel (Left Control) - java MainForm west
β βββ BatteryPackSOCPanel.java (Battery control)
β βββ PCSControlPanel.java (PCS control)
βββ Center Panel (Tabs) - java MainForm center
β βββ System Overview (PCSBMSSummery.java)
β βββ BatteryStatusPanel.java
β βββ PCSDetailStausPanel.java
β βββ GridMonitorPanel.java
β βββ RealTimeChartPanel.java
β βββ SystemConfigPanel.java
βββ East Panel (Right Monitoring) - java MainForm east
β βββ Real-time Data Panels (4 panels)
β βββ Alarm & Event Panels (2 panels)
βββ Bottom Panel (Status Bar)
βββ System status and connection info
- Language: Java 21
- Build Tool: Maven 3.9.x
- UI Framework: Java Swing
- Charting: JFreeChart 1.0.13
- Database: InfluxDB (embedded) 1.3.1
- Logging: Log4j 1.2.17 with SLF4J
- Simulation-Based: Currently uses internal data model without actual equipment connection
- Timer-Based Updates: Periodic updates using
javax.swing.Timer- Header clock: 1 second
- Battery data: 5 seconds
- PCS data: 2 seconds
- Right panel monitoring: 2 seconds
- Event-Driven: Immediate response to user operations with confirmation dialogs
Each panel can be run independently for testing and development:
# Run specific panel only
java -cp target/classes org.hils.gui.MainForm top # Header panel
java -cp target/classes org.hils.gui.MainForm west # Left control
java -cp target/classes org.hils.gui.MainForm center # Center tabs
java -cp target/classes org.hils.gui.MainForm east # Right monitoring- Language: Java 21
- Build Tool: Maven
- GUI Framework: Java Swing
- Charts: JFreeChart 1.0.13
- Database: InfluxDB (embedded)
- Utilities: Lombok 1.18.26
- Java: JDK 21 or higher
- OS: Windows, macOS, or Linux
- Memory: 4GB RAM minimum (8GB recommended)
- Display: 1920x1080 or higher resolution
- Maven: 3.6+ for building
- IDE: IntelliJ IDEA, Eclipse, or VS Code with Java extensions
git clone <repository-url>
cd HILSmvn clean installmvn exec:java -Dexec.mainClass="org.hils.App"Or run directly from JAR:
java -jar target/HILS-0.0.1-SNAPSHOT.jar# Using convenience script
./run-mainform.sh
# Or using Maven directly
mvn exec:java -Dexec.mainClass="org.hils.gui.MainForm"
# Or using Java directly
java -cp target/classes org.hils.gui.MainForm# Standalone right panel test with real-time simulation
./run-right-panel-test.sh
# Or using Java directly
java -cp target/test-classes:target/classes org.hils.gui.RightPanelTestThe application supports independent panel execution for development and testing:
# Test header panel only
java -cp target/classes org.hils.gui.MainForm top
# Test left control panel
java -cp target/classes org.hils.gui.MainForm west
# Test center tab panel
java -cp target/classes org.hils.gui.MainForm center
# Test right monitoring panel
java -cp target/classes org.hils.gui.MainForm eastjava org.hils.gui.MainForm center
java org.hils.gui.MainForm east
java org.hils.gui.MainForm west
-
Battery Control
- Adjust target SOC using the slider (20-100%)
- Set charge/discharge power (-300 to +300 MW)
- Click "Start Charge" or "Start Discharge"
- Monitor real-time battery status
-
PCS Control
- Select operation mode from dropdown
- Adjust power output using slider
- Set target frequency (59.5-60.5 Hz)
- Click "Start Operation" to begin
-
Monitoring
- View real-time data in right panel
- Check alarm status
- Review event logs
- Monitor system efficiency
-
Emergency Stop
- Click "Emergency Stop" button (red)
- Available in both battery and PCS control panels
- Immediately halts all operations
HILS/
βββ src/
β βββ main/
β β βββ java/
β β βββ org/
β β βββ hils/
β β βββ App.java # Application entry point
β β βββ gui/
β β β βββ MainForm.java # Main UI container
β β β βββ chart/
β β β β βββ RealTimeChartPanel.java
β β β βββ config/
β β β β βββ SystemConfigPanel.java
β β β βββ controls/
β β β β βββ BatteryPackSOCPanel.java
β β β β βββ PCSControlPanel.java
β β β β βββ ...
β β β βββ panels/
β β β β βββ BatteryStatusPanel.java
β β β β βββ GridMonitorPanel.java
β β β β βββ PCSDetailStausPanel.java
β β β β βββ ...
β β β βββ ...
β β βββ property/
β β β βββ HProperty.java # System properties
β β βββ vo/
β β βββ BMS.java
β β βββ PCS.java
β β βββ ...
β βββ test/
β βββ java/
β βββ org/hils/gui/ # UI test classes
βββ pom.xml # Maven configuration
βββ README.md # This file
βββ EMS_Screen_Configuration_Analysis_Consolidated.md
βββ EMS_UI_Checklist.md
The HILS EMS v2.0 features a modern 4-panel layout:
- System title and identification
- Real-time clock display
- System status indicator
-
Battery Control (Top 55%)
- SOC display and control
- Charge/discharge power settings
- Control buttons (Charge, Discharge, Stop, E-Stop)
-
PCS Control (Bottom 45%)
- Power output control
- Frequency regulation
- Operation mode selection
- Control buttons (Start, Stop, Reset, E-Stop, Diagnostics)
- System Overview: PCS/BMS summary
- Battery Status: Detailed battery monitoring
- PCS Detail: PCS system control
- Grid Monitor: Grid interconnection status
- Real-time Charts: Power, SOC, frequency trends
- System Config: Settings and configuration
- Real-time data panels (Power, Frequency, Voltage, Temperature)
- Alarm status panel
- Event log panel
- Connection status
- Data status
- System version
- Overall system state
- π’ Green: Normal operation (SOC > 80%)
- π Orange: Caution (SOC 50-80%)
- π΄ Red: Warning (SOC < 20%) or fault condition
- β« Gray: Inactive or stopped
Comprehensive documentation is available in the docs folder:
-
EMS Screen Configuration Analysis
- Detailed UI component analysis
- Screen structure and layout
- Data structures and class mappings
- Technical implementation details
-
- Completed features checklist
- Pending improvements
- Development roadmap
-
- Identified GUI implementation issues
- Correction requirements
- Implementation checklist
-
GUI Corrections Applied Summary
- Summary of applied corrections
- Label conversions (Korean to English)
- Panel identification comments
-
- Detailed right panel enhancements
- Font size improvements (16pt β 20pt)
- Real-time simulation features
# Clean and compile
mvn clean compile
# Run tests
mvn test
# Package JAR
mvn package
# Install to local repository
mvn install# Run all tests
mvn test
# Run specific test
mvn test -Dtest=ImageLoadTestThe EMS v2.0 implements a modern 4-panel layout optimized for real-time control and monitoring:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Header Panel β
β π EMS | 300MW BESS | π’ System Normal | 2024.10.29 15:30 β
β Real-time Monitoring & Control System β
ββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββ€
β Left Control β Center Tab Panel β Right Monitoring β
β (350px) β β (350px) β
β β β β
ββ‘ Battery β [System][Battery][PCS][Grid] β Power: 150.5MW β
β & PCS β [Charts][Config] β Freq: 60.05Hz β
β Control β β Voltage: 22.9kV β
β β Current Tab Content β Temp: 25.3Β°C β
β Battery: β β β
β - SOC Target β β Alarm Status β
β - Power Set β β Event Log β
β - Charge β β β
β - Discharge β β β
β - Stop β β β
β - E-STOP β β β
β β β β
β PCS: β β β
β - Set Power β β β
β - Frequency β β β
β - Mode β β β
β - Start/Stop β β β
β - Diag β β β
ββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββ΄βββββββββββββββββββββββ€
β Status Bar β
β π Connected | π Data Normal | β οΈ No Alarms EMS v2.0 | Ready β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Purpose: System identification, status, and time information
- Components:
- Left: π EMS icon and system name
- Center: "300MW BESS Energy Management System" title
- Right: π’ System status + real-time clock (yyyy.MM.dd HH:mm:ss)
- Update Cycle: Clock updates every 1 second, status every 5 seconds
Purpose: Real-time direct battery and PCS control
Battery Control Panel (Top 55%):
- Total SOC display (85.2%)
- Average voltage display (3.85V)
- Temperature monitoring (25.3Β°C)
- Target SOC slider (20-100%)
- Charge/discharge power setting (Β±300MW)
- Control buttons: Charge, Discharge, Stop, Emergency Stop
PCS Control Panel (Bottom 45%):
- Output power display (150.5MW)
- Frequency display (60.0Hz)
- Voltage/efficiency monitoring
- Set power slider (Β±300MW)
- Target frequency spinner (59.5-60.5Hz)
- Operation mode selection (Standby, Power Control, Frequency Control, etc.)
- Control buttons: Start, Stop, Reset, E-STOP, Diagnostics, Config
6 tabs for detailed system management:
- System Overview: PCS/BMS summary + additional controls
- Battery Status: Detailed battery system monitoring
- PCS Detail Control: PCS detailed control and monitoring
- Grid Monitor: Power grid interconnection monitoring
- Real-time Charts: Power, SOC, frequency visualization
- System Config: System parameters and settings management
Real-time data monitoring (No controls):
Top Section (4 panels):
- β‘ Power Monitoring: 150.5MW, Charging status
- π Frequency Monitoring: 60.05Hz, Normal status
- π Voltage Monitoring: 22.9kV, Normal status
- π‘οΈ Temperature Monitoring: 25.3Β°C, Normal status
Bottom Section (2 panels):
β οΈ Real-time Alarms: Active alarm status- π System Events: Event log with timestamps
- Left: π Connection, π Data,
β οΈ Alarm status - Right: EMS v2.0 version, System ready status
- BatteryStatus: SOC, SOH, voltage, current, temperature, cell min/max voltage
- BatteryPackInfo: Pack ID, capacity, health status
- PCSControlData: PCS ID, online status, operation mode, power, voltage, current, frequency
- PCSSummery: PCS summary data
- PCSStatus: Detailed PCS status
- HProperty: Screen size, supply power (300MW)
- SystemConfigPanel: Protocols (Modbus TCP, DNP3, IEC 61850), user management, alarms
| Screen Component | Class File | Location |
|---|---|---|
| Main Frame | MainForm.java | org.hils.gui |
| Battery Control | BatteryPackSOCPanel.java | org.hils.gui.controls |
| PCS Control | PCSControlPanel.java | org.hils.gui.controls |
| Battery Status Tab | BatteryStatusPanel.java | org.hils.gui.panels |
| PCS Detail Tab | PCSDetailStausPanel.java | org.hils.gui.panels |
| Grid Monitor Tab | GridMonitorPanel.java | org.hils.gui.panels |
| Real-time Charts | RealTimeChartPanel.java | org.hils.gui.chart |
| System Config | SystemConfigPanel.java | org.hils.gui.config |
| Right Monitoring | MainForm.java | Integrated in main form |
Custom License - Free for Personal Use, Commercial License Required
This software is free to use for personal, educational, and non-commercial purposes. Commercial use requires a separate license agreement.
- β Free: Personal use, education, research
- β Requires License: Commercial use, production deployment, integration into commercial products
For commercial licensing inquiries, please contact: hyun.lim@okkorea.net
We provide professional consulting and development services for IoT, AI, and embedded systems projects.
- Email: hyun.lim@okkorea.net
- Homepage: https://www.okkorea.net
- LinkedIn: https://www.linkedin.com/in/aionlabs/
- IoT System Design and Development / IoT μμ€ν μ€κ³ λ° κ°λ°
- Embedded Software Development / μλ² λλ μννΈμ¨μ΄ κ°λ° (Arduino, ESP32)
- AI Service Development / AI μλΉμ€ κ°λ° (LLM, MCP Agent)
- Cloud Service Architecture / ν΄λΌμ°λ μλΉμ€ κ΅¬μΆ (Google Cloud Platform)
- Hardware Prototyping / νλμ¨μ΄ νλ‘ν νμ΄ν
-
Technical Consulting / κΈ°μ 컨μ€ν
- IoT project planning and design consultation / IoT νλ‘μ νΈ κΈ°ν λ° μ€κ³ μλ¬Έ
- System architecture design / μμ€ν μν€ν μ² μ€κ³
-
Development Outsourcing / κ°λ° μΈμ£Ό
- Full-stack development from firmware to cloud / νμ¨μ΄λΆν° ν΄λΌμ°λκΉμ§ Full-stack κ°λ°
- Proof of Concept (PoC) development / κ°λ κ²μ¦ κ°λ°
- Production-ready system development / μμ© μμ€ν κ°λ°
Built with β€οΈ for Energy Storage Management