Программа составлена совместно с нашим партнером Павлом Бизюкиным (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