пятница, 29 июля 2016 г.

Лечение психических расстройств ИБП на примере APS Smart-UPS 1000 (и калибровка)

Итак, предыстория. Дома есть сервер, есть комп жены и есть старенький проектор, лампа которого может очень обидеться на резкое пропадение напряжения. Поэтому в кладовке с сервером стоит достаточно мощный бесперебойник, к которому эти три потребителя подключены. Зовут его APC Smart-UPS 1000, модель SUA1000I.


Всё бы ничего, но в один прекрасный день бесперебойник посетило психическое расстройство...



Да, согласен, видок у него тот еще. Да и общий бардак в кладовке из-за неудобного размещения севера. Не подумал, надо было напротив входа ставить.

Его мощность 1000 ВА или примерно 630 Вт (в случае импульсных потребителей). Внутри живут две батареи по 12В, 12А/ч, что даёт 288 Вт/ч ёмкости. Мощности-то в принципе хватает, а вот время работы от родных батарей было не очень, плюс они старые и эксплуатируются при повышенной температуре (юг, как-никак).

Да и как водится у бесперебойников, последний комплект батарей он банально "надул" (перегрел при заряде, вплоть до деформации корпуса). Для увеличения времени работы от батарей были куплены два 53А/ч автомобильных аккумулятора, с которыми сервер мог работать уверенно несколько часов. А уж сколько он держал чисто сервер...


В смысле раньше держал, до тех пор, пока не сошел с ума.

Симптомы

Обнаружил я это случайно. Сначала он перестал нормально держать заряд, при отключении света тянул даже чисто сервер очень мало,. Я грешил на аккумуляторы и температуру в кладовке. Но потом он перестал даже включаться, то есть включался, врубал самотестирование (временно переходил на батареи) и начинал визжать, мигая лампой  необходимости замены батарей.

Когда руки дошли его откалибровать, я столкнулся с трудностями. По порядку. В общем, подцепил к серверу (для информации - стоит Centos 7) и начал установку необходимого ПО.

Настройка сервера

Для начала был установлен apcupsd (демон работы с бесперебойниками), его web-консолька apcupsd-cgi и httpd (веб-сервер apache).

# yum -y install httpd apcupsd apcupsd-cgi

После установки надо заставить исполнять cgi скрипты, иначе не будет видно web-консольку.

Идем в /etc/httpd/conf/httpd.conf и исправляем.
В разделе <Directory "/var/www/html"> (строка 131) правим:
Options Indexes FollowSymlinks ExecCGI (строка 144)
Это разрешит исполнение CGI скриптов.

Далее надо разрешить симлинки и не только внутри <Directory "/var/www/cgi-bin"> (строка 255). Заменяем опции на:
Options Indexes FollowSymlinks (строка 257)

Если правильно помню, cgi скрипты сами по себе исполняться будут, подключение дополнительных модулей апачу не нужно. Ну да ежели чего - описаний в нете навалом.

Далее надо перетащить скрипты apcupsd-cgi в папку cgi-bin:
# ln -s /var/www/apcupsd /var/www/cgi-bin/apcupsd
Это создаст символическую ссылку, и именно для неё надо было разрешить символические ссылки в cgi-bin.

Теперь надо поправить /etc/apcupcd/apcupsd.conf. Для моего бесперебойника ничего не понадобилось менять, т.к. подключение по USB было уже настроено. Для других ИБП или вариантов подключений надо будет настроить соответственно.

После этого можно настроить запуск и запустить сервисы:
# systemctl enable httpd
# systemctl enable apcupsd
# systemctl start httpd
# systemctl start apcupsd

Теперь можно открыть браузер и поглядеть на дело рук своих. Открываем браузер и идём по адресу http://адрес-сервера/cgi-bin/apcupsd/multimon.cgi

Будет показано нечто вроде:


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

Что я увидел после запуска

В общем, настроив и запустив всё это дело я обломался. Ибо apcupsd не мог установить связь через USB. Пришлось разбираться. Установил usbutils:

# yum -y install usbutils

и поглядел на вывод lsusb:

# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Опачки, никаких признаков подключенного по USB бесперебойника. Замена кабеля не дала ничего. Тут я начал подозревать нехорошее...

Пришлось искать альтернативу. К счастью, есть разъем сигнализации, через который бесперебойник можно прицепить к com-порту. И схема элементарная:


Надо только найти доноры разъемов. Когда доноры обнаружились, открылся забавный факт - это и был нужный кабель, изготовленный давным-давно. И рабочий.

Пришлось только прописать, что это кабель этой модели, подключенный к порту COM1 (/dev/ttyS0) в файле /etc/apcupsd/apcupsd.conf:

UPSCABLE 940-0024C
UPSTYPE apcsmart
DEVICE /dev/ttyS0

После перезапуска демона (systemctl restart apcupsd) удалось добраться до бесперебойника. Оказалось, что это какой-то совсем странный, неизвестный науке зверь - Smart-???2 XL RM.
Пришлось выключить apcupsd и подключаться консолью, для чего понадобится утилита screen (ей проще всего).

# yum -y install screen
# systemctl stop apcupsd
# screen /dev/ttyS0 2400

То есть устанавливаем screen, останавливаем сервис бесперебойника (чтобы не лез в консоль), ну а последняя строка включает виртуальную консоль с подключением к бесперебойнику через порт /dev/ttyS0 (com1) на скорости 2400 бод. Остальные настройки стандартны (один стоп, без четности, 8 бит), поэтому мы их не трогаем.

Общение через консоль возможно текстовыми командами и может осуществляться в двух режимах - просто SMART (включается по послыке Y, ответ бесперебойника SM), либо в режиме PROG, позволяющем менять настройки (включение - посылка двух 1 с интервалом в 3-4 секунды).

Если кратко, то когда я начал глядеть регистры - ужаснулся: бесперебойник не знал кто он, почти все регистры содержали FF (все единицы), то есть на лицо была полная амнезия.

Самый примечательный момент, что бесперебойник думал, что он выпущен для канады (M в конце модели), причем вопреки всем описаниям в нете поменять этот параметр у меня почти не получилось. Но по-порядку.

Идея лечения

Итак, больному был поставлен диагноз "амнезия с последующим навязчивым состоянием", поэтому для лечения были испробованы много методов. Подошли два (ну, или полтора).

Основополагающим документом для лечения было вот это описание команд:
apc-fix.com/?r=attach2&a=dl&id=198

Также  полезным оказалось руководство от apcupsd:
http://www.apcupsd.org/manual/manual.pdf,
содержащее на странице 54 информацию о изначальных установках регистров для моей модели бесперебойника (формат изменён, чтобы удобнее было читать):

Модель: SUA1000I
Регистр 4: 07
Регистр 5: B5
Регистр 6: 13
Регистр 0: BC
Firmware: 652.12.I

Регистры 4-6 отвечают за какие-то внутренние процессы, нормального описания что они делают я так и не нашел. Но вот регистр 0 это изначальное состояние "качества" батареи. Если там будет 00, то бесперебойник считает батарею клинически мёртвой. Параметр изменяется в процессе эксплуатации самим бесперебойником (при самотестировании и при калибровке), но при замене батарей надо бы записать его назад, иначе будет не хорошо.

Итак, что прописать я знал, а вот осуществить переписывание....

В общем, при запросе версии прошивки я получал странный ответ "???.3.M". Эти цифры описывают свойства бесперебойника. Последняя буква - регион. И буква M означает, что этот агрегат выпущен для канады. Вопросики - не отображаемые в данной кодировке консоли символы.

Анализ версии прошивки в старом формате показал, что это вообще стоечный вариант для серверов, а никак не тот "отдельный" бесперебойник, которым он на самом деле является. В общем, навязчивое состояние во всей красе. Судя по региону он считал себя Теренсом и Филлипом в одном флаконе...

Неприятными моментами тут были:
  1. бесперебойник считал, что у него четыре батареи (48в номинального напряжения, вариант же стоечный), а не две. При этом текущий заряд батарей из-за сбросившегося множителя АЦП контроля напряжения был на максимуме, и хотя батареи были при этом разряжены, он показывал их напряжение в 55 с лишним вольт;
  2. выходное напряжение по мнению бесперебойника было 208в (Канада, серверный вариант);
  3. входное напряжение также по мнению бесперебойника отличалось от 220в в розетке.

В общем, полный капут. И если научить его правильно измерять напряжения в розетке и на батарее еще можно (есть настройки, об этом далее), то четыре батареи... Хотя, на самом деле и это не проблема.

Лечение и его разновидности

Так как пациент считает себя другим человеком, почему бы не создать ему условия для нормальной работы? Считает он себя рыбой? Так убедим в том, что воздух это вода и пусть себе дышит этой "водой".

Напряжение в розетке влияет только на работу стабилизатора и моменты перехода на батарею. Поэтому, его вполне можно поправить как нужно для имеющейся версии с помощью масштабного коэффициента (через настройки).

Напряжение на выходе. Да пусть выдает, сколько ему хочется. Это поправится частично тем же масштабным  коэффициентом, а также фактом того, что трансформатор внутри, обеспечивающий выходное напряжение, стоит от правильной модели.

Остаётся проблема с четыремя батареями. Но это не проблема. Берём масштабный коэффициент и меняем его так, чтобы 24в превратились в 48. Подключены 2 свинцово-кислотные батареи, которые в режиме поддержки (используемом в бесперебойнике для постоянного поддержания батарей в заряженном состоянии) требуют напряжение 2.32 В на ячейку, то есть  для пары аккумуляторов это 2.32*6*2 = 27,84 В. Это при 20 градусах. А при бОльшей или меньшей температуре напряжение надо уменьшать или увеличивать на 0,025 В на градус. То есть для 27 градусов надо обеспечить примерно 17,6 В. На самом деле можно и чуть больше, лишь бы не превысить 29,5в, так как начнется бурное выделение водорода.

Запускаем консоль и включаем режим программирования, нажав 1, обождав 4 секунды и нажав еще раз 1. Получим ответ PROG.

Для просмотра номера модели надо послать ^A (то есть нажать Ctrl и не отпуская нажать латинскую A). Но в screen эта ^A отвечает за всякие настройки, поэтому там надо жать Ctr+A, отпускать, нажимать просто А, без контрола (маленькую а, без шифта).

У меня это действие вывело невообразимую чушь. Причем, исправить заблуждение  через изменение модели бесперебойника (настройка b) мне так и не удалось.

Но оживить удалось, причем в результате двумя способами: убедить как есть и провести сеанс электрошоковой терапии (стереть память) с последующей психотерапией.

Калибруем батарею (точнее, их неправильное количество) 

Попытаемся исправить проблему с неправильным количеством батарей путём коррекции измеряемого напряжения. Первым делом надо включить режим PROG. Запускаем консоль, нажимаем 1, ждём чуть больше трех секунд, опять жмём один. Любуемся на ответ PROG.

Жмем shift+b, чтобы послать заглавную B. В ответ я получим цифру вроде 55.74, которую получил я (множитель был задвинут в максимальные FF). Это измеренное сейчас напряжение на батарее с учётом примененного множителя. При таких показаниях мой бесперебойник думал, что батарея заряжена по самое немогу и даже не пытался дозарядить.

А вот вольтметр показывал 26 с копейками, что весьма неприятно. Поэтому первой моей задачей было заставить бесперебойник заряжать батареи. То есть объяснить ему, что сейчас напряжение меньше нужного, а потом обеспечить правильное напряжение заряда.

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

Так что цепляем параллельно аккумуляторам вольтметр и начинаем крутить множитель следующим образом: после нажатия B беспребойник сообщает текущее измеренное значение, и если следующими посланными символами будут + или -, то он будет корректировать множитель (не так чтобы напрямую на единицу туда или сюда, но все же изменять), увеличивая или уменьшая его значение, что будет отражаться на измеренном напряжении батарей.

После нажатия + ,  беспербойник ответил 00 (что есть FF + 1, произошел переход через ноль) и я немедленно услышал щелчок реле и гул преобразователя, обеспечивающего заряд батареи. Ну и напряжение на батарее поползло вверх.

Жмём B, смотрим текущее напряжение. У меня было что-то вроде 11 вольт (множитель стал 0), теперь жмём попеременно + (можно несколько раз) и B и подгоняем вывод под нужный нам.
Вольтметр показывал 26,63 В, поэтому я постарался подогнать вывод B поближе к  53.0 (это удвоенные 26.5 В), чтобы бесперебойник не насиловал батарею, и в то же время был ближе к режиму заряда аккумуляторов с классическим электролитом, а не с гелевым (у них напряжение чуть меньше). При перелёте можно послать -, что уменьшит множитель.

После заряда батареи до почти полного состояния этот множитель также  должен быть подогнан, чтобы получить 27,6-27,7 в на батареях, но уже не взирая на показания измеренного напряжения бесперебойника. Ну и еще несколько раз потом проконтролировано.

Прописываем начальные настройки.

Прежде всего - надо занести регистры 0 (состояние батареи) и 4, 5, 6. Жмем соответствующую цифру, посылая её бесперебойнику, смотрим на ответ и жмём + или -, чтобы получить нужное значение (см. нужные значения выше).

В таком состоянии уже идёт зарядка батарей, но надо настроить остальные параметры. Ну, удалось занести, настроить напряжения, переходы в тот или иной режим, запустить сервер и, смирившись с некоторыми непонятками в выводе проверить работу.

К сожалению, после приведения бесперебойника в относительно рабочее состояние, оценки связи с apcupsd, мне пришла в голову гениальная идея - вышибить клин клином - провести электрошок, то есть осуществить полный сброс настроек (команда ^Y). Поэтому описание настроек переключения на батареи я опишу в разделе второго метода лечения, так как точно не помню значений, которые были занесены в память и чего я там ему в первый раз накрутил.

Электрошоковая терапия

Итак, терять нечего, с командами разобрался, даже батареи зарядил (обязательная штука). Так почему не попробовать полностью сбросить настройки? Разве что факт, что я не мог быть на 100% уверен, удастся ли мне вообще достучаться до бесперебойника после сброса.

Так что если захотите повторить - вы сделаете это на свой страх и риск, и главное - ДЕЛАЙТЕ ЭТО ПОСЛЕ ЕДЫ, зарядив бесперебойник.

Первым делом  запрещаем запуск apcupsd и выключаем сервер:

# systemctl disable apcupsd
# shudown now

После выключения переключаем сервер на питание от сети, а к бесперебойнику подбираем какую-нибудь известную нагрузку (пару ламп на 100 Вт, 220 В, к примеру). Далее включаем сервер (или другой компьютер, куда подключите бесперебойник) и нагрузку.

Если не запретить запуск apcupsd, то после сброса настроек, когда бесперебойник впадёт в маразм, есть шанс самоотключения сервера. Да и вообще, мешается он консоли пока что.

Переходим в консоль, запускаем screen, переходим в режим PROG и сбрасываем настройки, нажав Ctrl и Y. Возможно, надо нажать пару раз. В результате бесперебойник ответит OK и запустит панику (впадёт в кому).

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

НО. Хотя бы на батареях, при нагло зажатой кнопке включения можно с ним пообщаться, работа

В консоли запускаем режим PROG и смотрим версию через ^Aa и через b. У меня после сброса он стал считать себя Smart-UPS 500 разновидности D, то есть для рынка США. То есть номинально батареи 24в (как оно и есть), но при этом напряжение сети 110в. То есть сильно не получшело, но хотя бы батареи правильно стали. Хотя, конечно же, хрен редьки не слаще.

Напряжение сети

Итак, мы имеем на руках идиота. Надо научить его хотя бы есть самостоятельно, то есть надо обеспечить включение от сети. Для чего надо хотя бы объяснить, что она есть.

Можно ознакомиться с номинальным выходным напряжением бесперебойника, нажав o (малое латинское O). Он ответит что-то вроде 110, 208 или 230, в зависимости от половой идентификации.

Теперь о напряжении на входе. Жмём L, получаем что-то вроде 210.7, то есть сколько вольт сейчас на входе бесперебойника. У меня после сброса оно было 000.0, то есть сеть не видать (множитель сбросился в ноль).

Пока что оно нам надо только для запуска, то есть в районе номинального выхода. Жмём + и L попеременно, (+ можно по нескольку раз), пытаясь довести до номинального для нашей модели бесперебойника (или сколько он там думает). То есть в моём случае до 110в. Точность рояля не играет, это потом нужно будет. Где-то в районе 100 (измеренного напряжение) в моём случае бесперебойник перешел из аварийного режима в относительно нормальный, перейдя на питание от сети.

Теперь жмём l (малая L), получаем наименьшее напряжение перехода на батареи. Я у себя я установил l, выбирая наименьшее значение (жал попеременно + и l, пока не определил минимум и на следующем цикле не оставил его). Я для своего "псевдоамериканца" поставил 97. Запоминаем это значение, оно далее пригодится.

Жмём u (малая U), это максимальное напряжение перехода на батареи (для защиты оборудования от перенапряжения).  Смотрим какие есть варианты (жмём + и u), оставляем максимум (у меня 133). Записываем его.

Теперь надо решить при каких напряжениях должен происходить РЕАЛЬНЫЙ переход на батареи. Для чего надо знать, что обычно творится у вас в сети. И тут уж сами помучайтесь, периодически записывая напряжения в сети.

Но главное, нам надо определиться, какой диапазон нам приблизительно нужен. Например, в моей сети часто бывает меньше 200 В. Обычно это от 195 до 230 В. Меньше бывает редко, больше - крайне редко, хотя 324 В в розетке было, даже фото имеется.

Итак, есть интересующий дипазон [195, 230] , есть диапазон [l,u]=[97,133]. Нам надо определить какой множитель ставить в измеряторе напряжения. Считаем коэффициент a = 97/195=0.5 и b=133/230=0,58. Как видим, имеется очень "вкусный" вариант с коэффициентом 0.5, когда показания будут отличаться от реальных ровно в 2 раза. Надо только установить верхний предел переключения в 230*0,5=115в, хотя на самом деле современные приборы прекрасно будут работать при повышенном напряжении. Я снизил порог до 127в.

Далее, берем вольтметр, измеряем напряжение в розетке и подгоняем показания L к нужному. Для коэффициента 0,5 и напряжении в розетке 210в надо получить 210*0,5=105 в показаниях. Жмём + или - и контролируем нажимая L.

Батареи и их калибровка

Посмотреть номиральное напряжение батарей можно нажав g. До сброса показывало 48, после сброса начало показывать 24.

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

Прописываем начальные настройки

Регистры 0, 4, 5, 6 - как описано выше. Не забываем про них, особенно про 0, так как это коэффициент емкости батарей, описывает их "живость".

Корректное отображение нагрузки

Вот тут понадобится одна-две (а то и больше) ламп накаливания. Нагружаем бесперебойник и смотрим чего нам скажет про нагрузку, послав ему P (большое латинское p).

Мне изначально сообщило 000.0, так как множитель был сброшен. Жмём - и подгоняем по вкусу. Мне удалось довести до 032.1 при множителе FF для нагрузки примерно в 280 Вт (300Вт лампа при пониженном напряжении в сети). Это примерно соответствует номиналу, так как для лампы 280 Вт это как раз примерно 320-350 ВА, то есть треть от номинальных 1000 ВА бесперебойника).

Настраиваем оставшиеся параметры

1) Версия ПО процессора, получается по b. В руководствах в сети написано, что его можно изменить, нажав  после этого + и введя новую версию. Но у меня и до, и после сброса оно принимало только 3 символа. Я прописал 652 и получил после сброса модель 652.3.D.

2) Идентификатор ИБП, получается по c. Жмём + и прописываем 8 символов нового идентификатора. У меня аккурат влезло SUA1000I.

3) Порог возврата питания после разряда батарей,  получается по e, может принимать фиксированные значения (00, 15, 50, 90), перебираемые циклически по +/-. Поставил 15 (фактическое значение 01), чтобы после подачи питания он ожидал 15% заряда батарей. В противном случае если выключат свет и бесперебойник выключится, исчерпав заряд, а потом сразу после подачи питания включится, а свет снова выключат, то есть шанс получить аварийное выключение питания до отключения сервера, что не идёт на пользу жестким дискам...

4) Серийный номер ИБП, получается по n. Можно посмотреть на задней панели бесперебойника, под номером модели:

Я прописал свой. Кстати, первые две буквы - модель ИБП, первые две цифры (03) - год производства бесперебойника.

5) Дата производства ИБП, получаем по m, жмём + и прописываем что хотим. Например 01/01/03. Как-то в таком формате. Чисто информационная запись.

6) Дата последней замены батарей, получаем по x, чисто информационная. Аналогично дате производства прописал 01/01/15.

6) Чувствительность ИБП. получается по s, циклически переключается +/-, возможные значение H,M,L,A (высокая, средняя, низкая, авто, и у меня нет A.) Выставил M.

7) Количество подключенных доп. батарей, получаем по >. До сброса было 255, что весьма забавно. После стоял 0, что я и оставил.

Точная калибровка напряжения заряда аккумуляторов и времени работы от батарей

Нам надо обеспечить зарядку корректным напряжением. Для чего до полной зарядки (пока не покажет 100% заряда и даже после этого несколько раз в течение дня-двух) производим контроль напряжения батарей (режиме PROG посылаем B) и производим коррекцию множителя так, чтобы напряжение выдаваемое бесперебойником на батареи не превысило выбранный максимум (напоминаю, для моих батарей это 27,6 В). На цифры возвращаемые B не смотрим, а контролируем вольтметром реальное напряжение на батарее и соответственно корректируем множитель B.

Помним, что если на батарее напряжение больше необходимого, то жмём B, затем + и ждём некоторое время,а если меньше необходимого, то B и - и тоже чутка ждём. Время ожидания тем меньше, чем ближе заряд к 100%.

Для контроля степени заряда из консоли жмём f, получим что-то вроде 085.0 для 85% заряда. Подчёркиваю, что это МНЕНИЕ бесперебойника и оно будет правильным только после КАЛИБРОВКИ ЕМКОСТИ.

Калибровка емкости

Для этого нам снова понадобятся лампочки. В идеале - на половину мощности бесперебойника. То есть для 1000 надо бы надыбать 400 Вт нагрузки. Хотя хватит по идее и 200.

Закрываем консоль связи, для чего открываем новое окно терминала и убиваем screen:

# killall screen

Screen в соседнем окне терминала вылетит в командную строку с криком:

Terminated
[screen is terminating]

Запускаем утилиту apctest, который после некоторого тупления и общения с бесперебойником выдаст меню:

# apctest 

2016-07-22 16:19:55 apctest 3.14.12 (29 March 2014) redhat
Checking configuration ...
sharenet.type = Network & ShareUPS Disabled
cable.type = Custom Cable Smart
mode.type = APC Smart UPS (any)
Setting up the port ...
Doing prep_device() ...

You are using a SMART cable type, so I'm entering SMART test mode
Hello, this is the apcupsd Cable Test program.
This part of apctest is for testing Smart UPSes.
Please select the function you want to perform.

1) Query the UPS for all known values
2) Perform a Battery Runtime Calibration
3) Abort Battery Calibration
4) Monitor Battery Calibration progress
5) Program EEPROM
6) Enter TTY mode communicating with UPS
Q) Quit

Нас интересует калибровка времени работы батарей, то есть пункт 2. Подключаем нагрузку к бесперебойнику и жмем 2 и ввод. Бесперебойник перейдет на батареи и останется там до тех пор, пока не разрядит аккумуляторы. Опять-таки, по его мнению, то есть возможно он потеряет сознание раньше. Именно поэтому нам и нужна нагрузка в виде лампочек, а не в виде сервера...

Для запуска выбираем пункт 2:

Select function number: 2

First ensure that we have a good link and 
that the UPS is functionning normally.
Simulating UPSlinkCheck ...
Wrote: Y Got: SM
Attempting to use smart_poll() ...
Sent: Y Got: SM  Good -- smart_poll() works!.

Checking estimated runtime ...
Current runtime is 50 minutes
Checking for battery level ...
Battery level is 100.0 -- OK

The battery calibration should automatically end
when the battery level drops below about 25, depending
on your UPS.

I can also optionally monitor the progress
and stop the calibration if it goes below 10. However,
in the case of a new battery this may prematurely end the
calibration loosing the effect.

Do you want me to stop the calibration
if the battery level goes too low? (y/n): n

Последней строчкой нас спросили, надо ли играть труса при разряде аккумуляторов. Отвечаем n, чтобы разряд шел до победного конца и процесс начинается

Sending Battery Calibration command. ...
UPS has initiated battery calibration.
Monitoring the calibration progress ...
To stop the calibration, enter a return.

Battery charge 100
Remaining runtime is 41 minutes

Дальше ползут точечки и он периодически отчитывается:
.....
Battery charge 100
Remaining runtime is 38 minutes

На цифры в случае автоаккумов можно особо не смотреть. Сколько проработает, столько проработает. Подозреваю, что для них надо в регистр 0 прописывать FF.

При действительно заряженных аккумуляторах тест будет идти довольно долго. Самая пессимистичная оценка для моего случая может быть рассчитана.

Итак, подключена лампа на 300Вт. Будем считать, что она так и получает эти 300Вт или, при пересчете на В*А это будет примерно 375 ВА.

Емкость аккумуляторов 53 А/ч, при этом их два штуки, то есть для полностью заряженных аккумуляторов получаем 24 В * 53 А/ч = 1272 Вт/ч, то есть разряда ждать аж три часа. 

На самом деле еще есть такая штука как КПД преобразования, потеря емкости батареями от пребывания не в режиме, разброс заряда подключенных последовательно аккумуляторов, неполный их заряд, разница в качестве работы при длительном потреблении приличных токов... В общем, куча проблем, поэтому время будет в несколько раз меньше.

После окончания (какое бы оно ни было) нам надо зарядить батареи до 100% (не забываем поглядывать за напряжением) и после этого ПОВТОРИТЬ ТЕСТ ЕЩЁ КАК МИНИМУМ РАЗ. А еще лучше - пару раз, с интервалом в несколько дней. Не верьте бесперебойнику, когда он будет рапортовать о 100% заряда аккумуляторов. Надо после полного заряда подождать день-другой.

После этого бесперебойник будет полностью функционален (хотя у него могут остаться некоторые иллюзии насчет его половой идентификации, как в моём случае).

Кстати, часть настроек (напряжения перехода, минимальная емкость включения и некоторые другие) можно поменять через пункт 5 Program EEPROM.