WB-MIO-Modbus-Registers: различия между версиями
N.kulikov (обсуждение | вклад) |
Brainroot (обсуждение | вклад) (Добавил описание stride (сдвиг)) |
||
Строка 307: | Строка 307: | ||
|- | |- | ||
|} | |} | ||
ххх - значение stride для модулей. То есть для первого модуля надо использовать 1000, для второго - 2000 и так далее. | |||
Пример конфигурации двух модулей WD-14, подключенных первым и вторым: | |||
<syntaxhighlight lang="bash"> | |||
11000 - 0xffff | |||
11001 - 0x0000 | |||
11002 - 0xffff | |||
11003 - 0x0000 | |||
11004 - 0x0000 | |||
11005 - 0x4444 | |||
10999 - 0x0001 | |||
#For second module addresses increased on 1000: | |||
12000 - 0xffff | |||
12001 - 0x0000 | |||
12002 - 0xffff | |||
12003 - 0x0000 | |||
12004 - 0x0000 | |||
12005 - 0x4444 | |||
11999 - 0x0001 | |||
</syntaxhighlight> | |||
== Карта регистров конфигурации боковых модулей аналогового ввода WB-AI == <!--T:32--> | == Карта регистров конфигурации боковых модулей аналогового ввода WB-AI == <!--T:32--> |
Версия 12:49, 18 мая 2023
Карта регистров, связанных с боковыми релейными модулями
RO / RW | Read only / Read/Write |
Выделено жирным | Значение регистра по умолчанию |
xN | Множитель, на который надо умножить число из регистра, чтобы получить значение в единицах измерения.
Не указан — считать равным 1 |
⚡ | Регистр поддерживает отправку данных с помощью событий Быстрого Modbus. |
FW | Версия прошивки устройства, с которой появился регистр. Пусто — регистр был всегда. |
Error: | Значение при ошибке |
Серый цвет ячейки | Служебный регистр: назначение, формат и содержимое может измениться в новых версиях прошивки |
Адрес | Параметры регистра no_description | Канал | Описание | Значения | FW | |||
---|---|---|---|---|---|---|---|---|
Dec | Hex | Тип | Доступ | Формат | ||||
990 | 0x03DE | Input | RO | u16 | DO 1 | Статус модулей DI/DO | 0 - не подключен, 1 - 8 канальный, 2 - 16 канальный |
|
991 | 0x03DF | DO 2 | ||||||
992 | 0x03E0 | DO 3 | ||||||
993 | 0x03E1 | DI 4 | ||||||
994 | 0x03E2 | DO 4 | ||||||
995 | 0x03E3 | DI 3 | ||||||
996 | 0x03E4 | DI 2 | ||||||
997 | 0x03E5 | DI 1 | ||||||
1250 - 1265 | 0x04E2 - 0x04F1 | Holding | RO | u16 | DI 1 | Счетчик фронтов на входах модуля DI | 0 ... 65535 | |
2250 - 2265 | 0x08CA - 0x08D9 | DI 2 | ||||||
3250 - 3265 | 0x0CB2 - 0x0CC1 | DI 3 | ||||||
4250 - 4265 | 0x109A - 0x10A9 | DI 4 | ||||||
11009 | 0x2B01 | Input | RO | u16 | DI 1 | Регистр битовых флагов состояния входов модуля | 1.6.0 | |
12009 | 0x2EE9 | DI 2 | ||||||
13009 | 0x32D1 | DI 3 | ||||||
14009 | 0x36B9 | DI 4 | ||||||
11509 | 0x2CF5 | Holding | RW | u16 | DO 1 | Регистр битовых флагов состояния выходов модуля | 1.6.0 | |
12509 | 0x30DD | DO 2 | ||||||
13509 | 0x34C5 | DO 3 | ||||||
14509 | 0x38AD | DO 4 | ||||||
10999 | 0x2AF7 | Holding | RW | u16 | DI 1 | Команда записи конфигурации модуля входов | (0) 1 и выше - выполнить запись конфигурации |
|
11999 | 0x2EDF | DI 2 | ||||||
12999 | 0x32C7 | DI 3 | ||||||
13999 | 0x36AF | DI 4 | ||||||
11000 - 11005 | 0x2AF8 - 0x2AFD | Holding | RW | u16 | DI 1 | Регистры конфигурации модуля входов | ||
12000 - 12005 | 0x2EE0 - 0x2EE5 | DI 2 | ||||||
13000 - 13005 | 0x2AF8 - 0x2AFD | DI 3 | ||||||
14000 - 14005 | 0x36B0 - 0x36B5 | DI 4 | ||||||
11499 | 0x2CEB | Holding | RW | u16 | DO 1 | Команда записи конфигурации модуля выходов | (0) 1 и выше - выполнить запись конфигурации |
|
12499 | 0x30D3 | DO 2 | ||||||
13499 | 0x2AF7 | DO 3 | ||||||
14499 | 0x3871 | DO 4 | ||||||
11500 - 11505 | 0x2CEC - 0x2CF1 | Holding | RW | u16 | DO 1 | Регистры конфигурации модуля выходов | ||
12500 - 12505 | 0x30D4 - 0x30D9 | DO 2 | ||||||
13500 - 13505 | 0x32C8 - 0x32CD | DO 3 | ||||||
14500 - 14505 | 0x38A4 - 0x38A9 | DO 4 | ||||||
20000 - 20017 | 0x4E20 - 0x4E31 | Input | RO | s16 | AI 1 | Регистры значения напряжения ADC модуля | x0.01, В | |
21000 - 21017 | 0x5208 - 0x5219 | AI 2 | ||||||
22000 - 22017 | 0x55F0 - 0x5601 | AI 3 | ||||||
23000 - 23017 | 0x59D8 - 0x59E9 | AI 4 | ||||||
20500 - 20517 | 0x5014 - 0x5025 | Holding | RW | u16 | AI 1 | Регистры конфигурации ADC модуля | 0 - 7 | |
21500 - 21517 | 0x53FC - 0x540D | AI 2 | ||||||
22500 - 22517 | 0x57E4 - 0x57F5 | AI 3 | ||||||
23500 - 23517 | 0x5BCC - 0x5BDD | AI 4 |
Карта регистров конфигурации дискретных боковых модулей
Register/ Address | Number of ports | Device type | Recomended value | Description |
---|---|---|---|---|
xxx00 | 8 pin | INPUT | 0xFF | IODIR: pin direction |
xxx00 | 8 pin | OUTPUT | 0x00 | IODIR: pin direction |
xxx00 | 16 pin | INPUT | 0xFFFF | IODIR: pin direction |
xxx00 | 16 pin | OUTPUT | 0x0000 | IODIR: pin direction |
xxx01 | 8 pin | INPUT | 0x00 | IPOL: pin polarity |
xxx01 | 8 pin | OUTPUT | 0x00 | IPOL: pin polarity |
xxx01 | 16 pin | INPUT | 0x0000 | IPOL: pin polarity |
xxx01 | 16 pin | OUTPUT | 0x0000 | IPOL: pin polarity |
xxx02 | 8 pin | INPUT | 0xFF | GPINTEN: interrupt on change |
xxx02 | 8 pin | OUTPUT | N/A | GPINTEN: interrupt on change |
xxx02 | 16 pin | INPUT | 0xFFFF | GPINTEN: interrupt on change |
xxx02 | 16 pin | OUTPUT | N/A | GPINTEN: interrupt on change |
xxx03 | 8 pin | INPUT | 0x00 | DEFVAL: default value register |
xxx03 | 8 pin | OUTPUT | N/A | DEFVAL: default value register |
xxx03 | 16 pin | INPUT | 0x0000 | DEFVAL: default value register |
xxx03 | 16 pin | OUTPUT | N/A | DEFVAL: default value register |
xxx04 | 8 pin | INPUT | 0x00 | INTCON: interrupt on change |
xxx04 | 8 pin | OUTPUT | N/A | INTCON: interrupt on change |
xxx04 | 16 pin | INPUT | 0x0000 | INTCON: interrupt on change |
xxx04 | 16 pin | OUTPUT | N/A | INTCON: interrupt on change |
xxx05 | 8 pin | INPUT | 0x4444 | IOCON: configuration register |
xxx05 | 8 pin | OUTPUT | 0x4444 | IOCON: configuration register |
xxx05 | 16 pin | INPUT | 0x4444 | IOCON: configuration register |
xxx05 | 16 pin | OUTPUT | 0x4444 | IOCON: configuration register |
ххх - значение stride для модулей. То есть для первого модуля надо использовать 1000, для второго - 2000 и так далее.
Пример конфигурации двух модулей WD-14, подключенных первым и вторым:
11000 - 0xffff
11001 - 0x0000
11002 - 0xffff
11003 - 0x0000
11004 - 0x0000
11005 - 0x4444
10999 - 0x0001
#For second module addresses increased on 1000:
12000 - 0xffff
12001 - 0x0000
12002 - 0xffff
12003 - 0x0000
12004 - 0x0000
12005 - 0x4444
11999 - 0x0001
Карта регистров конфигурации боковых модулей аналогового ввода WB-AI
Register/ Address | Description |
---|---|
20500 | A1 config register |
20501 | A2 config register |
20502 | A3 config register |
20503 | A4 config register |
20504 | DIFF1 config register |
20505 | DIFF2 config register |
20506 | A5 config register |
20507 | A6 config register |
20508 | A7 config register |
20509 | A8 config register |
20510 | DIFF3 config register |
20511 | DIFF4 config register |
20512 | A9 config register |
20513 | A10 config register |
20514 | A11 config register |
20515 | A12 config register |
20516 | DIFF5 config register |
20517 | DIFF6 config register |
Значения регистров и соответствующий измеряемый диапазон напряжений
Value | Configuration |
---|---|
0x00 | ±6.144 V (*) |
0x01 | ±4.096 V (*) |
0x02 | ±2.048 V |
0x03 | ±1.024 V |
0x04 | ±0.512 V |
0x05 | ±0.256 V |
0x06 | ±0.256 V |
0x07 | ±0.256 V |
(*) This parameter expresses the full-scale range of the ADC scaling. Do not apply more than VDD + 0.3 V to the analog inputs of the device.
Карта регистров флагов (coil) состояний модулей ввода/вывода
Register/ Address | Type | Description |
---|---|---|
1000 - 1015 | coil | Логические состояния модуля ввода no. 1 |
1500 - 1515 | coil | Логические состояния модуля вывода no. 1 |
2000 - 2015 | coil | Логические состояния модуля ввода no. 2 |
2500 - 2515 | coil | Логические состояния модуля вывода no. 2 |
3000 - 3015 | coil | Логические состояния модуля ввода no. 3 |
3500 - 3515 | coil | Логические состояния модуля вывода no. 3 |
4000 - 4015 | coil | Логические состояния модуля ввода no. 4 |
4500 - 4515 | coil | Логические состояния модуля вывода no. 4 |
19990 | coil | adc модуль 1 подключен |
19991 | coil | adc модуль 2 подключен |
19992 | coil | adc модуль 3 подключен |
19993 | coil | adc модуль 4 подключен |
Общие регистры
Адрес | Параметры регистра | Описание | Значения | |||
---|---|---|---|---|---|---|
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 - отключен
|
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.
Адрес | Параметры регистра | Описание | Значения | |||
---|---|---|---|---|---|---|
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 формате |