I/O Mapping Matrix: различия между версиями
м (Поправил текст) |
|||
Строка 70: | Строка 70: | ||
[[Еxamples of interaction | Примеры программирования взаимодействия входов и выходов]] | [[Еxamples of interaction | Примеры программирования взаимодействия входов и выходов]] | ||
<!-- | <!-- | ||
Строка 127: | Строка 129: | ||
| 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_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>при размыкании | | style="text-align:center;vertical-align:bottom;" | [[File:Mm_1111.png|frameless|270px]]<br>(15, 0x0F) — Изменить состояние при замыкании<br>и вернуться к исходному состоянию<br>при размыкании | ||
|} | |||
Начиная с версии прошивки 1.17.0 появились дополнительные матрицы с возможностью настроить входы как кнопки для детектирования различных типов нажатий. Добавлена обработка 4 типов нажатий: короткое, длинное, двойное и сначала короткое, затем длинное. Настраиваемые действия аналогичны Mapping-матрице, также как и принцип выбора регистра на пересечении. Биты '''yy''' не используются. Адреса для настройки матриц нажатий. | |||
Короткое нажатие: | |||
{| class="wikitable" style="float:left; margin-left: 10px;" | |||
! Регистры !! !! colspan="8"| Выходы '''MR3-6''' | |||
|- | |||
! | |||
| || '''1''' || '''2''' || '''3''' || '''4''' || '''5''' || '''6''' || '''7''' || '''8''' | |||
|- | |||
!rowspan="8" |Входы | |||
| '''1''' || 544 || 545 || 546 || 547 || 548 || 549 || 550 || 551 | |||
|- | |||
| '''2''' || 552 || 553 || 554 || 555 || 556 || 557 || 558 || 559 | |||
|- | |||
| '''3''' || 560 || 561 || 562 || 563 || 564 || 565 || 566 || 567 | |||
|- | |||
| '''4''' || 568 || 569 || 570 || 571 || 572 || 573 || 574 || 575 | |||
|- | |||
| '''5''' || 576 || 577 || 578 || 579 || 580 || 581 || 582 || 583 | |||
|- | |||
| '''6''' || 584 || 585 || 586 || 587 || 588 || 589 || 590 || 591 | |||
|- | |||
| '''7''' || 592 || 593 || 594 || 595 || 596 || 597 || 598 || 599 | |||
|- | |||
| '''0''' || 600 || 601 || 602 || 603 || 604 || 605 || 606 || 607 | |||
|} | |} |
Версия 19:03, 17 января 2022
Назначение
Релейные модули имеют несколько режимов работы реле от входов. И один из них — это взаимодействие согласно Mapping-матрице.
Режимы настраиваются индивидуально на каждый вход регистрами № 9-16, см. карту регистров модулей реле.
Матрица действий над выходами по изменению состояний входов позволяет гибко настраивать реакцию устройства в зависимости от изменения его входов. Эта функциональность появилась с версии 1.9.0 для устройств серии WB-MR и WB-MWAC.
Устройство и принцип работы
Регистры | Выходы MR3-6 | ||||||||
---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 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 выходов. В каждом регистре записан код действия входа на выход. Если в устройстве количество входов и/или выходов меньше 8, то адреса регистров не меняются — просто строки/столбцы для отсутствующих регистров не учитываются. Исключение — устройства с 2 входами и выходами.
Регистры | Выходы MR2 | ||||||||
---|---|---|---|---|---|---|---|---|---|
1 | 2 | ||||||||
Входы | 1 | 384 | 385 | ||||||
2 | 386 | 387 |
В ячейке на пересечении строки входа и столбца выхода — регистр действия входа на выход.
В него записывается 16-битное слово 0b0000 0000 0000 yyxx, где биты yy описывают действия при замыкании входа (переход из 0 в 1, передний фронт), а биты xx — при размыкании (из 1 в 0, задний фронт).
Действия, в зависимости от битов:
- 00 — ничего не делать
- 01 — выключить
- 10 — включить
- 11 — инвертировать значение
Таким образом, можно запрограммировать реакцию каждого выхода на замыкание и размыкание любых входов.
Примеры программирования взаимодействия входов и выходов
Начиная с версии прошивки 1.17.0 появились дополнительные матрицы с возможностью настроить входы как кнопки для детектирования различных типов нажатий. Добавлена обработка 4 типов нажатий: короткое, длинное, двойное и сначала короткое, затем длинное. Настраиваемые действия аналогичны Mapping-матрице, также как и принцип выбора регистра на пересечении. Биты yy не используются. Адреса для настройки матриц нажатий. Короткое нажатие:
Регистры | Выходы MR3-6 | ||||||||
---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ||
Входы | 1 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 |
2 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | |
3 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | |
4 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | |
5 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | |
6 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | |
7 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | |
0 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 |