Мониторинг ИБП на основе UPS Assistant

Питание: Измерение распределение блоки питания
Источники Бесперебойного Питания ИБП
Измерительный блок распределения питания БРП
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 804
Стаж: 5 лет 1 месяц
Откуда: Вологодская область
Поблагодарили: 33 раза
Контактная информация:

Мониторинг ИБП на основе UPS Assistant

Сообщение Артём Мамзиков »

Чутка предыстории с закупок приехали 2 ИБП "ENTEL Серии LPB-U20BS2-UL" по условиям с мониторингом по факту на диске программа мониторинга ViewPower (на основе tomcad) по http но самое что интересное работает она в виде видео через Adobe Flash Player и снять данные с такого кода у меня не вышло. Для SNMP требуется отдельная плата расширения к ИБП которая стоит почти половину цены самой ИБП.
Пример ViewPower
Пример ViewPower

Шаблон на основе программки UPS Assistant
на момент написания версия UPS Assistant 2.4.2.114
«Ассистент» предназначен для работы с источниками бесперебойного питания по протоколу Megatec. Это устройства Belkin, Ippon, Mustek, Powercom и других брендов.
Подключение через USB- или COM-порт и поддерживающего протокол обмена информацией Megatec/Centralion (Ippon, Mustek, Sven, Inelt). Программа предназначена для работы только под управлением ОС Windows 2000, XP, 2003, Vista (x86 и x64), Windows 7/Windows Server 2008 R2 (x86 и x64), Windows 8/Windows Server 8 (x86 и x64).

Список поддерживаемых ИБП
ИБП
Показать
Оригинал Поддерживаемые модели
Поддерживаемые модели:
Протокол Megatec (список неполный)
Ablerex MS-RT, Hope Office 400/600
ActivePower 400VA, 1400VA, 2000VA
Advice TopGuard 2000
Atlantis Land A03-P826
Belkin Universal UPS F6H350deUNV, Universal UPS F6H350ukUNV, Universal UPS F6H500ukUNV, Universal UPS F6H650ukUNV
Chloride Desk Power 650
Cito Power CPG-SR1000
Digitus DN-170020
Dynamix UPS1700D
Eaton NV-1000H
Effekta MI/MT/MH 2502, RM2000MH
Energy Sistem
Fenton Technologies PowerPal L-series, PowerOn, PowerPure
INELT Monolith 1000LT
Inform Guard S 1500AP
Infosec iPEL 350, iPEL 500, iPEL 750, iPEL 1000, 500XP, XP 1000
Ippon различные, Back Power Pro
Kebo 1200D/D Series
Lestar MD-800E
Liebert ITON 600VA
Maxxtro UPS 600 VA
Mecer ME-2000
Mustek Powermust 400VA Plus, Powermust 600VA Plus, Powermust 800VA Pro, Powermust 1000VA Plus, Powermust 1400VA Plus, Powermust 2000VA USB, различные
Neus 400va / 600va
OnLite AQUA 50
Orvaldi Power Protection различные, не 400 или 600
Phasak 400VA / 600VA
Powercom SMK, SXL, ULT, Vanguard 6000
PowerGuard PG-600
PowerKinetics BlackOut Buster
PowerMan RealSmart 800, RealSmart 1000
PowerTech SMK-800
PowerWalker Line-Interactive VI 1000, Line-Interactive VI 400/800
SMS (Brazil) Manager III
SOLA 330
Soyntec Sekury C 500, Sekury C 800
SquareOne Power QP1000
SuperPower HP360, Hope-550
Sweex различные
Sysgration UPGUARDS Pro650
Tecnoware Easy Power 1200
Trust UPS 1000 Management PW-4105, UPS 1200VA Management PW-4120M, UPS 1300VA Management PW-4130M
UNITEK Alpha 1000is, Alpha 500, Alpha 500 ipE, Alpha 2600
UPSonic CXR1000
WinPower CPM-800
Скачать UPSAssistant оф сайт
Скачать скрипты Запуска и проверки
UPS Assistant.zip
UPS Assistant.zip
(1 МБ) 25 скачиваний
Скачать Шаблон
Шаблон ИБП Ассистент.zip
Шаблон ИБП Ассистент.zip
(9.74 КБ) 22 скачивания
Какие данные мы получим для заббикс:
I/P Voltage - входное напряжение, В
I/P Fault Voltage -
для off-line ИБП:
величина входного напряжения при кратковременном нарушении сетевого питания, вызвавшем переход ИБП в инверторный режим
для on-line ИБП:
величина входного напряжения при кратковременном нарушении сетевого питания, вызвавшем перевод ИБП в режим питания от батарей
(хранится до следующего запроса состояния ИБП)
O/P Voltage - выходное напряжение, В
O/P Current - уровень выходного тока в % от максимального значения
I/P Frequency - частота входного напряжения, Гц
Battery Voltage - напряжение на зажимах аккумуляторной батареи, В
Temperature - температура ИБП, градусы Цельсия

UPS Status - состояние ИБП -
******** (бит 7 - бит 0):
бит 7 - Power Fail - авария сетевого питания
бит 6 - Battery Low - батарея разряжена
бит 5 - AVR - включен автоматический регулятор напряжения:
TRIM - ИБП понижает входное напряжение
BYPASS - ИБП не изменяет входное напряжение
BOOST - ИБП повышает входное напряжение
бит 4 - UPS Failed - авария ИБП
бит 3 - Standby UPS - off-line ИБП
бит 2 - Test in Progress - выполняется тест ИБП
бит 1 - Shutdown Active - ИБП выключается
бит 0 - Beeper On - звуковая сигнализация ИБП включена
Некоторые данные мы вычислим зная данные выше.

Для получения данных с ИБП с помощью ИБП Ассистент все другие программы должны быть выключены и не использовать порт USB ИБП иначе подключение невозможно и данных не будет!
ИБП Ассистент Пример данных
ИБП Ассистент Пример данных
Настраиваем HTTP и проверяем (логин пароль работают визуально, но в исходном коде страницы есть все данные ИБП)
Порт указал 6547 как у APC
ИБП Ассистент HTTP
ИБП Ассистент HTTP
В настройках есть параметр Автозапуск, но он работает только при входе в систему (учётку). А так как у нас это сервера нам не нужно чтоб висели открытые сессии.
Делаем автозапуск при включении и периодическая проверка что процесс на месте, если их больше 1-го закрываем лишние, а если нет запускаем.
Делаем скрипт и вносим в Планировщик задания.

Первый скрипт который сам создает задачи в планировщике и копирует скрипт проверки
Install UPS Assistant.bat

Код: Выделить всё

@ECHO OFF
mode con:cols=130 lines=40
color 1A
:: Автор Артём Андреевич Мамзиков
chcp 866 >NUL
TITLE UPS Assistant 
@cls
echo.
echo.
echo.     Данный скрипт автоматически выполнит:
echo.     1. Скопирует скрипт проверки процесса
echo.     2. Добавить задания в планировщик
echo.
echo.      P.S.
echo.      Скрипт должен выполнятся от имени Администратора
echo.      или Пользователя имеющего соответствующие права на изменения!
@echo off
pause

chcp 866 >NUL
:: Определяем разрядность системы
Set xOS=x64
If "%PROCESSOR_ARCHITECTURE%"=="x86" If Not Defined PROCESSOR_ARCHITEW6432 Set xOS=x86

:: Куда будем копировать ПО путь
if /i "%xOS%"=="x64" (set way="C:\Program Files (x86)\Alexey V.Voronin\UPS_Assistant"& set prestart="Restart-UPS-Assistant.bat.xml"& set pproc="UPSAssistant.xml") else (set way="C:\Program Files\Alexey V.Voronin\UPS_Assistant"& set prestart="Restart-UPS-Assistant.bat-x86.xml"& set pproc="UPSAssistant-x86.xml")
:: Создать директории если нет
mkdir %way%

:: В зависимости от определенной разрядности копируем скрипт в UPS_Assistant
xcopy "%~dp0Scripts UPS Assistant" %way%\ /s /e /y /v /c

:: Задаем переменные на пути программы и Имя
set address=%way%\UPSAssistant.exe& set name=UPSAssistant& set addressrestart=%way%\Restart-UPS-Assistant.bat

:opros
@cls
echo.     От какой учетной записи внести задание в планировщик для UPS Assistant
echo.     1. Система (рекомендуется)
echo.     2. Локального пользователя
echo.     3. Указать свою
echo.
:: Вопрос От какой учетной записи внести задание в планировщик для HM
set /P otvet=Указать Учётная запись для запуска UPS Assistant [1,2,3]?:
@cls

:: Запуск от Выбранной учетной записи
if /i "%otvet%"=="1" (goto :System) else (if /i "%otvet%"=="2" (goto :Local) else if /i "%otvet%"=="3" (goto :User) else (goto :opros))

:System
:: От группа-пользователь Система
set login=S-1-5-18
set "pass="
:: При загрузке Windows
SCHTASKS /Create /SC ONSTART /TN "\%name%\Startup" /TR '%address%' /RU "%login%" /RL Highest /F
::SCHTASKS /Create /SC ONSTART /TN "\%name%\Restart-UPS-Assistant.bat" /TR '%addressrestart%' /RU "%login%" /RL Highest /F
SCHTASKS /Create /SC DAILY /ST 00:00 /RI 360 /DU 24:00 /TN "\%name%\Restart-UPS-Assistant.bat" /TR '%addressrestart%' /RU "%login%" /RL Highest /F
:: Уже готовая задача в XML делаем импорт
SCHTASKS /Create /RU "%login%" /RP "%pass%" /tn "\%name%\Startup" /XML "%way%\%pproc%" /F
SCHTASKS /Create /RU "%login%" /RP "%pass%" /tn "\%name%\Restart-UPS-Assistant.bat" /XML "%way%\%prestart%" /F
goto :dalee

:Local
:: От Локального пользователя
set login=NT AUTHORITY\LOCALSERVICE
set "pass="
:: При загрузке Windows
SCHTASKS /Create /SC ONSTART /TN "\%name%\Startup" /TR '%address%' /RU "%login%" /RL Highest /F
::SCHTASKS /Create /SC ONSTART /TN "\%name%\Restart-UPS-Assistant.bat" /TR '%addressrestart%' /RU "%login%" /RL Highest /F
SCHTASKS /Create /SC DAILY /ST 00:00 /RI 360 /DU 24:00 /TN "\%name%\Restart-UPS-Assistant.bat" /TR '%addressrestart%' /RU "%login%" /RL Highest /F
:: Уже готовая задача в XML делаем импорт
SCHTASKS /Create /RU "%login%" /RP "%pass%" /tn "\%name%\Startup" /XML "%way%\%pproc%" /F
SCHTASKS /Create /RU "%login%" /RP "%pass%" /tn "\%name%\Restart-UPS-Assistant.bat" /XML "%way%\%prestart%" /F
goto :dalee

:User
:: Визуальный вывод и получение ввода данных
chcp 866 >NUL
echo Логин/Login
set /P login=
set login=%login%
echo.
echo Пароль/Password
set /P pass=
set pass=%pass%
echo.

:: При загрузке Windows
SCHTASKS /Create /SC ONSTART /TN "\%name%\Startup" /TR '%address%' /RU "NT AUTHORITY\LOCALSERVICE" /RL Highest /F
SCHTASKS /Create /SC ONSTART /TN "\%name%\Startup" /TR '%address%' /RU "S-1-5-18" /RL Highest /F
SCHTASKS /Create /RU "%login%" /RP "%pass%" /SC ONSTART /TN "\%name%\Startup" /TR '%address%' /RL Highest /F
::SCHTASKS /Create /RU "%login%" /RP "%pass%" /SC ONSTART /TN "\%name%\Restart-UPS-Assistant.bat" /TR '%addressrestart%' /RL Highest /F
SCHTASKS /Create /RU "%login%" /RP "%pass%" /SC DAILY /ST 00:00 /RI 360 /DU 24:00 /TN "\%name%\Restart-UPS-Assistant.bat" /TR '%addressrestart%' /RL Highest /F
:: Уже готовая задача в XML делаем импорт
SCHTASKS /Create /RU "%login%" /RP "%pass%" /tn "\%name%\Startup" /XML "%way%\%pproc%" /F
SCHTASKS /Create /RU "%login%" /RP "%pass%" /tn "\%name%\Restart-UPS-Assistant.bat" /XML "%way%\%prestart%" /F
goto :dalee

:dalee
:: Выполнить на локальном компьютере задание "Startup" немедленно, игнорируя любые ограничения
SCHTASKS /Run /I /TN "\%name%\Startup"
SCHTASKS /Run /I /TN "\%name%\Restart-UPS-Assistant.bat"

:: Проверка что процесс запустился, если нет запускаем
TaskList /FI "ImageName EQ %name%.exe" 2>nul|Find /I "%name%.exe">nul||(
Start "" /high '%address%'
)

:end

:: Автозапуск через реестр
::reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v StartupOHM /d C:\zabbix\OpenHardwareMonitor\OpenHardwareMonitor.exe /f
:: Папка Автозагрузки в неё нужно скопировать .exe или батник на запуск .exe
::C:\Users\Пользователь\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
::C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

::Перезагрузка для применения системной
::shutdown -r -f  -t 15 -c "Перезагрузка системы"
color 0f
Планировщик для UPS Assistant
Планировщик для UPS Assistant
Рекомендую выбирать система так как есть все права, не может быть отключена/заблокирована или смена пароля (домене) и задача перестанет работать (запускаться). Если не заработает под учёткой система попробовать другую. (при тесте все остальные процессы должны быть закрыты от других пользователей)

Скрипт который контролирует Работу процесса
Restart-UPS-Assistant.bat

Код: Выделить всё

@Echo Off

:: Завершить дубли процессов если их несколько и запускаем процесс если его нет совсем
:: Получаем количество процессов
for /f %%b in ('tasklist^|find /c /i "UPSAssistant.exe"') do (
if /i %%b GTR 1 (goto :KILL) else (if /i %%b==0 (goto :START) else (goto :end)))

:KILL
:: Завершить дубли процесса, пропускаем 1 процесс
for /f "skip=1 tokens=2 delims= " %%a in ('tasklist^|find /I "UPSAssistant.exe"') do (
TASKKILL /PID %%a /T /F )
goto :end

:START
:: Планировщик заданий Остановка процесса
SCHTASKS /End /TN "\UPSAssistant\Startup"
:: Для старой версии
SCHTASKS /End /TN "UPSAssistant"
:: Убить процесс если он не завершился
TASKKILL /IM UPSAssistant.exe /T /F
:: Завершить процесс по PID
for /f "tokens=2 delims= " %%a in ('tasklist^|find /I "UPSAssistant.exe"') do (
TASKKILL /PID %%a /T /F )

:: Запуск Процесса
:: Выполнить на локальном компьютере задание "Startup" немедленно, игнорируя любые ограничения
SCHTASKS /Run /I /TN "\UPSAssistant\Startup"
:: Для старой версии
SCHTASKS /Run /TN "UPSAssistant"

:: Проверка что процесс запустился, если нет запускаем
TaskList /FI "ImageName EQ UPSAssistant.exe" 2>nul|Find /I "UPSAssistant.exe">nul||(
Start "" /high "%~dp0UPSAssistant.exe"
)
Для удаления Задач из планировщика и скрипта
Remove UPS Assistant.bat

Код: Выделить всё

@Echo Off
chcp 866 >NUL
TITLE Удаление Скриптов Задач UPS Assistant

@cls
echo.     Удаление Задач в Планировщике и удаление скрипта
echo.     Для UPS Assistant
echo.
@echo off
pause

chcp 866 >NUL

set name=UPSAssistant

:: Планировщик заданий Остановка процесса UPS Assistant & Для старой версии
SCHTASKS /End /TN "\%name%\Startup" & SCHTASKS /End /TN "Startup"
:: Планировщик заданий Остановка процесса Restart-UPS-Assistant.bat & Для старой версии
SCHTASKS /End /TN "\%name%\Restart-UPS-Assistant.bat" & SCHTASKS /End /TN "Restart-UPS-Assistant.bat"

:: Убить процесс если он не завершился
TASKKILL /IM UPSAssistant.exe /T /F
:: Завершить процесс по PID
for /f "tokens=2 delims= " %%a in ('tasklist^|find /I "UPSAssistant.exe"') do (
TASKKILL /PID %%a /T /F )

:: Удаление запланированных задач
SCHTASKS /Delete /TN "\%name%\Startup" /F
SCHTASKS /Delete /TN "\%name%\Restart-UPS-Assistant.bat" /F
SCHTASKS /Delete /TN "\%name%" /F
:: Удалить скрипт 
del /Q "C:\Program Files\Alexey V.Voronin\UPS_Assistant\Restart-UPS-Assistant.bat"
del /Q "C:\Program Files (x86)\Alexey V.Voronin\UPS_Assistant\Restart-UPS-Assistant.bat"
:end
Забегая вперед Получим такие данные в заббикс
Последние Данные
Последние Данные
Переходим к созданию шаблона
Забегая чуть вперед нам для расчета будет необходимы некоторые данные об ИБП пропишем их в макросы
Шаблон ИБП Ассистент
Шаблон ИБП Ассистент
В Узле заполнить макросы
Для ВЕБ формы http UPS Assistant
{$LOGINUPS} - Логин
{$PASSUPS} - Пароль
{$PORTUPS} - Порт
Из Характеристик ИБП
{$WATTSUPS} - Указать Ватты (взять из характеристики 1кВт=1000Вт)
{$NUMOFAKBV} - Кол-во АКБ (подключено последовательно увеличение Вольт)
{$NUMOFAKBAH} - Кол-во АКБ (подключено параллельно увеличение Ач)
{$UPSAH} - Ач ампер-час (для 1 АКБ если последовательно)
{$UPSKPD} - КПД ИБП (0.92 обычно есть в документации)

Нам нужно получить данные с http Assistant в zabbix Элемент данных.
Разумно было сделать запрос по http агента в заббикс, так и было сделано но так как нет явного указания кодировки UTF-8 в коде страницы http Assistant данный элемент отказался работать выдав ошибку неверная кодировка.
HTTP агент попытка снятия данных
HTTP агент попытка снятия данных
Авторизация работает в таком виде http://Логин:Пароль@192.168.XXX.XXX:6547/

Если есть на узле заббикс агент и Curl можно сделать так.
system.run["curl -s -X GET http://{$LOGINUPS}:{$PASSUPS}@{HOST.CONN}:{$PORTUPS}"]
Запрос состояния ИБП через заббикс агент
Запрос состояния ИБП через заббикс агент
И менее требовательный запрос с самого заббикс сервера через Curl
shell.sh["curl -s -X GET http://{$LOGINUPS}:{$PASSUPS}@{HOST.CONN}:{$PORTUPS}"]
Через внешнюю проверку и скрипт
shell.sh

Код: Выделить всё

#!/bin/bash
# Выполнение команд на самом заббикс сервере
$1
Запрос состояния ИБП через Внешний скрипт
Запрос состояния ИБП через Внешний скрипт
Данные в заббикс получили, дальше расспарсиваем по Зависимым элементам данных с регулярками.
На основе полученных данных, делаем Вычислительные Элементы данных
Шаблон ИБП Ассистент Элементы данных
Шаблон ИБП Ассистент Элементы данных
HTTP агент 2
Состояние ИБП get.ups-assistant 1m 90d HTTP агент ИБП-Состояние Деактивировано
Состояние ИБП 1 get.ups-assistant1 1m 90d HTTP агент ИБП-Состояние Деактивировано

Zabbix агент 2
Процесс UPS Assistant Триггеры 1 proc.num[UPSAssistant.exe] 4m 90d 90d Zabbix агент ИБП-Состояние Активировано
Состояние ИБП 2 system.run["curl -s -X GET http://{$LOGINUPS}:{$PASSUPS}@{HOST.CONN}:{$PORTUPS}"] 1m 90d Zabbix агент ИБП-Состояние Деактивировано

Внешняя проверка 1
Состояние ИБП 3 Триггеры 1 shell.sh["curl -s -X GET http://{$LOGINUPS}:{$PASSUPS}@{HOST.CONN}:{$PORTUPS}"] 5m 90d Внешняя проверка ИБП-Состояние Активировано

Зависимый элемент данных 21
Состояние ИБП 3: Напряжение/Заряд АКБ Триггеры 3 ups.dattery.voltage 90d 90d Зависимый элемент данных ИБП-Состояние Активировано
Состояние ИБП 3: Входящее Напряжение переходов в режимы ups.ip.fault.voltage 90d 90d Зависимый элемент данных ИБП-Состояние Активировано
Состояние ИБП 3: Частота на Входе Гц Триггеры 1 ups.ip.frequency 90d 90d Зависимый элемент данных ИБП-Состояние Активировано
Состояние ИБП 3: Проверка На пустое значение Триггеры 1 ups.ip.frequency.null 90d 90d Зависимый элемент данных ИБП-Состояние Активировано
Состояние ИБП 3: Входящее Напряжение Триггеры 2 ups.ip.voltage 90d 90d Зависимый элемент данных ИБП-Состояние Активировано
Состояние ИБП 3: Выходной ток Нагрузка % Триггеры 2 ups.op.current 90d 90d Зависимый элемент данных ИБП-Состояние Активировано
Состояние ИБП 3: Выходное Напряжение Триггеры 1 ups.op.voltage 90d 90d Зависимый элемент данных ИБП-Состояние Активировано
Состояние ИБП 3: Продукт ups.Product 90d Зависимый элемент данных ИБП-Состояние Активировано
Состояние ИБП 3: Отчет от ups.report.from 90d Зависимый элемент данных ИБП-Состояние Активировано
Состояние ИБП 3: Дата отчета ups.report.from.data 90d Зависимый элемент данных ИБП-Состояние Активировано
Состояние ИБП 3: Температура ИБП Триггеры 1 ups.temperature 90d 90d Зависимый элемент данных ИБП-Состояние Активировано
Состояние ИБП 3: USB VID PID ups.vid.pid 90d Зависимый элемент данных ИБП-Состояние Активировано
Состояние ИБП 3: Статусы ИБП в битовом значении ups.status 90d Зависимый элемент данных ИБП-Состояние Активировано

Статусы ИБП в битовом значении: Входное Напряжение отсутствует Триггеры 1 0-bit 90d 90d Зависимый элемент данных ИБП-Состояние Активировано
Статусы ИБП в битовом значении: Батарея разряжена Триггеры 1 1-bit 90d 90d Зависимый элемент данных ИБП-Состояние Активировано
Статусы ИБП в битовом значении: AVR - включен автоматический регулятор напряжения Триггеры 1 2-bit 90d 90d Зависимый элемент данных ИБП-Состояние Активировано
Статусы ИБП в битовом значении: Авария ИБП Триггеры 1 3-bit 90d 90d Зависимый элемент данных ИБП-Состояние Активировано
Статусы ИБП в битовом значении: Работа от Сети Триггеры 1 4-bit 90d 90d Зависимый элемент данных ИБП-Состояние Активировано
Статусы ИБП в битовом значении: Выполняется тест ИБП Триггеры 1 5-bit 90d 90d Зависимый элемент данных ИБП-Состояние Активировано
Статусы ИБП в битовом значении: ИБП Выключается Триггеры 1 6-bit 90d 90d Зависимый элемент данных ИБП-Состояние Активировано
Статусы ИБП в битовом значении: Звуковая световая сигнализация включена Триггеры 1 7-bit 90d 90d Зависимый элемент данных ИБП-Состояние Активировано

Вычисляемое 7
Нагрузка Ампер ups.ampers 5m 90d 90d Вычисляемое ИБП-Состояние Активировано
Заряд АКБ % ups.battery.charge.percentage 5m 90d 90d Вычисляемое ИБП-Состояние Активировано
Емкость Ач (Ah) обратный подсчет (Примерно более 9-10часв) ups.capacity 5m 90d 90d Вычисляемое ИБП-Состояние Активировано
Емкость Ач (Ah) обратный подсчет (Примерно) ups.capacity.ah 5m 90d 90d Вычисляемое ИБП-Состояние Активировано
Заряд 4х АКБ % ups.dattery.voltage.p 5m 90d 90d Вычисляемое ИБП-Состояние Активировано
Нагрузка Вт ups.watts 5m 90d 90d Вычисляемое ИБП-Состояние Активировано
Примерное время работы от АКБ Триггеры 3 ups.working.time.from.battery 5m 90d 90d Вычисляемое ИБП-Состояние Активировано

РАСЧЕТЫ ДЛЯ ВЫЧИСЛЯЕМЫХ ЭЛЕМЕНТОВ ДАННЫХ
Расчет
Расчет
РАСЧЕТЫ
Показать
Характеристики ИБП:
2000 Вт = 2кВт
АКБ 4шт по 7Ah 12Вольт = 48В
КПД инвертора ИБП (в расчёте примеров используем КПД = 0,92)

Высчитаем мощность в Вт зная нагрузку в %
Переведем из процентов в Ватты
2000Вт:100%=20Вт для 1%
20Вт*17%=340Вт
Вычисление Нагрузка Вт
Вычисление Нагрузка Вт
Высчитаем Нагрузка в Ампер
Ваты мы уже знаем, напряжение 220
Ваты : Напряжение = Сила тока A
340:220=1.5А
Примерно: 2000:220=9.09А для 100%
Вычисление Ампер
Вычисление Ампер

Вычислим Заряд АКБ в % по напряжению АКБ
10,5-13,5V - рабочий диапазон
11.82V - 0% заряда
9,5-10V - глубокий разряд

Пример для 4 акб (последовательно)
54.7V:4шт=13.67 (напряжение на контактах при заряде)
11.82V*4=47.28V это 0% заряда
54.7V-47.28V=7.42V (рабочий диапазон от 0% до 100%)
7.42V:100%=0.0742V это 1%
Вычисление Заряд 4х АКБ %
Вычисление Заряд 4х АКБ %
Более универсальный способ из общего напряжения АКБ вычитаем данные расчета от количества акб указанных в макросе
(текущее напряжение - (напряжение 0% * кол-во АКБ последовательно)) : ((напряжение 0% * кол-во АКБ последовательно):100)
(54.7-(11.82*4)) : ((54.7-11.82*4) :100)
(54.7-47.28) : (7.42:100)
7,42:0.0742=100%
Вычисление Заряд АКБ %
Вычисление Заряд АКБ %
Вычисление Примерное время работы от АКБ
{$UPSAH} - Ач ампер-час для 1 АКБ
{$NUMOFAKBAH} - Кол-во АКБ (подключено параллельно увеличение Ач)
{$NUMOFAKBV} - Кол-во АКБ (подключено последовательно увеличение Вольт)
{$UPSKPD} - КПД ИБП (0.92)

T[час] = C[А*час] * V[В] * η / P[Вт], где:
C - рассчитанная ранее суммарная емкость аккумуляторной батареи ИБП в ампер-часах;
V - напряжение одного аккумулятора в вольтах;
η - КПД инвертора ИБП (в расчёте примеров используем КПД = 0,92, более подробная информация в замечаниях);
P - рассчитанная ранее средняя мощность подключенного к ИБП оборудования в ваттах.

емкость АКБ 7Ач * 4шт = 28Ач если подключение параллельное но напряжение 12V
(на клеммах при заряде) 13.6V*4шт=54.7V подключение последовательно акб 7Ач
7Ач*1шт*(54.7.В:4шт)*0.92КПД/340Вт=0.266=26минут
7*13.675*0.92/340=0.26 = 26 минут
7*13.675/340=0,28 без кпд
Для 12 вольт эталон
7*12*0.92/340=0.22
Вычисление Примерное время работы от АКБ
Вычисление Примерное время работы от АКБ
Вычисление Емкость акб (Расчет не обходимой емкости АКБ)

Обратная проверка для (емкость Ah/Ач - ампер час)
C[А*час] = P[Вт] * T[час] / η * V[В]
C - емкость аккумуляторной батареи ИБП в ампер-часах;
P - рассчитанная ранее средняя мощность подключенного к ИБП оборудования в ваттах.
T - Время работы от АКБ
η - КПД инвертора ИБП (в расчёте примеров используем КПД = 0,92, более подробная информация в замечаниях);
V - напряжение одного аккумулятора в вольтах;

340*0,227294118/(0.92*12)
77,28000012/11.04=7,000000011
340*0.22/0.92*12
74.8/11.04=6,775362319

С=(P*t)/U*Kр
P – мощность нагрузки, t – необходимое время резерва, U – напряжение АКБ, Kр – коэффициент разряда (глубина разряда) АКБ (0.6 - 0.8).

Для 7Ач
100*время работы Ч*кВт
формула пригодна для длительного времени работы от аккумулятора, а именно порядка 9-10 часов. Это обусловлено тем, что зависимость ёмкости аккумулятора от времени заряда не имеет линейный характер на всём протяжении.

Если время работы меньше, то необходимо вводить поправки. Это связано с тем, что при маленьком времени ток разряда большой и аккумулятор отдаёт нагрузке только некоторую часть своей ёмкости. Так, если необходимо время работы в 30 минут, то результат надо поделить на два, для 2 часов уменьшить на 40%, для 4 часов – 30%, для 6 часов – 40%. Чтобы определить точно значение необходимо использовать точное значение КПД инвертора, который установлен на ИБП и сопоставить данные с кривого разряда определённого типа аккумуляторов.

100*0.26*0.340=8.84 Ач в% 8.84:100%=0,0884
Для 22 минут
100*0.22*0.340=7.48 Ач (+20% запаса) зависти от температуры АКБ скорость разряда.
7.00:100%=0.07
0.0884-0.07=0.0184

8.84-7.48=1.36 разница
8.84-7.00=1.84 от эталона в% 1.84:100%=0.0184

На вскидку
Для 70Ач
70*13.675*0.92/340=2.59
70*12*0.92/340=2.27

100*2.59*0.340=88.06 в% 88.06:100%=0,8806
100*2.27*0.340=77.18 в% 70:100%=0.7
Получаем: 0.8806-0.7=0.1806

если убавить время до 2.06 то 100*2.06*0.340=70.04Ач

88.06-77.18=10.88Ач разница что то многовато
88.06-70.00=18.06 от эталона
18.06:100%=0.1806
Вычисление Емкость Ач (Ah) обратный подсчет (Примерно более 9-10часв)
Вычисление Емкость Ач (Ah) обратный подсчет (Примерно более 9-10часв)
Вычисление Емкость Ач (Ah) обратный подсчет (Примерно)
Вычисление Емкость Ач (Ah) обратный подсчет (Примерно)

Вычисление Состояние Износ АКБ
Для данного параметра не хватает данных
Нужно знать Силу тока Ампер заряда
(Зная емкость акб : Ампер заряда) * Коэффициент = Время заряда
Если пря зарядке с 0% до 100% потребило меньше Ач значит емкость акб уменьшилась
даже можно прикинуть от процента% например заряд 50% ёмкость 7Ач это 3.5Ач должен потребить с зарядки до 100%

Если сила заряда всегда одинакова можно рассчитать за какое время должен зарядится акб от 0% до 100% , если зарядится быстрее значит есть износ акб. Можно высчитать в процентах.
На новой полностью заряженной акб разрядить , после засечь время зарядки до 100% время будет эталонным, далее если акб начинает заряжаться быстрее емкость акб убывает.
Много различных факторов если ибп работает под нагрузкой и есть провалы входящего напряжения будет переключаться на акб и время заряда увеличиться, температура акб.

Хорошо если есть встроенная функция которая может сообщить об замене АКБ.

Например
Чисто теория взято с других форумов.
ippon back power pro 600 Номинальный ток зарядки - около 700мА = 0.7A (где то 350мА) для 12В 7Ач
Максимальная величина зарядного тока составляет от 0.2 до 0.3 емкости аккумулятора.
Например, если емкость аккумулятора равна 100 А*час, то ток заряда такого свинцового аккумулятора не может превышать 0.2*100=20 А или 0.3*100=30 А (это решает производитель). Самая старая и самая распространенная рекомендация относительно зарядного тока свинцового аккумулятора: "10 процентов от емкости", верна и сегодня. Любой свинцовый кислотный аккумулятор можно заряжать, начиная зарядку с таким током, без боязни как-то повредить аккумулятор.
Начало заряда и завершение заряда разная сила тока, различные факторы например температура акб и тд.
Шаблон ИБП Ассистент Триггеры
Шаблон ИБП Ассистент Триггеры
Триггеры
Информационная AVR - включен автоматический регулятор напряжения {HOST.NAME} {UPSAssistant:2-bit.last()}=1 Активировано

Высокая BatteryCharge<25%: {ITEM.LASTVALUE1}{HOST.NAME} {UPSAssistant:ups.dattery.voltage.last()}<48.1 Активировано

Информационная BatteryCharge<50%: {ITEM.LASTVALUE1}{HOST.NAME} {UPSAssistant:ups.dattery.voltage.last()}<48.9 and {UPSAssistant:ups.dattery.voltage.last()}>=48.1 Активировано

Информационная BatteryCharge<75%: {ITEM.LASTVALUE1}{HOST.NAME} {UPSAssistant:ups.dattery.voltage.last()}<49.7 and {UPSAssistant:ups.dattery.voltage.last()}>=48.9 Активировано

Высокая UPS Недоступно {HOST.NAME}
Зависит от:
ИБП Ассистент: Процесс UPS Assistant не запущен
{UPSAssistant:shell.sh["curl -s -X GET http://{$LOGINUPS}:{$PASSUPS}@{HOST.CONN}:{$PORTUPS}"].iregexp(no-data-ups)}=1 or {UPSAssistant:shell.sh["curl -s -X GET http://{$LOGINUPS}:{$PASSUPS}@{HOST.CONN}:{$PORTUPS}"].iregexp(401 Unauthorized)}=1 or {UPSAssistant:shell.sh["curl -s -X GET http://{$LOGINUPS}:{$PASSUPS}@{HOST.CONN}:{$PORTUPS}"].nodata(25m)}=1 or {UPSAssistant:web.test.error[Проверка Web UPS Assistant].strlen()}>0 and {UPSAssistant:web.test.fail[Проверка Web UPS Assistant].min(11m)}>0 Активировано UPSAssistant

Высокая UPS Нет Значений {HOST.NAME}
Зависит от:
ИБП Ассистент: UPS Недоступно {HOST.NAME}
{UPSAssistant:ups.ip.frequency.null.last()}=0001 Активировано UPSAssistant

Информационная Батарея разряжена {HOST.NAME}
Зависит от:
ИБП Ассистент: ИБП Выключается {HOST.NAME}
{UPSAssistant:1-bit.last()}=1 Активировано

Информационная Время работы АКБ менее 5 мин на {HOST.NAME}
Зависит от:
ИБП Ассистент: UPS Недоступно {HOST.NAME}
ИБП Ассистент: UPS Нет Значений {HOST.NAME}
ИБП Ассистент: ИБП Выключается {HOST.NAME}
ИБП Ассистент: Процесс UPS Assistant не запущен
{UPSAssistant:ups.working.time.from.battery.last()}<=0.05 Активировано

Информационная Время работы АКБ менее 11 мин на {HOST.NAME}
Зависит от:
ИБП Ассистент: Время работы АКБ менее 5 мин на {HOST.NAME}
{UPSAssistant:ups.working.time.from.battery.last()}<=0.10 and {UPSAssistant:ups.working.time.from.battery.last()}>0.05 Активировано

Информационная Время работы АКБ менее 15 мин на {HOST.NAME}
Зависит от:
ИБП Ассистент: Время работы АКБ менее 11 мин на {HOST.NAME}
{UPSAssistant:ups.working.time.from.battery.last()}<0.15 and {UPSAssistant:ups.working.time.from.battery.last()}>0.10 Активировано

Информационная Входная частота не 50Гц {UPSAssistant:ups.ip.frequency.last()}<49 or {UPSAssistant:ups.ip.frequency.last()}>51 Активировано

Информационная Входящее напряжение более 250В {HOST.NAME} {UPSAssistant:ups.ip.voltage.last()}>250 Активировано

Информационная Входящее напряжение менее 196В {HOST.NAME} {UPSAssistant:ups.ip.voltage.last()}<196 Активировано

Информационная Выполняется тест ИБП {HOST.NAME} {UPSAssistant:5-bit.last()}=1 Активировано

Информационная Выходное напряжение более 247В {HOST.NAME} {UPSAssistant:ups.op.voltage.last(#3)}>247 Активировано

Информационная ИБП Авария {HOST.NAME} {UPSAssistant:3-bit.last()}=1 Активировано

Информационная ИБП Входное Напряжение отсутствует {HOST.NAME} {UPSAssistant:0-bit.last()}=1 Активировано

Информационная ИБП Выключается {HOST.NAME} {UPSAssistant:6-bit.last()}=1 Активировано

Информационная ИБП Звуковая световая сигнализация выключена {UPSAssistant:7-bit.last()}=0 Активировано

Информационная Нагрузка выхода>90% {HOST.NAME}
Зависит от:
ИБП Ассистент: Нагрузка выхода>95% {HOST.NAME}
{UPSAssistant:ups.op.current.last()}>90 Активировано

Информационная Нагрузка выхода>95% {HOST.NAME} {UPSAssistant:ups.op.current.last()}>95 Активировано

Внимание/Предупреждение Процесс UPS Assistant не запущен {UPSAssistant:proc.num[UPSAssistant.exe].last()}<>1 or {UPSAssistant:proc.num[UPSAssistant.exe].nodata(11m)}=1 Активировано UPSAssistant

Информационная Работа от АКБ {HOST.NAME} {UPSAssistant:4-bit.last()}=0 Активировано

Чрезвычайная Аварийная Температура батареи={ITEM.VALUE} на {HOST.NAME} {UPSAssistant:ups.temperature.last(0)}>40 Активировано


Графики 7
Шаблон ИБП Ассистент Графики
Шаблон ИБП Ассистент Графики
Температура ИБП 900 200 Нормальный
Текущая Нагрузка Вт 900 200 Нормальный
Текущая Нагрузка Ампер 900 200 Нормальный
Напряжение Вход Выход 900 200 Нормальный
Напряжение/Заряд АКБ 900 200 Нормальный
Нагрузка ИБП 900 200 Нормальный
Выходная частота ИБП 900 200 Нормальный


Веб-сценарии 1
Проверка Web UPS Assistant 1 5m 3 Нет Нет ИБП-Состояние Активировано
Шаблон ИБП Ассистент Веб-Сценарий
Шаблон ИБП Ассистент Веб-Сценарий
Вычисление Заряд 4х АКБ %
Вычисление Заряд 4х АКБ %
количество слов: 2272

Вернуться в «Питание: Измерение распределение блоки питания; ИБП»