|
|
Строка 1: |
Строка 1: |
| <languages/>
| | {{DISPLAYTITLE:Настройка взаимодействия входов и выходов модулей WB-MR}} |
| | == Общие сведения == |
| | [[Image: mapping-example.png |250px|thumb|right| Представление маппинг-матрицы в виде таблицы ]] |
| | [[Image: wb press events.png |250px|thumb|right| Временные диаграммы типов нажатий ]] |
| | В релейных модулях WB-MR каждый из входов можно назначить для управления любым выходом с помощью шести управляющих событий. Логика управления записывается в память модуля WB-MR и не задействует ресурсы контроллера. |
|
| |
|
| <!--T:1-->
| | Настройка делается через маппинг-матрицы — это набор регистров в памяти модуля. Для простоты мы представим маппинг-матрицу в виде таблицы, где в строках будут входы, в столбцах — выходы, а на пересечении — действие. |
|
| |
|
| {{DISPLAYTITLE:Mapping-матрица}}
| | Возможные события, сгруппированные по типам: |
| == Назначение == <!--T:3-->
| | # Фронт сигнала: |
| Релейные модули имеют несколько режимов работы реле от входов. И один из них — это взаимодействие согласно Mapping-матрице.
| | #* передний; |
| | #* задний. |
| | # Нажатие на кнопку, подключённую к входу: |
| | #* короткое; |
| | #* длинное; |
| | #* двойное; |
| | #* сначала короткое, затем длинное. |
|
| |
|
| Режимы настраиваются индивидуально на каждый вход регистрами № 9-16, см. [[Relay_Module_Modbus_Management | карту регистров модулей реле]].
| | Для каждого типа события существует своя таблица, где прописано взаимодействие выходов и входов. |
|
| |
|
| Матрица действий над выходами по изменению состояний входов позволяет гибко настраивать реакцию устройства в зависимости от изменения его входов.
| | ==Настройка в веб-интерфейсе контроллера Wiren Board== |
| | {{note|note|Перед настройкой проверьте, что прошивка модуля на ниже 1.17.0, а ПО контроллера не старее wb-2207.}} |
| | Для настройки mapping-матрицы в веб-интерфейсе перейдите на вкладку '''Настройки — Конфигурационные файлы — Настройка драйвера serial-устройств''' и выберите настраиваемый модуль реле. В настройках модуля перейдите на вкладку с номером входа, который вы настраиваете, например, '''Вход 1'''. |
|
| |
|
| Настроить Mapping-матрицы можно через запись значений в регистры или в веб-интерфейсе контроллера Wiren Board.
| | Активируйте флажок '''Режим работы''' и выберите из выпадающего списка один из режимов: |
| | * ''Управлять по mapping-матрице'', чтобы настроить матрицы для управления по фронтам. Используется [[Mapping_matrix_legacy |старый вариант маппинг-матрицы]]. |
| | * ''Управлять по mapping-матрице для кнопок'', для распознавания нажатий кнопок. |
|
| |
|
| == Классическая матрица == <!--T:4--> | | <gallery mode="packed" heights="200px" caption="Управлять по mapping-матрице"> |
| [[Image: WebUI mapping-matrix.png |300px|thumb|right| Пример настройки mapping-матрицы в веб-интерфейсе контроллера Wiren Board]]
| | Image: Mapping-front-1.png | |
| | Image: Mapping-front-2.png | |
| | </gallery> |
|
| |
|
| Классическая Mapping-матрица появилась в устройствах WB-MR и WB-MWAC с версии прошивки '''1.9.0'''.
| | <gallery mode="packed" heights="200px" caption="Управлять по mapping-матрице для кнопок"> |
| | Image: Mapping-button-1.png | |
| | Image: Mapping-button-2.png | |
| | </gallery> |
|
| |
|
| {| class="wikitable noclear"
| | ==Настройка через запись в Modbus-регистры== |
| ! Регистры !! !! colspan="8"| Выходы '''MR3-6'''
| | {{note|note|Перед настройкой проверьте, что прошивка модуля на ниже 1.19.0. Если у вас старая версия прошивки, обновите её на свежую или используйте [[Mapping_matrix_legacy |старый вариант маппинг-матрицы]].}} |
| |- | | === Как настраивать === |
| !
| | Если у вас нет контроллера [[Wiren Board]], вы можете настроить маппинг-матрицы через запись значений в регистры, подробнее в статье [[Working_with_WB_devices_without_a_controller | Работа с Modbus-устройствами Wiren Board без контроллера]]. |
| | || '''1''' || '''2''' || '''3''' || '''4''' || '''5''' || '''6''' || '''7''' || '''8'''
| | |
| |- | | Общий алгоритм настройки: |
| !rowspan="8" |Входы
| | # Подключите модуль к компьютеру через преобразователь USB—RS485. |
| | '''1''' || 384 || 385 || 386 || 387 || 388 || 389 || 390 || 391
| | # Задайте режим работы входа в регистрах 9-15: |
| |- | | #* 4 — управлять по mapping-матрице по фронтам. |
| | '''2''' || 392 || 393 || 394 || 395 || 396 || 397 || 398 || 399
| | #* 6 — управлять по mapping-матрице для кнопок. |
| |-
| | # Запишите в регистры маппинг-матрицы для выбранного типа события одно из действий: |
| | '''3''' || 400 || 401 || 402 || 403 || 404 || 405 || 406 || 407
| | #*0 — ничего не делать; |
| |-
| | #*1 — выключить; |
| | '''4''' || 408 || 409 || 410 || 411 || 412 || 413 || 414 || 415
| | #*2 — включить; |
| |-
| | #*3 — инвертировать значение. |
| | '''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 выходов.
| |
| В каждом регистре записан код действия входа на выход.
| |
| Если в устройстве количество входов и/или выходов меньше 8, то адреса регистров '''не''' меняются — просто строки/столбцы для отсутствующих регистров не учитываются. Исключение — устройства с 2 входами и выходами. | | Если в устройстве количество входов и/или выходов меньше 8, то адреса регистров '''не''' меняются — просто строки/столбцы для отсутствующих регистров не учитываются. Исключение — устройства с 2 входами и выходами. |
|
| |
|
| {| class="wikitable"
| | Ниже вы найдёте таблицы регистров для каждого типа событий, а подробное описание всех регистров модулей реле по ссылке [[Relay_Module_Modbus_Management | Modbus-регистры WB-MR]]. |
| ! Регистры !! !! colspan="8"| Выходы '''MR2'''
| |
| |-
| |
| !
| |
| | || '''1''' || '''2'''
| |
| |-
| |
| !rowspan="8" |Входы
| |
| | '''1''' || 384 || 385
| |
| |- | |
| | '''2''' || 386 || 387
| |
| |-
| |
| |}
| |
|
| |
|
| | ===Маппинг-матрица коротких нажатий=== |
|
| |
|
| <!--T:5-->
| | {| class="wikitable" |
| В ячейке на пересечении строки входа и столбца выхода — регистр действия входа на выход.
| |
| В него записывается 16-битное слово '''0b0000 0000 0000 yyxx''', где биты '''yy''' описывают действия при замыкании входа (переход из 0 в 1, передний фронт), а биты '''xx''' — при размыкании (из 1 в 0, задний фронт).
| |
| | |
| Действия, в зависимости от битов:
| |
| <!--T:7-->
| |
| *00 — ничего не делать
| |
| *01 — выключить
| |
| *10 — включить
| |
| *11 — инвертировать значение
| |
| | |
| <!--T:8-->
| |
| Таким образом, можно запрограммировать реакцию каждого выхода на замыкание и размыкание любых входов.
| |
| | |
| [[Examples of interaction | Примеры программирования взаимодействия входов и выходов]]
| |
| | |
| {| class="wikitable"
| |
| ! !! !! ! colspan="4" |Задний фронт
| |
| |-
| |
| !
| |
| | || 00 || 01 || 10 || 11
| |
| |-
| |
| ! rowspan="4"|Передний<br>фронт
| |
| | 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)— Изменить состояние при замыкании и вернуться к исходному состоянию при размыкании
| |
| |}
| |
| | |
| <!--T:9-->
| |
| {| class="wikitable"
| |
| ! !! !! ! colspan="4" |Биты xx — размыкание входа
| |
| |-
| |
| !
| |
| | || style="text-align:center;"| '''00''' || style="text-align:center;"| '''01''' || style="text-align:center;"| '''10''' || style="text-align:center;"| '''11'''
| |
| |- style="vertical-align:center;"
| |
| ! rowspan="4"|Биты '''yy''', замыкание входа
| |
| | '''00'''
| |
| | style="text-align:center;vertical-align:bottom;" | [[File:Mm_0000.png|frameless|270px]]<br>(0) — Вход отключен, не управляет выходами
| |
| | style="text-align:center;vertical-align:bottom;" | [[File:Mm_0001.png|frameless|270px]]<br>(1) — Выключить при размыкании
| |
| | style="text-align:center;vertical-align:bottom;" | [[File:Mm_0010.png|frameless|270px]]<br>(2) — Включить при размыкании
| |
| | style="text-align:center;vertical-align:bottom;" | [[File:Mm_0011.png|frameless|270px]]<br>(3) — Изменить состояние выхода при размыкании
| |
| |- style="vertical-align:center;"
| |
| | '''01'''
| |
| | style="text-align:center;vertical-align:bottom;" | [[File:Mm_0100.png|frameless|270px]]<br>(4) — Выключить при замыкании
| |
| | style="text-align:center;vertical-align:bottom;" | [[File:Mm_0101.png|frameless|270px]]<br>(5) — '''Всегда выключать'''
| |
| | style="text-align:center;vertical-align:bottom;" | [[File:Mm_0110.png|frameless|270px]]<br>(6) — Работать как инвертированный <br>выключатель с фиксацией
| |
| | style="text-align:center;vertical-align:bottom;" | [[File:Mm_0111.png|frameless|270px]]<br>(7) — Выключить при размыкании, потом <br>изменять состояние при переключении
| |
| |- style="vertical-align:center;"
| |
| | '''10'''
| |
| | style="text-align:center;vertical-align:bottom;" | [[File:Mm_1000.png|frameless|270px]]<br>(8) — Включить при замыкании
| |
| | style="text-align:center;vertical-align:bottom;" | [[File:Mm_1001.png|frameless|270px]]<br>(9) — Работать как '''выключатель с фиксацией''' <br>(повторять вход)
| |
| | style="text-align:center;vertical-align:bottom;" | [[File:Mm_1010.png|frameless|270px]]<br>(10, 0x0A)— Всегда включать
| |
| | style="text-align:center;vertical-align:bottom;" | [[File:Mm_1011.png|frameless|270px]]<br>(11, 0x0B) — Включить, потом изменять <br>состояние при размыкании
| |
| |- style="vertical-align:center;"
| |
| | '''11'''
| |
| | style="text-align:center;vertical-align:bottom;" | [[File:Mm_1100.png|frameless|270px]]<br>(12, 0x0C) — Изменить состояние выхода <br>при замыкании<br>('''выключатель без фиксации''')
| |
| | style="text-align:center;vertical-align:bottom;" | [[File:Mm_1101.png|frameless|270px]]<br>(13, 0x0D) — Изменить состояние, потом <br>выключить при размыкании
| |
| | style="text-align:center;vertical-align:bottom;" | [[File:Mm_1110.png|frameless|270px]]<br>(14, 0x0E) — Изменить состояние, потом <br>включить при размыкании
| |
| | style="text-align:center;vertical-align:bottom;" | [[File:Mm_1111.png|frameless|270px]]<br>(15, 0x0F) — Изменить состояние при замыкании<br>и вернуться к исходному состоянию<br>при размыкании
| |
| |}
| |
| | |
| == Матрицы для кнопок с распознаванием нажатий ==
| |
| [[Image: WebUI WB-MR6C v.2 Relay Change Input Mode Matrix.png |300px|thumb|right| Пример настройки матрицы для кнопок в веб-интерфейсе контроллера Wiren Board]]
| |
| Начиная с версии прошивки 1.17.0 появились дополнительные матрицы с возможностью настроить входы как кнопки для детектирования четырёх типов нажатий:
| |
| * короткое,
| |
| * длинное,
| |
| * двойное
| |
| * и сначала короткое, затем длинное.
| |
| | |
| Настраиваемые действия аналогичны Mapping-матрице, также как и принцип выбора регистра на пересечении. Биты '''yy''' не используются.
| |
| | |
| Карты регистров для настройки матриц нажатий описаны ниже, про настройку можно почитать в статье [[Examples of interaction | Примеры программирования взаимодействия входов и выходов]]
| |
| | |
| Mapping-матрица коротких нажатий:
| |
| | |
| {| class="wikitable" | |
| ! Регистры !! !! colspan="8"| Выходы '''MR3-6''' | | ! Регистры !! !! colspan="8"| Выходы '''MR3-6''' |
| |- | | |- |
Строка 184: |
Строка 96: |
| |} | | |} |
|
| |
|
| Mapping-матрица длинных нажатий:
| | ===Маппинг-матрица длинных нажатий=== |
|
| |
|
| {| class="wikitable" | | {| class="wikitable" |
Строка 223: |
Строка 135: |
| |} | | |} |
|
| |
|
| Mapping-матрица двойных нажатий:
| | ===Маппинг-матрица двойных нажатий=== |
|
| |
|
| {| class="wikitable" | | {| class="wikitable" |
Строка 262: |
Строка 174: |
| |} | | |} |
|
| |
|
| Mapping-матрица сначала коротких, потом длинных нажатий:
| | ===Маппинг-матрица сначала коротких, потом длинных нажатий=== |
|
| |
|
| {| class="wikitable" | | {| class="wikitable" |
Строка 298: |
Строка 210: |
| |- | | |- |
| | '''2''' || 738 || 739 | | | '''2''' || 738 || 739 |
| | |- |
| | |} |
| | |
| | ===Маппинг-матрица для заднего фронта сигнала=== |
| | |
| | {| class="wikitable" |
| | ! Регистры !! !! colspan="8"| Выходы '''MR3-6''' |
| | |- |
| | ! |
| | | || '''1''' || '''2''' || '''3''' || '''4''' || '''5''' || '''6''' || '''7''' || '''8''' |
| | |- |
| | !rowspan="8" |Входы |
| | | '''1''' || 800 || 801 || 802 || 803 || 804 || 805 || 806 || 807 |
| | |- |
| | | '''2''' || 808 || 809 || 810 || 811 || 812 || 813 || 814 || 815 |
| | |- |
| | | '''3''' || 816 || 817 || 818 || 819 || 820 || 821 || 822 || 823 |
| | |- |
| | | '''4''' || 824 || 825 || 826 || 827 || 828 || 829 || 830 || 831 |
| | |- |
| | | '''5''' || 832 || 833 || 834 || 835 || 836 || 837 || 838 || 839 |
| | |- |
| | | '''6''' || 840 || 841 || 842 || 843 || 844 || 845 || 846 || 847 |
| | |- |
| | | '''7''' || 848 || 849 || 850 || 851 || 852 || 853 || 854 || 855 |
| | |- |
| | | '''0''' || 856 || 857 || 858 || 859 || 860 || 861 || 862 || 863 |
| | |} |
| | |
| | {| class="wikitable" |
| | ! Регистры !! !! colspan="8"| Выходы '''MR2''' |
| | |- |
| | ! |
| | | || '''1''' || '''2''' |
| | |- |
| | !rowspan="8" |Входы |
| | | '''1''' || 800 || 801 |
| | |- |
| | | '''2''' || 802 || 803 |
| | |- |
| | |} |
| | |
| | ===Маппинг-матрица для переднего фронта сигнала=== |
| | |
| | {| class="wikitable" |
| | ! Регистры !! !! colspan="8"| Выходы '''MR3-6''' |
| | |- |
| | ! |
| | | || '''1''' || '''2''' || '''3''' || '''4''' || '''5''' || '''6''' || '''7''' || '''8''' |
| | |- |
| | !rowspan="8" |Входы |
| | | '''1''' || 864 || 865 || 866 || 867 || 868 || 869 || 870 || 871 |
| | |- |
| | | '''2''' || 872 || 873 || 874 || 875 || 876 || 877 || 878 || 879 |
| | |- |
| | | '''3''' || 880 || 881 || 882 || 883 || 884 || 885 || 886 || 887 |
| | |- |
| | | '''4''' || 888 || 889 || 890 || 891 || 892 || 893 || 894 || 895 |
| | |- |
| | | '''5''' || 896 || 897 || 898 || 899 || 900 || 901 || 902 || 903 |
| | |- |
| | | '''6''' || 904 || 905 || 906 || 907 || 908 || 909 || 910 || 911 |
| | |- |
| | | '''7''' || 912 || 913 || 914 || 915 || 916 || 917 || 918 || 919 |
| | |- |
| | | '''0''' || 920 || 921 || 922 || 923 || 924 || 925 || 926 || 927 |
| | |} |
| | |
| | {| class="wikitable" |
| | ! Регистры !! !! colspan="8"| Выходы '''MR2''' |
| | |- |
| | ! |
| | | || '''1''' || '''2''' |
| | |- |
| | !rowspan="8" |Входы |
| | | '''1''' || 864 || 865 |
| | |- |
| | | '''2''' || 866 || 867 |
| |- | | |- |
| |} | | |} |