common.md 486 KB

~={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

Для включения менеджера эффективности редактировал:

  • /stm32fw/src_fw/menu/menuTree.h

Проблемы: 1.       Для датчиков температуры необходимо добавить возможность выбора в качестве датчика внешней температуры;

2.       Показания температуры АКБ 50Ачи 20Ач не соответствуют показаниям самой АКБ (слева ЭПУ, справа АКБ)

3.       Необходимо добавление функционала параллельной работы двух АКБ – ЭПУ должен отображать параметры обеих ИБП

4.       Необходимо контролировать количество ячеек АКБ – сейчас контроллер ругается на напряжение 16й ячейки, которой нет в АКБ.

5.       Проверить реакцию на ток разряда АКБ выше заданного

6.       Менеджер эффективности (требование ТЗ пункт «3.7 Вывод невостребованной мощности выпрямителей в режим ожидания»)сейчас отсутствует в меню. Сейчас мы используем для МРФ выпрямители 650Вт с конвекционным охлаждением или 1000Вт с принудительным – по сути это один и тот же выпрямитель, ЭПУ с вентиляторными выпрямителями смогу передать в ближайшее время (когда заберем шкаф из лаборатории).

Комментарии:

  1. Пока опустим.
  2. Заказываем конкретный тип АКБ
  3. Заказ 2-ух штук АКБ
  4. Проверяем на заказанных АКБ
  5. Добавить аварию (ток разряда выше 5А). Меню "Аварии".
  6. Ждем выпрямители. Пока разбираемся с проблемой одновременного выключения выпрямителей в офисе.

  7. В журнал событий названия передаются из alarmsStrShortRu[].

Подключаемое оборудование

  1. Литий-железофосфатная АКБ (LiFePO4) 48В, 20Ач. Использовать тип АКБ: Li-ion - ZTT 48_50
  2. Литий-железофосфатная АКБ (LiFePO4) 48В, 50Ач. Использовать тип АКБ: Li-ion - Rotek RT48B C
  3. Подключении по 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
    
    Настройки
    Есть учетная запись login/pas: factory/123456
    Мои правки
  4. Добавил перевод показаний температуры подключаемых АКБ из градусов Кельвина в градусы Цельсия. Правил файл ZTT_driver485.c

  5. Добавил новый alarm BattOverCurDischarge в alarms.h, и названия для него в alarms.c. Изменилась структура настроек, размер и номер версии.

    // settings_api.h
    
    #define SETTINGS_VERSION 3
    #define REF_SETTINGS_SIZE 0xd48
    
  6. Повесил trig_bat_fuse на новый аларм. Файл alarm_triggers.c. Ранее этот триггер не использовался.

    //
    prs_control.prs_values.ImeasBatDischarge // Ток разряда АКБ (float)
    

Менеджер эффективности
Безвентиляторный BPC на 650 Вт.
АКБ на 50Ач
Тип АКБ: Li-ion - Rotek RT48B C. 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 }
};