Домашняя страничка Стефурак П.Б. Консольное приложение для управления ИБП Ippon.
 
     Домашняя Промзона Спальный район  

Промзона \ Консольное приложение для управления ИБП Ippon.
Поиск, управление ИБП по протоколу Centralion (Megatec) Communications Protocol for UPS.

  В одном проекте (система под управлением PC), мне понадобилось иметь ИБП и управлять его включением/отключением с PC.
 
Проблема
Первая мысль была применить ИБП APC младшей серии, и решение уже сделанное для этого, но как выяснилось в процессе общения со службой техподдержки APC, в младших APC нет поддержки нужной мне функциональности!
  Решение было найдено в виде ИБП Ippon Back Power Pro 500, имеющего необходимый функционал.
ИБП Ippon физически управляется через USB или RS232, причем, насколько я понял, USB интерфейс реализован в виде бриджа USB <-> RS232. В документации при этом упоминается только RS232. Но подключив ноутбук к UPS через USB в магазине я не смог до него "достучаться" без драйверов и не мудрствуя лукаво, купил внешний бридж USB <-> RS232, что позволило с одной стороны использовать со стороны PC USB (у того PC наружу просто нет ничего кроме USB), а с другой подключиться к ИБП через родной для него RS232.
  Проблема такого решения по сути только одна - ОС семейства Windows, при прочих равных, при подключении бриджа USB <-> RS232 может назначать разные номера виртуальных COM портов, что не позволит в общем случае жестко прописать в настройках программы конкретный порт. Ну да и ладно.
  Программное обеспечение, идущее в комплекте с ИБП Ippon по понятным причинам мне не подходило - сложное, громоздкое, да еще и на Java. "Нет, такой хоккей нам не нужен".
  Протокол "Centralion" похоже скопипастен с урезанием с Megatec Communications Protocol, который датируется аж 1995 годом. Если поискать, найдется еще несколько подобных протоколов у разных производителей.
  Задача на самом деле была очень простая:
  • ПО должно уметь общаться с ИБП по протоколу Centralion Communications Protocol for UPS;
  • Периодически предоставлять отчеты, для удаленного мониторинга состояния UPS, PC, энергопитания;
  • По событию или по команде отключить UPS, предварительно запрограммировав его на рестарт через несколько минут/часов/дней;
  • Программа должна уметь находить подключенный UPS, без указания номера COM-порта;
  • Отключать beeper ИБП, чтобы не раздражать окружающих;
     
    Решение
    Решение вылилось в консольное приложение, умеющее следующее:
  • Работать с ИБП через указанный COM порт, если его там нет, то...
  • Находить ИБП, работающий по протоколу семейств Centralion (Megatec) на всех имеющихся в системе COM портах (используется 2 способа поиска портов: 1. информация из реестра системы, 2. перебор от COM1 до COM256);
  • Получать от ИБП отчет о состоянии ИБП, энергоснабжения и т.д.
  • Отключать beeper ИБП, если он включен;
  • Отсылать ИБП произвольную команду;
  • Выводить отчеты о работе и статусе в файлы.
  •    
    Примеры использования
    Действие Команда Комментарий
    Справка по работе с программой, ключах и опциях ups_control.exe help или ups_control.exe без параметров  
    Найти ИБП, получить отчет о состоянии и отключить beeper ups_control.exe beeper_off=true Опция beeper_off=true обрабатывается перед командой, указанной в ups_command
    Найти ИБП, получить отчет о состоянии и включить beeper ups_control.exe beeper_off=true ups_command=Q#13 Так как команда Q работает как триггер, то сначала опцией beeper_off=true гарантировано отключается beeper, а потом командой Q включается!
    Запустить тест ИБП ups_control.exe ups_command=T#13 В конце команды укажите #13 или $0D для передачи символа CR
    Отключить нагрузку ИБП через 3 мин и включить обратно через 12 мин ups_control.exe ups_command=S03R0012#13 В случае, если команда задана неверно, UPS ответит ей же, что будет видно в отчете программы. Для получения информации о командах ИБП, см. Описание протокола "Centralion Communications Protocol for UPS" с сайта www.ippon.ru и/или Описание протокола "Megatec Communications Protocol".

     
      Архив с приложением для управления ИБП Ippon    Описание протокола "Centralion Communications Protocol for UPS" с сайта www.ippon.ru
        Описание протокола "Megatec Communications Protocol"
        Управление агентом Smart UPS APC.