Skip to content

How Does a W5500 Modbus TCP BMS Connect a Rescue Robot Battery to ROS 2?

A Paderborn University lab BMS runs a Modbus TCP server on a W5500 hardware socket, port 502, so a ROS 2 node reads cell data and publishes BatteryState.

gunn

Published September 14, 2026

Original author: Frank (GitHub: frankonerio) ยท GermanyOriginal source (new tab)

How Does a W5500 Modbus TCP BMS Connect a Rescue Robot Battery to ROS 2?

Project description

๐Ÿ“ Project Overview

This project is an open-source hardware and software solution implementing an IoT-based Battery Management System (BMS) designed for applications such as Energy Storage Systems (ESS), Electric Vehicles (EVs), or remote off-grid power systems.

Key features include:

1. Data Acquisition and Monitoring: Real-time measurement of voltage, current, and temperature for each battery cell to calculate the State of Charge (SoC) and State of Health (SoH).
2. Protection Control: Detection of hazardous conditionsโ€”such as over-charge, over-discharge, or overheatingโ€”triggers the control of relays or pack contactors to disconnect the circuit.
3. Remote Telemetry: Transmission of collected battery diagnostic data over a network to a central control server, dashboard, or MQTT broker, enabling administrators to monitor and control the system remotely.

 

๐ŸŒ Role of the W5500

In this BMS design, the WIZnet W5500 serves as a hardware TCP/IP controller dedicated to providing reliable wired Ethernet communication for remote monitoring.

Its specific roles and advantages include:

*   Network Processing Offloading: The BMS's main MCU must prioritize safety-critical operations, such as real-time voltage/current calculations and relay control. The W5500 handles complex network protocolsโ€”including TCP, UDP, and IPv4โ€”entirely within its internal hardware, thereby drastically reducing the resource burden (CPU usage and memory) on the MCU. * Ensuring communication reliability in noisy environments: The areas surrounding battery packs and inverters are prone to severe electromagnetic interference (EMI/EMC) and noise due to high-voltage, high-current switching. While wireless communication like Wi-Fi may experience interruptions in such industrial settings, W5500-based wired Ethernet remains unaffected by signal interference, ensuring uninterrupted data transmission.
* Real-time data streaming (SPI interface): The main MCU accesses the W5500 via SPI communication to transmit real-time battery diagnostic data (cell voltage, temperature, alarm logs, etc.) to an external server over Ethernet. Supporting up to eight independent hardware sockets, the system allows for simultaneous operationโ€”for instance, using one socket for MQTT data transmission while another manages a local web server for monitoring.

In summary, the W5500 plays a pivotal role as an industrial network bridge in this project, establishing a secure and uninterrupted remote battery monitoring network.

 

[Q&A]

 

Q1. What are the primary objectives and key features of the `frankonerio/BMS` project?
A1. This is an IoT-based Battery Management System (BMS) project designed for Energy Storage Systems (ESS), Electric Vehicles (EVs), and remote power systems. It provides functions such as monitoring battery cell voltage, current, and temperature; calculating SoC (State of Charge) and SoH (State of Health); performing safety cut-offs via relays in the event of anomalies; and transmitting remote monitoring data (telemetry) over a network.

 

Q2. Why was W5500-based wired Ethernet chosen over wireless (Wi-Fi) for this Battery Management System (BMS)?
A2. The areas surrounding battery packs, inverters, and motors are environments prone to significant electromagnetic interference (EMI/EMC) and noise due to high-current switching and high-voltage operations. Since wireless communication carries a high risk of packet loss or connection drops in such noisy environments, the stable wired Ethernet controller (W5500)โ€”which is less susceptible to signal interferenceโ€”is utilized to ensure reliable communication.

 

Q3. What benefits does the W5500โ€™s hardware TCP/IP offloading function offer regarding the main MCU's processing tasks?
A3. The BMS main MCU must perform critical, real-time tasksโ€”such as calculating cell voltages, monitoring temperatures, and controlling relay cutoffsโ€”without any latency. Because the W5500 handles complex network protocols (including TCP/IP, UDP, and IPv4) via its internal hardware, it drastically reduces the MCU's CPU load and memory usage, allowing the MCU to focus on the main control logic.

 

Q4. How are the W5500 and the MCU connected, and how can the multi-socket function be utilized?
A4. The MCU and the W5500 exchange real-time data via an SPI interface. Since the W5500 supports up to eight independent hardware sockets, it enables a multitasking network environment; for instance, one or more sockets can be used to transmit data to an external cloud via the MQTT protocol, while other sockets are simultaneously allocated to run a web server for local network monitoring. [Similar Projects]

 


1. [BeeMS - Open-Source Battery Management System](https://www.google.com/search?q=https://maker.wiznet.io/matthew/projects/beems/)

* Key Components: Battery control MCU, CAN bus, WIZnet W5500 Ethernet module
* Project Features: An open-source BMS project that collects safety logic and cell monitoring data from within an EV (Electric Vehicle) battery pack and transmits it in real-time to a host SCADA or control PC via a CAN-to-Ethernet bridge.
* Similarities and Relevance: This project aligns most directly with `frankonerio/BMS`. It shares an architecture that reliably offloads battery safety control and cell diagnostic dataโ€”collected in high-noise hardware environmentsโ€”via a wired backhaul using the W5500 hardware TCP/IP stack.

---

2. [OpenDTU-OnBattery - Smart Solar & BESS Monitor](https://www.google.com/search?q=https://maker.wiznet.io/irina/projects/opendtu-onbattery/)

* Key Components: ESP32, WIZnet W5500, protocols for interfacing with battery BMS (e.g., Daly, JK)
* Project Features: An energy monitoring solution that collects battery BMS data from solar inverters and Battery Energy Storage Systems (BESS/ESS) and transmits it over a wired network using open protocols (MQTT/HTTP).
* Similarities and Relevance: It shares the common function of monitoring battery pack (BMS) data, such as SoC/SoH, voltage, and current status. It is also similar in its use of a W5500-based wired Ethernet networkโ€”rather than Wi-Fiโ€”to ensure reliable connectivity amidst the strong electromagnetic interference (EMI) typically found around inverters and high-power battery systems. ---

3. [EPEM ESP32-C6 ATM90E36 Ethernet Power Energy Monitor](https://www.google.com/search?q=https://maker.wiznet.io/scott/projects/epem-esp32-c6-atm90e36-ethernet-power-energy-monitor-sdk/)

* Key Components: ESP32-C6, ATM90E36 power metering IC, WIZnet W5500 Ethernet controller, RS-485.
* Project Features: An open-source hardware power monitoring platform that precisely measures power, voltage, and current data; it utilizes the W5500's hardware TCP/IP stack to stream real-time telemetry data to a monitoring server, thereby offloading computational tasks.
* Similarities and Relevance: It shares a design philosophy with BMS systems by focusing on the core functions of data acquisition (power, voltage, current) and protection logic, while offloading network protocol processing to the W5500 to dedicate the MCU's CPU resources to control and calculation tasks.

===============

 

๐Ÿ“ ํ”„๋กœ์ ํŠธ ์š”์•ฝ (Overview)

์ด ํ”„๋กœ์ ํŠธ๋Š” ์—๋„ˆ์ง€ ์ €์žฅ ์žฅ์น˜(ESS), ์ „๊ธฐ์ฐจ(EV) ๋˜๋Š” ์›๊ฒฉ ๋…๋ฆฝํ˜• ์ „์› ์‹œ์Šคํ…œ์„ ์œ„ํ•œ IoT ๊ธฐ๋ฐ˜ ๋ฐฐํ„ฐ๋ฆฌ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(Battery Management System, BMS)์„ ๊ตฌํ˜„ํ•œ ์˜คํ”ˆ์†Œ์Šค ํ•˜๋“œ์›จ์–ด ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

1. ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง: ๊ฐ ๋ฐฐํ„ฐ๋ฆฌ ์…€์˜ ์ „์••(Voltage), ์ „๋ฅ˜(Current), ์˜จ๋„(Temperature)๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ธก์ •ํ•˜์—ฌ ๋ฐฐํ„ฐ๋ฆฌ์˜ ์ถฉ์ „ ์ƒํƒœ(SoC, State of Charge)์™€ ๊ฑด๊ฐ• ์ƒํƒœ(SoH, State of Health)๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
2. ๋ณดํ˜ธ ์ œ์–ด(Protection): ๊ณผ์ถฉ์ „(Over-charge), ๊ณผ๋ฐฉ์ „(Over-discharge), ๊ณผ์—ด ๋“ฑ ๋ฐฐํ„ฐ๋ฆฌ์˜ ์œ„ํ—˜ ์ƒํƒœ๋ฅผ ๊ฐ์ง€ํ•˜๋ฉด ๋ฆด๋ ˆ์ด๋‚˜ ํŒฉ ์ปจํƒํ„ฐ๋ฅผ ์ œ์–ดํ•˜์—ฌ ํšŒ๋กœ๋ฅผ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.
3. ์›๊ฒฉ ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ(Telemetry): ์ˆ˜์ง‘๋œ ๋ฐฐํ„ฐ๋ฆฌ ์ง„๋‹จ ๋ฐ์ดํ„ฐ๋ฅผ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ค‘์•™ ๊ด€์ œ ์„œ๋ฒ„, ๋Œ€์‹œ๋ณด๋“œ ๋˜๋Š” MQTT ๋ธŒ๋กœ์ปค๋กœ ์ „์†กํ•˜์—ฌ ๊ด€๋ฆฌ์ž๊ฐ€ ์›๊ฒฉ์—์„œ ์‹œ์Šคํ…œ ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

 

How Does a W5500 Modbus TCP BMS Connect a Rescue Robot Battery to ROS 2?

 

๐ŸŒ W5500์˜ ์—ญํ•  (Role of W5500)

์ด BMS ์„ค๊ณ„์—์„œ WIZnet W5500์€ ์›๊ฒฉ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ ์•ˆ์ •์ ์ธ ์œ ์„  ์ด๋”๋„ท(Ethernet) ํ†ต์‹ ์„ ์ „๋‹ดํ•˜๋Š” ํ•˜๋“œ์›จ์–ด TCP/IP ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๊ตฌ์ฒด์ ์ธ ์—ญํ• ๊ณผ ๋„์ž… ์ด์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

* ๋„คํŠธ์›Œํฌ ์ฒ˜๋ฆฌ ์˜คํ”„๋กœ๋“œ(Offloading): ๋ฐฐํ„ฐ๋ฆฌ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์˜ ๋ฉ”์ธ MCU๋Š” ์‹ค์‹œ๊ฐ„ ์ „์••/์ „๋ฅ˜ ๊ณ„์‚ฐ ๋ฐ ๋ฆด๋ ˆ์ด ์ œ์–ด ๋“ฑ ์•ˆ์ „๊ณผ ์ง๊ฒฐ๋œ ์—ฐ์‚ฐ์— ์ง‘์ค‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. W5500์€ TCP, UDP, IPv4 ๋“ฑ์˜ ๋ณต์žกํ•œ ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ ์ฒ˜๋ฆฌ๋ฅผ ์นฉ ๋‚ด๋ถ€ ํ•˜๋“œ์›จ์–ด์—์„œ ์ „๋‹ดํ•˜๋ฏ€๋กœ MCU์˜ ๋ฆฌ์†Œ์Šค(CPU ์ ์œ ์œจ, ๋ฉ”๋ชจ๋ฆฌ) ๋ถ€๋‹ด์„ ํš๊ธฐ์ ์œผ๋กœ ์ค„์—ฌ์ค๋‹ˆ๋‹ค.
* ๋…ธ์ด์ฆˆ ํ™˜๊ฒฝ์—์„œ์˜ ํ†ต์‹  ์‹ ๋ขฐ์„ฑ ํ™•๋ณด: ๋ฐฐํ„ฐ๋ฆฌ ํŒฉ๊ณผ ์ธ๋ฒ„ํ„ฐ ์ฃผ๋ณ€์€ ๊ณ ์ „์•• ๋ฐ ๋Œ€์ „๋ฅ˜ ์Šค์œ„์นญ์œผ๋กœ ์ธํ•ด ์ „์ž๊ธฐ ๊ฐ„์„ญ(EMI/EMC)๊ณผ ๋…ธ์ด์ฆˆ๊ฐ€ ๋งค์šฐ ์‹ฌํ•œ ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค. Wi-Fi์™€ ๊ฐ™์€ ๋ฌด์„  ํ†ต์‹ ์€ ์ด๋Ÿฌํ•œ ์‚ฐ์—… ํ™˜๊ฒฝ์—์„œ ๋Š๊น€์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, W5500 ๊ธฐ๋ฐ˜์˜ ์œ ์„  ์ด๋”๋„ท์€ ๋ฐฉํ•ด ์ „ํŒŒ์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๊ณ  ์ค‘๋‹จ ์—†๋Š” ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
* ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ (SPI ์ธํ„ฐํŽ˜์ด์Šค): ๋ฉ”์ธ MCU๋Š” SPI ํ†ต์‹ ์„ ํ†ตํ•ด W5500์— ์ ‘๊ทผํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ๋ฐฐํ„ฐ๋ฆฌ ์ง„๋‹จ ๋ฐ์ดํ„ฐ(์…€ ์ „์••, ์˜จ๋„, ์•Œ๋žŒ ๋กœ๊ทธ ๋“ฑ)๋ฅผ ์ด๋”๋„ท์„ ํ†ตํ•ด ์™ธ๋ถ€ ์„œ๋ฒ„๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ตœ๋Œ€ 8๊ฐœ์˜ ๋…๋ฆฝ์ ์ธ ํ•˜๋“œ์›จ์–ด ์†Œ์ผ“์„ ์ง€์›ํ•˜์—ฌ, ํ•˜๋‚˜์˜ ์†Œ์ผ“์€ MQTT ๋ฐ์ดํ„ฐ ์ „์†ก์— ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค๋ฅธ ์†Œ์ผ“์€ ๋กœ์ปฌ ์›น์„œ๋ฒ„ ๊ด€์ œ์šฉ์œผ๋กœ ๋™์‹œ ์šด์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”์•ฝํ•˜์ž๋ฉด, ์ด ํ”„๋กœ์ ํŠธ์—์„œ W5500์€ '์•ˆ์ „ํ•˜๊ณ  ์ค‘๋‹จ ์—†๋Š” ๋ฐฐํ„ฐ๋ฆฌ ์›๊ฒฉ ๊ด€์ œ๋ง'์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ์‚ฐ์—…์šฉ ๋„คํŠธ์›Œํฌ ๋ธŒ๋ฆฟ์ง€์˜ ํ•ต์‹ฌ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

[Q&A]

 

Q1. `frankonerio/BMS` ํ”„๋กœ์ ํŠธ์˜ ์ฃผ์š” ๋ชฉ์ ๊ณผ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?
A1. ์—๋„ˆ์ง€ ์ €์žฅ ์žฅ์น˜(ESS), ์ „๊ธฐ์ฐจ(EV), ์›๊ฒฉ ์ „์› ์‹œ์Šคํ…œ์„ ์œ„ํ•œ IoT ๊ธฐ๋ฐ˜ ๋ฐฐํ„ฐ๋ฆฌ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(BMS) ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ๋ฐฐํ„ฐ๋ฆฌ ์…€์˜ ์ „์••ยท์ „๋ฅ˜ยท์˜จ๋„ ๋ชจ๋‹ˆํ„ฐ๋ง, SoC(์ถฉ์ „ ์ƒํƒœ)/SoH(๊ฑด๊ฐ• ์ƒํƒœ) ์—ฐ์‚ฐ, ์ด์ƒ ๋ฐœ์ƒ ์‹œ ๋ฆด๋ ˆ์ด๋ฅผ ํ†ตํ•œ ์•ˆ์ „ ์ฐจ๋‹จ, ๊ทธ๋ฆฌ๊ณ  ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•œ ์›๊ฒฉ ๊ด€์ œ ๋ฐ์ดํ„ฐ ์ „์†ก(ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ) ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

 

Q2. ๋ฐฐํ„ฐ๋ฆฌ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(BMS)์—์„œ ๋ฌด์„ (Wi-Fi) ๋Œ€์‹  W5500 ๊ธฐ๋ฐ˜์˜ ์œ ์„  ์ด๋”๋„ท์„ ์ฑ„ํƒํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?
A2. ๋ฐฐํ„ฐ๋ฆฌ ํŒฉ, ์ธ๋ฒ„ํ„ฐ, ๋ชจํ„ฐ ์ฃผ๋ณ€์€ ๋Œ€์ „๋ฅ˜ ์Šค์œ„์นญ ๋ฐ ๊ณ ์ „์••์œผ๋กœ ์ธํ•ด ์ „์ž๊ธฐ ๊ฐ„์„ญ(EMI/EMC)๊ณผ ๋…ธ์ด์ฆˆ๊ฐ€ ๊ฐ•ํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๋Š” ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค. ๋ฌด์„  ํ†ต์‹ ์€ ์ด๋Ÿฌํ•œ ๋…ธ์ด์ฆˆ ํ™˜๊ฒฝ์—์„œ ํŒจํ‚ท ์†์‹ค์ด๋‚˜ ์ ‘์† ๋Š๊น€์ด ๋ฐœ์ƒํ•  ์œ„ํ—˜์ด ํฌ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐฉํ•ด ์ „ํŒŒ์˜ ์˜ํ–ฅ์ด ์ ๊ณ  ์•ˆ์ •์ ์ธ ์œ ์„  ์ด๋”๋„ท ์ปจํŠธ๋กค๋Ÿฌ(W5500)๋ฅผ ํ™œ์šฉํ•ด ํ†ต์‹  ์‹ ๋ขฐ์„ฑ์„ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค.

 

Q3. W5500์˜ ํ•˜๋“œ์›จ์–ด TCP/IP ์˜คํ”„๋กœ๋“œ(Offloading) ๊ธฐ๋Šฅ์ด ๋ฉ”์ธ MCU ์ž‘์—… ์ฒ˜๋ฆฌ์— ์–ด๋–ค ์ด์ ์„ ์ฃผ๋‚˜์š”?
A3. BMS์˜ ๋ฉ”์ธ MCU๋Š” ๋ฐฐํ„ฐ๋ฆฌ์˜ ์•ˆ์ „๊ณผ ์ง๊ฒฐ๋œ ์‹ค์‹œ๊ฐ„ ์…€ ์ „์•• ๊ณ„์‚ฐ, ์˜จ๋„ ๊ฐ์ง€, ๋ฆด๋ ˆ์ด ์ฐจ๋‹จ ์ œ์–ด ๋“ฑ์„ ์ง€์—ฐ ์—†์ด ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. W5500์€ TCP/IP, UDP, IPv4 ๋“ฑ ๋ณต์žกํ•œ ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ ์ฒ˜๋ฆฌ๋ฅผ ์นฉ ๋‚ด๋ถ€ ํ•˜๋“œ์›จ์–ด๋กœ ์ž์ฒด ๋‹ด๋‹นํ•˜๋ฏ€๋กœ MCU์˜ CPU ์ ์œ ์œจ๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ํš๊ธฐ์ ์œผ๋กœ ๋‚ฎ์ถฐ ๋ฉ”์ธ ์ œ์–ด ๋กœ์ง์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

 

Q4. W5500๊ณผ MCU๋Š” ์–ด๋–ค ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์—ฐ๊ฒฐ๋˜๋ฉฐ, ๋‹ค์ค‘ ์†Œ์ผ“ ๊ธฐ๋Šฅ์€ ์–ด๋–ป๊ฒŒ ํ™œ์šฉ๋  ์ˆ˜ ์žˆ๋‚˜์š”?
A4. MCU์™€ W5500์€ SPI ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์Šต๋‹ˆ๋‹ค. W5500์€ ์ตœ๋Œ€ 8๊ฐœ์˜ ๋…๋ฆฝ์ ์ธ ํ•˜๋“œ์›จ์–ด ์†Œ์ผ“์„ ์ง€์›ํ•˜๋ฏ€๋กœ, ํ•˜๋‚˜ ์ด์ƒ์˜ ์†Œ์ผ“์€ MQTT ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•œ ์™ธ๋ถ€ ํด๋ผ์šฐ๋“œ ๋ฐ์ดํ„ฐ ์ „์†ก์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ , ๋‹ค๋ฅธ ์†Œ์ผ“์€ ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ ๊ด€์ œ์šฉ ์›น์„œ๋ฒ„ ์šด์˜์— ๋™์‹œ์— ํ• ๋‹นํ•˜์—ฌ ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

[์œ ์‚ฌ ํ”„๋กœ์ ํŠธ]

 


1. [BeeMS - Open-Source Battery Management System](https://www.google.com/search?q=https://maker.wiznet.io/matthew/projects/beems/)

* ์ฃผ์š” ๊ตฌ์„ฑ: ๋ฐฐํ„ฐ๋ฆฌ ์ œ์–ด MCU, CAN ๋ฒ„์Šค, WIZnet W5500 ์ด๋”๋„ท ๋ชจ๋“ˆ
* ํ”„๋กœ์ ํŠธ ํŠน์ง•: EV(์ „๊ธฐ์ฐจ) ๋ฐฐํ„ฐ๋ฆฌ ํŒฉ ๋‚ด๋ถ€์˜ ์•ˆ์ „ ๋กœ์ง๊ณผ ์…€ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•œ ๋’ค, CAN-to-Ethernet ๋ธŒ๋ฆฟ์ง€๋ฅผ ํ†ตํ•ด ์ƒ์œ„ SCADA/๊ด€์ œ PC๋กœ ์‹ค์‹œ๊ฐ„ ์ „์†กํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค BMS ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.
* ์œ ์‚ฌ์  ๋ฐ ์—ฐ๊ด€์„ฑ: `frankonerio/BMS`์™€ ๊ฐ€์žฅ ์ง์ ‘์ ์œผ๋กœ ์ผ์น˜ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ๋ฐฐํ„ฐ๋ฆฌ์˜ ์•ˆ์ „ ์ œ์–ด ๋ฐ ์…€ ์ƒํƒœ ์ง„๋‹จ ๋ฐ์ดํ„ฐ๋ฅผ ๋…ธ์ด์ฆˆ๊ฐ€ ์‹ฌํ•œ ํ•˜๋“œ์›จ์–ด ํ™˜๊ฒฝ์—์„œ W5500 ํ•˜๋“œ์›จ์–ด TCP/IP๋ฅผ ํ†ตํ•ด ์œ ์„  ๋ฐฑํ™€๋กœ ์•ˆ์ •์ ์œผ๋กœ ์˜คํ”„๋กœ๋”ฉ(Offloading)ํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

---

2. [OpenDTU-OnBattery - Smart Solar & BESS Monitor](https://www.google.com/search?q=https://maker.wiznet.io/irina/projects/opendtu-onbattery/)

* ์ฃผ์š” ๊ตฌ์„ฑ: ESP32, WIZnet W5500, ๋ฐฐํ„ฐ๋ฆฌ BMS(Daly, JK ๋“ฑ) ์—ฐ๋™ ํ”„๋กœํ† ์ฝœ
* ํ”„๋กœ์ ํŠธ ํŠน์ง•: ํƒœ์–‘๊ด‘ ์ธ๋ฒ„ํ„ฐ ๋ฐ ์—๋„ˆ์ง€ ์ €์žฅ ์žฅ์น˜(BESS/ESS)์˜ ๋ฐฐํ„ฐ๋ฆฌ BMS ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ์˜คํ”ˆ ํ”„๋กœํ† ์ฝœ(MQTT/HTTP) ๊ธฐ๋ฐ˜์œผ๋กœ ์œ ์„ ๋ง์— ์ „์†กํ•˜๋Š” ์—๋„ˆ์ง€ ๋ชจ๋‹ˆํ„ฐ๋ง ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.
* ์œ ์‚ฌ์  ๋ฐ ์—ฐ๊ด€์„ฑ: ๋ฐฐํ„ฐ๋ฆฌ ํŒฉ(BMS)์˜ SoC/SoH, ์ „์••, ์ „๋ฅ˜ ์ƒํƒœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•œ๋‹ค๋Š” ๊ณตํ†ต์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ๋ฒ„ํ„ฐ ๋ฐ ๊ณ ์ „๋ ฅ ๋ฐฐํ„ฐ๋ฆฌ ์ฃผ๋ณ€์˜ ๊ฐ•ํ•œ ์ „์ž๊ธฐ ๊ฐ„์„ญ(EMI)์„ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด Wi-Fi ๋Œ€์‹  W5500 ์œ ์„  ์ด๋”๋„ท ๊ธฐ๋ฐ˜์˜ ํ•˜๋“œ์›จ์–ด ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์ถ•ํ•œ ์ ์ด ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

---

3. [EPEM ESP32-C6 ATM90E36 Ethernet Power Energy Monitor](https://www.google.com/search?q=https://maker.wiznet.io/scott/projects/epem-esp32-c6-atm90e36-ethernet-power-energy-monitor-sdk/)

* ์ฃผ์š” ๊ตฌ์„ฑ: ESP32-C6, ATM90E36 ์ „๋ ฅ ๊ณ„์ธก IC, WIZnet W5500์ด๋”๋„ท ์ปจํŠธ๋กค๋Ÿฌ, RS-485
* ํ”„๋กœ์ ํŠธ ํŠน์ง•: ์ „๋ ฅ ๋ฐ ์ „์••ยท์ „๋ฅ˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ฐ€ ์ธก์ •ํ•˜๊ณ , ์—ฐ์‚ฐ ๋ถ€ํ•˜๋ฅผ ์ฐจ๋‹จํ•˜๊ธฐ ์œ„ํ•ด W5500์˜ ํ•˜๋“œ์›จ์–ด TCP/IP๋ฅผ ํ™œ์šฉํ•ด ์‹ค์‹œ๊ฐ„ ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€์ œ ์„œ๋ฒ„๋กœ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ํ•˜๋“œ์›จ์–ด ์ „๋ ฅ ๋ชฌํ„ฐ๋ง ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.
* ์œ ์‚ฌ์  ๋ฐ ์—ฐ๊ด€์„ฑ: BMS ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ ์š”์†Œ์ธ ์ „๋ ฅ/์ „์••/์ „๋ฅ˜ ์ˆ˜์ง‘ ๋ฐ ๋ณดํ˜ธ ๋กœ์ง์— ์ง‘์ค‘ํ•˜๋ฉด์„œ, ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ ์ฒ˜๋ฆฌ๋Š” W5500์— ์˜คํ”„๋กœ๋“œํ•˜์—ฌ MCU์˜ CPU ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ์–ด ๋ฐ ๊ณ„์‚ฐ์— ์ง‘์ค‘์‹œํ‚จ๋‹ค๋Š” ์„ค๊ณ„ ์ฒ ํ•™์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

 

[์‹œ์‚ฌ์ ]

 

1. ๊ณ ๋…ธ์ด์ฆˆยท๊ณ ์ „์•• ํ™˜๊ฒฝ(BMS/BESS)์—์„œ์˜ ํ•˜๋“œ์›จ์–ด ์œ ์„  ์ด๋”๋„ท ์šฐ์œ„ ๊ฒ€์ฆ
์‹œ์‚ฌ์ : ๋ฐฐํ„ฐ๋ฆฌ ํŒฉ, ์ธ๋ฒ„ํ„ฐ, ๋ชจํ„ฐ ๋“œ๋ผ์ด๋ฒ„ ์ฃผ๋ณ€์€ ๊ณ ์ „์•• ๋ฐ ๋Œ€์ „๋ฅ˜ ์Šค์œ„์นญ์œผ๋กœ ์ธํ•ด ๊ฐ•๋ ฅํ•œ ์ „์ž๊ธฐ ๊ฐ„์„ญ(EMI/EMC)์ด ๋ฐœ์ƒํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๊ณ ๋…ธ์ด์ฆˆ ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค.

์œ„์ฆˆ๋„คํŠธ์˜ ๊ธฐํšŒ: ์ด๋Ÿฌํ•œ ํ™˜๊ฒฝ์—์„œ๋Š” Wi-Fi๋‚˜ BLE ๊ฐ™์€ ๋ฌด์„  ํ†ต์‹ ์˜ ์‹ ๋ขฐ์„ฑ์ด ๊ธ‰๊ฒฉํžˆ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค. W5500๊ณผ ๊ฐ™์€ ์œ ์„  ํ•˜๋“œ์›จ์–ด ์ด๋”๋„ท ์นฉ์ด ๋‹จ์ˆœํ•œ '์—ฐ๊ฒฐ ์ˆ˜๋‹จ'์„ ๋„˜์–ด '๋…ธ์ด์ฆˆ๋ฅผ ๊ทน๋ณตํ•˜๊ณ  ์‹œ์Šคํ…œ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ํ•„์ˆ˜ ๋ถ€ํ’ˆ'์œผ๋กœ ํ‰๊ฐ€๋ฐ›๊ณ  ์žˆ์Œ์„ ์ž…์ฆํ•ฉ๋‹ˆ๋‹ค.

 

2. '์•ˆ์ „ ํ•„์ˆ˜(Safety-Critical) ์‹œ์Šคํ…œ'์—์„œ ํ•˜๋“œ์›จ์–ด TCP/IP ์˜คํ”„๋กœ๋”ฉ์˜ ํ•ต์‹ฌ ๊ฐ€์น˜
์‹œ์‚ฌ์ : BMS์˜ ๋ฉ”์ธ MCU๋Š” ๋ฐฐํ„ฐ๋ฆฌ ํญ๋ฐœยท์—ดํญ์ฃผ๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด ์…€ ์ „์••/์˜จ๋„ ๊ฐ์ง€, ์‹ค์‹œ๊ฐ„ ๋ฆด๋ ˆ์ด ์ฐจ๋‹จ ๋“ฑ ์ œ๋กœ ๋”œ๋ ˆ์ด(Zero-delay) ์‹ค์‹œ๊ฐ„ ์ œ์–ด๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์œ„์ฆˆ๋„คํŠธ์˜ ๊ธฐํšŒ: SW ๊ธฐ๋ฐ˜ TCP/IP ์Šคํƒ์„ ๊ตฌ๋™ํ•  ๊ฒฝ์šฐ MCU์˜ CPU ๋ฆฌ์†Œ์Šค ์ ์œ ์™€ ์ธํ„ฐ๋ŸฝํŠธ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์ฆˆ๋„คํŠธ ํŠนํ—ˆ ๊ธฐ์ˆ ์ธ Hardwired TCP/IP Engine์ด ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ ์ฒ˜๋ฆฌ๋ฅผ 100% ํ•˜๋“œ์›จ์–ด๋กœ ์˜คํ”„๋กœ๋”ฉํ•ด ์คŒ์œผ๋กœ์จ, "์•ˆ์ „์„ฑ ์ฆ๋Œ€ + MCU ์ŠคํŽ™ ์ ˆ๊ฐ(Cost reduction)"์ด๋ผ๋Š” ๊ฐ•๋ ฅํ•œ ์„ธ์ผ์ฆˆ ํฌ์ธํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

 

3. ๊ธ‰์„ฑ์žฅํ•˜๋Š” ์—๋„ˆ์ง€(BESS/ESS/EV) ์‹œ์žฅ์œผ๋กœ์˜ ์‹ ๊ทœ ํƒ€๊นƒ ํ™•์žฅ
์‹œ์‚ฌ์ : ์ „ ์„ธ๊ณ„์ ์ธ ์นœํ™˜๊ฒฝ ์—๋„ˆ์ง€ ์ „ํ™˜(ํƒœ์–‘๊ด‘, ESS, ์ „๊ธฐ์ฐจ ๋“ฑ)์œผ๋กœ ์ธํ•ด BMS ๋ฐ ์—๋„ˆ์ง€ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ ์‹œ์žฅ์ด ํญ๋ฐœ์ ์œผ๋กœ ์„ฑ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์ฆˆ๋„คํŠธ์˜ ๊ธฐํšŒ: ๊ธฐ์กด ์Šค๋งˆํŠธ ํ™ˆ, ์‹œ๋ฆฌ์–ผ-ํˆฌ-์ด๋”๋„ท(Serial-to-Ethernet) ์‹œ์žฅ์„ ๋„˜์–ด ์‚ฐ์—…์šฉ BESS/BMS ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐฑํ™€ ์‹œ์žฅ์„ ์œ„์ฆˆ๋„คํŠธ ์นฉ(W5500, W6100 ๋“ฑ)์˜ ํ•ต์‹ฌ ์„ฑ์žฅ ๋™๋ ฅ(Growth Engine)์œผ๋กœ ์žฌ์ •์˜ํ•˜๊ณ  ์ง‘์ค‘ ์กฐ๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

Documents

BMS repository (frankonerio/BMS)

Full project: STM32CubeIDE firmware, KiCad boards, ROS 2 host node, Qt GUI

How Does a W5500 Modbus TCP BMS Connect a Rescue Robot Battery to ROS 2?

Project README

Build instructions including section 5, Integrating W5500 Ethernet Library

How Does a W5500 Modbus TCP BMS Connect a Rescue Robot Battery to ROS 2?

WIZnet ioLibrary_Driver

The W5500 socket driver family vendored into the firmware at Core/Src/w5500

How Does a W5500 Modbus TCP BMS Connect a Rescue Robot Battery to ROS 2?

WIZnet W5500 product page

Hardwired TCP/IP Ethernet controller serving the Modbus TCP session

How Does a W5500 Modbus TCP BMS Connect a Rescue Robot Battery to ROS 2?

libmodbus

Host-side Modbus TCP client library used by the ROS 2 node

How Does a W5500 Modbus TCP BMS Connect a Rescue Robot Battery to ROS 2?

Paderborn University news on its RoboCup rescue robots

University coverage of the GET Lab rescue robot line at RoboCup (German)

How Does a W5500 Modbus TCP BMS Connect a Rescue Robot Battery to ROS 2?

SEGGER SystemView

Task tracing tool integrated into the FreeRTOS firmware; captures are in the Records folder

How Does a W5500 Modbus TCP BMS Connect a Rescue Robot Battery to ROS 2?

Comments

Similar projects you might like

Comments