1 2 3 4 5 6 7 8 9 10 10/10 10,00оценок: 5

Мониторинг МАП и MPPT МикроАРТ. Продукты пользователей

Тема в разделе "Бесперебойное (аварийное) электропитание", создана пользователем Osolemio, 29.01.15.

Статус темы:
Закрыта.
  1. Osolemio
    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071

    Osolemio

    Живу дома. Сюда захожу

    Osolemio

    Живу дома. Сюда захожу

    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071
    Адрес:
    Минск
    Мониторинг МАП и MPPT МикроАРТ. Продукты пользователей
    Открываю веточку.
    Сразу говорю, что писать и распространять буду "как есть", систему я сделал за несколько дней, т. о. возможны ошибки и кривокод. Консультировать по установке линуксов, компиляциям и пр. у меня тоже нет времени. Если вы не понимаете пока как и что делать, то, скорее всего, это не для вас.
    Сегодня и далее буду потихоньку выкладывать исходники программы мониторинга для МАП и MPPT. МАП у меня уже работает.
    Основа - любой дохлый ПК, подключенный через RS232 или USB-RS232 к МАП (ам) и контроллеру (-ам)
    На ПК устанавливается *nix система. Я люблю CentOS. На мой старенький ремонтированный бук встала только 5.11, под ней я и ваял.
    Далее, для компиляции и работы вам понадобятся - веб-сервер, php, mysql, gcc, phpMyAdmin и связанные с ними пакеты + естественно devtools.
    Для каждого устройства запускается своя программа, которая читает ком-порт и пишет в базу данных. Потом возможности для обработки просто любые. Остановился на такой модели, поскольку потом SQL-запросы будут проще и единообразнее, соответственно, быстрее ответы.

    Я специально выбрал такую архитектуру. Удаленное подключение к ком-портам через адапторы неизбежно влечет потерю данных и редкие обновления. Здесь, не зависимо от того, запущено ли у вас на устройствах что-либо, данные гарантированно собираются, сохраняются и всегда доступны для чтения и обработки. Вы всегда сможете посмотреть статистику, ошибки, графики по любому отрезку времени.

    Не забываем поднять ntp и синхронизацию с мировым временем.

    Моя идея лежит чуть шире. Потом хочу к этому же серверу подцепить учет электроэнергии на микроконтроллере. Т. о. получается домашний веб-серверок по всем энергиям :)

    БЕЗОПАСНОСТЬ: Если вы планируете открыть веб-сервер вовне, то вся забота о безопасности/доступе на вашей совести.
     
    Последнее редактирование: 29.01.15
    Osolemio , 29.01.15
    #1 + Цитировать
  2. Osolemio
    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071

    Osolemio

    Живу дома. Сюда захожу

    Osolemio

    Живу дома. Сюда захожу

    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071
    Адрес:
    Минск
    База данных общая. Называется map
    таблицы рабочих 2. data и mppt.
    В data пишем все, что связано с МАП.
    Пользователь на чтение: monitor;
    Структура data:
    data
    Столбец Тип Null По умолчанию Ссылки на Комментарии
    number (Первичный) int (11) Нет
    date date Нет
    time time Нет
    _MODE tinyint (4) Нет
    _Status_Char tinyint (4) Нет
    _Uacc decimal (10,1) Нет
    _Iacc int (11) Нет
    _PLoad int (11) Нет
    _F_Acc_Over tinyint (4) Нет
    _F_Net_Over tinyint (4) Нет
    _UNET decimal (4,0) Нет
    _INET decimal (4,0) Нет
    _PNET decimal (4,0) Нет
    _TFNET tinyint (4) Нет
    _ThFMAP tinyint (4) Нет
    _UOUTmed decimal (4,0) Нет
    _TFNET_Limit tinyint (4) Нет
    _UNET_Limit decimal (4,0) Нет
    _RSErrSis tinyint (4) Нет
    _RSErrJobM tinyint (4) Нет
    _RSErrJob tinyint (4) Нет
    _RSWarning tinyint (4) Нет
    _Temp_Grad0 tinyint (4) Нет
    _Temp_Grad2 tinyint (4) Нет
    _INET_16_4 tinyint (4) Нет
    _IAcc_med_A_u16 decimal (10,0) Нет
    _Temp_off tinyint (4) Нет
    _E_NET decimal (30,0) Нет
    _E_ACC decimal (30,0) Нет
    _E_ACC_CHARGE decimal (30,0) Нет
    _Uacc_optim decimal (10,1) Нет
    Индексы
    Имя индекса Тип Уникальный Упакован Столбец Уникальных элементов Сравнение Null Комментарий
    PRIMARY BTREE Да Нет number 21507 A Нет
    number BTREE Нет Нет date 231 A Нет
     
    Последнее редактирование: 29.01.15
    Osolemio , 29.01.15
    #2 + Цитировать
  3. Osolemio
    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071

    Osolemio

    Живу дома. Сюда захожу

    Osolemio

    Живу дома. Сюда захожу

    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071
    Адрес:
    Минск
    Вот исходник на c и файлы веб-сервера. Просто для того, чтобы работало и показывало.
    Сделано так, что пока видно, что бегут часы - значит все работает и там, и тут.
    Можете дальше украшать, рисовать стрелочки, финтифлюшки.
    В исходнике нужно прописать порт, к которому подключен МАП
    /dev/ttyS0 - com1
    или для переходника USB-com
    /dev/ttyUSB0 и т. д.

    При компиляции не забыть подключить библиотеки mysql линковщику
    gcc mapd. c -o mapd `mysql_config -cflags -libs`
    Иначе не соберется.

    Чтение по ком-портам БЛОКИРУЕМОЕ, поскольку управления потоком нет, а микроконтроллер МАП занят еще 1000 другими делами.

    Напоминаю, что для открытия/ записи порта программа должна иметь привилегии, либо символьное устройство разрешения.

    Для тестирования сперва запускаем программу как обычно, не в фоне

    У меня 2 шнура gembird разных моделей. Rs 232 USB. Драйверов для сырого режима никаких не требуется
     

    Вложения:

    Последнее редактирование: 29.01.15
    Osolemio , 29.01.15
    #3 + Цитировать
  4. Osolemio
    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071

    Osolemio

    Живу дома. Сюда захожу

    Osolemio

    Живу дома. Сюда захожу

    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071
    Адрес:
    Минск
    To Do:

    1. Выложу сегодня/завтра программу для MPPT. C адресацией разобрался. МикроАрт кое-что не дописал в мануале. Сегодня помогли.
    2. Надо будет переделать программы, чтобы они стартовали как демоны (сервисы).
    Пока запускаем так:
    ./mapd 1>/dev/null 2>/dev/null &
    Программа переходит в фон и дает вам свой ID. Если нужно завершить, то стандартным мягким
    TERM: kill -1 ID

    3. Что-то с расчетом энергии. Пока не нашел, где именно косяк.
    4. Пока не читаю и не пишу в базу.
    Для версий ПО >=20.0
    _UAcc_Optim - Среднее напряжение между измеренным средним напряжением АКБ (_UAcc_med_VH, _UAcc_med_VL) и напряжением АКБ которое не учитывает нагрузку.

    Смотрю, что не сильно нужно. И придется делать еще один цикл чтения.
    5. Отображение ошибок и предупреждений
     
    Последнее редактирование: 29.01.15
    Osolemio , 29.01.15
    #4 + Цитировать
  5. Osolemio
    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071

    Osolemio

    Живу дома. Сюда захожу

    Osolemio

    Живу дома. Сюда захожу

    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071
    Адрес:
    Минск
    Вот что выводит сайт с автообновлением на ЛЮБОМ устройстве:

    Время: 20:03:54, Дата: 2015-01-29
    Режим работы МАП: МАП включен и транслирует сеть
    Напряжение с подстанции: 225В
    Ток по входу: 5А
    Мощность с подстанции: 1200Вт
    Частота с подстанции: 50Гц
    Частота с МАП: 50Гц
    Напряжение с МАП 223В
    Последнее зафиксированное напряжение вне диапазона: 266В
    Температура АКБ: 11С
    Напряжение АКБ: 53.0В
    Ток по АКБ: 0А
    Мощность по АКБ: 0Вт
     
    Osolemio , 29.01.15
    #5 + Цитировать
  6. lcat99
    Регистрация:
    28.09.13
    Сообщения:
    721
    Благодарности:
    175

    lcat99

    Живу здесь

    lcat99

    Живу здесь

    Регистрация:
    28.09.13
    Сообщения:
    721
    Благодарности:
    175
    Адрес:
    Краснодар
    Большое спасибо! :beer: :beer: :beer:
    Будет время, обязательно тоже допишу, и МАП, и контроллер дома надо будет мониторить.
     
    lcat99 , 29.01.15
    #6 + Цитировать
  7. Osolemio
    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071

    Osolemio

    Живу дома. Сюда захожу

    Osolemio

    Живу дома. Сюда захожу

    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071
    Адрес:
    Минск
    Основное преимущество этой системы в том, что она собирает все состояния, а не один раз в 5-10 секунд. И задержка между состоянием устройства и отображением менее 1 сек. Т. е. Мы всегда видим реальное состояние.
     
    Osolemio , 29.01.15
    #7 + Цитировать
  8. lcat99
    Регистрация:
    28.09.13
    Сообщения:
    721
    Благодарности:
    175

    lcat99

    Живу здесь

    lcat99

    Живу здесь

    Регистрация:
    28.09.13
    Сообщения:
    721
    Благодарности:
    175
    Адрес:
    Краснодар
    Да, логично. Я обычно делал немного иначе, при непрерывном получении данных с портов они при просмотре статистики выводились на экран в реальном времени, а так просто писались в текстовый файл, а раз в минуту из этого файла обрабатывались и добавлялись в базу, но тут это вряд ли нужно, делалось для уменьшения нагрузки на базу.
    Можно и за произвольный период полную статистику строить. Если не сложно, может выложите еще спецификации от микроарта? Написал им, но когда ответят, не знаю.
     
    lcat99 , 29.01.15
    #8 + Цитировать
  9. Osolemio
    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071

    Osolemio

    Живу дома. Сюда захожу

    Osolemio

    Живу дома. Сюда захожу

    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071
    Адрес:
    Минск
    @lcat99,

    Так я даже задержку делаю 0.8с, а иначе по 4-5 записей в секунду идет. Это уже избыточно.
    В личку позже напишу. В публичный доступ меня микроарт не наделял правом выкладывать
     
    Osolemio , 29.01.15
    #9 + Цитировать
  10. Osolemio
    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071

    Osolemio

    Живу дома. Сюда захожу

    Osolemio

    Живу дома. Сюда захожу

    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071
    Адрес:
    Минск
    Структура таблицы mppt.
    Завтра проверю днем все ли значения верно читаются, и вскорости выложу
     

    Вложения:

    Osolemio , 30.01.15
    #10 + Цитировать
  11. Svartalfdd
    Регистрация:
    08.11.10
    Сообщения:
    112
    Благодарности:
    8

    Svartalfdd

    Живу здесь

    Svartalfdd

    Живу здесь

    Регистрация:
    08.11.10
    Сообщения:
    112
    Благодарности:
    8
    Адрес:
    Odessa
    @Osolemio, Спасибо, вечером попробую на фряхе поднять :)
     
    Svartalfdd , 31.01.15
    #11 + Цитировать
  12. Osolemio
    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071

    Osolemio

    Живу дома. Сюда захожу

    Osolemio

    Живу дома. Сюда захожу

    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071
    Адрес:
    Минск
    @Svartalfdd,

    Держите тогда последний код. Пока отлаживал MPPT несколько ошибок нашел. На работу не влияют, но не кошерно :) Энергия корректно уже считается, но надо будет еще поменять переменные местами. В описании МА где-то ошибка. И одна не считается. Наверное ячейки не те. Энергия записывается в чистом виде, не деленная на 100. Для отображения где-то нужно поделить.

    По переходникам RS232-USB начиная со старинного ядра 2.4 уже модули все должны быть. Т. е. через dmesg и lsusb смотрим подключен ли ttyUSBx и к нему коннектимся.

    VMIN и VTIME лучше выставить 0, 10 соответственно. Если хорошо будет работать, то так и оставить.

    MPPT никак не пойму. То ли прошивка, то ли еще какая хрень. То читает, то не читает. А так уже все работает, в базу пишет. Как только связь заработает нормально сразу выложу код. В пн будет время - прошивку поменяю. Грешу на нее.
     

    Вложения:

    Последнее редактирование: 31.01.15
    Osolemio , 31.01.15
    #12 + Цитировать
  13. Osolemio
    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071

    Osolemio

    Живу дома. Сюда захожу

    Osolemio

    Живу дома. Сюда захожу

    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071
    Адрес:
    Минск
    Хе. с костылем заработало :) Наверное в прошивке что-то. Иногда не получает эхо и выплевывает лишние байты. Почему пока не знаю. Пришлось делать небольшой костыль по досинхронизации потока. Что за они надо будет разобраться. Вроде на XON/XOFF не похоже. Управление потоком для контроллера никак не документировано. По словам МА внутри та же программа, что и на МАП, а соответственно все должно быть в сыром виде без контролей.
    Если ваш контроллер будет без этого глюка, то костыль никак не отразится на работе.
    Вот что имею (вывожу пока не все поля):

    Время: 15:56:43, Дата: 2015-01-31
    Режим работы: МАП включен и транслирует сеть
    Напряжение с подстанции: 224В
    Ток по входу: 3А
    Мощность с подстанции: 800Вт
    Частота с подстанции: 50Гц
    Частота с МАП: 50Гц
    Напряжение с МАП 222В
    Последнее зафиксированное напряжение вне диапазона: 266В
    Температура АКБ: 11С
    Напряжение АКБ: 53.4В
    Ток по АКБ: 0А
    Мощность по АКБ: 0Вт

    СОЛНЕЧНЫЕ ПАНЕЛИ
    Время: 15:56:43, Дата: 2015-01-31
    Напряжение панелей: 61.2В
    Ток панелей: 0.8А
    Мощность панелей: 46Вт


    Код чуть позже. Повырезаю отладочные блоки.

    Время в обоих разделах обязательно выводим. Поскольку это не время вашего компьютера, а время последней записи в БД. Т. о. пока вы видите правильное тикающее время - значит вы видите актуальные данные. В противном случае вы будете видеть дату и время последней записи.
     
    Последнее редактирование: 31.01.15
    Osolemio , 31.01.15
    #13 + Цитировать
  14. Osolemio
    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071

    Osolemio

    Живу дома. Сюда захожу

    Osolemio

    Живу дома. Сюда захожу

    Регистрация:
    31.05.14
    Сообщения:
    3.248
    Благодарности:
    1.071
    Адрес:
    Минск
    Код mpptd. c и php шник для запроса на таблицу mppt
    Не знаю пока как долго и хорошо будет работать. У меня пока тикает... :) Уже час... Есть надежда, что все ок.
    Выкладываю для того, чтобы вы тоже могли работать над кодом, если пожелаете.
    Формат чисел в ячейках контроллера - big endian.
     

    Вложения:

    Последнее редактирование: 31.01.15
    Osolemio , 31.01.15
    #14 + Цитировать
  15. Svartalfdd
    Регистрация:
    08.11.10
    Сообщения:
    112
    Благодарности:
    8

    Svartalfdd

    Живу здесь

    Svartalfdd

    Живу здесь

    Регистрация:
    08.11.10
    Сообщения:
    112
    Благодарности:
    8
    Адрес:
    Odessa
    Mppt у меня нет :) а на дебиане и фряхе с мап проэкспериментирую... @Osolemio, хорошее дело Вы начали, интересно как доведете до блеска микроарт хоть скидку на свое железо сделает? :)
     
    Svartalfdd , 31.01.15
    #15 + Цитировать
Статус темы:
Закрыта.