I/O Mapping Matrix

Материал из Wiren Board

СТАТЬЯ В ПРОЦЕССЕ РЕДАКТИРОВАНИЯ

Модуль учета водопотребления и контроля протечек WB-MWAC


Назначение

Начиная с версии 1.9.0 для устройств серии WB-MR и WB-MWAC в прошивке реализована поддержка матрицы отображения значений входов на значения выходов. Данная дополнительная функциональность позволяет максимально гибко настраивать реакцию конкретных выходов устройства в зависимости от состояния его входов.


Устройство и принцип работы mapping-матрицы

Матрица действий над выходами по изменению состояний входов (mapping-матрица) находится в регистрах хранения устройства, начиная с адреса 384, и содержит 64 регистра из расчета 8 входов / 8 выходов. В каждом регистре записано одно из числовых значений, которыми кодируется взаимодействие одного из входов с одним из выходов.

Строки описывают действия при изменении соответствующего входа, столбцы — соответствующие выходы. Таким образом в ячейке на пересечении сроки входа и столбца выхода содержится значение, задающее работу выхода при изменении соответствующего входа. Действие описывается значением младших четырех бит шестнадцатибитного слова 0b0000 0000 0000 yyxx, хранящегося в регистре. Биты yy описывают действия при переходе значения входа из 0 в 1 (передний фронт), а биты xx — из 1 в 0 (задний фронт).

Каждая комбинация из двух бит описывает четыре возможных действия:

  • 00 — ничего не делать
  • 01 — выключить
  • 10 — включить
  • 11 — инвертировать значение

Таким образом, можно запрограммировать реакцию каждого выхода на включение и отключение любых входов.


Задний фронт
00 01 10 11
Передний фронт 00 0000 (0) — Вход отключен, не управляет выходами 0001 (1)— Выключить при размыкании 0010 (2) — Включить при размыкании 0011 (3) — Изменить состояние выхода при размыкании
01 0100 (4) — Выключить при замыкании 0101 (5)— Всегда выключать 0110 (6) — Работать как инвертированный выключатель с фиксацией 0111 (7) — Выключить при размыкании, потом изменять состояние при переключении
10 1000 (8) — Включить при замыкании 1001 (9) — Работать как выключатель с фиксацией (повторять вход) 1010 (10, 0x0A)— Всегда включать 1011 (11, 0x0B) — Включить, потом изменять состояние при размыкании
11 1100 (12, 0x0C) — Изменить состояние выхода при замыкании (выключатель без фиксации) 1101 (13, 0x0D) — Изменить состояние, потом выключить при размыкании 1110 (14, 0x0E) — Изменить состояние, потом включить при размыкании 1111 (15, 0x0F)— Изменить состояние при замыкании и вернуться к исходному состоянию при размыкании


Задний фронт
00 01 10 11
Передний фронт 00 Mm 0000.png
(0) — Вход отключен, не управляет выходами
Mm 0001.png
(1) — Выключить при размыкании
Mm 0010.png
(2) — Включить при размыкании
Mm 0011.png
(3) — Изменить состояние выхода при размыкании
01 Mm 0100.png
(4) — Выключить при замыкании
Mm 0101.png
(5)— Всегда выключать
Mm 0110.png
(6) — Работать как инвертированный выключатель с фиксацией
Mm 0111.png
(7) — Выключить при размыкании, потом изменять состояние при переключении
10 Mm 1000.png
(8) — Включить при замыкании
Mm 1001.png
(9) — Работать как выключатель с фиксацией (повторять вход)
Mm 1010.png
(10, 0x0A)— Всегда включать
Mm 1011.png
(11, 0x0B) — Включить, потом изменять состояние при размыкании
11 Mm 1100.png
(12, 0x0C) — Изменить состояние выхода при замыкании (выключатель без фиксации)
Mm 1101.png
(13, 0x0D) — Изменить состояние, потом выключить при размыкании
Mm 1110.png
(14, 0x0E) — Изменить состояние, потом включить при размыкании
Mm 1111.png
(15, 0x0F)— Изменить состояние при замыкании и вернуться к исходному состоянию при размыкании

Карта регистров mapping-матрицы

Регистры Выходы
0 1 2 3 4 5 6 7
Входы 0 384 385 386 387 388 389 390 391
1 392 393 394 395 396 397 398 399
2 400 401 402 403 404 405 406 407
3 408 409 410 411 412 413 414 415
4 416 417 418 419 420 421 422 423
5 424 425 426 427 428 429 430 431
6 432 433 434 435 436 437 438 439
7 440 441 442 443 444 445 446 447