Мовикон BMS
Описание
Модуль используется для получения пакетов о состоянии электро-батарей от системы Мовикон BMS.
Описание программного обеспечения Movicom Electric BMS по ссылке
Особенность интеграции с устройствами системы Movicom Electric BMS (далее - BMS) то, что данные о текущем состоянии
батарейной системы передаютсят сообщениями по протоколу MQTT в формате JSON, описание протокола представлено ниже.
Модуль обеспечивает:
- обработку сообщений, содержащих текущие параметры батарейной системы;
- обработку сообщений, описывающих возникшее в работе BMS событие (например, возникновение ошибки).
Совместимость
Требуется версия ядра платформы 4.4.
Установка в качестве демона линукс:
Создать директорию /opt/movicon-gate и поместить в нее movicon-gate.jar, application.yml
mkdir /opt/movicon-gate
cp movicon-gate.jar /opt/movicon-gate
cp application.yml /opt/movicon-gate
cp movicon-gate.conf /opt/movicon-gate
Создать файл сервиса /etc/systemd/system/movicon-gate.service следующего содержания:
[Unit]
Description=movicon-gate
After=syslog.target
[Service]
User=root
Group=root
ExecStart=/opt/movicon-gate/movicon-gate.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.targetПеречитать список сервисов linux
systemctl daemon-reloadЗапуск и остановку сервиса можно осуществлять стандартынми командами, модуль работает только в режиме 2
service movicon-gate start
service movicon-gate status
service movicon-gate stopЕсли нужно добавить в автозапуск при рестарте, обычно это делается так:
systemctl enable movicon-gateОграничение памяти в качестве демона
Для установки лимитов памяти нужно создать в директории movicon-gate.jar файл конфигурации movicon-gate.conf
и задать в нем нужные лимиты, например:
JAVA_OPTS="-Xms100m -Xmx300m"Запуск
В режиме печати конфигурации приборов Орион-Болид
Используется для получения идентификаторов устройств для создания подключения устройств в типовой конфигурации Inspark
java -jar movicon-gate.jar printМодель Устройства
| Имя канала | Тип | Описание |
|---|---|---|
| batteryCurrent | мгновенное значение | Ток батареи (положительный ток - ток заряда, отрицательный ток - ток разряда) |
| batteryLocation | строковый | Координаты батареи |
| batteryResistance | мгновенное значение | Сопротивление батареи |
| batteryState | строковый | Состояние батареи |
| batteryVoltage | мгновенное значение | Полное напряжение батареи |
| boardHumidity | мгновенное значение | Относительная влажность BMS |
| boardTemperature | мгновенное значение | Температура BMS |
| chargeCurrentLimit | мгновенное значение | Лимит тока заряда |
| dischargeCurrentLimit | мгновенное значение | Лимит тока разряда |
| duration | мгновенное значение | Время нахождения в состоянии batteryState |
| effectiveCapacity | мгновенное значение | Эффективная (фактическая) ёмкость батареи |
| errors | строковый | Ошибки АБ. Каждый элемент массива отражает имя обнаруженной BMS ошибки |
| highVoltage1 | мгновенное значение | Высокое напряжение 1 (до контакторов) |
| highVoltage2 | мгновенное значение | Высокое напряжение 2 (после контакторов) |
| inputSignals | строковый | Входные сигналы. Каждый элемент массива отражает имя входного сигнала |
| internalSignals | строковый | Внутренние сигналы. Каждый элемент массива отражает имя внутреннего сигнала |
| nominalCapacity | мгновенное значение | Номинальная ёмкость батареи |
| numberOfCells | мгновенное значение | Количество ячеек |
| numberOfLogics | мгновенное значение | Количество Logic |
| numberOfModules | мгновенное значение | Количество модулей |
| regenerationCurrentLimit | мгновенное значение | Лимит тока рекуперации |
| soc | мгновенное значение | Уровень остаточного заряда батареи |
| softwareVersion | строковый | Версия ВПО |
| soh | мгновенное значение | Уровень работоспособности батареи |
| temperature1 | мгновенное значение | Внешняя температура 1 |
| temperature2 | мгновенное значение | Внешняя температура 2 |
| temperatureCellAvg | мгновенное значение | Средняя температура ячеек батареи |
| temperatureCellMax | мгновенное значение | Максимальная температура ячеек батареи |
| temperatureCellMin | мгновенное значение | Минимальная температура ячеек батареи |
| voltageCellAvg | мгновенное значение | Среднее напряжение ячеек батареи |
| voltageCellMax | мгновенное значение | Максимальное напряжение ячеек батареи |
| voltageCellMin | мгновенное значение | Минимальное напряжение ячеек батареи |
Настройка модуля
Настройка модуля производится в файле application.yml.
Настройка взаимодействия с платформой Inspark и внешней системой
# подключение к рест-сервисам inspark (должен заканчиваться слэшем)
rest:
url: http://localhost:8080/sem-restservices/
user: root
password: pass
extSystemId: MOVICOM_BMS
# параметры подключения к артемис inspark
artemis:
url: tcp://localhost:61616
user: artemis
password: artemis
# количество потоков в пуле для отправки JMS-сообщений
senderThreads: 8
# настройки очередей (см. имена свойств и дефолты в lib-gate)
queue:
measure:
destination: jms.queue.Measure
event:
destination: jms.queue.EventНастройка подключения к брокеру MQTT
# настройки подключения к брокеру MQTT
mqtt:
url: tcp://localhost:1883
user: admin
password: admin
# Уровень качества обслуживания (иначе - гарантии доставки сообщений, QoS 0-2) по протоколу MQTT
# устанавливается из настроек Movicom BMS
qos: 1Настройки интеграции
Настройка в разделе bms
Настройка передачи событий
bms:
# Интеграция событий. Идентификатор события в Inspark, если не задан события не передаются
semEventId:
# Шаблон текста дополнительной информации события, поддерживаются подстановки
# $REASON - Основание для сообщения: error, input, internal, other
# $CONDITION - Условие формирования сообщения: set (возникла ошибка или сигнал), reset (снята ошибка или сигнал)
# $NAME - Имя события
# $MESSAGE - Описание события
semEventMessageTemplate: "Причина: $REASON. Условие: $CONDITION. $NAME. $MESSAGE"Настройки каналов устройства
bms:
...
# Интеграция устройств. Настройка стандартных топиков каналов устройства Movicom BMS в Inspark если параметр
# отсутствует или значение топика не задано, измерение по данному параметру отправляться не будет
channels:
# Состояние батареи
batteryState: batteryState
# Время нахождения в состоянии batteryState
duration: duration
# Полное напряжение батареи
batteryVoltage: batteryVoltage
# Ток батареи (положительный ток - ток заряда, отрицательный ток - ток разряда)
batteryCurrent: batteryCurrent
# Номинальная ёмкость батареи
nominalCapacity: nominalCapacity
# Эффективная (фактическая) ёмкость батареи
effectiveCapacity: effectiveCapacity
# Сопротивление батареи
batteryResistance: batteryResistance
# Уровень остаточного заряда батареи
soc: soc
# Минимальное напряжение ячеек батареи
voltageCellMin: voltageCellMin
# Максимальное напряжение ячеек батареи
voltageCellMax: voltageCellMax
# Среднее напряжение ячеек батареи
voltageCellAvg: voltageCellAvg
# Минимальная температура ячеек батареи
temperatureCellMin: temperatureCellMin
# Максимальная температура ячеек батареи
temperatureCellMax: temperatureCellMax
# Средняя температура ячеек батареи
temperatureCellAvg: temperatureCellAvg
# Уровень работоспособности батареи
soh: soh
# Ошибки АБ. Каждый элемент массива отражает имя обнаруженной BMS ошибки
errors: errors
# Входные сигналы. Каждый элемент массива отражает имя входного сигнала
inputSignals: inputSignals
# Внутренние сигналы. Каждый элемент массива отражает имя внутреннего сигнала
internalSignals: internalSignals
# Внешняя температура 1
temperature1: temperature1
# Внешняя температура 2
temperature2: temperature2
# Температура BMS
boardTemperature: boardTemperature
# Относительная влажность BMS
boardHumidity: boardHumidity
# Высокое напряжение 1 (до контакторов)
highVoltage1: highVoltage1
# Высокое напряжение 2 (после контакторов)
highVoltage2: highVoltage2
# Количество Logic
numberOfLogics: numberOfLogics
# Количество ячеек
numberOfCells: numberOfCells
# Количество модулей
numberOfModules: numberOfModules
# Лимит тока заряда
chargeCurrentLimit: chargeCurrentLimit
# Лимит тока разряда
dischargeCurrentLimit: dischargeCurrentLimit
# Лимит тока рекуперации
regenerationCurrentLimit: regenerationCurrentLimit
# Версия ВПО
softwareVersion: softwareVersion
# Координаты батареи
batteryLocation: batteryLocation