~={green}Сборка=~
$ make CROSS=/opt/Sourcery_CodeBench_Lite_for_ARM_EABI/bin/arm-none-eabi
Компилятор: arm-none-eabi-gcc (Sourcery CodeBench Lite 2013.05-23) 4.7.3
~={yellow}Прошивка лежит по адресу 0x08020000=~
Текущая версия проекта 2.9.2-b53b6 Была на контроллере 2.9.1-c716f/c716f
Для включения менеджера эффективности редактировал:
Проблемы: 1. Для датчиков температуры необходимо добавить возможность выбора в качестве датчика внешней температуры;
2. Показания температуры АКБ 50Ачи 20Ач не соответствуют показаниям самой АКБ (слева ЭПУ, справа АКБ)
3. Необходимо добавление функционала параллельной работы двух АКБ – ЭПУ должен отображать параметры обеих ИБП
4. Необходимо контролировать количество ячеек АКБ – сейчас контроллер ругается на напряжение 16й ячейки, которой нет в АКБ.
5. Проверить реакцию на ток разряда АКБ выше заданного
6. Менеджер эффективности (требование ТЗ пункт «3.7 Вывод невостребованной мощности выпрямителей в режим ожидания»)сейчас отсутствует в меню. Сейчас мы используем для МРФ выпрямители 650Вт с конвекционным охлаждением или 1000Вт с принудительным – по сути это один и тот же выпрямитель, ЭПУ с вентиляторными выпрямителями смогу передать в ближайшее время (когда заберем шкаф из лаборатории).
Комментарии:
Ждем выпрямители. Пока разбираемся с проблемой одновременного выключения выпрямителей в офисе.
В журнал событий названия передаются из alarmsStrShortRu[].
Подключении по RS485 к АКБ. Можно подключиться обычным ethernet-кабелем (оранжевый и бело-оранжевый - это сигналы A, B)
$ tools/upload.sh 192.168.31.188 prs # обновить прошивку основной платы
$ make stm32fw NETTRACE=1 # вывод DEBUG по tcp
$ make nettrace IP=192.168.31.188 # подключиться для вывода DEBUG
Добавил перевод показаний температуры подключаемых АКБ из градусов Кельвина в градусы Цельсия. Правил файл ZTT_driver485.c
Добавил новый alarm BattOverCurDischarge в alarms.h, и названия для него в alarms.c. Изменилась структура настроек, размер и номер версии.
// settings_api.h
#define SETTINGS_VERSION 3
#define REF_SETTINGS_SIZE 0xd48
Повесил trig_bat_fuse на новый аларм. Файл alarm_triggers.c. Ранее этот триггер не использовался.
//
prs_control.prs_values.ImeasBatDischarge // Ток разряда АКБ (float)
central_power - имя в модуле driver_485.c
prs_control.prs_values.T_aku_meas
~={yellow}Тип батареи=~ В HTTP_Server вызывается SetBatteryTypeShortDigitStr()
В прошивки Кати central_power
~={yellow}Прошивка Кати=~ (0) PbSO4 - по умолчанию (1) Li-ion - SaftEvolion (2) Li-ion - Coslight GUI248 (3) Li-ion - Rotek RT48B KM (4) Li-ion - Rotek RT48B (5) Li-ion - Rotek RT48B C (6) Li-ion - Rotek RT48B K (7) Li-ion - Rotek RT48B D
~={yellow}Моя прошивка=~ (0) PbSO4 - по умолчанию (1) Li-ion - SaftEvolion (2) Li-ion - Coslight GUI248 (3) Li-ion - ZTT 48_50 (есть данные, много параметров) (4) Li-ion - Rotek RT48B (есть данные, но параметров меньше) (5) Li-ion - Rotek RT48B C (нет данных кроме напряжения и обрыв линии на датчике температуры) (6) Li-ion - Rotek RT48B N (нет данных кроме напряжения и обрыв линии на датчике температуры)
typedef struct {
bat_model_t bat;
request_type_t req;
void (*handler)(uint8_t *data);
} ascii_func_handler_t;
ascii_func_handler_t process_pdu_funcs[] = {
{ coslight_gui248, ANALOG_REQUEST, coslight_read_analog_data },
{ coslight_gui248, INFORM_REQUEST, coslight_read_inform_state },
{ ztt48_50, ANALOG_REQUEST, ztt_read_analog_data },
{ ztt48_50, INFORM_REQUEST, ztt_read_status_alarm },
{ rotek, ANALOG_REQUEST, rotek_read_analog_data },
{ rotek, INFORM_REQUEST, rotek_read_status_alarm },
{ rotek, CMD_REQUEST, rotek_read_cmd_responce },
{ central_power, ANALOG_REQUEST, central_power_read_analog_data },
{ central_power, INFORM_REQUEST, central_power_read_status_alarm },
{ central_power, CMD_REQUEST, central_power_read_cmd_responce },
{ narada, ANALOG_REQUEST, narada_read_analog_data },
{ ufo, ANALOG_REQUEST, ufo_read_analog_data },
{ ufo, INFORM_REQUEST, ufo_read_status_alarm },
{ 0, 0, NULL }
};