Перейти к содержанию

Навигация

I/O Mapping Matrix: различия между версиями

Нет описания правки
Строка 3: Строка 3:
<!--T:1-->
<!--T:1-->
{{DISPLAYTITLE: I/O Mapping Matrix}}
{{DISPLAYTITLE: I/O Mapping Matrix}}
<!--T:2-->
[[File:WB-MWAC-FRONT.png|300px|thumb|right| Модуль учета водопотребления и контроля протечек WB-MWAC]]


=== Назначение === <!--T:3-->
=== Назначение === <!--T:3-->
Матрица действий над выходами по изменению состояний входов позволяет гибко настраивать реакцию устройства в зависимости от состояния его входов.
Матрица действий над выходами по изменению состояний входов позволяет гибко настраивать реакцию устройства в зависимости от изменения его входов.
Эта функциональность появилась с версии '''1.9.0''' для устройств серии '''WB-MR''' и [[WB-MWAC]].
Эта функциональность появилась с версии '''1.9.0''' для устройств серии '''WB-MR''' и [[WB-MWAC]].


== Устройство и принцип работы == <!--T:4-->
== Устройство и принцип работы == <!--T:4-->
{| class="wikitable" style="float:right; margin-left: 10px;"
! Регистры !!  !! colspan="8"| Выходы
|-
!
|  || '''1''' || '''2''' || '''3''' || '''4''' || '''5''' || '''6''' || '''7''' || '''8'''
|-
!rowspan="8" |Входы
| '''1''' || 384 || 385 || 386 || 387 || 388 || 389 || 390 || 391
|-
| '''2''' || 392 || 393 || 394 || 395 || 396 || 397 || 398 || 399
|-
| '''3''' || 400 || 401 || 402 || 403 || 404 || 405 || 406 || 407
|-
| '''4''' || 408 || 409 || 410 || 411 || 412 || 413 || 414 || 415
|-
| '''5''' || 416 || 417 || 418 || 419 || 420 || 421 || 422 || 423
|-
| '''6''' || 424 || 425 || 426 || 427 || 428 || 429 || 430 || 431
|-
| '''7''' || 432 || 433 || 434 || 435 || 436 || 437 || 438 || 439
|-
| '''0''' || 440 || 441 || 442 || 443 || 444 || 445 || 446 || 447
|}
Mapping-матрица находится в регистрах начиная с адреса 384, и содержит 64 регистра из расчета 8 входов / 8 выходов.
Mapping-матрица находится в регистрах начиная с адреса 384, и содержит 64 регистра из расчета 8 входов / 8 выходов.
В каждом регистре записан код действия входа на выход.
В каждом регистре записан код действия входа на выход.


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


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


Действия, в зависимости от битов:
<!--T:7-->
<!--T:7-->
*00 — ничего не делать
*00 — ничего не делать
Строка 92: Строка 109:
| style="text-align:center;vertical-align:bottom;" | [[File:Mm_1111.png|frameless|270px]]<br>(15, 0x0F) — Изменить состояние при замыкании<br>и вернуться к исходному состоянию<br>при размыкании
| style="text-align:center;vertical-align:bottom;" | [[File:Mm_1111.png|frameless|270px]]<br>(15, 0x0F) — Изменить состояние при замыкании<br>и вернуться к исходному состоянию<br>при размыкании
|}
|}
==Карта регистров mapping-матрицы == <!--T:10-->
{| class="wikitable"
! Регистры !!  !! colspan="8"| Выходы
|-
!
|  || '''1''' || '''2''' || '''3''' || '''4''' || '''5''' || '''6''' || '''7''' || '''8'''
|-
!rowspan="8" |Входы
| '''1''' || 384 || 385 || 386 || 387 || 388 || 389 || 390 || 391
|-
| '''2''' || 392 || 393 || 394 || 395 || 396 || 397 || 398 || 399
|-
| '''3''' || 400 || 401 || 402 || 403 || 404 || 405 || 406 || 407
|-
| '''4''' || 408 || 409 || 410 || 411 || 412 || 413 || 414 || 415
|-
| '''5''' || 416 || 417 || 418 || 419 || 420 || 421 || 422 || 423
|-
| '''6''' || 424 || 425 || 426 || 427 || 428 || 429 || 430 || 431
|-
| '''7''' || 432 || 433 || 434 || 435 || 436 || 437 || 438 || 439
|-
| '''0''' || 440 || 441 || 442 || 443 || 444 || 445 || 446 || 447
|}
== Предыдущая версия настройки взаимодействия входов и выходов релейных модулей == <!--T:11-->
<!--T:12-->
В новых прошивках также сохранился механизм управления связями вход-выход из предыдущих прошивок. Holding-регистр 5 описывает поведение всех входов, а регистры с 9 по 9+x-1 (x — число реле в модуле) и регистр 16 (нулевой вход) — поведение каждого отдельного входа.
<!--T:13-->
Регистры могут содержать следующие управляющие значения:
<!--T:14-->
{| class="wikitable"
! Значение регистра !! Режим работы входов !! Примечание
|-
| 0 || Кнопки без фиксации (триггерный режим). В этом режиме для изменения состояния реле достаточно однократно замкнуть и разомкнуть вход. Изменение состояния происходят по переднему фронту (то есть при замыкании) ||
|-
| 1 || Выключатель с фиксацией. Реле повторяет состояние входа, в момент переключения входа происходит событие которое меняет состояние реле. Если позже реле будет переключено Modbus-командой, то состояние входа не будет влиять на реле до следующего переключения. В момент включения модуля состояние входа не учитывается: если на входе будет замкнутое состояние, то реле не будет включено во избежание не желательного включения (например, когда вечером свет был выключен командой с контроллера, выключатель остался включенным, ночью пропадало питание, модуль перезагрузился, но свет при этом не включится). ||
|-
| 2 || Отключать все реле при нажатии (по умолчанию такой режим имеет вход 0) || с прошивки 1.9.0
|-
| 3 || Отключить взаимодействие входов и выходов: изменение входа на влияет на состояние реле ||
|-
| 4 || Управлять в соответствии с Mapping-матрицей || с прошивки 1.9.0
|-
| 5 || Управлять в соответствии с Mapping-матрицей, <br>через 20 минут повторно имитировать состояние ввода || с прошивки 1.9.0
|}
<!--T:15-->
Настройка управления режима отдельных входов возможно, только если в holding-регистре 5 записано значение 0. В последних прошивках в заводской поставке все регистры режима входов содержат 0, кроме регистра 16  — в нем записано значение 2, что обеспечивает работу входа 0 как "аварийного" — при нажатии на кнопку без фиксации, подсоединенную к этому входу, все реле выключатся. Повторное нажатие оставит все реле выключенными.
<!--T:16-->
Повторная имитация состояния ввода через 20 минут (режим 5) означает, что каждые 20 минут над выходом будет выполняться действие (согласно матрице), как будто вход только что изменил состояние: если вход замкнут, то выполняется действие по переднему фронту. Если разомкнут — то по заднему. Такой режим обеспечивает дополнительную надежность при управлении реле датчиками протечки, подключенными ко входам. Отрабатывается следующий сценарий: при замыкании входа датчиком протечки шаровой кран перекрывает воду. В какой-то момент поступает команда на открытие крана (например, по Modbus). Но, если протечка все еще фиксируется датчиком, через 20 минут кран снова будет перекрыт.


== Примеры программирования взаимодействия входов и выходов == <!--T:17-->
== Примеры программирования взаимодействия входов и выходов == <!--T:17-->