IR14488 Software Manual BMS Master 4 45
IR14488 Software Manual BMS Master 4 45
Software Manual
BMS Master 4 / 4.5
Document Reference
Without
Confid. I+ME
Confid. Client
Document Histor y
Client Approval
Sign .........................................................................................
Content
1. General ................................................................................................................ 5
1.1 Abbreviations ..................................................................................................... 5
1.2 Disconnecting the master from power supply ......................................................... 5
2. Software .............................................................................................................. 6
2.1 State Diagram.................................................................................................... 6
2.1.1. Description of the State Diagram ................................................................. 6
2.1.2. Flow diagram “Drive Mode” ......................................................................... 9
2.1.3. Flow diagram „Plug-In Mode“ ..................................................................... 10
2.1.4. Example with CAN Wake Up, WatchDog and Insulation Monitor ...................... 11
2.1.5. Standard Sequence: amongst BMS Host.................................................. 12
2.1.6. Wake Up by RTC (Real Time Clock) ............................................................ 12
2.2 System: Start, Main-Task, Stop.......................................................................... 14
2.3 States: Charge, Discharge, NoCurrent ................................................................ 15
2.3.1. Contactors (KV) Switch on/Precharge ......................................................... 15
2.3.2. Simulate KV-Sense Lines........................................................................... 18
2.3.3. Charging ................................................................................................. 19
2.3.3.1 PlugIn mode ......................................................................................... 19
2.3.3.2 Charger Selection .................................................................................. 19
2.3.3.3 Charging Curve Selection ....................................................................... 20
2.3.3.4 Three-Level-Curve ................................................................................. 20
2.3.3.5 Seven-Point-Curve ................................................................................ 21
2.3.3.6 Maximum Charge Current ....................................................................... 23
2.3.3.6.1 Charge Prediction ............................................................................. 23
2.3.3.6.2 Maximum Current of the Charger ....................................................... 23
2.3.3.6.3 Advice ............................................................................................. 25
2.3.3.7 Charge Curve Examples ......................................................................... 26
2.4 Measurement-Systems ...................................................................................... 29
2.4.1. Current Measuring .................................................................................... 29
2.4.2. Insulation Monitor .................................................................................... 33
2.4.3. Measurement of Cell-Voltages.................................................................... 35
2.4.3.1 Undervoltage ........................................................................................ 36
2.4.3.2 Overvoltage .......................................................................................... 36
2.4.3.3 Extended Battery Access (EBA) ............................................................... 36
2.4.4. Measurement of Temperatures .................................................................. 39
2.4.5. Measurement of the Safety Resistors ......................................................... 41
2.4.6. Security Switch ........................................................................................ 41
2.5 Errors and Warnings ......................................................................................... 42
2.5.1. Error counting ......................................................................................... 43
2.5.2. Error mode .............................................................................................. 44
2.5.3. Delayed Shut-Down-Time ......................................................................... 45
2.5.4. Switch off (contactors switch off): .............................................................. 46
2.5.4.1 Switch off in Filter-Mode ......................................................................... 46
2.5.4.2 Switch off in Abort-Mode ........................................................................ 46
2.5.5. Sub-Mode „Switch-Off-Omitted“ ................................................................. 48
2.6 FAIL Signal ...................................................................................................... 49
2.7 Algorithms ....................................................................................................... 50
2.7.1. Calculation of the State of Charge (SoC) ..................................................... 50
2.7.2. Calculation of the State of Health (SOH) ..................................................... 54
2.7.3. Event – Memory ...................................................................................... 54
2.7.4. Calculation of The Prognosis ...................................................................... 56
2.7.5. Counters for Ah and kWh statistic .............................................................. 57
2.7.6. Balance System ....................................................................................... 58
2.7.7. Temperatur Control System ....................................................................... 60
3. Setup a Slave Module System ............................................................................... 62
3.1 Linear Model .................................................................................................... 64
Ref.: IR11262 G 19.01.2015 Fehler! Verweisquelle konnte nicht gefunden werden. Page 3/92
Software Manual
BMS Master 4 / 4.5.5
1. GENERAL
1.1 ABBREVIATIONS
Min Minimum
Max Maximum
Avg Average
Warn Warning
Err Error
SD-Error Shut down Error, which leads to turning off the battery
Ucell Cell voltage
HW Hardware
SW Software
Warning:
Before disconnecting the Master from power supply it is to be brought in “power
down” mode by disconnecting KL15 or transmitting a “ShutDown” CAN frame.
Otherwise the statistical date on the EEPROM may be inapplicable.
Ref.: IR11262 G 19.01.2015 Fehler! Verweisquelle konnte nicht gefunden werden. Page 5/92
Software Manual
BMS Master 4 / 4.5.5
2. SOFTWARE
BMS off
Wake up
Checking
OK
Error
no Actual Error
Ready Error
Error
no SD-Error &
„PlugIn“ Error
Plug In
no „Drive“ &
no „PlugIn“
no „Drive“ or
no „PlugIn“
no „PlugIn“
no SD-Error
& „Drive“
„PlugIn“ End
Error
no „Drive“
State „BMS-OFF“
HV contactors switched off
BMS sleeps
Wake up via “Drive” or “ PlugIn” changes the state to „Checking“.
(Wake up via CAN-WakeUp-Frame is similar to “Drive”)
State „Checking“
General state-check
If no error results the state changes to „Ready“
else the state changes to „Error“.
State „Ready“
Contactors are switched off
There is no „Actual-Error“.
An existing SD-error may be cleared with the CAN-frame "Reset Error”.
State „Drive“
Contactors HV+ und HV- are switched on.
If a Shutdown Error occurs - change to state „Error“. Contactors will open.
If „Drive“ (KL15S) not active anymore it will be changed to state „End“.
If „PlugIn“ (KL15) is switched on change to state „Plug-In“.
Sub-Mode „Switch-Off-omitted“:
In this Sub-Mode there is no change to Error-Mode on detection of a shut-down-
error but the contactors will not switch off. The switch off is delayed as long as
as the CAN command „Switch-Off-omitted“ is sent periodically to the BMS. If an
SD-error has occured switch-off will be performed after leaving this Sub-Mode.
State „PlugIn“
Contactors are switched off. Different from the load the battery charger is connected via
its own contactor to the battery.
Status „Error“
Contactors are switched off.
If “Drive” or „Plug-IN“ is not active anymore it will be changed to state „End“.
If no actual error is present it will be changed state to „Ready“.
Status „BMS-OFF“
Contactors are off, the BMS switches off.
Drive Mode
Parameters:
dumm Check type charger type?
Brusa
Parameters:
no CCtrl ext.
CAN-Charger? = 1
yes
detection
no CAN frames
from Charger
yes
yes
Yes
Switch on:
Sub-Mode: “Switch-Off-omitted“
Drive Mode: Relays HV+ and HV- are switched on. Error no
Sub-Mode „Charge“: In this Sub-Mode a
communication with the charger is implemented. The
charger should be connected as a load: (relay contact
between battery and charger) „Drive“active?
yes
Sub-Mode „SwitchOff_omitted“: In this sub-Mode, the
relays will not be switched off by errors. Errors will be
ignored until this mode has been left. no
Plug-In Mode
brusa
Yes
Sub-Mode: Sub-Mode:
Brusa Charger Simple Charger
Switch off: CAN:“Switch-Off- Plug_In Mode: Relays HV+ and HV- are
Sub-Mode: “Switch-Off-omitted“ omitted“ switched off.
Simple charger
no Error Plug_In Mode: Relays HV- and PlugIn+ are
switched on.
The communication is done via digital
yes
output.
yes PlugIn
If instead of “Drive” the CAN “WakeUp” -Frame is used for start up the system shows the
same behaviour. Furthermore in this example the CAN-WatchDog is parameterized
(0x013F) and the external insulation monitor reports an error for some seconds after
being switched on. The diagram shows the normal course of action without further errors.
BMS Off
Mode: Checking
CAN-Watchdog
& Isowächter Error
Mode: Error
Mode: Drive CAN Watchdog: „WakeUpFrame“ Len:1; Data: 0x04 (periodically > 1 Hz)
Switch-OFF
2. Go to state „CHECKING“.
3. Go to state „ERROR“.
4. Go to state „READY“.
5. Go to state „DRIVE“.
a. without Sub-mode
„Switch-Off-omitted”
The vehicle transmits periodically Watchdog & „Switch-Off-omitted“
CAN: „Wake-up-Frame“ length=1, 0x05
7. Go to state „End“
Status RTC
Contactors are switched off.
The BMS does one cycle. This cycle is reduced, that is no current measuring, no contactor
The system is permanently connected to the power supply. For the master this is done by
KL30, for the slaves directly by the battery cells.
The system is powered on or off by a voltage signal at ”Drive“. The voltage level must
be higher than: KL15 [V] >= ( „KL15_on_prz“ * „Min_KL30“) / 100.0 to start the
system and keep it running.
The system is powered on by a rising edge voltage signal at „Plug-In“ and powered off if
the voltage has been switched off. The voltage level must be higher than: KL15 [V]
>= ( „KL15_on_prz“ * „Min_KL30“) / 100.0 to start the system and keep it running.
The system starts on reception of a CAN frame of type ‘WAKEUP’ and stops with CAN
frame ‘SHUTDOWN’.
4.) Mode RTC: Start / one main-loop / Stop
This internal function is permanently active and is used to perform the balance system
every “RTC-Wakeup-Short“ or every “RTC-Wakeup-Long“ minutes. The longer time
value is used if there is no further need to balance the cell voltages.
After having carried out the reduced measurement cycle (only voltages, no current, no
battery check and no operation of contactors ...) the system does the SoC and DoD
calculations and enters automatically the power down mode.
The time interval for the measurement cycle is given by parameter „Cycle-Time-TU“.
Parameters:
0x0124 Cycle-Time_TU 1000 ms
0x0103 Min-Kl30 10000 mV
0x0104 KL15-on-prz 25 %
0x0101 RTC-Wakeup-Short 10 minutes
0x0102 RTC-Wakeup-Long 240 minutes
A current value with positive sign is interpreted as charge-current, a current with negative sign
as discharge-current. If the current is within an interval of +/- parameter value “IBat-Ignore”,
the state is assumed to be ‘NoCurrent’. In this state, the Ah/kWh counters are not updated and
the battery-check-algorithm is simplified.
The state ‘NoCurrent’ is needed to inhibit spurious updates of statistic data’s caused by the
internal accuracy of the current measurement system.
- Discharge
NoCurrent Charge +
I Bat
Parameter:
1.) Switch on fans (only if cabin temperature < Batt-temperature, s. therm. Management)
2.) Turn off all contactors for safety reasons (even though presumably dispensable) -> test sense
lines
3.) Close contact of HV- -- after 200ms test sense line -- if ok: -> go on
4.) Close contact HV-PRECharge -- after 200ms test sense line -- if ok: -> go on
5.) Wait another 1000ms
6.) If there is parameterized a CAN-ID "0x0321= CAN-PreChgVolt." (not equal 0x000):
6.1) if there is an actual CAN data for „PreChargeVoltage”:
Switch-on
HV+ = High Voltage Relay +
HV- = High Voltage Relay -
HV+; HV-; HV Precharge open HV Precharge = High Voltage Relay precharge
Wait 200ms
optional
Test Relais HV- no
Sense OK?
Precharge
(optional)
optional optional
Test Relais HV precharge Test Relais HV+
Sense OK? Sense OK?
Nok
Wait 1000ms HV precharge Switch off
optional optional
CAN-Precharge voltage Test all Relays
>90% Vbat? Sense OK?
optional
If |current| < x Amp?
X = AddOn PChg
EndCurr
Switch Off all
Relays and set End Switch-on
Error-Flag
In case of any fault all contactors will be opened and BIT 13 of the ERR - word will be set.
The Host, loader or the inverter of the load may send the CAN frame "CAN-PreChgVolt."
see below “CAN Frames”). It serves to avoid Switching-on if there is a fault during
Precharge.
Responsibility of “CAN Precharge Information” (if activated).
If for the parameter „0x0321= CAN-PreChgVolt“ a CAN-ID has been parameterised there
must be at the end of the precharge time a reception of such frame by the BMS with the
value of the voltage Ubatt measured by e.g. the host. If that will be not the case the
switching-on will be aborted.
Conclusion: If there is a parameter “0x0321” different from zero, there must be an
external device sending the actual voltage via the designated CAN-ID to make it possible
to switch-on.
2.3.3. CHARGING
Charging will be started with “PlugIn”. If at this time “Drive” has still been active by
accident the contactors will be opened and subsequently it will be changed to charge
mode. Charging has always priority over driving. With “PlugOut” charging ends/is aborted.
Even if „Drive“ is still on at this moment, the battery will not be started! In this case
„Drive“ has to be switched off first.
With parameter „Typ-Charger“ the charger type and the communication with the charger
will be selected.
0x017E Typ-Charger 0, 1, 2 …
0: An external CAN-controlled charger will be used. The BMS will send only in
plug-in-mode the necessary CAN-frame „CAN-Id Tx CHARGER CTL“. To switch
on the main contactors the CAN-frames „CAN-Id Rx CHARGER ST“, „CAN-Id Rx
CHARGER ACT_I“, „CAN-Id Rx CHARG. ACT_II“, „CAN-Id Rx CHARGER TEMP“
und „CAN-Id Rx CHARGER ERR“ are expected under certain conditions..
1: A standard mains supply circuit without CAN will be used as a charger.
Therefore the BMS cannot control charging and no charging algorithm is used. It
will be difficult to charge the battery completely.
2: No CAN-frame will be sent to the charger. Charger control will be managed
using PWM-output „PWM0“ with PWM-frequency of 2kHz. Ton/T = 10%
corresponds to 0A, Ton/T = 90% corresponds to maximum charge current.
3: Every 100 ms the BMS sends CAN-Frame „CAN-Id Tx CHARGER CTL“,
independent from plug-in-mode or drive-mode befindet. The charge current
nominal value has a resolution of 0.1 A.
4: Every 100 ms the BMS sends CAN-Frame „CAN-Id Tx CHARGER CTL“,
independent from plug-in-mode or drive-mode befindet. The charge current
nominal value has a resolution of 0.01 A.
2.3.3.4 THREE-LEVEL-CURVE
With following parameters voltage ranges are defined for the three-level-curve. Within
these ranges the defined nominal charge currents are emitted to the charger unit.
Example Unit
0x01F0 Charge Mode 1 3-level
0x0170 CCtrl IMainMaxCurrent 12000 mA
0x0174 CCtrl UChg low inhibit 1500 mV
0x0171 CCtrl IChg Umin < UMidB 3000 mA
0x0175 CCtrl UChg Mid_Begin 2200 mV
0x0172 CCtrl IChg Midrange 20000 mA
0x0176 CCtrl UChg Mid_End 4000 mV
0x0173 CCtrl IChg Umax > UMidE 2000 mA
0x0177 CCtrl UChg high suspend 4200 mV
0x0178 CCtrl UChg high resume 4100 mV
If the lowest cell voltage Umin is below „CCtrl UChg low inhibit“, then the nominal charge
current is definitely zero.
If Umin is in the range between „CCtrl UChg low inhibit“ and „CCtrl UChg Mid_Begin“ then
the nominal charge current „CCtrl IChg Umin < UMidB“ will be emitted.
If Umax is above „CCtrl UChg high resume“, then the nominal charge current is definitely
zero.
If Umax is in the range „CCtrl IChg Umax > UMidE“ and „CCtrl UChg high suspend“, then
the nominal charge current „CCtrl IChg Umax > UMidE“ will be emitted.
If one cell voltage is higher than „CCtrl UChg high suspend“, the nominal charge current
will be zero, until Umax is below „CCtrl UChg high resume“.
Hereafter charging will be resumed with „CCtrl IChg Umax > UMidE“ (Hysteresis).
2.3.3.5 SEVEN-POINT-CURVE
Parameters 0x01F1 to 0x1FE define the seven curve points. See picture next page.
I
P3[U3, Imax] P4[U4, Imax]
Imax
prog_I
P2[U2, I2]
IV
P5[U5, I5]
CAN-Error-
RESET III
V
II
VI P6[U6, I6]
P7[U7,I7]
P1[U1, I1]
IX
VII
Umin corresponds to the cell voltage with the lowest value. U max corresponds to the cell
voltage with the highest value.
Data flow and priorities are depicted in Picture 7: Calculation Logics for Charge Current.
First the lowest cell voltage Umin is evaluated. If Umin is below U3, the charge current will
be calculated depending on the voltage value in the regions II or III. When U min is lower
than U1, the emitted charge current will be zero. If U min is lower than “UErr-U-Min-Cel”l
(Parameter 0x0105) the Master must receive the CAN frame “Reset Error” 1; if not so the
emitted nominal charge current will be zero.
If all cell voltages are in the range between U3 and U4, the maximum charge current will
be emitted.
If Umin > U3 then Umax will be evaluated. When Umax > U4 the charge current will be
calculated depending on the voltage value in the regions V to VII. When U max > U7 then
1
„Reset Error“: DATA-Frame“ SubId=0x06 Länge =3, 0x06, 0x55, 0xAA)
the emitted charge current will be zero and the charger will be shut down if possible.
If I7 is parametrized greater zero this state is kept until U max < U8 (Hysteresis).
The parameter value of U8 has to be unconditionally smaller than the U7 value.
With I7 = 0, the hysteresis is inactive, U8 will not be considered and the charger will not
be shut down.
Before the calculated nominal current will be emitted, it will be evaluated to be below the
calculated charge prediction.
The calculated charge current will be limited by the charger’s max current.
The emitted nominal charge current will be either the value of the charge prediction or the
the charger’s max current whatever is lower.
I
P3[U3, Imax] P4[U4, Imax]
Imax
P5[U5, I5]
I5
prog_I
PlugIn Imax
I
P3[U3, Imax] P4[U4, Imax]
Imax
prog_I
PlugIn Imax
P5[U5, I5]
I5
P1[U1, I1]
I2 P2[U2, I2]
P6[P6U, P6I] P7[U7,I7]
I6
I1 U1
I7 U2 U3 U4 U5 U6 U7 U
Picture 6: Current limited 7-point curve
2.3.3.6.3 ADVICE
Please consider that the calculation of the nominal charge current will be done in
Milliamps, but the emitted value to the charger will be in 100 mA steps.
Example: 45 mA will be emitted as 0,0 A and 52 mA will be emitted as 0,1 A.
The ULimit value for the charger is calculated once at system start depending on
Cell Count * UcellMax / parall. String Count = ULimit
Example: 80 * 4,2 V / 1 = 336 Volt
START
j j
Umin < U1 Umax < U1
I1 = 0 I2 = 0
n n
j j
Umin < U2 Umax < U2
I1 = f(UB) I2 = f(UB)
n n
j j
Umin < U3 Umax < U3
I1 = f(UC) I2 = f(UC)
n n
j j
Umin < U4 Umax < U4
I1 = Imax I2 = Imax
n n
j j
Umin < U5 Umax < U5
I1 = f(UE) I2 = f(UE)
n n
j j
Umin < U6 Umax < U6
n n
I1 = f(UF) I2 = f(UF)
n n
j j
Umin < U7 Umax < U7
I1 = f(UG) I2 = f(UG)
n n
I1 = 0 I2 = 0
n
I1 < I2
I = I1 I = I2
j
I < Iprog
ENDE
I
P3[U3, Imax] P4[U4, Imax]
30A Imax
prog_I
P5[U5, I5]
5A I5
P2[U2, I2]
2A I2
P1[U1, I1] P6[P6U, P6I] P7[U7,I7]
0,06A I6
0A
0A
I1
I7
U1
U2 U U3 U4 U5 U6 U7 U
3,40V
3,45V
1,0V
2,0V
2,2V
3,6V
3,7V
Picture 8: Charge Curve Example 1
I
P3[U3, Imax] P4[U4, Imax]
30A Imax
prog_I
P5[U5, I5]
5A I5
3,45V
0,5V
2,0V
2,2V
3,6V
3,7V
Picture 9: Example 2 – Charge Curve Adaption
2.4 MEASUREMENT-SYSTEMS
Application:
A simple metering range expansion: the current is conducted only partly through the
sensor. The current factor makes sure that internal can be calculated with correct values.
This factor has to be established in a unique calibrating measurement.
CAN:
Parameters:
0x011A IPeak-Max-Charge 0 mA
0x011B IPeak-Max-Discharge 0 mA
0x011C IPeak-40ms_N 700 n [ = 28 sec ]
1.) Immediate-Current-Peak-Switch-Off:
If ICP -Switch-Off for Charge and/or Decharge is in function the periodically all 10 ms
sensed current is compared to the parameterised value and exceeding it will be
immediately switched off by opening the contactor contacts immediately and an error
frame will be sent out via CAN.
This is he fastest way to react in a event, e.g. on a short circuit.
2.) Current-Peak-Switch-Off:
This procedure can only be switched on or off for both, charging and discharging.
The contactor will be switched off if the limits of “IPeak-Max-Charge/Discharge“ will be
exceeded permanently for the time: parameter „IPeak-40ms_N“ multiplied with 40ms.
This is default and cannot be switched off. The value of current during a cycle of
1000ms (which is the average of the last 100 current values: 1000ms/140ms) is
compared with the error and warning limits „Err-I-Max-Dis/Charge“ and „Warn-I-Max-
Dis/Charge“. Switch-off will be performed as described below.
IPeak-Max-Charge_Im
Err-I-Max-Charge
IPeak-Max-Charge
IPeak-40ms_N: 9
( = 360 ms)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 4
t
1 Zyklus = 100 * 10ms 1 Zyklus
ATTENTION: a over current switch-off may damage the contactor as well as the
battery. The contacts only can perform a limited number of high current switch-offs
which will be added in the record “KiloVAC-Overcurrent-Shutdowns”. This will be
compared with the parameters „Err KiloVAC OverCur-SD“ and „Warn KiloVAC OverCur-SD“.
If the maximum number of switch-offs is reached the contact will never be switched on and
has to be replaced with e new one.
On the risk of the user the counter may be reset, e.g. if the contactor is beeing changed
ahead of time. (see: CAN DIAG FRAME Sub-Id: 0x17 )
This contactor protect system can be disabled by setting the parameters “Err/Warn-KiloVAC
Overcurrent Shutdowns” to zero. This may be useful in BMS systems with a switching
hardware different to this contactor.
- Discharge
NoCurrent Charge +
I Bat
0
Warn-I-Max-Discharge Warn-I-Max-Charge
Err-I-Max-Discharge Err-I-Max-Charge
If the voltage of the BMS application exceeds the Safety Extra Low Voltage (SELV) of 60
VDC the usage of an insulation monitor is highly recommended, which measures the
insulation resistance from battery terminals to ground (GND).
Although the delay of the below-described insulation monitor is relatively high,
(sometimes more than 10 seconds) safety is clearly increased.
After power-on the insulation monitor it takes a certain time until the signals Iso-Alarm1
and Iso-Alarm2 are valid. The time delay differs with the type of insulation monitor and
some of them can be parameterized to keep the signal per default “on” or “off” while
starting. Other devices report an insulation fault in this phase.
The type mapping of the insulation monitor has been made in parameter 0x0346.
With insulation monitor PCB IR155-3200 ... 3204 by company Bender the measured
insulation resistance is transmitted as a pulse width modulated signal (PWM) to the BMS
Master. The first 2 seconds after power-on the insulation monitor IR155-3204 delivers
invalid values. From 2 to 7.5 seconds after power-on, it sends PWM coded whether there
is an insulation fault or not, but no correct values of the insulation resistance are
available.
In parallel, this condition corresponds to the binary output channel "OK HS" of the
insulation monitor. At this time the insulation resistor value is invalid.
7.5 seconds after power-on it begins to send additionely to the binary signal line values of
the measured insulation resistance on the PWM output line to be evaluated by the BMS
Master.
At a measured insulation resistor value < (parameter 0x014D), the BMS Master sends an
ErrWrn CAN frame with the warning code 0x0800.
At a measured insulation resistor value < (parameter 0x014E), the BMS Master generates
an Insulation-Error and an ErrWrn CAN frame with the error code 0x0800.
If the isolation error longer than (parameter 0x020E) present, the BMS Master generates a
Shutdown Error. The HV contacts will be opened.
The parameter 0x020F define the signals to use in the BMS Master.
If the insulation monitor is powered via the ignition signal "Drive" or "PlugIn" which also
starts the BMS, the long start-up period prevents the starting of the BMS modes "Drive"
or "PlugIn". Once the insulation monitor has settled, it can be started with the CAN frame
"Reset Cmd Err". Alternatively, the insulation monitor may be supplied from another
source. The program can ignore a start-up insulation fault with parameter 0x0181.
The specification [0…126] seconds defines time whilst the reported insulation faults will be
ignored. The time starts either with system start (=ColdStart, symbol CS) or – when bit 8
is set in the parameter – with RESET (=FirstRun Symbol FS: ColdStart / CanResetErrCmd
/ Keyboard ‚R’ ) .
B7 B6 B5B4 B3 B2 B1 B0
X N = 0 … 126s time in seconds
X N = 0x7F =1111111binär = 12710 Signal always ignored
0 X X X X X X X Cold start
1 X X X X X X X FirstRun (CS, Reset CAN, R)
The cell voltages are requested and evaluated in the main-loop of the main-task. Slave
one is responsible for cell 1 to 12, slave two for cell 13 ... 24. Additional configurations like
variable number of cells per slave or overlapped cell connections is available on demand
(see Hardware Manual). Depending on the actual current flow, the compare algorithm
takes care about the voltage drop across the internal resistor Ri.
Calculated values:
CAN:
Parameters:
2.4.3.1 UNDERVOLTAGE
If any cell voltage is lower than the value in parameter „End-U-Min-Cell“ or „Err-U-Min-
Cell“, ERROR „UCell Undervoltage“ will be generated.
The value of „End-U-Min-Cell“ has to be smaller than „Err-U-Min-Cell“.
2.4.3.2 OVERVOLTAGE
If any cell voltage is higher than the value in parameter „End-U-Max-Cell“ or „Err-U-Max-
Cell“, ERROR „UCell Overvoltage“ will be generated.
The value of „End-U-Max-Cell“has to be greater than „Err-U-Max-Cell“.
When the minimum cell volatage is lower than „Err-U-Min-Cell“ resp. the maximum cell
volatge is higher than „Err-U-Max-Cell“ the MASTER 04 generates an „UCell Undervoltage“
rsp. „UCell Overvoltage“ – Error.
The inner cell resistance is not considered, but only the measured cell voltage.
This should, under dependency on other parameters, lead to cut off of the main contactors
(SD-ERR).
To have the possibility, despite this state, to charge or discharge and thus to reactivate
the battery, with an Error Reset (via CAN ot by pressing ‘r’ on the RS232-terminal) the
EBA-mode may be activated.
In EBA-mode the main contactors will be switched on in spite of over- or undervoltage
condition. If no charge or discharge current will be detected within the time defined in
parameter „UCErr exp.timer“ (normally 10 sec.) a new „UCell Undervoltage–“ rsp. „UCell
Charge state:
The system not longer compares the Ucell-Max value and allows for a maximum time of
10 seconds (“Ucerr_expand_timer”) a maximum charge current of 100 mA (“Ucerr-I-
Charge_overflow”). If this time-limit or this current-limit has been exceeded, the battery
contactor will be switched off again and an error condition is generated once more.
Discharge state:
The system not longer compares the Ucell-Min value and allows for a maximum time of 10
seconds (“Ucerr_expand_timer”) a maximum discharge current of 2000 mA (“Ucerr-I-
discharge_underflow”). If this time-limit or this current-limit has been exceeded, the
battery contactor will be switched off again and an error condition is generated once more.
U Cell
Warn-U-Min-Cell Warn-U-Max-Cell
Err-U-Min-Cell Err-U-Max-Cell
- Discharge
NoCurrent Charge +
I Bat
There are two NTC’s per slave for the temperature measurement inside the battery-case.
The request for data and evaluation will be done in the main-loop of the main-task.
An additional temperature sensor is available on the masterboard, however, this
temperature is not used for the battery check algorithm and is for information only.
The BMS uses the Min, Max and Avg temperature - values in the safety and calculation
system. All temperature values with an invalid value (value out of range, sensor not
properly mounted or not present) are discarded in the Min, Max, Avg calculation so the
BMS can work anyway with at least one sensor.
This situation is marked in the Can error-/warning frame with the warn-bit “temperature
sensor fault” set.
Calculated values:
CAN:
Parameters:
A safety resistor has to be connected to each slave. Preferably this resistor consists of a
chain of PTC thermistors, one for each battery cell connected to the slave, a multifuse or
something similar. If the value of this resistor is not within the parameterised limits, this
will be interpreted as an error and the Fail-in input of the Master will be switched to GND.
( see also: IR12256 Hardware_Manual_BMS_Master_4 Chapter 3.2.4.8 to 3.2.4.10)
Calculated values:
CAN:
Parameters:
0x011F Err-Rsafe-Slave-Min 20 Ω
0x0120 Err-Rsafe-Slave-Max 200 Ω
In each cycle of the main program the BMS computes a number of actual values to
evaluate the condition of the battery. If one or more error limits have been exceeded the
errors will be announced and the error processing starts to switch off the contactors.
If a warning limit but not an error limit has been passed it will be indicated that something
has to be done to prevent the system from running into an unsafe state.
The BMS does not switch on a contactor if there is an error condition in the battery test
during the first test cycle. If the system is already running and an error occurs that causes
a shutdown and switches off the contactors the system may be switched on again with the
CAN frame “ResetError” if the faults have been cleared.
If there are actual or shutdown-errors or actual warnings the Master transmits periodically
each cycle (“Cycle-Time-TU”= 1000ms) the “Error/Warn” CAN frame.
(in the following named error) the BMS uses a multiple stage processing.
Warning
With its lower limits the purpose of the “warning” is just for information. The next step is
the
Error
which will generate depending on the parameters the
Shut-Down-Error (SD-error)
that will finally lead to the isolation of the battery from load or charger after a
parameterized delay.
Errorcounter
SD-Error
SD Errorcounter Limit U := 5
Err-U-Max-Cell
1 2 3 4 5 6 7 8 9 10 11 12
t
1 Zyklus (1000ms)
Parameter:
Two values are used for the parameter „Delayed Shutdown Mode”:
Shutdown Error (Filter mode) whereat the SD-Error will be deleted if the fault
disappears within the „Delayed Shutdown Time“.
Parameter:
Filtermode
SD-Error
SD Errorcounter Limit U := 5
Err-U-Max-Cell
1 2 3 4 5 6 7 8 9 10 11 12
t
1 Zyklus (1000ms)
Shutdown Error + Abort (Abort mode), whereat the SD-Error will persist
even if the reasonable fault disappears.
Parameter:
Abortmode
SD-Error
SD Errorcounter Limit U := 5
Err-U-Max-Cell
1 2 3 4 5 6 7 8 9 10 11 12
t
1 Zyklus (1000ms)
After occurrence of an SD-error that leads to the isolation of the battery – inevitably in
„abort mode“- , there has to be an opportunity to reduce the charging or discharging
current in a limited time. That is the purpose of the selected time defined in the parameter
„Delayed Shutdown Time”.
Parameters:
Delayed Shut-Down
Abschaltung
SD-Error
1 2 3 4 5 6 7 8 9 10 11 12
t
Delayed Shutdown Time := 3 1 Zyklus (1000ms)
Switch off is performed with a delay, to give the opportunity to reduce the power of the
load or switch off the load before the BMS opens the contactors.
This is useful to avoid over-voltages.
Parameter:
SD-Error
Delayed SD Time=3s
Relay
1 2 3 4 5 6 7 8 9 10 11 12
t
Delayed Shutdown Time := 3 1 Zyklus (1000ms)
After the first occurrence of a Shutdown-Errors it will be switched off after expiring of the
ShutDown-Delay-Time even if the error may no longer exist ("AbortMode" in opposite to
"FilterMode").
To prohibit the switch off the BMS must receive within this delay time a CAN-DATA-frame:
"Abort of an active SD-Delay time".
The CAN-frame has to have the length 3 with the following bytes:
ID: DATA (RX, default 0x100)
Byte 0: 0x07 (Sub-ID)
Byte 1: 0x55
Byte 2: 0xAA reset SDERR
Parameter:
SD-Error
Relay
1 2 3 4 5 6 7 8 9 10 11 12
t
1 Zyklus (1000ms)
SD-Error
Relay
1 2 3 4 5 6 7 8 9 10 11 12
t
Delayed Shutdown Time := 3 1 Zyklus (1000ms)
In this mode the contactors will not be switched off after the detection of an error. As long
as this sum-mode is active errors are ignored. To use this attribute the system has not
necessarily to be parameterised to „CAN WDog-Mode“.
CAN:
SwitchOff-omitted
Error Umax Cell
CAN-WakeUp-Frame 0x05
SD-Error
Relay
1 2 3 4 5 6 7 8 9 10 11 12
t
1 Zyklus (1000ms)
As long as “CAN WDOG RESET with Switch off omitted” is received once per cycle it is
guaranteed that the BMS will not switch off the contactors.
If a ShutDown error occurred within this blockade it will be caught up after leaving this
mode, e.g. when changing to CAN WakeUp 0x04. This is effective always for SD-Delay
mode “AbortMode” – in “FilterMode” the error has to be uninterruptedly recognised during
the whole parameterised delay time.
To end this mode it is just to quit the transmission of the CAN frame. The BMS will react
within 1000ms to 2000ms (1 to 2 cycles). If the host synchronises the RESET frames to
the BMS ADS frames a reaction time of smaller than 1000ms is possible.
When leaving this mode the switch-off-delay time will be taken into account:
- if the error exists longer than the delay time it will be switched off instantly.
- If the error occurred recently and the switch-off-delay time has not expired
the remaining delay will be taken into account.
Id Name Description
0x0141 Fail IN Mode Set Fail In Method: 0, 1, 2
0x0142 Fail IN delay Delay time between Error and Shutdown Error
time Unit: ms
Value: 0 - disable
The FAIL In Mode method can be set with the parameter 0x0141.
Method Name Description
0 Disable No function in software
Enable, Switch Error FAIL: Active
1
OFF immediately Shutdown Error FAIL: Active
Error FAIL: Active
Enable, Switch
2 Shutdown Error FAIL: after time delay (parameter
OFF after Timer
0x0142) Active, if Fail signal still yet present
2.7 ALGORITHMS
Soc
Metho Name Description
d
Soc Ucell
0 Calculation Soc on base medium cell voltage
average
Calculation Soc on base interpolation of cell voltage min
1 Soc Interpolation
and cell voltage max
2 Soc Ucell Min Calculation Soc on base lowest cell voltage
Soc Ucell
3 As method 0
average
4 Soc Ucell Max Calculation Soc on base highest cell voltage
Step 1:
Calculation Soc on base lowest cell voltage if Ucell Min <
U_Soc(25%)
Step 2:
Soc Ucell
5 Calculation Soc on base medium cell voltage if
Min/Max 3 Steps
U_Soc(25%) < Ucell Avg < U_Soc(75%)
Step 3:
Calculation Soc on base highest cell voltage if Ucell Max >
U_Soc(75%)
As method 5
Calculation the soc based on Ucell Min if soc < 25% until
Soc Ucell
soc > 35%
6 Min/Max 3 Steps
Hysterese
Calculation the soc based on Ucell Min if soc > 75% until
soc > 65%
Table 1:
In the following table describe the parameter for the State of charge (Soc) and Deep of
Discharge (DoD).
Id Name Description
0x0180 Soc Method Selection Soc Method
0x0200 Cell Voltage for Soc 0% Cell voltage for Soc 0%
Unit: mV
0x0201 Cell Voltage for Soc 10% Cell voltage for Soc 10%
Unit: mV
0x0202 Cell Voltage for Soc 20% Cell voltage for Soc 20%
Unit: mV
0x0203 Cell Voltage for Soc 30% Cell voltage for Soc 30%
Unit: mV
0x0204 Cell Voltage for Soc 40% Cell voltage for Soc 40%
Unit: mV
0x0205 Cell Voltage for Soc 50% Cell voltage for Soc 50%
Unit: mV
0x0206 Cell Voltage for Soc 60% Cell voltage for Soc 60%
Unit: mV
0x0207 Cell Voltage for Soc 70% Cell voltage for Soc 70%
Unit: mV
0x0208 Cell Voltage for Soc 80% Cell voltage for Soc 80%
Unit: mV
0x0209 Cell Voltage for Soc 90% Cell voltage for Soc 90%
Unit: mV
0x020A Cell Voltage for Soc 100% Cell voltage for Soc 100%
Unit: mV
0x0122 Warning Soc Underflow Soc < Warning Underflow, set Warning event
Unit: %, 0% - deactivate
0x0123 Warning Soc Overflow Soc > Warning Overflow, set Warning event
Unit: %, 100% - deactivate
0x020C Soc/Ucell Valid Min Value Valid above limit for Soc/Ucell max value
Unit: 0 – deactivate
value: 1 … 100, value is the Soc value in %
value > 1000, value is the cell voltage in mV
0x020D Soc/Ucell Valid Max Value Valid under limit for Soc/Ucell min value
value: 0 – deactivate
value: 1 … 100, value is the Soc value in %
value > 1000, value is the cell voltage in mV
0x020B Min Idle Current Idle Current, Minimal Current
Unit: mA
0x0125 Max Idle Current Idle Current, Maximal Current
Unit: mA
0x0126 Idle Time Current Ilde Time
Unit: s
0x0145 Factor Charge/Discharge Factor charge/discharge efficiency
efficiency Default: 1000, is equivalent factor 1
Example: 900 is equivalent 0,9 – 10% are lost
in charge mode
Table 2:
calculated depending on cell voltages and SoC-table. Afterwards the absolute DoD will be
determined with the new SoC and the battery capacity.
This condition is called “calibrating”
Open
mode. In some cell types (e.g. Cell type Circuit
Voltage
LFP) is the middle interval nearly
horizontal and hardly sloping which make
not valid
an accurate calibration impossible.
Using the parameters “Soc/Ucell Valid
Min Value (P0x020C)” and “Soc/Ucell
SoC_OCV SoC_OCV
Valid Max Value (P0x020D)” the “non valid valid
Yes
Yes
Yes
Yes
Figure 1
Calculated values:
CAN:
The calculation of the SOH is based on the counting of the charged Ampere Hours of the
cells and the parameter 0x0159 und 0x015A.
The descriptions of the parameter for State of Health (SOH) are shown in the next table.
Id Name Description
0x0159 Charged Ah per Charged Ampere Hours for the cells for a full cycle
Cycle Einheit: Ah
Value: 0 – disable
0x015A Cycles until SoH Number of Cycles of the cells until SOH 80%
80% Wert: 0 – disable
A log of the last cycle is being stored in the EEPROM of the Master.
Every time the BMS has been switched off normally via „Start“, „PlugIn“ or CAN a new
record will be generated and stored in the first of three shift registers, after a shutdown
the record is stored in the first of another two shift registers.
Type: Session has ended normally (RUN) or with shutdown error (ERR)
Start-Time: date & time of BMS start
Duration (RUN): time in seconds from start to stop (e.g. “Start” ON – “Start” OFF)
Duration (ERR): time in seconds from start to error
UBatt,SoC,Tavg,Udf: total voltage, State-of-Charge, average temperature and
maximum cell voltage difference at the beginning of the cycle
UBatt,SoC,Tavg,Udf , SdErr, Warn: total voltage, State-of-Charge, average
temperature and maximum cell voltage difference as well as SD-error and warning status
In particular if the battery is used as traction battery in vehicles, it is desirable for the
vehicle computer to be able to call information about the available powers and currents at
any time. The available power is the most decisive parameter for the energy management
of a vehicle. Thus, the battery management system performs such power prognoses in
real time on the basis of the acquired status data. The Figure below shows a simplified
representation of the used algorithm.
Realtime Currentprognosis
Ri (Internal Resistance)
Uc max Uc min
SoH
Cell Dates:
Maximum cell Minimum cell
State of Health voltage voltage
Actual Ri
Parameters:
For the complete lifetime period of the system the total sum of charged and discharged Ah
and kWh will be monitored with high resolution and stored in the statistical data area of
the EEPROM.
As an addition, this is also done for the total sum of time the system has been in the
different states (charge/discharge/No current). These counters may be reset by a special
CAN-Frame.
Calculated values:
CAN:
The balance system has to bring the actual cell voltage difference to a value given by the
parameter „Cell Voltage Difference Max“ (parameter 0x0127). This is done during the
automatic cell balance mode.
Preconditions:
The balance system is only active if the current higher as „Min Current for Balance“
(Parameter 0x0133) and lower as „Max Current for Balance“ (Parameter 0x0143) and the
minimum time „Stable Window Min Time“ (Parameter 0x0144) is reached. Is the current
not in the limits the cell balance is stopped.
No cell voltage must not lower as “Min Cell Voltage, Stop Balance“ (Parameter 0x02D3).
The voltage of the balanced cell must higher than „Cell Voltage Min“ (Parameter: 0x0128).
Cells with a voltage lower than „Cell Voltage Min“ are not balanced, so the goal cannot be
reached under all circumstances. To balance the cells a minimum of cell voltage/cell
capacity is necessary.
The first action of the system after start-up (by CAN/RTC/”Start”/”PlugIn”) is to reset the
balance system adjustment. After having finished the evaluation of the first measurement
cycle, the balance system sets a new adjustment if needed and the current is higher than
in parameter 0x0133 defined. This adjustment stays active for at least „DisLog_IdleCnt”
measurement cycles as long as the system does not change to the state ‘discharge’. After
this period a new adjustment is evaluated.In this mode the higher voltage cells will be
discharged until the goal is reached ( Ucell_min + DisLog_DeltaUc > all Ucells).
UcellMin + DisLog_DeltaUc
DisLog_MinUc
UcellMin
The balance system is active even when the master is inactive, because the individual cell
discharges are served by the slaves. Every 10 minutes („RTC_Wakup_short“) the master
is awoken by the RTC to check if the actual balance system adjustment is still correct or
must be modified. If there is no further need to equalise cells, the next RTC wakeup will
be in 240 minutes („RTC-Wakeup_long“).
A special case is the CAN-Msg. ‘Shutdown with Balance System disable’. If the master is
set to power down mode with this command, it is guaranteed that for the next 10 minutes
all slaves do not have active discharge flags. Use this command if the master must be
switched off from slaves or power supply (KL30) for a longer time!
The discharge current used by the balance system is about 60 mA for each cell. If there is
no communication with the master any more the slaves themselves end the balancing
after about 40 minutes.
0x0128 Cell Voltage Min Minimal cell voltage to balance a cell. A cell with the
voltage lower this parameter is not balanced
Unit: mV
0x0129 Balance time Interval Time interval in cycles until a calculation for a new
balance job (BMS is active)
Unit: cycles (typ 1 second)
0x02D3 Min Cell Voltage, Is a cell voltage lower than this parameter, no
Stop Balance balance is active
Min. Current for Minimum current to balance the cells
0x0133
Balance Unit: mA
Max. Current for Maximum current to balance the cells
0x0143
Balance Unit: mA
Stable Window Min Minimum time for the current in the current window
0x0144
Time Unit: cycle (typ 1 second)
Warning Cell Voltage Warning theshold for the difference between
0x0135
Difference minimum and maximum cell voltage
Wert: 0 - deactive
Unit: mV
Error Cell Voltage Error theshold for the difference between minimum
0x0136
Difference and maximum cell voltage
value: 0 - deactive
Unit: mV
Cell Difference Number of cycles for the cell voltage error
0x0137
Shutdown Error difference to set an Shutdown error
Counter value: 0 - deactive
The parameter 0x0135 … 0x0137 can be used to define warnings, errors and shutdown errors.
CAN:
The Master 4 comes with four digital outputs with hysteresis (OUT1 … OUT4) for cooling or
heating to be connected to fans or Peltier elements.
Anyway, client specific purposes will take priority over the use for temperature control.
This will also include the parameters of precharge cooling (0x0162 … 0x0165).
Parameter:
Function:
1.) If Start-Temp = Stop-Temp the cooling/heating function of the output is deactivated.
2.) If Start-Temp > Stop-Temp: Cooling starts when Tmax >= Start-Temp and stops
when Tmax <=Stopp-Temp.
3.) If Start-Temp < Stopp-Temp: Heating starts when Tmin <= Start-Temp and stops
when Tmin >= Stopp-Temp.
Segmented Model
YES (segmented Model)
P0x0340
Slave Type
Slave 6 NO
YES
Addressing of the
Init Slave B and Slave A Modul
Slaves
default address is 1. The addresses can be set on the website “Slave Configuration” with
button “Set Address Slave 6”. The Slave 6 A moduls are automatic addressed (depending
the position in the wiring).
Battery Type
The setting of the battery type is optional.
In the following table describe the parameter for the Slave setup.
Id Name Description
0x0345 Slave Type Select Slave Type:
1 – Slave A
2 – Slave C
3 – Slave 5
4 – Slave 5 LTO
6 – Slave 6
0x0341 Number of Number of parallel Strings, 1 – only one string
parallel Strings Default: 1
0x0342 String , Number Number of serial Module in one string
of serial Moduls Default: 1
0x0340 Use segmented 0 – linear model is used, all slaves have the same
BattModel number of cells
Parameter: 0x0301, 0x0302, 0x0303 is used for setup
the slave modul system
0x0347 Cells per Slave Number of Cells per Slave modul 17 … modul 24
17 … 24
0x0348 Cells per Slave Number of Cells per Slave modul 25 … modul 32
25 … 32
0x0360 Slave A moduls Number of connected Slave A moduls to 1. Slave B
per 1. Slave B modul, only used for Slave 6 system
default: 0 – unused
0x0361 Slave A moduls Number of connected Slave A moduls to 2…15 Slave B
… per 2…15 Slave modul, only used for Slave 6 system
0x036E B default: 0 – unused
0x036F Slave A moduls Number of connected Slave A moduls to 16 Slave B
per 16. Slave B modul, only used for Slave 6 system
default: 0 – unused
For the determination of the structure the following software conditions have to be observed
(depending on Slave Type):
- number of cells per slave : 5 up to 12 cells
- number of slaves per module : 1 up to 16 slaves
- number of modules per string : at least 1
- number of strings per battery : at least 1
- total number of slaves : 1 to maximum 32
- total number of cells : 5 to maximum 384
With the proper choice of parameters the „Segmented Model“ may emulate nearly every “Flat
Model”. It is recommended to parameterise always the „Segmented Model“.
Slave 9 Slave 18
+
+
7 Cells Modul 3 7 Cells Modul 6
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
Slave 8 Slave 17
+
+
Zelle 69 Zelle 138
Cell connector
Cell connector
8 Cells 8 Cells
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
Zelle 68 Zelle 137
Zelle 67 Zelle 62 Slave 7 Zelle 136 Zelle 131 Slave 16
+
+
Zelle 66 Zelle 61 Zelle 135 Zelle 130
Cell connector
Cell connector
8 Cells 8 Cells
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
Zelle 65 Zelle 60 Zelle 134 Zelle 129
Zelle 64 Zelle 59 Zelle 54 Zelle 133 Zelle 128 Zelle 123
Zelle 63 Zelle 58 Zelle 53 Zelle 132 Zelle 127 Zelle 122
Cell connector
Cell connector
Zelle 57 Zelle 52 Zelle 126 Zelle 121
Zelle 56 Zelle 51 Zelle 125 Zelle 120
- Zelle 55 Zelle 50
Zelle 49
- Zelle 124 Zelle 119
Zelle 118
Zelle 48 Zelle 117
- Zelle 47 - Zelle 116
- -
Slave 15
+
Slave 6
7 Cells Modul 2 7 Cells Modul 5
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
Slave 14
+
Zelle 46
Slave 5 Zelle 115
+
Cell connector
Cell connector
8 Cells 8 Cells
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
+
Zelle 43 Zelle 38
Slave 4 Zelle 112 Zelle 107
Cell connector
Cell connector
8 Cells 8 Cells
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
Zelle 42 Zelle 37 Zelle 111 Zelle 106
Zelle 41 Zelle 36 Zelle 31 Zelle 110 Zelle 105 Zelle 100
Zelle 40 Zelle 35 Zelle 30 Zelle 109 Zelle 104 Zelle 99
Cell connector
Cell connector
Zelle 34 Zelle 29 Zelle 103 Zelle 98
Zelle 33 Zelle 28 Zelle 102 Zelle 97
- Zelle 32 Zelle 27
Zelle 26
- Zelle 101 Zelle 96
Zelle 95
Zelle 25 Zelle 94
- Zelle 24 - Zelle 93
- -
Slave 3 Slave 12
+
1 2 3 4 5 6 7 8 9 10 11 12
Slave 2 Slave 11
+
Zelle 23 Zelle 92
Cell connector
Cell connector
8 Cells 8 Cells
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
Zelle 22 Zelle 91
Zelle 21 Zelle 16 Zelle 90 Zelle 85 Slave 10
Slave 1
+
Cell connector
8 Cells 8 Cells
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
Cell connector
- -
3.3.1. U-BATT
The BMS doesn’t take measurement of the whole battery voltage but always the voltage of
each single cell. Hence the voltages of slaves, modules, strings and battery are always
calculated values. Constitutive for the allocation are:
A proper adjustment of the slaves’ addresses is basically for the correct mapping of the
structure. It is imperative:
- Within a string - over all modules - from minus to plus the addresses have to be in
ascending order.
- Each parallel connected string starts at the negative pole with the increment (+1) of the
highest address of the preceding string.
U Battery is calculated with the sum of all cells divided by the number of parallel strings.
example values
0x0100 Capacity 216000000 mAs 60.00 Ah
0x0114 Err-I-Max-Charge 101000 mA 1.68 C
0x0115 Err-I-Max-Discharge 151000 mA 2.52 C
0x0116 Warn-I-Max-Charge 81000 mA 1.35 C
0x0117 Warn-I-Max-Discharge 121000 mA 2.02 C
0x0118 IPeak-Max-Charge_Im 200000 mA 3.33 C
0x0119 IPeak-Max-Discharge_Im 200000 mA 3.33 C
0x011A IPeak-Max-Charge 41000 mA 0.68 C
0x011B IPeak-Max-Discharg 61000 mA 1.02 C
0x0121 IBat-Ignore 9 mA
0x0125 I-Bat0 100 mA
0x0133 Dislog Activ if IBat > 0 mA
All details of the power prognosis as well as statistics only refer to I Battery.
4. CAN-TRANSFER
In all CAN-Frames the “Little Endian”-Format is used with the least significant byte (LSB)
placed in the lowest CAN-data-byte.
Example: CanFrameId: 0x101 Data bytes: 0:Sub-ID 1:0x44 2:0x33 3:0x22 4:0x11
Current = 0x11223344
4.2 PARAMETERS
Parameters:
The system password is required to change these parameters. The changes will take effect
after being written back to and restart of the Master. For this it may be necessary to
modify the remote CAN-station as well.
The values in the bit timing registers BTR0 and BTR1 define both the CAN baud rate as
well as the sample point. Both 8-bit values are put together in the 16-bit word in the PCM
parameter 0x030A : ( BTR0 << 8 ) + (BTR1)
The location of the five communication channels of the BMS may be changed one by one
with the Webserver (system password necessary):
There is alone the ID of the receiving channel parameterised. The answer will always be
transmitted by the BMS on receiving channel ID + 1.
Different applications:
1.) Example: all BMS CAN IDs shall be continuous without gap from 0x100 :
2.) Example: two BMSs shall work together at a single CAN bus:
BMS 1:
BMS 2:
3.) Example: four BMSs shall work together at a single CAN bus while keeping their CAN
priorities :
Remark:
The transmitting channel „CAN ID ErrWrn + 1“ is used by BMS for automatically
transmitted diagnosis information (ADS-MODE), for this purpose the desired DIAG-Sub-
Ids 0x1E0 .. 0x1E7 have to be set in the table.
All Diag frames that need parameters except the Sub-ID may be sent with ADS.
ADS transmits data during each cycle without needing a prior request.
sendet Daten je Zyklus, ohne dass vorher eine Anfrage erfolgen muss. There are two
activators fort both this services which may be used each alone or both together:
In the same order the responding DIAG frames will be transmitted in each cycle.
Excerpt of values to get via Sub-ID (see IR12329 BMS_CANMATRIX):
Sub-ID ADS requests and reports Sub-ID ADS requests and reports Sub-ID ADS Anfragen und Meldungen
0x04 UCells 10...12 0x12 DoD and SoC 0x34 Slave temperature, like DATA 0x04
0x05 Slave 1: Temp 0 and 1 and Rsafe 0x13 Total time in state charge 0x35 Master temperature, like DATA 0x05
0x06 Slave 2: Temp 0 and 1 and Rsafe 0x14 Total time in state discharge 0x36 Error/Warning, like DATA 0x06
0x08 Master Data set 1 0x15 Total time during nocurrent 0x37 Short Info 1, like DATA 0x07
0x09 Master Data set 2 0x16 System time dd:mm:jjjj hh.mm.ss 0x38 Power prognosis charge, like DATA 0x08
0x0A charge: counter high Ah 0x17 Total number of KiloVACOC-Shutdown Errors 0x39 Power prognosis discharge, like DATA 0x09
0x0B charge: counter low mAms 0x18 UCell avg/min/max of Battery 0x3A Short Info 2 , like DATA 0x0A
0x0C discharge: counter high Ah 0x19 Info about the Battery structure 0x3B request of miscellan. states, like DATA 0x3B
0x0D discharge: counter low mAms 0x20 Request for software version 0x40 request of current ADS-RT Table
0x0E charge: counter high kWh 0x21 Request for DataSpaceNo. and Gen-Appl.-ID 0x41 --- unused --
0x0F charge: counter low Wms 0x31 IBatt and SoC, like DATA 0x01 0x42 User-time in mode Charging
0x10 discharge: counter high kWh 0x32 UBatt and SoC, like DATA 0x02 0x43 User-time in mode Decharging
0x11 discharge: counter low Wms 0x33 Soc, like DATA 0x03 0x44 Insulation resistance
There are three different modes to define the CAN-IDs used by the BMS to send the
information of AutoDiagSend (ADS, ADS-RT).
If the BMS gets a request before the former has been answered, the answer of the former
request will be omitted i.e. the BMS only answers the last request (Diagnosis-request &
Data-request)
Here it shows the advantage of the ADS procedure, with which all parameterized data will
be sent automatically and synchronously to the measurement cycle which is not
guaranteed for cyclical requests.
After computing a measurement cycle the following frames will be transmitted by the BMS
without request:
- CAN ERR/WRN Frame, if appropriate: (on errors or warnings)
- DIAG-TX of ADS Tabel entrys, if parameterized
- DIAG-TX of ADS-Runtime Tabel entrys when set during.
The CAN-Frames are described with different lengths (len = {1,2,3,8}) in this
document.
For all frames sent to the BMS it is alternatively possible to use the length
(len = 8) and fill all unused bytes at will.
With the only exception of WakeUp-Acknowlege-Frames (len = 1) the BMS generally sends
frames of length (len = 8).
4.6.1. ERROR/WARNING
Errors and Warnings are shown as single bits in a 16 Bit-Word (Little Endian-Format).
It is possible that multiple bits are set.
As a supplement to the parameter controlled ADS-Table (parameter 0x1E0 bis 0x1E7) there is
an additional ADS-RT table implemented with maximum of 7 items which is to be used
exclusively during runtime. After the start of the BMS the ADS-RT table is set to zero, i.e. this
function is deactivated. The user may start and modify this table at any time via CAN bus in
the running system with a DIAG frame (see below). The ADS frames will be transmitted each
cycle in the following order:
1. all items from the parameterised ADS
2. all items from ADS-RT
Byte 0 Response on requested Data Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7
Sub-ID
0x01 UCells 01...03 UCell 03 UCell 02 UCell 01
0x02 UCells 04...06 UCell 06 UCell 05 UCell 04
0x03 UCells 07...09 UCell 09 UCell 08 UCell 07
0x04 UCells 10...11 0x00 0x00 UCell 11 UCell 10
0x05 Slave 1: Temp 1 and 2 as well as Rsafe S1: Temp 1 S1: Temp 2 S1: Rsafe 0x00
0x06 Slave 2: Temp 1 and 2 as well as Rsafe S2: Temp 1 S2: Temp 2 S2: Rsafe 0x00
0x08 Master Data set 1 Vnet Vrtc Vref 0x00
0x09 Master Data set 2 VKL15 VKL30 Temp. MASTER 0x00
0x0A Charging: counter high Ah charge: counter high Ah 0x00 0x00 0x00
0x0B Charging: counter low mAms charge: counter low mAms 0x00 0x00 0x00
0x0C Decharging: counter high Ah discharge: counter high Ah 0x00 0x00 0x00
0x0D Decharging: counter low mAms discharge: counter low mAms 0x00 0x00 0x00
0x0E Charging: counter high kWh charge: counter high kWh 0x00 0x00 0x00
0x0F Charging: counter low Wms charge: counter low Wms 0x00 0x00 0x00
0x10 Decharging: counter high kWh discharge: counter high kWh 0x00 0x00 0x00
0x11 Decharging: counter low Wms discharge: counter low Wms 0x00 0x00 0x00
0x12 DoD and SoC DoD absolut SoC relativ 0x00
0x13 total time in state Charging charging time integer rest 0x00
0x14 total time in state Decharging discharging time integer rest 0x00
0x15 total time in state zero-current Nocurrent time rest 0x00
0x16 system time dd:mm:yyyy hh.mm.ss day month year hour minute second 0x00
0x17 total number of KiloVAC OC-Shutdown Errors Anz. OC SD-Error 0x00 0x00 0x00 0x00 0x00
0x18 UCell avg/min/max of Battery Uaverage Umin Umax 0x00
0x19 Infos of battery structure #Slaves cell/slave #cells #temp #Rsav 0x00 0x00
0x20 request software version Major Minor Sub-min day month year 0x00
0x21 request DataSpaceNō and Gen-Appl.-ID # DataSpace General Application ID 0x00
0x31 IBatt and SoC, like DATA 0x01 I-Batt relativer SoC 0x00
0x32 UBatt and SoC, like DATA 0x02 U-Batt relativer SoC 0x00
0x33 Soc, like DATA 0x03 relativer SoC 0x00 0x00 0x00 0x00 0x00
0x34 Slave temperatures, like DATA 0x04 avar temp in batt min temp in batt max temp in batt 0x00
0x35 Master temperature, like DATA 0x05 Temp MASTER 0x00 0x00 0x00 0x00 0x00
0x36 Error/Warning, like DATA 0x06 ShutDown flags error flags warning flags add info
0x37 Short Info 1, like DATA 0x07 UBATT [0,01V] IBATT [0,01A] Tavarage SoC UDIFF
0x38 power prognosis charging, like DATA 0x08 IPROG CHARGE Power Prog. Charging 0x00
0x39 power prognosis decharging, like DATA 0x09 IPROG DECHARGE Power Prog. Decharging 0x00
0x3A Short Info 2 , like DATA 0x0A UBATT [0,1V] IBATT [0,1A] Tavarage SoC UDIFF
0x3B request of miscellaneous states, like DATA 0x3B Stat.B.1 Stat.B.2 0x00 0x00 0x00 0x00 add info
0x40 request of current ADS-RT Table 0x40 TAB [0] TAB [1] TAB [2] TAB [3] TAB [4] TAB [5]
0x41 --- unused --
0x42 User-time in mode Charging charging time integer rest 0x00
0x43 User-time in mode Decharging discharging time integer rest 0x00
0x44 Insulation resistance Z-Bits resistance [kΩ] 0x00 0x00 0x00 0x00
Command Command
0x01 Wake Up BMS
0x02 Shut down the BMS (Sleep mode)
0x03 Shut down the BMS (Sleep mode on and balancing off)
Effective until next RTC-WakeUp in about 10 min)
0x04 CAN WatchDog Trigger
0x05 CAN WatchDog Trigger mit “switch-off-omitted” (suppression of relay switch off)
Acknowledge:
Command Acknowledge
0x01 BMS awoken (Wake Up BMS)
0x02 Sleep mode on (Shut down the BMS)
0x03 Sleep mode on and balancing off (hut down the BMS)
2. reset control and all SD-error flags, and enable current referenced extension of the
cell voltage range to allow extended battery access (EBA) Length: ≥3 Byte
Dependent on the request there are different formats therefore its essential to make sure
by means of the Sub-ID in Byte 0 of kind, order and format of the received data.
Byte 0 Response on requested Data Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7
Sub-ID
0x01 IBatt and SoC IBATT relative SoC 0x00
0x02 UBatt and SoC UBATT relative SoC 0x00
0x03 SoC relative SoC 0x00 0x00 0x00 0x00 0x00
0x04 temperaturen of Slave testpoints avar temp in batt min temp in batt max temp in batt 0x00
0x05 Master temperature temp of Master 0x00 0x00 0x00 0x00 0x00
0x06 Error/Warning ShutDown flags error flags warning flags add info
0x07 Short Info 1 UBATT [0,01V] IBATT [0,01A] Tavarage SoC UDIFF
0x08 power prognosis Charging IPROG CHARGE Power Prog. Charging 0x00
0x09 power prognosis Decharging IPROG DECHARGE Power Prog. Decharging 0x00
0x0A Short Info 2 UBATT [0,1V] IBATT [0,1A] Tavarage SoC UDIFF
0x0B request of miscellaneous states Stat.B.1 Stat.B.2 0x00 0x00 0x00 0x00 add info
The Diagnostic frame (RX) requests for data of the Master, rests counters, sets data, time
and ADS (-RT) items.
one-byte requests:
Byte 0 command: set Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7
Sub-ID
0x16 Setting of date and time day month year hour minute second 0x55
0x40 Setting of Runtime-ADS Table (0x01...0x44) TAB [0] TAB [1 TAB [2] TAB [3] TAB [4] TAB [5] TAB [6]
Example 1:
The BMS shall send automatically per cycle Diagnosis data of iBatt (0x31), UBatt (0x32) and
temperature (0x34):
Example 2:
Example 3:
Byte 0 Response on requested Data Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7
Sub-ID
0x01 UCells 01...03 UCell 03 UCell 02 UCell 01
0x02 UCells 04...06 UCell 06 UCell 05 UCell 04
0x03 UCells 07...09 UCell 09 UCell 08 UCell 07
0x04 UCells 10...11 0x00 0x00 UCell 11 UCell 10
0x05 Slave 1: Temp 1 and 2 as well as Rsafe S1: Temp 1 S1: Temp 2 S1: Rsafe 0x00
0x06 Slave 2: Temp 1 and 2 as well as Rsafe S2: Temp 1 S2: Temp 2 S2: Rsafe 0x00
0x08 Master Data set 1 Vnet Vrtc Vref 0x00
0x09 Master Data set 2 VKL15 VKL30 Temp. MASTER 0x00
0x0A Charging: counter high Ah charge: counter high Ah 0x00 0x00 0x00
0x0B Charging: counter low mAms charge: counter low mAms 0x00 0x00 0x00
0x0C Decharging: counter high Ah discharge: counter high Ah 0x00 0x00 0x00
0x0D Decharging: counter low mAms discharge: counter low mAms 0x00 0x00 0x00
0x0E Charging: counter high kWh charge: counter high kWh 0x00 0x00 0x00
0x0F Charging: counter low Wms charge: counter low Wms 0x00 0x00 0x00
0x10 Decharging: counter high kWh discharge: counter high kWh 0x00 0x00 0x00
0x11 Decharging: counter low Wms discharge: counter low Wms 0x00 0x00 0x00
0x12 DoD and SoC DoD absolut SoC relativ 0x00
0x13 total time in state Charging charging time integer rest 0x00
0x14 total time in state Decharging discharging time integer rest 0x00
0x15 total time in state zero-current Nocurrent time rest 0x00
0x16 system time dd:mm:yyyy hh.mm.ss day month year hour minute second 0x00
0x17 total number of KiloVAC OC-Shutdown Errors Anz. OC SD-Error 0x00 0x00 0x00 0x00 0x00
0x18 UCell avg/min/max of Battery Uaverage Umin Umax 0x00
0x19 Infos of battery structure #Slaves cell/slave #cells #temp #Rsav 0x00 0x00
0x20 request software version Major Minor Sub-min day month year 0x00
0x21 request DataSpaceNō and Gen-Appl.-ID # DataSpace General Application ID 0x00
0x22 Value of class Nō x of U-Histogram #Class total of time for hits in this class in sec margin of class
0x23 Value of class Nō x of I-Histogram #Class total of time for hits in this class in sec margin of class
0x24 Value of class Nō x of T-Histogram #Class total of time for hits in this class in sec margin of class
0x25 Value of class Nō x of Udiff-Histogram #Class total of time for hits in this class in sec margin of class
0x31 IBatt and SoC, like DATA 0x01 I-Batt relativer SoC 0x00
0x32 UBatt and SoC, like DATA 0x02 U-Batt relativer SoC 0x00
0x33 Soc, like DATA 0x03 relativer SoC 0x00 0x00 0x00 0x00 0x00
0x34 Slave temperatures, like DATA 0x04 avar temp in batt min temp in batt max temp in batt 0x00
0x35 Master temperature, like DATA 0x05 Temp MASTER 0x00 0x00 0x00 0x00 0x00
0x36 Error/Warning, like DATA 0x06 ShutDown flags error flags warning flags add info
0x37 Short Info 1, like DATA 0x07 UBATT [0,01V] IBATT [0,01A] Tavarage SoC UDIFF
0x38 power prognosis charging, like DATA 0x08 IPROG CHARGE Power Prog. Charging 0x00
0x39 power prognosis decharging, like DATA 0x09 IPROG DECHARGE Power Prog. Decharging 0x00
0x3A Short Info 2 , like DATA 0x0A UBATT [0,1V] IBATT [0,1A] Tavarage SoC UDIFF
0x3B request of miscellaneous states, like DATA 0x3B Stat.B.1 Stat.B.2 0x00 0x00 0x00 0x00 add info
0x3C Prognosis for power - Charging I progn. charging power prognosis charging 0x00
0x3D Prognosis for power - Decharging I progn. discharg. power prognosis discharging 0x00
0x40 request of current ADS-RT Table 0x40 TAB [0] TAB [1] TAB [2] TAB [3] TAB [4] TAB [5]
0x41 --- unused --
0x42 User-time in mode Charging charging time integer rest 0x00
0x43 User-time in mode Decharging discharging time integer rest 0x00
0x44 Insulation resistance Z-Bits resistance [kΩ] 0x00 0x00 0x00 0x00
An additional status information is available via the CAN-bus in the DATA and DIAG frame:
Stat-Aux – Status Information auxiliary, bitcoded: This byte is identical to the already
implemented additional byte in SubFrame DATA 0x06 / DIAg 0x36
In the “PreCharge Phase” (see above) the battery is connected to load or charge over a
resistor to reduce the inrush current.
The precharge contactor makes this connection and when the voltage has risen to a
defined value the resistor will be bridged by contactor+ and the precharge contactor
opens. The value of the precharge voltage has to be transmitted by the host via CAN.
Communication channel ESS2 may be used to control all cell voltages. For this parameter
„CAN-ESS2“ must contain a valid (non-zero) CAN-Frame-ID.
The battery type has no meaning as the amount of frames corresponds with parameter
„Number of Cells“.
ESS2 (0x0317: CAN-ESS 2) TX Battery Data: All Cell Voltage Values (3.5 each frame)
Length Byte0 Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7
MSB
MSB
MSB
LSB
The values are transmitted as Millivolts with 16 bit resolution in 2 bytes (LittleEndian).
Byte 7 shows the cell’s balance state.:
Bit 0: Cell 3*n - 2 : HIGH = Balancing active
Bit 1: Cell 3*n - 1 : HIGH = Balancing active
Bit 2: Cell 3*n : HIGH = Balancing active
-4: As there is no "Actual Error", the contactors may be activated with the standard BMS
command: (Id=0xXXX [DATA-FRAME], SubId=0x06, length=3, 0x06, 0x55, 0xAA ).
-5: To switch off the contactors just stop the periodical “CAN-WatchDog”-frame by host.
As mentioned above the BMS will react within 1000ms...2000ms (1 to 2 cycles). If
otherwise the host synchronyses the messages with the BMS-ADS messages a reaction
earlier than 1000ms is possible.
Conclusion: The BMS switches on the contactors only when there is no actual error AND
the host transmits the error-reset information. The benefit of this procedure is that still
the BMS may be activated alternatively with ”Start”, ”PlugIn” or CAN-WakeUp.
5. ACTUAL PARAMETER-LIST
All readings are examples and will vary in particular applications. The parameter are
arranged in four levels:
Level 1: parameter changing without danger: CAN_ID & Warning & Prognosis
Level 2: for clients of I+ME: safety relevant, only for informed specialists
Level 3: for informed professionals (do not modify without support of I+ME Actia)
7-point-charging
27 2 0x01F0 Charge Mode 2 1 – 3 lev
2 – 7 pt
27 2 0x01F1 chg P1 [U1,I1] U1 1000 mV
27 2 0x01F9 chg P1 [U1,I1] I1 1500 mA
27 2 0x01F2 chg P2 [U2,I1] U2 2000 mV
27 2 0x01FA chg P2 [U2,I2] I2 2000 mA
27 2 0x01F3 chg P3 [U3,Imax] U3 2200 mV
27 2 0x01F4 chg P4 [U4,Imax] U4 3450 mV
27 2 0x01FB chg P3/4[U3/4,Imax]Imax 4000 mA
27 2 0x01F5 chg P5 [U5,I5] U5 350 mV
27 2 0x01FC chg P5 [U5,I5] I5 500 mA
27 2 0x01F6 chg P6 [U6,I6] U6 300 mV
27 2 0x01FD chg P6 [U6,I6] I6 60 mA
27 2 0x01F7 chg P7 [U7,I7] U7 300 mV
27 2 0x01FE chg P7 [U7,I7] I7 0 mA
27 2 0x01F8 chg Hysterese U8 350 mV
27 2 0x01FF chg Plugin Imax 10000 mA
definiert.
Fehler 2 0x0133 Dislog Activ if IBat >= -4000 mA
!
Textmar
ke nicht
definiert.
,68
2 0x0135 Max UCell-Diff Warning 100 mV
2 0x0136 Max UCell-Diff Error 200 mV
43 3 0x0137 SD Errorcounter Limit D 1 n
definiert.
Fehler! 1 0x0122 Warn-Soc-Ufl 200 x 0.1 %
Textmarke nicht
definiert.
Fehler! 1 0x0123 Warn-Soc-Ofl 800 x 0.1 %
Textmarke nicht
definiert.