M1W2 Registers: различия между версиями

Материал из Wiren Board
м
м
Строка 2: Строка 2:
{{Wbincludes:Header Registers}}
{{Wbincludes:Header Registers}}
|-
|-
| class="text-right" | 0
| class="text-right" | 0  
| 0x0000
| 0x0000
| Discrete Input 1
| Текущее состояние 1 входа.
| Discrete input
| Discrete input
| RO
| RO
Строка 10: Строка 10:
|  
|  
|  
|  
| Текущее состояние входа №1: 0 - разомкнут, 1 - замкнут на GND. Если для входа выбран режим 1-wire, значение всегда равно 0.
| 0 разомкнут или выбран режим 1-wire, <br />1 — замкнут на GND
| 0, 1
|  
| class="text-right" |  
|  
|  
| rowspan="2" | ≥ 4.0.0
| rowspan="2" | ≥ 4.0.0
Строка 18: Строка 17:
| class="text-right" | 1
| class="text-right" | 1
| 0x0001
| 0x0001
| Discrete Input 2
| Текущее состояние 2 входа.
| Discrete input
| Discrete input
| RO
| RO
Строка 24: Строка 23:
|  
|  
|  
|  
| Текущее состояние входа №2: 0 - разомкнут, 1 - замкнут на GND. Если для входа выбран режим 1-wire, значение всегда равно 0.
| 0 разомкнут или выбран режим 1-wire, <br />1 — замкнут на GND
| 0, 1
|  
| class="text-right" |  
|  
|  
|-  
|- style="vertical-align:bottom;"
| class="text-right" | 7
| style="text-align:right;" | 7
| 0x0007
| 0x0007
| External Sensor 1
| Температура 1-Wire датчика на 1 входе
| Input register
| Input register
| RO
| RO
Строка 37: Строка 35:
| 0.0625
| 0.0625
| °C
| °C
| Температура с первого внешнего датчика 1-Wire
|  
|  
| class="text-right" |  
|  
| 0x7FFF
| 0x7FFF
|  
|  
|-  
|- style="vertical-align:bottom;"
| class="text-right" | 8
| style="text-align:right;" | 8
| 0x0008
| 0x0008
| External Sensor 1
| Температура 1-Wire датчика на 2 входе
| Input register
| Input register
| RO
| RO
Строка 51: Строка 48:
| 0.0625
| 0.0625
| °C
| °C
| Температура со второго внешнего датчика 1-Wire
|  
|  
| class="text-right" |  
|  
| 0x7FFF
| 0x7FFF
|  
|  
Строка 59: Строка 55:
| class="text-right" | 16
| class="text-right" | 16
| 0x0010
| 0x0010
| External Sensor 1 OK
| Статус опроса 1-Wire датчика на 1 входе
| Discrete input
| Discrete input
| RO
| RO
Строка 65: Строка 61:
|  
|  
|  
|  
| Статус опроса датчика 1-Wire входа №1: 0 - датчик не подключен, 1 - датчик подключен и корректно опрашивается
| 0 датчик не подключен, <br />1 датчик подключен и корректно опрашивается
| 0, 1
|  
| class="text-right" |  
|  
|  
| rowspan="4" | ≥ 4.6.0
| rowspan="4" | ≥ 4.6.0
Строка 73: Строка 68:
| class="text-right" | 17
| class="text-right" | 17
| 0x0011
| 0x0011
| External Sensor 2 OK
| Статус опроса 1-Wire датчика на 2 входе
| Discrete input
| Discrete input
| RO
| RO
Строка 79: Строка 74:
|  
|  
|  
|  
| Статус опроса датчика 1-Wire входа №2: 0 - датчик не подключен, 1 - датчик подключен и корректно опрашивается
| 0 датчик не подключен, <br />1 датчик подключен и корректно опрашивается
| 0, 1
|  
| class="text-right" |  
|  
|  
|-
|-
| class="text-right" | 20
| class="text-right" | 20
| 0x0014
| 0x0014
|  
| Последнее валидное значение температуры с датчика на 1 входе
| Input register
| Input register
| RO
| RO
Строка 92: Строка 86:
| 0.0625
| 0.0625
| °C
| °C
| Температура с первого внешнего датчика 1-Wire. При ошибке опроса датчика сохраняет предыдущее валидное значение (статус датчика читать из discrete регистра 16).
|  
|  
| class="text-right" | 0
|  
|  
|  
|-
|-
| class="text-right" | 21
| class="text-right" | 21
| 0x0015
| 0x0015
|  
| Последнее валидное значение температуры с датчика на 2 входе
| Input register
| Input register
| RO
| RO
Строка 105: Строка 98:
| 0.0625
| 0.0625
| °C
| °C
| Температура со второго внешнего датчика 1-Wire. При ошибке опроса датчика сохраняет предыдущее валидное значение (статус датчика читать из discrete регистра 17).
|  
|  
| class="text-right" | 0
|  
|  
|-  
|  
| class="text-right" | 99
|- style="vertical-align:bottom;"
| style="text-align:right;" | 99
| 0x0063
| 0x0063
| Erroneous 1-Wire Temperature Readings Filter (°C)
| Коэффициент фильтра подозрительных значений для 1-Wire датчиков. <br />Если разница между новым и предыдущим значением больше коэффициента, то новое значение отбрасывается
| Holding register
| Holding register
| RW
| RW
Строка 118: Строка 110:
| 0.0625
| 0.0625
| °C
| °C
| Фильтр подозрительных значений для датчиков 1-Wire (85.000C, 127.937C). Значения отбрасываются, если предыдущее отличается от подозрительного больше, чем на 1°C. Запишите 0, чтобы отключить фильтр.
| 0 — фильтр отключен,<br />число больше нуля — коэффициент фильтра
|
| style="text-align:right;" | 16
| class="text-right" | 16
|  
|  
| ≥ 3.10.0
| ≥ 3.10.0
|-  
|- style="vertical-align:bottom;"
| class="text-right" | 113
| style="text-align:right;" | 113
| 0x0071
| 0x0071
| RS-485 Response Delay (ms)
| Задержка перед отправкой ответного пакета по RS-485
| Holding register
| Holding register
| RW
| RW
Строка 132: Строка 123:
|  
|  
| мс
| мс
| Задержка перед отправкой ответного пакета по RS-485
|  
|  
| class="text-right" | 8
| style="text-align:right;" | 8
|  
|  
| ≥ 4.15.0
| ≥ 4.15.0
Строка 140: Строка 130:
| class="text-right" | 275
| class="text-right" | 275
| 0x0113
| 0x0113
| Input 1 mode
| Режим 1 входа
| Holding register
| Holding register
| RW
| RW
Строка 146: Строка 136:
|  
|  
|  
|  
| Режим входа №1: 0 - 1-wire, 1 - дискретный вход
| 0 1-wire, <br />1 дискретный вход
| 0, 1
| class="text-right" | 0
| class="text-right" | 0
|  
|  
Строка 154: Строка 143:
| class="text-right" | 276
| class="text-right" | 276
| 0x0114
| 0x0114
| Input 2 mode
| Режим 2 входа
| Holding register
| Holding register
| RW
| RW
Строка 160: Строка 149:
|  
|  
|  
|  
| Режим входа №2: 0 - 1-wire, 1 - дискретный вход
| 0 1-wire, <br />1 дискретный вход
| 0, 1
| class="text-right" | 0
| class="text-right" | 0  
|  
|  
|-
|-
| class="text-right" | 277
| class="text-right" | 277
| 0x0115
| 0x0115
| Counter 1
| Счетчик срабатываний для 1 входа
| Input register
| Input register
| RO
| RO
Строка 173: Строка 161:
|  
|  
|  
|  
| Счетчик срабатываний для входа №1
|  
|  
| class="text-right" |  
|  
|  
|  
|-
|-
| class="text-right" | 278
| class="text-right" | 278
| 0x0116
| 0x0116
| Counter 2
| Счетчик срабатываний для 2 входа
| Input register
| Input register
| RO
| RO
Строка 186: Строка 173:
|  
|  
|  
|  
| Счетчик срабатываний для входа №2
|  
|  
| class="text-right" |  
|  
|  
|  
|}
|}


{{Wbincludes:Common Modbus Registers}}
{{Wbincludes:Common Modbus Registers}}

Версия 12:26, 1 октября 2021

Wbincludes:Header Registers |- | class="text-right" | 0 | 0x0000 | Текущее состояние 1 входа. | Discrete input | RO | u16 | | | 0 — разомкнут или выбран режим 1-wire,
1 — замкнут на GND | | | rowspan="2" | ≥ 4.0.0 |- | class="text-right" | 1 | 0x0001 | Текущее состояние 2 входа. | Discrete input | RO | u16 | | | 0 — разомкнут или выбран режим 1-wire,
1 — замкнут на GND | | |- style="vertical-align:bottom;" | style="text-align:right;" | 7 | 0x0007 | Температура 1-Wire датчика на 1 входе | Input register | RO | s16 | 0.0625 | °C | | | 0x7FFF | |- style="vertical-align:bottom;" | style="text-align:right;" | 8 | 0x0008 | Температура 1-Wire датчика на 2 входе | Input register | RO | s16 | 0.0625 | °C | | | 0x7FFF | |- | class="text-right" | 16 | 0x0010 | Статус опроса 1-Wire датчика на 1 входе | Discrete input | RO | u16 | | | 0 — датчик не подключен,
1 — датчик подключен и корректно опрашивается | | | rowspan="4" | ≥ 4.6.0 |- | class="text-right" | 17 | 0x0011 | Статус опроса 1-Wire датчика на 2 входе | Discrete input | RO | u16 | | | 0 — датчик не подключен,
1 — датчик подключен и корректно опрашивается | | |- | class="text-right" | 20 | 0x0014 | Последнее валидное значение температуры с датчика на 1 входе | Input register | RO | s16 | 0.0625 | °C | | | |- | class="text-right" | 21 | 0x0015 | Последнее валидное значение температуры с датчика на 2 входе | Input register | RO | s16 | 0.0625 | °C | | | |- style="vertical-align:bottom;" | style="text-align:right;" | 99 | 0x0063 | Коэффициент фильтра подозрительных значений для 1-Wire датчиков.
Если разница между новым и предыдущим значением больше коэффициента, то новое значение отбрасывается | Holding register | RW | u16 | 0.0625 | °C | 0 — фильтр отключен,
число больше нуля — коэффициент фильтра | style="text-align:right;" | 16 | | ≥ 3.10.0 |- style="vertical-align:bottom;" | style="text-align:right;" | 113 | 0x0071 | Задержка перед отправкой ответного пакета по RS-485 | Holding register | RW | u16 | | мс | | style="text-align:right;" | 8 | | ≥ 4.15.0 |- | class="text-right" | 275 | 0x0113 | Режим 1 входа | Holding register | RW | u16 | | | 0 — 1-wire,
1 — дискретный вход | class="text-right" | 0 | | rowspan="4" | ≥ 4.0.0 |- | class="text-right" | 276 | 0x0114 | Режим 2 входа | Holding register | RW | u16 | | | 0 — 1-wire,
1 — дискретный вход | class="text-right" | 0 | |- | class="text-right" | 277 | 0x0115 | Счетчик срабатываний для 1 входа | Input register | RO | u16 | | | | | |- | class="text-right" | 278 | 0x0116 | Счетчик срабатываний для 2 входа | Input register | RO | u16 | | | | | |}


Общие для всех Modbus-устройств Wiren Board регистры
Адрес Параметры регистра Описание Значения
Dec Hex Тип Доступ Формат
104­-105 0x0068 - 0x0069 Input RO u32 Время работы с момента загрузки секунды
121 0x0079 Input RO u16 Текущее напряжение питания мВ
110 0x006E Holding RW u16 Скорость порта RS-485.
Настройка параметров подключения по RS-485
x100, Боды
12 — 1200 бит/с,
24 — 2400 бит/с,
48 — 4800 бит/с,
96 — 9600 бит/с,
192 — 19 200 бит/с,
384 — 38 400 бит/с,
576 — 57 600 бит/с,
1152 — 115 200 Кбит/с
111 0x006F Holding RW u16 Настройка бита чётности порта RS-485 0 — нет бита чётности (none),
1 — нечётный,
2 — чётный
112 0x0070 Holding RW u16 Количество стоп-битов порта RS-485 1, 2
113 0x0071 Holding RW u16 Время перед отправкой ответа на modbus запрос 0 - 254 мс
114 0x0072 Holding RW u16 Режим непрерывного чтения регистров с зазором 0 - отключен
1 - включен
2 - включение сохраняется после перезагрузки
128 0x0080 Holding RW u16 Modbus-адрес устройства (подробнее)
120 0x0078 Holding RW u16 Перезагрузка устройства без сохранения состояния любое, отличное от 0 перезагружает устройство
129 0x0081 Holding RW u16 Перевод в режим обновления прошивки на 2 минуты любое, отличное от 0 переводит устройство в режим обновления прошивки
130 0x0082 Holding RW u8 Отключение индикатора состояния 0 - активен,
1 - отключен
123 0x007B Input RO u16 Напряжение на микроконтроллере мВ
124 0x007C Input RO u16 Внутренняя температура микроконтроллера x0.1, °C
200-205 0x00C8 - 0x00CD Input RO string Модель устройства
206-219 0x00CE - 0x00DB Input RO string Расширение модели устройства. Для новых устройств WB-LED и WB-MAI6 поле поддерживается изначально, для остальных - в прошивках с "быстрым Modbus". Для чтения модели устройства нужно читать диапазон из 20 регистров (200 - 219). Если устройство возвращает ошибку Illegal Data Address - читать 6 регистров (200 - 205).
220-248 0x00DC - 0x00F8 Input RO string Хэш коммита и название ветки откуда собрана прошивка (2 символа в регистре)
250-265 0x00FA - 0x0109 Input RO string Версия прошивки
266-269 0x010A - 0x010D Input RO u64 Расширение серийного номера
270-271 0x010E - 0x010F Input RO u32 Серийный номер
290-301 0x0122 - 0x012D Holding RO string Сигнатура прошивки
330-336 0x014A - 0x0150 Holding RO string Версия загрузчика


Версия прошивки в устройствах с «Быстрым Modbus»

В устройствах, поддерживающих Быстрый Modbus, используется другой формат обозначения версии прошивки.

  • Диапазон регистров «Модель устройства» расширен до 20 регистров.
  • Версия формируется согласно semver и имеет формат MAJOR.MINOR.PATCH с опциональным суффиксом (-rc|+wb)SUFFIX:
    суффикс -rc означает, что прошивка предназначена для тестирования и может быть нестабильной. Хранится в регистре с отрицательным знаком;
    суффикс +wb добавляется, когда к прошивке, зафиксированной в релизе, требуется выпустить фикс. Хранится в регистре с положительным знаком.
  • Цифры версии доступны по отдельности в формате u16 (для суффикса - s16), регистры 320-323.
  • Доступно число u32, содержащее комбинацию цифр версии и позволяющее за одно сравнение понять, увеличилась или уменьшилась версия прошивки:
    число рассчитывается по формуле
    if (SUFFIX >= 0) {
        SUFFIX = SUFFIX + 128;
    } else {
        SUFFIX = -1 - SUFFIX;
    }
    VERSION = (MAJOR << 24) + (MINOR << 16) + (PATCH << 8) + SUFFIX;
    число доступно для чтения в little-endian и big-endian форматах;
    число для более свежей версии всегда будет больше, чем для предыдущей, в том числе, когда прошивка переходит из тестовой в стабильную.
    Таким образом обеспечивается корректное сравнение версий:
    1.2.3-rc1 < 1.2.3-rc10 < 1.2.3 < 1.2.3+wb1 < 1.2.3+wb10.
    


Регистры для хранения версии прошивки в устройствах с быстрым Modbus
Адрес Параметры регистра Описание Значения
Dec Hex Тип Доступ Формат
200-219 0x00C8 - 0x00DB Input RO string Модель устройства
320 0x0140 Input RO u16 Версия прошивки в числовом формате MAJOR
321 0x0141 MINOR
322 0x0142 PATCH
323 0x0143 s16 SUFFIX
324-325 0x0144 - 0x0145 Input RO u32 Версия прошивки в числовом формате
326-327 0x0146 - 0x0147 Input RO u32 Версия прошивки в Big Endian формате