Changes between Version 29 and Version 30 of AdcProtocol


Ignore:
Timestamp:
May 15, 2019, 5:28:59 PM (5 years ago)
Author:
san
Comment:

Обобщил для устройств MC04, то что относится к UPS1200 отделил в отдельный документ

Legend:

Unmodified
Added
Removed
Modified
  • AdcProtocol

    v29 v30  
    11
    2 == Протокол обмена данными c UPS-1200 ==
     2== Протокол обмена данными с устройствами MC04 ==
    33 
    44=== 1. Формат пакета ===
     
    88
    99- Поле FLAG имеет размер 1 байт, предназначено для определения приемником границ пакета, значение поля фиксированное 0x7E. Флаги могут постоянно передаваться в сети между пакетами. Если сетевой элемент обнаруживает байт, не являющийся флагом, он тем самым уведомляется о начале пакета. При обнаружении следующего флага, элемент будет знать, что поступил полный пакет.
    10 - Поле ADDR имеет размер 1 байт, предназначено для передачи адресной информации и трактуется по-разному в зависимости от направления движения пакета. Для пакета исходящего от сетевого модуля ADDR=0. Для пакета исходящего из UPS-1200 ADDR=0x7F.
     10- Поле ADDR имеет размер 1 байт, предназначено для передачи адресной информации и трактуется по-разному в зависимости от направления движения пакета. Для пакета исходящего от сетевого модуля ADDR=0. Для пакета исходящего из MC04 ADDR=0x7F.
    1111- Поле CMND имеет размер 1 байт, предназначено для кодирования команд или ответов. Значения 0x00-0x7F кодируют команды, значения 0x80-0xFF - ответы. Кодировка поддерживаемых команд и ответов приведена ниже.
    1212- Поле DATA может быть размером 0-74 байт, содержимое зависит от значения поля CMND
     
    22222. проверка контрольной суммы пакета. Если контрольная сумма не совпадает, то пакет не обрабатывается;
    23233. проверка поля адреса
    24 4. обработка команды, если адрес совпадает. Если код команды не известен UPS-1200, пакет не обрабатывается;
     244. обработка команды, если адрес совпадает. Если код команды не известен устройству MC04, пакет не обрабатывается;
    25255. посылается ответ.
    2626
    27 Команды запроса состояния UPS-1200 посылаются периодически, поэтому единичная потеря ответа на эти команды допустима (произойдет задержка отображения состояния).
     27Команды запроса состояния устройств MC04 посылаются периодически, поэтому единичная потеря ответа на эти команды допустима (произойдет задержка отображения состояния).
    2828
    2929=== 3. Команды ===
    30 UPS-1200 поддерживает следующие команды:
     30
    3131==== Команды мониторинга(запрос на чтение данных) ====
    32 - CMND = '''0x00''' (ответ 0x80) - основная команда, в ответе передаются основные параметры ИБЭП. Формат команды: "7E 00 00 00 7E".
     32- CMND = '''0x00''' (ответ 0x80) - основная команда, в ответе передаются основные параметры устройства MC04. Формат команды: "7E 00 00 00 7E".
    3333
    34 - CMND = '''0x01''' (ответ 0x81) - опрос составных устройств ИБЭП. Формат команды: "7E 00 01 DATA CSUM 7E". В поле DATA команды передаётся 1 байт, в зависимости от значения которого команда имеет разное назначение и ответ:
    35  - DATA = 0 - Опрос параметров центральной платы RC-01
    36  - DATA = 1 - Опрос параметров АКБ.
    37  - DATA = 2,3,4,5 - Опрос параметров выпрямителя RC-48 установленного в слот 2,3,4 или 5 (имеет смысл отправлять только для тех слотов в которые установлены выпрямители, признак наличия выпрямителя в слоте передается в ответе на CMND=0)
     34- CMND = '''0x01''' (ответ 0x81) - опрос составных частей(модулей, плат, портов) устройств MC04. Формат команды: "7E 00 01 NUM CSUM 7E". В байте NUM команды передаётся номер модуля(порта или платы), в зависимости от значения которого команда имеет разное назначение и ответ.
    3835
    3936==== Конфигурационные команды(чтение/запись параметров конфигурации в ПЗУ устройства)   ====
     
    4744- CMND = '''0x12''' (ответ 0x92) - запись 32 байта данных конфигурации. Формат команды: "7E 00 12 ADRLO ADRHI <BYTE32> CS CSUM 7E", <BYTE32> - записываемые 32 байта данных, CS- контрольная сумма для поля <BYTE32> (алгебраическая сумма всей байт по модулю $FF с переполнением). Ответ на команду "7E 7F 92 ADRLO ADRHI CS CSUM 7E", CS- контрольная сумма для записанных 32 байт(алгебраическая сумма всей байт по модулю $FF с переполнением).
    4845
    49 Адреса конфигурационных параметров указаны в отдельном [wiki:ProtocolAdcUps1200config документе].
    5046
    5147==== Перезапуск ====
    52 - CMND = '''0x09''' (ответа на команду нет) - перезапуск ИБЭП. Формат команды: "7E 00 09 AA BB CC CSUM 7E".
     48- CMND = '''0x09''' (ответа на команду нет) - перезапуск устройства MC04. Формат команды: "7E 00 09 AA BB CC CSUM 7E".
    5349
    54 
    55 === 4. Расшифровка ответов на команды мониторинга ===
    56 В зависимости от версии устройства длина ответа может быть разной, но максимальный размер поля DATA ограничен 74 байтами.
    57 Если в ответе устройства не хватает части переменных, значения этих переменных в базе заполняются нолями.
    58 ==== Ответ на команду CMND=0  ====
    59 ||= № байта =|| ||= OID =||= Тип =||= Прим. =||
    60 || || 0x7e (FlAG) || || || ||
    61 || 0|| 0x7F (ADDR) || || || ||
    62 || 1|| 0x80 (CMND) || || || ||
    63 || 2|| 0x7e Аппаратная версия устройства = расширенная || || || ||
    64 || 3|| 0x04 Аппаратная версия устройства = UPS-1200 || || || ||
    65 || 4|| бит 7 – Общая авария ||adc.10001.1.0||int, ro|| ||
    66 || 4|| биты 6..0-  Программная версия ||adc.10001.2.0||int, ro|| ||
    67 || 5|| бит 1 - Наличие RM-48 №1 ||adc.10001.9.1.1.0||int, ro|| ||
    68 || 5|| бит 2 - Наличие RM-48 №2 ||adc.10001.9.2.1.0||int, ro|| ||
    69 || 5|| бит 3 - Наличие RM-48 №3 ||adc.10001.9.3.1.0||int, ro|| ||
    70 || 5|| бит 4 - Наличие RM-48 №4 ||adc.10001.9.4.1.0||int, ro|| ||
    71 || 6|| пока не используем||
    72 || 7|| Расширенная программная версия(подверсия) ||adc.10001.3.0||int, ro|| ||
    73 || 8, 9|| U,,нагрузки,, ||adc.10001.4.1.0||int, ro||*3||
    74 || 10, 11|| U,,АКБ,, ||adc.10001.4.2.0||int, ro|| ||
    75 || 12, 13|| U,,220,, ||adc.10001.4.3.0||int, ro|| ||
    76 || 14, 15|| I,,нагрузки,, ||adc.10001.4.4.0||int, ro|| ||
    77 || 16, 17|| I,,АКБ,, ||adc.10001.4.5.0||int, ro|| ||
    78 || 18, 19|| P,,выпрямителей,, ||adc.10001.4.6.0||int, ro|| ||
    79 || 20, 21|| T,,АКБ,, ||adc.10001.4.7.0||int, ro|| ||
    80 || 22|| бит 0 - Датчик 1 ||adc.10001.5.1.0||int, ro|| ||
    81 || 22|| бит 1 - Датчик 2 ||adc.10001.5.2.0||int, ro|| ||
    82 || 22|| бит 2 - Датчик 3 ||adc.10001.5.3.0||int, ro|| ||
    83 || 22|| бит 3 - Датчик 4 ||adc.10001.5.4.0||int, ro|| ||
    84 || 23|| пока не используем||
    85 || 24|| бит 1 - Автомат 1 ||adc.10001.6.1.0||int, ro|| ||
    86 || 24|| бит 2 - Автомат 2 ||adc.10001.6.2.0||int, ro|| ||
    87 || 24|| бит 3 - Автомат 3 ||adc.10001.6.3.0||int, ro|| ||
    88 || 24|| бит 4 - Автомат 4 ||adc.10001.6.4.0||int, ro|| ||
    89 || 24|| бит 5 - Автомат 5 ||adc.10001.6.5.0||int, ro|| ||
    90 || 24|| бит 6 - Автомат 6 ||adc.10001.6.6.0||int, ro|| ||
    91 || 25|| пока не используем||
    92 || 26|| бит 0 - Авария Потеря 220 ||adc.10001.7.1.0||int, ro|| ||
    93 || 26|| бит 1 - Авария Отключение АКБ ||adc.10001.7.2.0||int, ro|| ||
    94 || 26|| бит 2 - Авария Критический разряд ||adc.10001.7.3.0||int, ro|| ||
    95 || 26|| бит 3 - Отключение неприоритетной нагрузки ||adc.10001.7.4.0||int, ro|| ||
    96 || 26|| бит 4 - Авария RM-48 ||adc.10001.7.5.0||int, ro|| ||
    97 || 26|| бит 5 - Не включен контактор АБ ||adc.10001.7.6.0||int, ro|| ||
    98 || 26|| бит 6 - Не совпадает количество RM-48 ||adc.10001.7.7.0||int, ro|| ||
    99 || 26|| бит 7 - Авария термодатчика ||adc.10001.7.8.0||int, ro|| ||
    100 || 27|| бит 0 - Отключение АБ по напряжению ||adc.10001.7.9.0||int, ro|| ||
    101 || 27|| бит 1 - Дисбаланс напряжения АБ ||adc.10001.7.10.0||int, ro|| ||
    102 || 27|| бит 2 - Нет контроля АБ (отсутствие измерительного шнура) ||adc.10001.7.11.0||int, ro|| ||
    103 || 28..34|| пока не используем||
    104 || 35|| бит 7 - Разряд АКБ ||adc.10001.4.8.0||int, ro|| ||
    105 || N|| CSUM || || || ||
    106 || || 0x7e (FlAG) || || || ||
    107 Примечания
    108 * 1. Значения, занимающие более одного байта передаются в ответе младшим байтом вперёд.
    109 * 2. Битовые значения записываются в младший бит переменной SNMP.
    110 * 3. Значение U,,нагрузки,, полученное от UPS-1200 делится на 10 и округляется до целого.
    111 
    112 
    113 ==== Ответ на команду CMND=0x01, DATA=0x01 (Чтение параметров АКБ)====
    114 ||= № байта =|| ||= OID =||= Тип =||
    115 || || 0x7e (FlAG) || || ||
    116 || 0|| 0x7F (ADDR) || || ||
    117 || 1|| 0x81 (CMND) || || ||
    118 || 2|| 0x01 Ответ АКБ || || ||
    119 || 3|| U,,АБ1,, ||adc.10001.8.2.1.0||int, ro||
    120 || 4|| U,,АБ2,, ||adc.10001.8.2.2.0||int, ro||
    121 || 5|| U,,АБ3,, ||adc.10001.8.2.3.0||int, ro||
    122 || 6|| U,,АБ4,, ||adc.10001.8.2.4.0||int, ro||
    123 || 7|| U,,АБ5,, ||adc.10001.8.2.5.0||int, ro||
    124 || 8|| Статус батареи ||adc.10001.8.3.0||int, ro||
    125 || 9..30|| пока не используем||
    126 || N|| CSUM || || ||
    127 || || 0x7e (FlAG) || || ||