Настройка apc smart ups 1500 через usb
В общем, настроив и запустив всё это дело я обломался. Ибо apcupsd не мог установить связь через USB. Пришлось разбираться. Установил usbutils:
и поглядел на вывод lsusb:
Опачки, никаких признаков подключенного по 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 (ей проще всего).
То есть устанавливаем screen, останавливаем сервис бесперебойника (чтобы не лез в консоль), ну а последняя строка включает виртуальную консоль с подключением к бесперебойнику через порт /dev/ttyS0 (com1) на скорости 2400 бод. Остальные настройки стандартны (один стоп, без четности, 8 бит), поэтому мы их не трогаем.
Общение через консоль возможно текстовыми командами и может осуществляться в двух режимах - просто SMART (включается по послыке Y, ответ бесперебойника SM), либо в режиме PROG, позволяющем менять настройки (включение - посылка двух 1 с интервалом в 3-4 секунды).
Если кратко, то когда я начал глядеть регистры - ужаснулся: бесперебойник не знал кто он, почти все регистры содержали FF (все единицы), то есть на лицо была полная амнезия.
Самый примечательный момент, что бесперебойник думал, что он выпущен для канады (M в конце модели), причем вопреки всем описаниям в нете поменять этот параметр у меня почти не получилось. Но по-порядку.
Идея лечения
Итак, больному был поставлен диагноз "амнезия с последующим навязчивым состоянием", поэтому для лечения были испробованы много методов. Подошли два (ну, или полтора).
Регистры 4-6 отвечают за какие-то внутренние процессы, нормального описания что они делают я так и не нашел. Но вот регистр 0 это изначальное состояние "качества" батареи. Если там будет 00, то бесперебойник считает батарею клинически мёртвой. Параметр изменяется в процессе эксплуатации самим бесперебойником (при самотестировании и при калибровке), но при замене батарей надо бы записать его назад, иначе будет не хорошо.
Итак, что прописать я знал, а вот осуществить переписывание.
В общем, при запросе версии прошивки я получал странный ответ ". 3.M". Эти цифры описывают свойства бесперебойника. Последняя буква - регион. И буква M означает, что этот агрегат выпущен для канады. Вопросики - не отображаемые в данной кодировке консоли символы.
Анализ версии прошивки в старом формате показал, что это вообще стоечный вариант для серверов, а никак не тот "отдельный" бесперебойник, которым он на самом деле является. В общем, навязчивое состояние во всей красе. Судя по региону он считал себя Теренсом и Филлипом в одном флаконе.
- бесперебойник считал, что у него четыре батареи (48в номинального напряжения, вариант же стоечный), а не две. При этом текущий заряд батарей из-за сбросившегося множителя АЦП контроля напряжения был на максимуме, и хотя батареи были при этом разряжены, он показывал их напряжение в 55 с лишним вольт;
- выходное напряжение по мнению бесперебойника было 208в (Канада, серверный вариант);
- входное напряжение также по мнению бесперебойника отличалось от 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, отпускать, нажимать просто А, без контрола (маленькую а, без шифта).
Но оживить удалось, причем в результате двумя способами: убедить как есть и провести сеанс электрошоковой терапии (стереть память) с последующей психотерапией.
Калибруем батарею (точнее, их неправильное количество)
Жмем 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 и выключаем сервер:
После выключения переключаем сервер на питание от сети, а к бесперебойнику подбираем какую-нибудь известную нагрузку (пару ламп на 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:
Screen в соседнем окне терминала вылетит в командную строку с криком:
Terminated
[screen is terminating]
Запускаем утилиту apctest, который после некоторого тупления и общения с бесперебойником выдаст меню:
Какой автор догадливый. А вот интересно, какая польза от этого совета констатирующего *банальный* факт?
Дело в том что у всех белых людей пролификовское добро давным давно по дефолту плагнплюйно работает по принципу "воткнули девайс - само нашлось и заработало". У этого пролифика даже VendorID и DeviceID походу стандартные, родные - в любой адекватной линуксовой системе просто подцепится и заработает.Сразу.Если у кого-то хватило ума выковырять драйвер пролифика из своего кернеля (или майнтайнеры блеснули гениальностью) - кто ж дятлам доктор что кто-то стрельнул себе в пятку.
Итого весь совет сводится к констатации факта: да, если **нуть драйвер из ядра - он действительно не будет работать и потом можно отхватить тупых проблем.Вы прикиньте?!Сюрприз!
|