Hi all i am buying a BMS system from China for high voltage battery system for solar storage i am using the Fronius Symo Gen 24 plus inverter, the supplier is asking me for the BMS to Inverter communication Protocol. This is an example of a protocol that they require
Voltronic Power
Inverter and BMS 485 communication Protocol
-
BMS Pin Definition
1.1 BMS Card
Definition
PIN 4 RS485B
PIN 5 RS485A
1.2 Remote Box
Definition
PIN 3 RS485B
PIN 5 RS485A
-
Communication parameter configuration
Baud rate Start bit Data bit Parity bit Stop bit
9600 1 8 N 1
-
Communication frame format
Device query command format
Index 1 2 3 4 5
Function Slave ID Command type Start Address of data Data Length *CRC
Bytes 1 1 2 2 2
BMS address Function code MSB LSB MSB LSB LSB MSB
*The CRC check range is all of the bytes before the CRC field,
Command type table
Index Command type Description
1 0x03 Read Data
2 0x10 Write Data
BMS normal response format
Index 1 2 3 4 5
Function Slave ID Command type Data Length Data information CRC
Bytes 1 1 2 Data length * 2 2
BMS address Function code MSB LSB MSB LSB LSB MSB
BMS abnormal response format
Index 1 2 3 4
Function Slave ID Command type + 128 Error code CRC
Bytes 1 1 1 2
Error code
Index Error code Note
1 0x01 Slave ID should be within 1~16. Slave ID error if out of range
2 0x02 Command type error if command didn’t exist,
3 0x03 CRC error
- Command lists
4.1 Version information
Data Address Byte Size Parameter Parameter Unit
0x0001 2 Protocol type
0x0002 2 Protocol version
0x0003 4 BMS firmware version
0x0005 4 BMS hardware version
4.2 BMS general status parameters inquiry
Data Address Byte Size Parameter Parameter Unit
0x0010 2 Number of cell: L pcs
0x0N11 2 Cell N20+1 voltage 0.1V
0x0N12 2 Cell N20+2 voltage
0x0N13 2 Cell N20+3 voltage
0x0N14 2 Cell N20+4 voltage
0x0N15 2 Cell N20+5 voltage
0x0N16 2 Cell N20+6 voltage
0x0N17 2 Cell N20+7 voltage
0x0N18 2 Cell N20+8 voltage
0x0N19 2 Cell N20+9 voltage
0x0N1A 2 Cell N20+10 voltage
0x0N1B 2 Cell N20+11 voltage
0x0N1C 2 Cell N20+12 voltage
0x0N1D 2 Cell N20+13 voltage
0x0N1E 2 Cell N20+14 voltage
0x0N1F 2 Cell N20+15 voltage
0x0N20 2 Cell N20+16 voltage
0x0N21 2 Cell N20+17 voltage
0x0N22 2 Cell N20+18 voltage
0x0N23 2 Cell N20+19 voltage
0x0N24 2 Cell N20+20 voltage
0x0025 2 Number of temperature sensor: M pcs
0x0N26 2 Temperature Sensor N10+1 0.1K
(Kelvin temperature)
0x0N27 2 Temperature Sensor N10+2
0x0N28 2 Temperature Sensor N10+3
0x0N29 2 Temperature Sensor N10+4
0x0N2A 2 Temperature Sensor N10+5
0x0N2B 2 Temperature Sensor N10+6
0x0N2C 2 Temperature Sensor N10+7
0x0N2D 2 Temperature Sensor N10+8
0x0N2E 2 Temperature Sensor N10+9
0x0N2F 2 Temperature Sensor N*10+10
0x0030 2 Module charge current 0.1A
0x0031 2 Module discharge current 0.1A
0x0032 2 Module voltage 0.1V
0x0033 2 SOC %
0x0034 4 Module total capacity mAH
*If the parameter doesn’t exist, return 0x0000
4.3 BMS warning information inquiry
Data Address Byte Size Parameter Note
0x0N40 2 Number of cell: L
0x0N41 2 Cell N20+1/ N20+2 voltage state 00H: normal
01H: below lower limit
02H: above higher limit
F0H: other error
0x0N42 2 Cell N20+3/ N20+4 voltage state
0x0N43 2 Cell N20+5/ N20+6 voltage state
0x0N44 2 Cell N20+7/ N20+8 voltage state
0x0N45 2 Cell N20+9/ N20+10 voltage state
0x0N46 2 Cell N20+11/ N20+12 voltage state
0x0N47 2 Cell N20+13/ N20+14 voltage state
0x0N48 2 Cell N20+15/ N20+16 voltage state
0x0N49 2 Cell N20+17/ N20+18 voltage state
0x0N4A 2 Cell N20+19/ N20+20 voltage state
0x0050 2 Number of temperature sensor: M
0x0N51 2 BMS Temperature N10+1/ N10+2 state 00H: normal
01H: below lower limit
02H: above higher limit
F0H: other error
0x0N52 2 BMS Temperature N10+3/ N10+4 state
0x0N53 2 BMS Temperature N10+5/ N10+6 state
0x0N54 2 BMS Temperature N10+7/ N10+8 state
0x0N55 2 BMS Temperature N10+9/ N10+10 state
0x0060 2 Module charge voltage state 00H: normal
01H: below lower limit
02H: above higher limit
F0H: other error
0x0061 2 Module discharge voltage state
0x0062 2 Cell charge voltage state
0x0063 2 Cell discharge voltage state
0x0064 2 Module charge current state
0x0065 2 Module discharge current state
0x0066 2 Module charge temperature state
0x0067 2 Module discharge temperature state
0x0068 2 Cell charge temperature state
0x0069 2 Cell discharge temperature state
*If the parameter didn’t exist, return 0x0000
4.4 BMS charger and discharge information inquiry
Data Address Byte Size Parameter Parameter Unit
0x0070 2 Charge voltage limit 0.1V
0x0071 2 Discharge voltage limit 0.1V
0x0072 2 Charge current limit 0.1A
0x0073 2 Discharge current limit 0.1A
0x0074 2 Charge, discharge status
Charge, discharge status:
Bit Content Note
7 Charge enable 1: yes 0: request stop charge
6 Discharge enable 1: yes 0: request stop discharge
5 Charge immediately 1: request: 0: no request
4 Charge immediately2 1: request: 0: no request
3 Full charge request 1: request: 0: no request
2
1
0
0x0075 4 Run time to empty S
*Bit 5: Set when SoC is very low, like 5~9%, device need charge immediately until this flag disappear.
*Bit 4: Set when SoC is low, like 10~14%, it will be better that device charge immediately until this flag disappear.
*Bit 3: Set when BMS need device fully charged.