# Карта регистров конфигурации дискретных боковых модулей

**URL:** <https://support.wirenboard.com/t/topic/40349>\
**Category:** Периферийные устройства\
**Created:** [July 29, 2026, 1:39pm UTC](https://support.wirenboard.com/t/topic/40349 "2026-07-29T13:39:25Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Artem\_VoL](https://avatars.discourse-cdn.com/v2/letter/a/3bc359/32.png) [@Artem\_VoL](https://support.wirenboard.com/u/Artem_VoL)\
**Post date:** [July 29, 2026, 1:39pm UTC](https://support.wirenboard.com/t/topic/40349/1 "2026-07-29T13:39:25Z")

</div>

Пытаюсь разрбраться в конфинураций боковых модулей. Использую [WB-MIO](https://wirenboard.com/ru/product/WB-MIO/). Где можно подробнее почитать, что значат эти регистры? Из названия не понятно, что они делают. При использовании WB-MIO и боковых DI требуется проводить настройку через эти регистры?

> **[Карта регистров модулей WB-MIO и WB-MIO-E - Wiren Board](https://wiki.wirenboard.com/wiki/WB-MIO-Modbus-Registers)**

 ![image](https://support.wirenboard.com/uploads/default/original/3X/f/1/f1f8e8d6ab9715d6964e48f588a17872299c7b05.png)

---

<div class="post-metadata">

**Author:** ![enginPetr](https://support.wirenboard.com/user_avatar/support.wirenboard.com/enginpetr/32/36155_2.png) [@enginPetr](https://support.wirenboard.com/u/enginPetr)\
**Post date:** [July 29, 2026, 2:07pm UTC](https://support.wirenboard.com/t/topic/40349/2 "2026-07-29T14:07:19Z")

</div>

Добрый день.

Это регистры микросхем-расширителей ввода-вывода **Microchip MCP23008 (8 pin) / MCP23017 (16 pin)**, которые стоят внутри боковых модулей WBIO.  
WB-MIO просто «пробрасывает» их наружу по Modbus один в один.  
Поэтому из названий сходу не понятно ничего.

Коротко что делает каждый

| Регистр | Смысл | Для DI |
| --- | --- | --- |
| **IODIR** | Направление вывода: `1` = вход, `0` = выход | `0xFFFF` — все 16 линий на вход |
| **IPOL** | Инверсия логики чтения: `1` = читать инвертированно | `0x0000` — без инверсии |
| **GPINTEN** | Разрешение прерывания по изменению для каждой линии | `0xFFFF` — MIO узнаёт об изменении входа сразу, а не по опросу |
| **INTCON** | С чем сравнивать: `0` = с предыдущим значением (любое изменение), `1` = с DEFVAL | `0x0000` — прерывание по любому фронту |
| **DEFVAL** | Эталон для сравнения, работает только там, где INTCON=1 | `0x0000` — не используется |
| **IOCON** | Общая конфигурация чипа | `0x4444` |

Разбор `0x44` (байт продублирован в обе половины, т.к. у MCP23017 IOCON зеркалится в IOCONA/IOCONB):

- бит 6 `MIRROR = 1` — INTA и INTB объединены в один сигнал прерывания;
- бит 2 `ODR = 1` — выход прерывания с открытым стоком;
- остальные нули: BANK=0 (линейная адресация), SEQOP=0 (автоинкремент), INTPOL не важен при ODR.

У 8-пиновых MCP23008 бита MIRROR нет, он просто игнорируется — отсюда и «странное» `0x4444` в строках для 8 pin.

Если WB-MIO опрашивается контроллером Wiren Board через `wb-mqtt-serial`, вы просто добавляете устройство с адресом вида `15:1` (`<Modbus-адрес MIO>:<номер WBIO по порядку>`) и выбираете шаблон `WBIO-DI-WD-14` — драйвер сам прописывает эти регистры при инициализации.

В ручную надо настраивать если WB-MIO опрашивается сторонним мастером — ПЛК, SCADA, свой Modbus-клиент.  
Шаблонов WB там нет, и инициализацию модуля делаете вы сами как описано в примере под таблицей:  
ххх - значение 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

---

<div class="post-metadata">

**Author:** ![enginPetr](https://support.wirenboard.com/user_avatar/support.wirenboard.com/enginpetr/32/36155_2.png) [@enginPetr](https://support.wirenboard.com/u/enginPetr)\
**Post date:** [August 3, 2026, 8:35am UTC](https://support.wirenboard.com/t/topic/40349/4 "2026-08-03T08:35:37Z")

</div>

Добрый день.  
Подскажите остались к техподдержке вопросы по теме?

---

<div class="post-metadata">

**Author:** ![Artem\_VoL](https://avatars.discourse-cdn.com/v2/letter/a/3bc359/32.png) [@Artem\_VoL](https://support.wirenboard.com/u/Artem_VoL)\
**Post date:** [August 3, 2026, 9:28am UTC](https://support.wirenboard.com/t/topic/40349/5 "2026-08-03T09:28:33Z")

</div>

![PXL_20260803_091720589.RAW-01.MP.COVER](https://support.wirenboard.com/uploads/default/original/3X/d/d/dd126937e22198307c90aa41f6d137b1754dc9a7.jpeg)

Подскажите, есть ли возможность сделать по положительному фронту переключение внутреннего регистра устройства. На фото нижний график — это физическое состояние входа. Верхнее — это то, что я хочу считывать из устройства.

---

<div class="post-metadata">

**Author:** ![enginPetr](https://support.wirenboard.com/user_avatar/support.wirenboard.com/enginpetr/32/36155_2.png) [@enginPetr](https://support.wirenboard.com/u/enginPetr)\
**Post date:** [August 3, 2026, 10:55am UTC](https://support.wirenboard.com/t/topic/40349/6 "2026-08-03T10:55:09Z")

</div>

> [@Artem\_VoL](#):
>
> Подскажите, есть ли возможность сделать по положительному фронту переключение внутреннего регистра устройства.

Нет, к сожалению так сделать не получится.
