Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

,-"·

-:
,/

/
/
Narada BMS Modbus
1. Communication configuration

1.1 Configuration:
(9600 bit/s, NO parity bit, 8 data bit,1 stop bit)

BMS board dip code range is O,.___, 15. BMS software's base address is 38, so the BMS communication address is

(38+x), x is BMS board dip code. Example: BMS board dip code is 1, the BMS communication address is 39.

1.2 Function List


Code Child Code Caption Description
Support single/Multi Continuous
Ox04 Read analog value
Register(s)
Oxll Read Product lnformation Style/V ersion/Serial Number
Ox19 Lockup Control Support unlock, Set password

1.3Command Format
Notel: MSB is High byte; LSB is Low byte

Note2: One register is include two bytes, if a register only have one byte, put it in LSB.

Send Command Format(Ox04):


Idx o 1 2 3 4 5 6 7
MS MS LS
Caption ADDR CMD
B LSB B LSB B MSB
Descriptio Register Start Register
Slave Addr
n Cmd Addr Count CRC Check

Main Response Command Format:


Idx o 1 2 3 4 5 6 .. L+l L+2 L+3 L+4
MS LS MS LS MS LS
Caption ADDR CMD
Length B B B B .. B LSB B MSB
Data
Descriptio Slave
length(L lReg 2Reg
n Addr
Cmd =n*2) Value Value .. nReg Value CRC Check

Branch Response Command Format:


Idx o 1 2 3 4
Caption ADDR CMD+ 128 ErrCode LSB MSB
Descriptio
Slave Addr
n Cmd +128 Error Code CRC Check

Send Command Format(Oxll):


Idx o 1 2 3 4 5 6 7
MS LS
Caption ADDR CMD
MSB LSB B LSB B MSB
Descriptio
Slave Addr OxOOOO
n Cmd OxOOOO CRC Check

Response Command Format(Oxll):


L
Idx o 1 2 3 4 5 6 .. L+l L+2 + L+4
3
L
Caption ADDR CMD s
Length BYTEl ... BYTEn B MSB
Product Style+'*'+Software
Data
Descriptio Slave Version+'*'+Hardware Version+'*'+Serial
length
n Addr Number Version+'*'Date ofthe
L=n
Cmd manufacture+'*' CRC Check

Send Command Format�Ox19�:


... L+l L+2 L
Idx o 1 2 3 4 5 L+3 +
4
BYTEl ... BYTEn M
Caption ADDR CMD MS LS MS LS s
B B B B LSB B
Descriptio Slave
n Addr Cmd Sub Id Data Len Data CRC Check

Response Command Format ( Ox19)


Idx o 1 2 3 4
Caption ADDR CMD Response Code LSB MSB
Descriptio
Slave Addr
n Cmd Response Code CRC Check

1.4 Data Information


Notel: OxFFFF means Not Valuable

Note2: One register is include two bytes, if a register only have one byte, put it in LSB.

Note3: charging current is positive,discharging current is negative.

Register Data Unit Bytes Scale Offset PDU#Value Mio data Maxdata

Addr Factor val u e val u e


OxOFFF Pack Volt V 2 0.01 o 5343#53.43 o 64

OxlOOO Current A 2 0.1 -10000 9505#-49.5 -100 100

OxlOOl Remain Ah 2 0.1 o 560#56 o 200

capacity

Oxl002 Average Cell ºC 2 0.1 -400 300#-10 -40 120

Oxl003 EnvT ºC 0.1 -400 300#-10 -40 120

Oxl004 Warning Flag # 2 1 o See Follow OxOOOO Oxffff

Table

Oxl005 Protection # 2 1 o See Follow OxOOOO Oxffff

Flag Table

Oxl006 F ault/S tatus # 2 1 o See Follow OxOOOO Oxffff

Table

Oxl007 soc # 2 0.01% o 1234#12.34 o 100

Oxl008 Circula te # 2 1 o 100#100 o Oxffff

nunber

Oxl009 SOH # 2 0.01% o 1234#12.34 o 100

OxlOOA PCBT ºC 0.1 -400 300#-10 -40 120

OxlOOB History A 10 o 10#100 OxOOOO Oxffff

Discharge

Capacity

OxlOOC CellNum # 2 1 o 10#10 o 16

OxlOOD CellVoltageO V 2 0.001 o 3000#3.000 o 5

OxlOOE CellVoltagel V 2 0.001 o 3000#3.000 o 5

OxlOOF Cel1Voltage2 V 2 0.001 o 3000#3.000 o 5

OxlOlO Cel1Voltage3 V 2 0.001 o 3000#3.000 o 5

OxlOll Ce11Voltage4 V 2 0.001 o 3000#3.000 o 5

Oxl012 CellV oltage5 V 2 0.001 o 3000#3.000 o 5

Oxl013 Cel1Voltage6 V 2 0.001 o 3000#3.000 o 5


Oxl014 CellV oltage7 V 2 0.001 o 3000#3.000 o 5

Oxl015 Cel1Voltage8 V 2 0.001 o 3000#3.000 o 5

Oxl016 Cel1Voltage9 V 2 0.001 o 3000#3.000 o 5

Oxl017 CellVoltagel V 0.001 o 3000#3.000 o 5

o
Oxl018 CellV oltage 1 V 2 0.001 o 3000#3.000 o 5

Oxl019 CellVoltagel V 2 0.001 o 3000#3.000 o 5

OxlOlA CellVoltage 1 V 2 0.001 o 3000#3.000 o 5

OxlOlB CellVoltagel V 2 0.001 o 3000#3.000 o 5

OxlOlC CellVoltage 1 V 2 0.001 o 3000#3.000 o 5

OxlOlD TempNum # 2 1 o 10#10 o 16

OxlOlE TempCell O ºC 2 0.1 -400 300#-10 -40 120

OxlOlF TempCelll ºC 2 0.1 -400 300#-10 -40 120

Oxl020 TempCell 2 ºC 2 0.1 -400 300#-10 -40 120

Oxl021 TempCell 3 ºC 2 0.1 -400 300#-10 -40 120

Oxl022 TempCell 4 ºC 2 0.1 -400 300#-10 -40 120

Oxl023 TempCell 5 ºC 2 0.1 -400 300#-10 -40 120

Oxl024 TempCell 6 ºC 2 0.1 -400 300#-10 -40 120

Oxl025 TempCell 7 ºC 2 0.1 -400 300#-10 -40 120

Oxl026 TempCell 8 ºC 2 0.1 -400 300#-10 -40 120

Oxl027 TempCell 9 ºC 2 0.1 -400 300#-10 -40 120

Oxl028 TempCelllO ºC 2 0.1 -400 300#-10 -40 120

Oxl029 TempCelll l ºC 2 0.1 -400 300#-10 -40 120

Oxl02A TempCelll2 ºC 2 0.1 -400 300#-10 -40 120


Oxl02B TempCelll3 ºC 2 0.1 -400 300#-10 -40 120

Oxl02C TempCelll4 ºC 2 0.1 -400 300#-10 -40 120

Oxl02D TempCelll5 ºC 2 0.1 -400 300#-10 -40 120

Oxl02E Full Capacity Ah 2 0.1 o 560#56 o 200

Oxl02F Rcmain mm 2 1 o 100#100 o 65535

Charge time

Oxl030 IRemain mm 2 1 o 100#100 o 65535

Discharge

time 1

Oxl031 JCell UV state # 2 1 o See Follow OxOOOO Oxffff

Table

Warning Flag

Byte O BitO 1 :Cell OV Alarm O:None Suggest Not Display

Bitl 1 :Cell UV Alarm O:None Suggest Not Display

Bit2 1 :Pack OV Alarm O:None Suggest Not Display

Bit3 1 :Pack UV Alarm O:None Suggest Not Display

Bit4 1 :Chg OC Alarm O:None Suggest Not Display

Bit5 1 :Disg OC Alarm O:None Suggest Not Display

Bit6 1 :Cell OT Alarm O:None Suggest Not Display

Bit7 1 :Cell UT Alarm O:None Suggest Not Display

Bytel BitO 1 :Env OT Alarm O:None Suggest Not Display

Bitl 1 :Env UT Alarm O:None Suggest Not Display

Bit2 1 :PCB OT Alarm O:None Suggest Not Display

Bit3 1 :SOC Low Alarm O:None Suggest Not Display

Bit4 1 :Diff Volt Alarm O:None Suggest Not Display

Bit5 Reserved

Bit6 Reserved

Bit7 Reserved
Protection Flag

Byte O BitO 1 :Cell OV Protect O:None Suggest Not Display

Bitl 1 :Cell UV Protect O:None Suggest Not Display

Bit2 1 :Pack OV Protect O:None Suggest Not Display

Bit3 1 :Pack UV Protect O:None Suggest Not Display

Bit4 1 :SC Protect O:None

Bit5 Reserved

Bit6 1 :Chg OT Protect O:None

Bit7 1 :Chg UT Protect O:None

Bytel BitO 1 :Disg OT Protect O:None

Bitl 1 :Disg UT Protect O:None

Bit2 1 :�OC Protect O:None

Bit3 1 :pOC Protecf O:None

Bit4 [�JJ iíi iJJi[


Bit5 Reserved

Bit6 Reserved

Bit7 Reserved

Fault Flag/Status Flag

Byte O BitO 1 :Front-end Sample Error

(Fault) O:None

Bitl 1 :Temp Sense Disconnect

O:None

Bit2 1: Inversed Graft Error

O:None

Bit3 Reserved

Bit4 Reserved

Bit5 Reserved

Bit6 Reserved
Bit7 Reserved

Bytel BitO l:Charging O:None

(Status) Bitl 1 :Discharging O:None

Bit2 l:Chg MOS Connect

O:Chg MOS Disconnect

Bit3 1 :Disg MOS Connect

O:Disg MOS Disconnect

Bit4 1 :Limit Current Enable

O:Limit Current Disable

Bit5 1 :fully Charged O:None

Bit6 1 :I Module failure but in operation

O:None

Bit7 11: Module out of operation

O:None

Cell UV State

ByteO BitO 1: Cell O UV O:None

Bitl 1: Cell l UV O:None

Bit2 1: Cell 2 UV O:None

Bit3 1: Cell 3 UV O:None

Bit4 1: Cell 4 UV O:None

Bit5 1: Cell 5 UV O:None

Bit6 1: Cell 6 UV O:None

Bit7 1: Cell 7 UV O:None

Bytel BitO 1: Cell 8 UV O:None

Bitl 1: Cell 9 UV O:None

Bit2 1: Cell 10 UV O:None

Bit3 1: Cell 11 UV O:None

Bit4 1: Cell 12 UV O:None


Bit5 1: Cell 13 UV O:None

Bit6 1: Cell 14 UV O:None

Bit7 1: Cell 15 UV O:None

1.5 Product lnformation

Byte Count Example Description

Product Style l l(Max) 48NPFC75 ASCII

Hex,
Software OxOAOA,
2(Fixed) Version( 1 byte)+
Version Ver: Vl0.10
revision( 1 yte)

Hardware Ox010a0b0200
5(Fixed) Hex
Version Ver: VOl.10.11.02.00

Serial

Number 20(Fixed) 14875113011800400025 ASCII

Version

pate ofthe
8 20181220 ASCII
manufacture

1.6 Lockup Control

1 2 2 3 note
Format SUBID Data Len Datal Data2
New Password
1 (Set Password) 12(2BYTE) U ser Password C 6BYTE)
(6BYTE)

Explana 6 user password If no Password,the


2 C unlock) 6(2BYTE) /
tion (6BYTE) Data Len is O;

3 C valid
0(2BYTE) / /
communication)
low voltage min; if set
communication timeout
4( set time) 4(2BYTE) timeout time (2 OxFFFF,the funtion
time(2 BYTE)
BYTE) is disabled

Response Code Def:


l(SUCCESS)
Explanation
O (FAILED)
Unlock: 27 19 00 02 00 06 31 32 33 34 35 36 Fl 63
Ack:27 19 01 OB 9B
Valid com: 27 19 00 03 00 00 EB OE
Ack:27 19 01 OB 9B
Change Pass: 27 19 00 01 00 OC 31 32 33 34 35 36 35 35 35 35 35 35 CB 06
Ack:27 19 01 OB 9B

2. CRC Check
CRC Check's range is include all bytes before the CRC field, using ofthe 16 bit CRC. The realization ofthe

reference code is as follows:


static unsigned char auchCRCHi[] = {
OxOO,OxC1,0x81,0x40,0x01,0xCO,Ox80,0x41,0x01,0xCO,Ox80,0x41, OxOO, OxCl, Ox81,
Ox40,0x01,0xCO,Ox80,0x41,0xOO,OxC1,0x81,0x40,0xOO,OxC1,0x81, Ox40, Oxül, OxCO,
Ox80,0x41,0x01,0xCO,Ox80,0x41,0xOO,OxC1,0x81,0x40,0xOO,OxC1, Ox81, Ox40, OxO 1,
OxCO,Ox80,0x41,0xOO,OxC1,0x81,0x40,0x01,0xCO,Ox80,0x41,0x01, OxCO, Ox80, Ox41,
OxOO,OxC1,0x81,0x40,0x01,0xCO,Ox80,0x41,0xOO,OxC1,0x81,0x40, OxOO, OxCl, Ox81,
Ox40,0x01,0xCO,Ox80,0x41,0xOO,OxC1,0x81,0x40,0x01,0xCO,Ox80, Ox41, Oxül, OxCO,
Ox80,0x41,0xOO,OxC1,0x81,0x40,0xOO,OxC1,0x81,0x40,0x01,0xCO, Ox80, Ox41, Oxül,
OxCO,Ox80,0x41,0xOO,OxC1,0x81,0x40,0x01,0xCO,Ox80,0x41,0xOO, OxCl, Ox81, Ox40,
OxOO,OxC1,0x81,0x40,0x01,0xCO,Ox80,0x41,0x01,0xCO,Ox80,0x41, OxOO, OxCl, Ox81,
Ox40,0xOO,OxC1,0x81,0x40,0x01,0xCO,Ox80,0x41,0xOO,OxC1,0x81, Ox40, Oxül, OxCO,
Ox80,0x41,0x01,0xCO,Ox80,0x41,0xOO,OxC1,0x81,0x40,0xOO,OxC1, Ox81, Ox40, OxO 1,
OxCO,Ox80,0x41,0x01,0xCO,Ox80,0x41,0xOO,OxC1,0x81,0x40,0x01, OxCO, Ox80, Ox41,
OxOO,OxC1,0x81,0x40,0xOO,OxC1,0x81,0x40,0x01,0xCO,Ox80,0x41, OxOO, OxCl, Ox81,
Ox40,0x01,0xCO,Ox80,0x41,0x01,0xCO,Ox80,0x41,0xOO,OxC1,0x81, Ox40, Oxül, OxCO,
Ox80,0x41,0xOO,OxC1,0x81,0x40,0xOO,OxC1,0x81,0x40,0x01,0xCO, Ox80, Ox41, Oxül,
OxCO,Ox80,0x41,0xOO,OxC1,0x81,0x40,0xOO,OxC1,0x81,0x40,0x01, OxCO, Ox80, Ox41,
OxOO,OxC1,0x81,0x40,0x01,0xCO,Ox80,0x41,0x01,0xCO,Ox80,0x41, OxOO, OxCl, Ox81,
Ox40
};
static char auchCRCLo[] = {
OxOO,OxCO,OxCl,OxOl,OxC3,0x03,0x02,0xC2,0xC6,0x06,0x07,0xC7, Ox05,0xC5,0xC4,
Ox04, OxCC, OxOC, OxOD, OxCD, OxOF, OxCF, OxCE, OxOE, OxOA, OxCA, OxCB, OxOB, OxC9,
Ox09,
Ox08, OxC8, OxD8, Ox18, Ox19, OxD9, OxlB, OxDB, OxDA, OxlA, OxlE, OxDE, OxDF, OxlF,
OxDD,
OxlD, OxlC, OxDC, Ox14, OxD4, OxD5, Ox15, OxD7, Oxl 7, Ox16, OxD6, OxD2, Ox12, Ox13,
OxD3,
Oxll,OxDl,OxDO,OxlO,OxFO,Ox30,0x31,0xF1,0x33,0xF3,0xF2,0x32, Ox36,0xF6,0xF7,
Ox37, OxF5, Ox35, Ox34, OxF4, Ox3C, OxFC, OxFD, Ox3D, OxFF, Ox3F, Ox3E, OxFE, OxFA, Ox3A,
Ox3B, OxFB, Ox39, OxF9, OxF8, Ox38, Ox28, OxE8, OxE9, Ox29, OxEB, Ox2B, Ox2A, OxEA, OxEE,
Ox2E, Ox2F, OxEF, Ox2D, OxED, OxEC, Ox2C, OxE4, Ox24, Ox25, OxE5, Ox27, OxE7, OxE6, Ox26,
Ox22,0xE2,0xE3,0x23,0xE1,0x21,0x20,0xEO,OxAO,Ox60,0x61,0xA1, Ox63,0xA3,0xA2,
Ox62, Ox66, OxA6, OxA7, Ox67, OxA5, Ox65, Ox64, OxA4, Ox6C, OxAC, OxAD, Ox6D, OxAF,
Ox6F,
Ox6E, OxAE, OxAA, Ox6A, Ox6B, OxAB, Ox69, OxA9, OxA8, Ox68, Ox78, OxB8, OxB9, Ox79,
OxBB,
Ox7B, Ox7A, OxBA, OxBE, Ox7E, Ox7F, OxBF, Ox7D, OxBD, OxBC, Ox7C, OxB4, Ox74, Ox75,
OxB5,
Ox77,0xB7,0xB6,0x76,0x72,0xB2,0xB3,0x73,0xB1,0x71,0x70,0xBO, Ox50,0x90,0x91,
Ox51,0x93,0x53,0x52,0x92,0x96,0x56,0x57,0x97,0x55,0x95,0x94, Ox54,0x9C,Ox5C,
Ox5D,Ox9D,Ox5F,Ox9F,Ox9E,Ox5E,Ox5A,Ox9A,Ox9B,Ox5B,Ox99,0x59,0x58,0x98,0x88,
Ox48, Ox49, Ox89, Ox4B, Ox8B, Ox8A, Ox4A, Ox4E, Ox8E, Ox8F, Ox4F, Ox8D, Ox4D, Ox4C, Ox8C,
Ox44,0x84,0x85,0x45,0x87,0x47,0x46,0x86,0x82,0x42,0x43,0x83, Ox41, Ox81, Ox80,
Ox40
};
unsigned short CRC 16 ( puchMsg, usDataLen ) /* The function retums the CRC as a unsigned short type * /

unsigned char *puchMsg ; /* message to calculate CRC upon * /

unsigned short usDataLen ; /* quantity of bytes in message * /

unsigned char uchCRCHi = OxFF ; /* high byte of CRC initialized * /

unsigned char uchCRCLo = OxFF; /* low byte of CRC initialized */

unsigned ulndex ; /* will index into CRC lookup table * /

while (usDataLen--) /* pass through message buffer*/

ulndex = uchCRCLo ¡\ *puchMsg++ ; /* calculate the CRC * /

uchCRCLo = uchCRCHi ¡\ auchCRCHi[ ulndex] ;

uchCRCHi = auchCRCLo[ ulndex] ;

retum (uchCRCHi << 81 uchCRCLo);

Reference: ((MODBUS over Serial Line Specification and Implementation Guide Vl.02))

3.0 Command eg. (when Slave Addr is 1)

Read Pack Volt 27 04 OF FF 00 01 05 E8

Read Product Information 27 11 00 00 00 00 FA CF

You might also like