Программа составлена совместно с нашим партнером Павлом Бизюкиным (p.bizyukin@yandex.ru).
Более подробную информацию об этом кейсе можно получить у нашего партнера.
Устройство опрашивает контроллер заряда, полученные данные о состоянии батареи и контроллера записываются в телеметрию.
Реализована возможность отправить команду для управления ключами заряда/разряда батареи.
Дополнительно контролируются диагностические флаги по ходу работы программы и ведется запись пользовательских логов.
SEND_DELAY
- Интервал опроса контроллера.MAX_RX_TIME
- Максимальное время ожидания ответа за запрос к контроллеру.MAX_RX_FAILS
- Максимальное количество повторов запроса, при отсутствии ответа в течение MAX_RX_TIME
.Если на запрос от контроллера нет ответа в течение
MAX_RX_TIME
и количество повторов равноMAX_RX_FAILS
, то устройство установит флагcmdX_err
.
Пользовательский параметр CE №1 - (total_voltage
) Общее напряжение батареи.
Тип параметра | Беззнаковое целое число |
Единицы измерения | 0.01V |
Передавать как | 2 байтовый параметр |
Если данные некорректны | значение "заморожено", установлен флаг cmd1_err = True |
Пользовательский параметр CE №2 - (current
) Текущее потребление тока.
Тип параметра | Беззнаковое целое число |
Единицы измерения | 0.01A |
Передавать как | 2 байтовый параметр |
Если данные некорректны | значение "заморожено", установлен флаг cmd1_err = True |
Пользовательский параметр CE №3 - (balance_cap
) Текущая емкость батареи.
Тип параметра | Беззнаковое целое число |
Единицы измерения | 0.01Ah |
Передавать как | 2 байтовый параметр |
Если данные некорректны | значение "заморожено", установлен флаг cmd1_err = True |
Пользовательский параметр CE №4 - (rate_capacity
) Максимальная емкость батареи.
Тип параметра | Беззнаковое целое число |
Единицы измерения | 0.01Ah |
Передавать как | 2 байтовый параметр |
Если данные некорректны | значение "заморожено", установлен флаг cmd1_err = True |
Пользовательский параметр CE №5 - (cycle
) Количество рабочих циклов.
Тип параметра | Беззнаковое целое число |
Передавать как | 2 байтовый параметр |
Если данные некорректны | значение "заморожено", установлен флаг cmd1_err = True |
Пользовательский параметр CE №6 - (protection_st
) Статусы защиты (описание скопировано из документа с протоколом обмена):
Бит 0 - single cell overvoltage protection
Бит 1 - single cell undervoltage protection
Бит 2 - whole pack overvoltage protection
Бит 3 - whole pack undervoltage protection
Бит 4 - charging over-temperature protection
Бит 5 - charging low temperature protection
Бит 6 - discharge over temperature protection
Бит 7 - discharge low temperature protection
Бит 8 - charging overcurrent protection
Бит 9 - discharge overcurrent protection
Бит 10 - short circuit protection
Бит 11 - front-end detection IC error
Бит 12 - software lock MOS
Бит 13..15 - reserved
Тип параметра | Битовое поле |
Передавать как | 2 байтовый параметр |
Если данные некорректны | значение "заморожено", установлен флаг cmd1_err = True |
Пользовательский параметр CE №7 - (rsoc
) Остаточная емкость батареи.
Тип параметра | Беззнаковое целое число |
Единицы измерения | % |
Передавать как | 1 байтовый параметр |
Если данные некорректны | значение "заморожено", установлен флаг cmd1_err = True |
Пользовательский параметр CE №8 - (fet_control_st
) Состояние ключей:
Бит 0 - Ключ управления зарядом.
Бит 1 - Ключ управления разрядом.
Бит 2..7 - Резерв.
Тип параметра | Беззнаковое целое число |
Передавать как | 1 байтовый параметр |
Если данные некорректны | значение "заморожено", установлен флаг cmd1_err = True |
Пользовательский параметр CE №9 - (ntc_1
) Температурный датчик №1.
Тип параметра | Беззнаковое целое число |
Единицы измерения | 0.1*C |
Передавать как | 2 байтовый параметр |
Если данные некорректны | значение "заморожено", установлен флаг cmd1_err = True |
Пользовательский параметр CE №10 - (ntc_2
) Температурный датчик №2.
Тип параметра | Беззнаковое целое число |
Единицы измерения | 0.1*C |
Передавать как | 2 байтовый параметр |
Если данные некорректны | значение "заморожено", установлен флаг cmd1_err = True |
Пользовательский параметр CE №11 - (ntc_3
) Температурный датчик №3.
Тип параметра | Беззнаковое целое число |
Единицы измерения | 0.1*C |
Передавать как | 2 байтовый параметр |
Если данные некорректны | значение "заморожено", установлен флаг cmd1_err = True |
Пользовательский параметр CE №12 - (power
) Текущая отдаваемая мощность.
Тип параметра | Беззнаковое целое число |
Единицы измерения | 0.01W |
Передавать как | 2 байтовый параметр |
Если данные некорректны | значение "заморожено", установлен флаг cmd1_err = True |
Пользовательский параметр CE №13 - (batt_max
) Максимальное напряжение в секциях батареи.
Тип параметра | Беззнаковое целое число |
Единицы измерения | 0.001V |
Передавать как | 2 байтовый параметр |
Если данные некорректны | значение "заморожено", установлен флаг cmd2_err = True |
Пользовательский параметр CE №14 - (batt_min
) Минимальное напряжение в секциях батареи.
Тип параметра | Беззнаковое целое число |
Единицы измерения | 0.001V |
Передавать как | 2 байтовый параметр |
Если данные некорректны | значение "заморожено", установлен флаг cmd2_err = True |
Пользовательский параметр CE №15 - (batt_diff
) Разница между максимальным batt_max
и минимальным batt_min
напряжением в секциях батареи.
Тип параметра | Беззнаковое целое число |
Единицы измерения | 0.001V |
Передавать как | 2 байтовый параметр |
Если данные некорректны | значение "заморожено", установлен флаг cmd2_err = True |
Пользовательский параметр CE №16 - (batt_avg
) Среднее арифметическое () напряжение, рассчитанное по всем секциям батареи.
Тип параметра | Беззнаковое целое число |
Единицы измерения | 0.001V |
Передавать как | 2 байтовый параметр |
Если данные некорректны | значение "заморожено", установлен флаг cmd2_err = True |
Пользовательский параметр CE №32 - Диагностические флаги:
Бит 0 - (cmd1_err
) Отсутствует ответ на запрос базовой информации.
Бит 1 - (cmd2_err
) Отсутствует ответ на запрос информации о секциях батареи.
Бит 2..6 - Резерв.
Бит 7 - (cmd_user_err
) Отсутствует ответ на пользовательскую команду.
Тип параметра | Битовое поле |
Передавать как | 1 байтовый параметр |
После обнаружения ошибки устанавливается соответствующий флаг и удерживается минимум в течение 1 минуты
При изменении значения любого из флагов устройство сформирует событие
event_code=41047
Код | Описание |
---|---|
41046 |
Пользовательская команда успешно выполнена |
41047 |
Диагностические флаги изменились |
По команде устройство меняет режим работы ключей управляющих зарядом и разрядом батареи.
При успешном выполнении команды устройство формирует событие
event_code=41046
Команда:
*!CEVT 225,mos_state
mos_state
- Управление зарядом и разрядом батареи:
0
- Заряд разрешен; Разряд разрешен.1
- Заряд запрещен; Разряд разрешен.2
- Заряд разрешен; Разряд запрещен.3
- Заряд запрещен; Разряд запрещен.Ответ:
*@CEVT
Примеры:
Разрешить заряд и разряд батареи:
*!CEVT 225,0
Запретить заряд и разряд батареи:
*!CEVT 225,3