Changes between Version 29 and Version 30 of AdcProtocol
- Timestamp:
- May 15, 2019, 5:28:59 PM (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AdcProtocol
v29 v30 1 1 2 == Протокол обмена данными c UPS-1200==2 == Протокол обмена данными с устройствами MC04 == 3 3 4 4 === 1. Формат пакета === … … 8 8 9 9 - Поле FLAG имеет размер 1 байт, предназначено для определения приемником границ пакета, значение поля фиксированное 0x7E. Флаги могут постоянно передаваться в сети между пакетами. Если сетевой элемент обнаруживает байт, не являющийся флагом, он тем самым уведомляется о начале пакета. При обнаружении следующего флага, элемент будет знать, что поступил полный пакет. 10 - Поле ADDR имеет размер 1 байт, предназначено для передачи адресной информации и трактуется по-разному в зависимости от направления движения пакета. Для пакета исходящего от сетевого модуля ADDR=0. Для пакета исходящего из UPS-1200ADDR=0x7F.10 - Поле ADDR имеет размер 1 байт, предназначено для передачи адресной информации и трактуется по-разному в зависимости от направления движения пакета. Для пакета исходящего от сетевого модуля ADDR=0. Для пакета исходящего из MC04 ADDR=0x7F. 11 11 - Поле CMND имеет размер 1 байт, предназначено для кодирования команд или ответов. Значения 0x00-0x7F кодируют команды, значения 0x80-0xFF - ответы. Кодировка поддерживаемых команд и ответов приведена ниже. 12 12 - Поле DATA может быть размером 0-74 байт, содержимое зависит от значения поля CMND … … 22 22 2. проверка контрольной суммы пакета. Если контрольная сумма не совпадает, то пакет не обрабатывается; 23 23 3. проверка поля адреса 24 4. обработка команды, если адрес совпадает. Если код команды не известен UPS-1200, пакет не обрабатывается;24 4. обработка команды, если адрес совпадает. Если код команды не известен устройству MC04, пакет не обрабатывается; 25 25 5. посылается ответ. 26 26 27 Команды запроса состояния UPS-1200посылаются периодически, поэтому единичная потеря ответа на эти команды допустима (произойдет задержка отображения состояния).27 Команды запроса состояния устройств MC04 посылаются периодически, поэтому единичная потеря ответа на эти команды допустима (произойдет задержка отображения состояния). 28 28 29 29 === 3. Команды === 30 UPS-1200 поддерживает следующие команды: 30 31 31 ==== Команды мониторинга(запрос на чтение данных) ==== 32 - CMND = '''0x00''' (ответ 0x80) - основная команда, в ответе передаются основные параметры ИБЭП. Формат команды: "7E 00 00 00 7E".32 - CMND = '''0x00''' (ответ 0x80) - основная команда, в ответе передаются основные параметры устройства MC04. Формат команды: "7E 00 00 00 7E". 33 33 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 команды передаётся номер модуля(порта или платы), в зависимости от значения которого команда имеет разное назначение и ответ. 38 35 39 36 ==== Конфигурационные команды(чтение/запись параметров конфигурации в ПЗУ устройства) ==== … … 47 44 - 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 с переполнением). 48 45 49 Адреса конфигурационных параметров указаны в отдельном [wiki:ProtocolAdcUps1200config документе].50 46 51 47 ==== Перезапуск ==== 52 - CMND = '''0x09''' (ответа на команду нет) - перезапуск ИБЭП. Формат команды: "7E 00 09 AA BB CC CSUM 7E".48 - CMND = '''0x09''' (ответа на команду нет) - перезапуск устройства MC04. Формат команды: "7E 00 09 AA BB CC CSUM 7E". 53 49 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) || || ||