== Чтение и запись параметров в MC04-UPS1200 по протоколу MC04 == === 1. Настройки UART MC04-UPS1200=== 115200, 8bit, odd, stop 1. === 2. Команды MC04-UPS1200 === UPS-1200 поддерживает следующие команды: 0x00, 0x01, 0x07, 0x08, 0x09, 0x11, 0x12. Назначение и формат команд дан в [wiki:AdcProtocol описании протокола MC04]. Уточнение для команды CMND = '''0x01''' (ответ 0x81) - опрос составных частей(модулей, плат, портов) устройств MC04. Формат команды: "7E 00 01 NUM CSUM 7E". В байте NUM команды передаётся номер модуля(порта или платы), в зависимости от значения которого команда имеет разное назначение и ответ. - NUM = 0 - Опрос параметров центральной платы RC-01 - NUM = 1 - Опрос параметров АКБ. - NUM = 2,3,4,5 - Опрос параметров выпрямителя RC-48 установленного в слот 2,3,4 или 5 (имеет смысл отправлять только для тех слотов в которые установлены выпрямители, признак наличия выпрямителя в слоте передается в ответе на CMND=0) === 2. Расшифровка ответов на команды мониторинга === В зависимости от версии устройства длина ответа может быть разной, но максимальный размер поля DATA ограничен 74 байтами. Если в ответе устройства не хватает части переменных, значения этих переменных в базе заполняются нолями. ==== Ответ на команду CMND=0 ==== ||= № байта =|| ||= OID =||= Тип =||= Прим. =|| || || 0x7e (FlAG) || || || || || 0|| 0x7F (ADDR) || || || || || 1|| 0x80 (CMND) || || || || || 2|| 0x7e Аппаратная версия устройства = расширенная || || || || || 3|| 0x04 Аппаратная версия устройства = UPS-1200 || || || || || 4|| бит 7 – Общая авария ||adc.10001.1.0||int, ro|| || || 4|| биты 6..0- Программная версия ||adc.10001.2.0||int, ro|| || || 5|| бит 1 - Наличие RM-48 №1 ||adc.10001.9.1.1.0||int, ro|| || || 5|| бит 2 - Наличие RM-48 №2 ||adc.10001.9.2.1.0||int, ro|| || || 5|| бит 3 - Наличие RM-48 №3 ||adc.10001.9.3.1.0||int, ro|| || || 5|| бит 4 - Наличие RM-48 №4 ||adc.10001.9.4.1.0||int, ro|| || || 6|| пока не используем|| || 7|| Расширенная программная версия(подверсия) ||adc.10001.3.0||int, ro|| || || 8, 9|| U,,нагрузки,, ||adc.10001.4.1.0||int, ro||*3|| || 10, 11|| U,,АКБ,, ||adc.10001.4.2.0||int, ro|| || || 12, 13|| U,,220,, ||adc.10001.4.3.0||int, ro|| || || 14, 15|| I,,нагрузки,, ||adc.10001.4.4.0||int, ro|| || || 16, 17|| I,,АКБ,, ||adc.10001.4.5.0||int, ro|| || || 18, 19|| P,,выпрямителей,, ||adc.10001.4.6.0||int, ro|| || || 20, 21|| T,,АКБ,, ||adc.10001.4.7.0||int, ro|| || || 22|| бит 0 - Датчик 1 ||adc.10001.5.1.0||int, ro|| || || 22|| бит 1 - Датчик 2 ||adc.10001.5.2.0||int, ro|| || || 22|| бит 2 - Датчик 3 ||adc.10001.5.3.0||int, ro|| || || 22|| бит 3 - Датчик 4 ||adc.10001.5.4.0||int, ro|| || || 23|| пока не используем|| || 24|| бит 1 - Автомат 1 ||adc.10001.6.1.0||int, ro|| || || 24|| бит 2 - Автомат 2 ||adc.10001.6.2.0||int, ro|| || || 24|| бит 3 - Автомат 3 ||adc.10001.6.3.0||int, ro|| || || 24|| бит 4 - Автомат 4 ||adc.10001.6.4.0||int, ro|| || || 24|| бит 5 - Автомат 5 ||adc.10001.6.5.0||int, ro|| || || 24|| бит 6 - Автомат 6 ||adc.10001.6.6.0||int, ro|| || || 25|| пока не используем|| || 26|| бит 0 - Авария Потеря 220 ||adc.10001.7.1.0||int, ro|| || || 26|| бит 1 - Авария Отключение АКБ ||adc.10001.7.2.0||int, ro|| || || 26|| бит 2 - Авария Критический разряд ||adc.10001.7.3.0||int, ro|| || || 26|| бит 3 - Отключение неприоритетной нагрузки ||adc.10001.7.4.0||int, ro|| || || 26|| бит 4 - Авария RM-48 ||adc.10001.7.5.0||int, ro|| || || 26|| бит 5 - Не включен контактор АБ ||adc.10001.7.6.0||int, ro|| || || 26|| бит 6 - Не совпадает количество RM-48 ||adc.10001.7.7.0||int, ro|| || || 26|| бит 7 - Авария термодатчика ||adc.10001.7.8.0||int, ro|| || || 27|| бит 0 - Отключение АБ по напряжению ||adc.10001.7.9.0||int, ro|| || || 27|| бит 1 - Дисбаланс напряжения АБ ||adc.10001.7.10.0||int, ro|| || || 27|| бит 2 - Нет контроля АБ (отсутствие измерительного шнура) ||adc.10001.7.11.0||int, ro|| || || 28..34|| пока не используем|| || 35|| бит 7 - Разряд АКБ ||adc.10001.4.8.0||int, ro|| || || N|| CSUM || || || || || || 0x7e (FlAG) || || || || Примечания * 1. Значения, занимающие более одного байта передаются в ответе младшим байтом вперёд. * 2. Битовые значения записываются в младший бит переменной SNMP. * 3. Значение U,,нагрузки,, полученное от UPS-1200 делится на 10 и округляется до целого. ==== Ответ на команду CMND=0x01, DATA=0x01 (Чтение параметров АКБ)==== ||= № байта =|| ||= OID =||= Тип =|| || || 0x7e (FlAG) || || || || 0|| 0x7F (ADDR) || || || || 1|| 0x81 (CMND) || || || || 2|| 0x01 Ответ АКБ || || || || 3|| U,,АБ1,, ||adc.10001.8.2.1.0||int, ro|| || 4|| U,,АБ2,, ||adc.10001.8.2.2.0||int, ro|| || 5|| U,,АБ3,, ||adc.10001.8.2.3.0||int, ro|| || 6|| U,,АБ4,, ||adc.10001.8.2.4.0||int, ro|| || 7|| U,,АБ5,, ||adc.10001.8.2.5.0||int, ro|| || 8|| Статус батареи ||adc.10001.8.3.0||int, ro|| || 9..30|| пока не используем|| || N|| CSUM || || || || || 0x7e (FlAG) || || || === 3. Конфигурация MC04-UPS1200 === ==== Карта памяти ==== ||= Адрес байта =||= Параметр =||= Доступ =|| ||0x0000 ... 0x001F||Внутренние параметры блока (коррекция итд.)||rw|| ||0x0020 ... 0x00EF||Таблица настроек||rw|| ||0x00F0 ... 0x00FF||Область для хранения данных программы мониторинга.||rw|| ||0x0100 ... 0x010F||Имя станции 16 символов||rw|| ||0x0110 ... 0x018F||Имена 4датчиков и 4реле по 16 символов. Сначала датчики, затем реле по порядку||rw|| ||0x01A0 ... 0x01DD||Результаты тестирования AБ||rw|| ||0x01DE ... 0x01FF||Резерв||-|| ||0x0200 ... 0x03FF||Журнал событий||ro|| ||0x0400 ... 0xFEFF||Резерв||-|| ||0xFF00 ... 0xFF06|| Время в двоично-десятичном коде(8421-BCD), порядок байт: ss mm hh dw(день недели) dd mm yy||wo|| ||0xFF07 ... 0xFF1F|| Резервная область для записи времени ||wo|| ==== Таблица настроек ==== Для интерпретации таблицы настроек нужно считать байт Mode(0x0001) из внутренних параметров блока - Mode = 0xAB, Режим конфигурации - "48В" - Mode = 0xCD, Режим конфигурации - "60В" - Mode = 0x24, Режим конфигурации - "24В" - иначе - конфигурация повреждена От Режима конфигурации зависят границы значений параметров. Чтобы перевести считанное из UPS-1200 значение конфигурационного параметра(x) в указанные в таблице единицы измерения, нужно выполнить расчёт по формуле в столбце Вычисления. Для записи параметра проводится обратное вычисление. ||=Смещение(DEC)=||=Параметр=||=Вычисление=||=Ед. изм=||=Границы 48В.=||=Границы 60В.=||=Границы 24В.=|| ||||||||||||||Заряд АБ|| || 0||Напряжение содержания||*формула №1||В.||44-56||55-69.5||22-28|| || 1||Ток заряда||x||А.||||||1-9|| || 2||Температурный коэффициент||x*2||мВ/°С||0-144||0-180||0-72|| || 3||Режим заряда||0=нет,1=A,2=B,3=C|| ||||||0,A,B,C|| ||||||||||||||Выравнивающий заряд|| || 10||Напряжение заряда||*формула №2||В.||54.5-59||68.1-74||27-29.5|| || 11||Время заряда||x||час||||||1-48|| || 12||Ручной заряд||0=нет, 1=да|||||||||| || 13||Период автоматического выр. заряда||x, (0=откл.)||месяц||||||0-12|| ||||||||||||||Тест АБ|| || 20||Номинальная ёмкость||x||А*ч||||||20-100|| || 21||Конечное напряжение||*формула №3||В.||42-57.6||52.5-72||22-25.5|| || 22||Время теста||x||час||||||1-24|| || 23||Ручной тест||0=нет, 1=да|||||||||| || 24||Период автоматического тестирования||x, (0- откл.)||месяц||||||0-12|| ||||||||||||||Контакторы|| || 30||Отключение АБ LVBD||*формула №3||В.||42-57.6||52.5-72||21-25.5|| || 31||Отключение LVLD||*формула №3||В.||42-57.6||52.5-72||21-25.5|| || 32||Включение LVLD||*формула №3||В.||42-57.6||52.5-72||21-25.5|| ||||||||||||||Система|| || 40||Комплектность RM-48||x||шт.||||||0-4|| || 41||Откл. звук||0=нет, 1=да|||||||||| || 42||Подключение АБ||0=нет, 1=да|||||||||| ||||||||||||||Маскирование аварий|| || 205|| бит 0 - Авария Потеря 220 ||||||||||чекбокс|| || 205|| бит 1 - Авария Отключение АКБ ||||||||||чекбокс|| || 205|| бит 2 - Авария Критический разряд ||||||||||чекбокс|| || 205|| бит 3 - Отключение неприоритетной нагрузки ||||||||||чекбокс|| || 205|| бит 4 - Авария RM-48 ||||||||||чекбокс|| || 205|| бит 5 - Не включен контактор АБ ||||||||||чекбокс|| || 205|| бит 6 - Не совпадает количество RM-48 ||||||||||чекбокс|| || 205|| бит 7 - Авария термодатчика ||||||||||чекбокс|| || 206|| бит 0 - Отключение АБ по напряжению ||||||||||чекбокс|| || 206|| бит 1 - Дисбаланс напряжения АБ ||||||||||чекбокс|| || 206|| бит 2 - Нет контроля АБ (отсутствие измерительного шнура) ||||||||||чекбокс|| ||||||||=Формулы для вычислений=|| ||=№=||=48В=||=60В=||=24В=|| ||*формула №1|||| (x+440)/10 || (x+210)/10 || ||*формула №2|||| (x+545)/10 || (x+210)/10 || ||*формула №3|||| (x+420)/10 || (x+210)/10 ||