Relay Module Modbus Management: различия между версиями
Matveevrj (обсуждение | вклад) |
Admin (обсуждение | вклад) (Отметить эту версию для перевода) |
||
(не показано 40 промежуточных версий 8 участников) | |||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE: | <languages/> | ||
== | <translate> | ||
<!--T:1--> | |||
{ | {{DISPLAYTITLE:Управление модулями реле Wirenboard по протоколу Modbus}} | ||
| | |||
<!--T:42--> | |||
{{:Modbus_control_common}} | |||
== Настройка устройства == <!--T:43--> | |||
=== Безопасный режим === <!--T:44--> | |||
В этом режиме при прекращении обмена данными по Modbus устройство отключает реле по прошествии заданного времени. | |||
<!--T:7--> | |||
Для включения безопасного режима (Safety timer) нужно записать значение, отличное от 0, в регистр хранения командой WRITE_SINGLE_REGISTER по адресу 8. Это значение — таймаут в секундах. Значение "0" отключает безопасный режим. | |||
=== Режим работы реле в случае отключении питания === <!--T:8--> | |||
<!--T:45--> | |||
Для устройств WB-MR существует возможность запоминать состояние выхода при отключении питания. Режим контролируется Modbus-регистром 6. Если в регистре записано значение '0', то состояние выходов не сохраниться и при подаче питания все реле буду выключены. Если в регистре записана единица, то после возобновления питания все включенные до аварии реле включатся снова. | |||
Этот функционал появился в модулях с прошивкой, начиная с версии 1.5.3. | |||
=== Цифровые входы === <!--T:10--> | |||
Состояние входа можно получить чтением регистров Discrete Inputs 0—'''x''' (где x = '''(количество управляемых каналов - 1)'''). Если вход соединён с GND, значение регистра равно 1, если не соединён - 0. | |||
=== Режимы взаимодействия цифровых входов с релейными выходами === <!--T:11--> | |||
<!--T:12--> | |||
В релейном модуле можно включить прямое управление релейными выходами с цифровых входов. Есть несколько вариантов такого управления: | |||
* Простые: | |||
** '''Режим 0''': управление выключателем без фиксации (кнопкой "с самостоятельным отжатием обратно"). Вы нажимаете на кнопку (замыкаете цифровой вход с GND), она сама "отжимается обратно", состояние реле переключается на противоположное. | |||
** '''Режим 1''': управление выключателем с фиксацией. Реле всегда устанавливается в соответствии с положением выключателя. Если выключатель "включён" (замыкает цифровой вход с GND), реле тоже замкнуто. Если выключатель "выключен", реле разомкнуто. | |||
** '''Режим 3''': управление релейным выходом с цифрового входа отключено. | |||
* Сложные: | |||
** Mapping-матрица (смотрите подробное описание ниже) | |||
<!--T:13--> | |||
Режим устанавливается отдельно для каждого канала. Чтобы выбрать режим, запишите номер режима в соответствующий регистр хранения, начиная с адреса 9 для первого канала и т. д. При этом в регистре 5 должно сохраняться значение по умолчанию. | |||
<!--T:14--> | |||
В старых прошивках регистров 9 и т.д. может не быть. В них можно установить режим только для всех каналов одновременно. Для этого запишите соответствующее число в регистр 5. | |||
==== Mapping-матрица ==== <!--T:15--> | |||
<!--T:16--> | |||
Начиная с прошивки 1.9.0 для отдельных каналов предусмотрен также '''режим 2''' -- отключить все выходы, и '''режимы работы (4 и 5)''' в соответствии с mappig-матрицей (смотри далее). В этой и более поздних версиях прошивок в модулях реализована возможность более гибкой настройки взаимодействия входов и выходов релейных модулей при помощи специальной mapping-матрицы: таблицы, в которой для каждого входа при изменении его состояния кодируется изменение состояние любого релейного выхода. Подробное описание можно найти в статье [[I/O_Mapping_Matrix]]. | |||
= Карта регистров модулей реле = <!--T:46--> | |||
В таблице: | |||
* '''x''' — количество релейных выходов; | |||
* '''y''' — количество цифровых входов. | |||
Для устаревших модулей WB-MRM2 (не путать с современными WB-MRM2-mini) карту регистров смотрите на отдельной странице [[WB-MRM2]]. | |||
<!--T:18--> | |||
{| border="1" class="wikitable" style="text-align:center; width:1000px;" | |||
!Регистр / адрес | |||
!Тип | |||
!Чтение/запись | |||
!Значение по умолчанию | |||
!Формат | |||
!Назначение | |||
!Примечание | |||
|- | |||
| 0 .. ('''x'''-1) || coil || RW || - || 1 или 0|| состояние реле с номером 1 .. '''x''' || | |||
|- | |||
| 0 .. ('''y'''-1) || discrete || R || - || 1 или 0 | |||
|| состояние входа с номером 1 .. '''y''' || | |||
|- | |||
| 5 | |||
| holding | |||
| RW | |||
| 0 | |||
| style="text-align:left;" | | |||
должно оставаться значение по умолчанию в современных прошивках | |||
|| не используется в современных прошивках.<br>В устаревших прошивках использовался для одновременной настройки режима взаимодействия цифровых входов с релейными выходами. || не используется в современных прошивках.<br>В устаревших прошивках использовался для одновременной настройки режима взаимодействия цифровых входов с релейными выходами - аналогично нынешним регистрам 9 .. (9+'''x'''-1), но для всех входов одновременно. | |||
|- | |||
| 6 | |||
|| holding || RW || 0 | | |||
| style="text-align:left;" | | |||
* '''0''': не восстанавливать состояние реле после восстановления питания | |||
* '''1''': восстанавливать состояние реле после восстановления питания | |||
|| режим работы реле в случае отключении питания || (только в прошивках 1.5.3 и позднее) | |||
|- | |||
| 8 || holding || RW || 0 || секунды || таймаут для безопасного режима || | |||
|- | |||
<!--T:19--> | |||
| rowspan="3" | 9 .. (9+'''x'''-1) | |||
| rowspan="3" | holding | |||
| rowspan="3" | RW | |||
| rowspan="2" | 0 | |||
| style="text-align:left;" | | |||
* '''0''': кнопки без фиксации | |||
* '''1''': выключатель с фиксацией | |||
* '''3''': отключить взаимодействие | |||
| rowspan="3" | режим взаимодействия отдельного цифрового входа с соответствующим релейным выходом.<br>В регистре 5 должно стоять значение по умолчанию. | |||
| | |||
|- | |||
<!--T:20--> | |||
| rowspan="2" style="text-align:left;" | | |||
* '''2''': отключать все реле при нажатии | |||
* '''4''': управлять в соответствии с [[I/O_Mapping_Matrix|mapping-матрицей]] | |||
* '''5''': управлять в соответствии с [[I/O_Mapping_Matrix|mapping-матрицей]], через 20 минут повторно имитировать состояние ввода | |||
|Начиная с прошивки 1.9.0 | |||
|- | |||
|1 | |||
|Начиная с прошивки 1.12.0 | |||
|- | |||
<!--T:21--> | |||
| rowspan="2" | 16 | |||
| rowspan="2" | holding | |||
| rowspan="2" | RW | |||
| | |||
|style="text-align:left;"| | |||
* '''0''': кнопки без фиксации | |||
* '''1''': выключатель с фиксацией | |||
* '''3''': отключить взаимодействие | |||
<!--T:22--> | |||
| режим работы цифрового входа 0 для отключения всех реле | |||
| | |||
|- | |||
| 2 | |||
<!--T:23--> | |||
|style="text-align:left;" | | |||
* '''2''': отключать все реле при нажатии | |||
* '''4''': управлять в соответствии с [[I/O_Mapping_Matrix|mapping-матрицей]] | |||
* '''5''': управлять в соответствии с [[I/O_Mapping_Matrix|mapping-матрицей]], через 20 минут повторно имитировать состояние ввода | |||
| режим работы цифрового входа 0; в регистре 5 должен быть записан "0" | |||
|Начиная с прошивки 1.9.0 | |||
|- | |||
<!--T:47--> | |||
| 20 .. (20+'''x'''-1) || holdreg || RW || 50 || 0 - 100 || время защиты от дребезга в миллисекундах || Начиная с прошивки 1.13.0 | |||
|- | |||
<!--T:24--> | |||
| 32 .. (32+'''y'''-1) || input || R || 0 || 16-bit unsigned int || счетчик срабатываний входа 1 .. '''y''' || | |||
|- | |||
| 384-447 || holding || RW || 0 || || регистры [[I/O_Mapping_Matrix|mapping-матрицы]] || Начиная с версии прошивки 1.9.0 | |||
|} | |} | ||
<!--T:48--> | |||
{{:Common_Modbus_Registers}} | |||
<!--T:49--> | |||
Регистры настройки параметров обмена данными по RS-485 поддерживаются начиная с прошивки версии 1.6.0 | Регистры настройки параметров обмена данными по RS-485 поддерживаются начиная с прошивки версии 1.6.0 | ||
</translate> |
Версия 18:31, 18 апреля 2020
Настройка устройства
Безопасный режим
В этом режиме при прекращении обмена данными по Modbus устройство отключает реле по прошествии заданного времени.
Для включения безопасного режима (Safety timer) нужно записать значение, отличное от 0, в регистр хранения командой WRITE_SINGLE_REGISTER по адресу 8. Это значение — таймаут в секундах. Значение "0" отключает безопасный режим.
Режим работы реле в случае отключении питания
Для устройств WB-MR существует возможность запоминать состояние выхода при отключении питания. Режим контролируется Modbus-регистром 6. Если в регистре записано значение '0', то состояние выходов не сохраниться и при подаче питания все реле буду выключены. Если в регистре записана единица, то после возобновления питания все включенные до аварии реле включатся снова. Этот функционал появился в модулях с прошивкой, начиная с версии 1.5.3.
Цифровые входы
Состояние входа можно получить чтением регистров Discrete Inputs 0—x (где x = (количество управляемых каналов - 1)). Если вход соединён с GND, значение регистра равно 1, если не соединён - 0.
Режимы взаимодействия цифровых входов с релейными выходами
В релейном модуле можно включить прямое управление релейными выходами с цифровых входов. Есть несколько вариантов такого управления:
- Простые:
- Режим 0: управление выключателем без фиксации (кнопкой "с самостоятельным отжатием обратно"). Вы нажимаете на кнопку (замыкаете цифровой вход с GND), она сама "отжимается обратно", состояние реле переключается на противоположное.
- Режим 1: управление выключателем с фиксацией. Реле всегда устанавливается в соответствии с положением выключателя. Если выключатель "включён" (замыкает цифровой вход с GND), реле тоже замкнуто. Если выключатель "выключен", реле разомкнуто.
- Режим 3: управление релейным выходом с цифрового входа отключено.
- Сложные:
- Mapping-матрица (смотрите подробное описание ниже)
Режим устанавливается отдельно для каждого канала. Чтобы выбрать режим, запишите номер режима в соответствующий регистр хранения, начиная с адреса 9 для первого канала и т. д. При этом в регистре 5 должно сохраняться значение по умолчанию.
В старых прошивках регистров 9 и т.д. может не быть. В них можно установить режим только для всех каналов одновременно. Для этого запишите соответствующее число в регистр 5.
Mapping-матрица
Начиная с прошивки 1.9.0 для отдельных каналов предусмотрен также режим 2 -- отключить все выходы, и режимы работы (4 и 5) в соответствии с mappig-матрицей (смотри далее). В этой и более поздних версиях прошивок в модулях реализована возможность более гибкой настройки взаимодействия входов и выходов релейных модулей при помощи специальной mapping-матрицы: таблицы, в которой для каждого входа при изменении его состояния кодируется изменение состояние любого релейного выхода. Подробное описание можно найти в статье I/O_Mapping_Matrix.
Карта регистров модулей реле
В таблице:
- x — количество релейных выходов;
- y — количество цифровых входов.
Для устаревших модулей WB-MRM2 (не путать с современными WB-MRM2-mini) карту регистров смотрите на отдельной странице WB-MRM2.
Регистр / адрес | Тип | Чтение/запись | Значение по умолчанию | Формат | Назначение | Примечание |
---|---|---|---|---|---|---|
0 .. (x-1) | coil | RW | - | 1 или 0 | состояние реле с номером 1 .. x | |
0 .. (y-1) | discrete | R | - | 1 или 0 | состояние входа с номером 1 .. y | |
5 | holding | RW | 0 |
должно оставаться значение по умолчанию в современных прошивках |
не используется в современных прошивках. В устаревших прошивках использовался для одновременной настройки режима взаимодействия цифровых входов с релейными выходами. |
не используется в современных прошивках. В устаревших прошивках использовался для одновременной настройки режима взаимодействия цифровых входов с релейными выходами - аналогично нынешним регистрам 9 .. (9+x-1), но для всех входов одновременно. |
6 | holding | RW |
|
режим работы реле в случае отключении питания | (только в прошивках 1.5.3 и позднее) | |
8 | holding | RW | 0 | секунды | таймаут для безопасного режима | |
9 .. (9+x-1) | holding | RW | 0 |
|
режим взаимодействия отдельного цифрового входа с соответствующим релейным выходом. В регистре 5 должно стоять значение по умолчанию. |
|
|
Начиная с прошивки 1.9.0 | |||||
1 | Начиная с прошивки 1.12.0 | |||||
16 | holding | RW |
|
режим работы цифрового входа 0 для отключения всех реле | ||
2 |
|
режим работы цифрового входа 0; в регистре 5 должен быть записан "0" | Начиная с прошивки 1.9.0 | |||
20 .. (20+x-1) | holdreg | RW | 50 | 0 - 100 | время защиты от дребезга в миллисекундах | Начиная с прошивки 1.13.0 |
32 .. (32+y-1) | input | R | 0 | 16-bit unsigned int | счетчик срабатываний входа 1 .. y | |
384-447 | holding | RW | 0 | регистры mapping-матрицы | Начиная с версии прошивки 1.9.0 |
Внимание: Отображаемое название «Таблица общих регистров» переопределяет ранее заданное отображаемое название «Управление модулями реле Wirenboard по протоколу Modbus».
Адрес | Параметры регистра | Описание | Значения | Примечание | |||
---|---|---|---|---|---|---|---|
Dec | Hex | Тип | Доступ | Формат | |||
Параметры подключения | |||||||
110 | 0x006E | Holding | RW | u16 | Скорость порта RS-485. Настройка параметров подключения по RS-485 |
x100, Боды 12 — 1200 бит/с, 24 — 2400 бит/с, 48 — 4800 бит/с, 96 — 9600 бит/с, 192 — 19 200 бит/с, 384 — 38 400 бит/с, 576 — 57 600 бит/с, 1152 — 115 200 бит/с |
|
111 | 0x006F | Holding | RW | u16 | Настройка бита чётности порта RS-485 | 0 — нет бита чётности (none), 1 — нечётный (odd), 2 — чётный (even) |
|
112 | 0x0070 | Holding | RW | u16 | Количество стоп-битов порта RS-485 | 1, 2 | |
128 | 0x0080 | Holding | RW | u16 | Modbus-адрес устройства (подробнее) | ||
Модель устройства и версия прошивки | |||||||
200-205 | 0x00C8 - 0x00CD | Input | RO | string | Модель устройства | ||
206-219 | 0x00CE - 0x00DB | Input | RO | string | Расширение модели устройства. | Для чтения модели устройства нужно читать диапазон из 20 регистров (200 - 219) | Только в версиях прошивок, где есть Быстрый Modbus |
220-248 | 0x00DC - 0x00F8 | Input | RO | string | Хэш коммита и название ветки откуда собрана прошивка (2 символа в регистре) | ||
250-265 | 0x00FA - 0x0109 | Input | RO | string | Версия прошивки | ||
266-269 | 0x010A - 0x010D | Input | RO | u64 | Расширение серийного номера | ||
270-271 | 0x010E - 0x010F | Input | RO | u32 | Серийный номер | ||
290-301 | 0x0122 - 0x012D | Holding | RO | string | Сигнатура прошивки | ||
320 | 0x0140 | Input | RO | u16 | Версия прошивки в числовом формате (подробнее) | MAJOR | Только в версиях прошивок, где есть Быстрый Modbus |
321 | 0x0141 | MINOR | |||||
322 | 0x0142 | PATCH | |||||
323 | 0x0143 | s16 | SUFFIX | ||||
324-325 | 0x0144 - 0x0145 | Input | RO | u32 | Версия прошивки в числовом формате | Только в версиях прошивок, где есть Быстрый Modbus | |
326-327 | 0x0146 - 0x0147 | Input | RO | u32 | Версия прошивки в Big Endian формате | Только в версиях прошивок, где есть Быстрый Modbus | |
Прочее | |||||||
104-105 | 0x0068 - 0x0069 | Input | RO | u32 | Время работы с момента загрузки | секунды | |
120 | 0x0078 | Holding | RW | u16 | Перезагрузка устройства без сохранения состояния | любое, отличное от 0 перезагружает устройство | |
123 | 0x007B | Input | RO | u16 | Напряжение на микроконтроллере | мВ | |
129 | 0x0081 | Holding | RW | u16 | Перевод в режим обновления прошивки на 2 минуты | любое, отличное от 0 переводит устройство в режим обновления прошивки | |
330-336 | 0x014A - 0x0150 | Holding | RO | string | Версия загрузчика | ||
131 | 0x0083 | Holding | RW | u16 | Перевод в режим обновления прошивки на текущих настройках соединения | запись 1 переводит устройство в режим обновления прошивки | С версии прошивки 1.20.4 |
113 | 0x0071 | Holding | RW | u16 | Время перед отправкой ответа на modbus запрос | 0 - 254 мс | Только в версиях прошивок, где есть Быстрый Modbus |
114 | 0x0072 | Holding | RW | u16 | Режим непрерывного чтения регистров с зазором | 0 - отключен 1 - включен 2 - включение сохраняется после перезагрузки |
Только в версиях прошивок, где есть Быстрый Modbus |
121 | 0x0079 | Input | RO | u16 | Текущее напряжение питания | мВ | |
122 | 0x007A | Input | RO | u16 | Минимальное зарегистрированное напряжение питания с момента загрузки | мВ | |
123 | 0x007B | Input | RO | u16 | Напряжение питания микроконтроллера | мВ | |
124 | 0x007C | Input | RO | u16 | Внутренняя температура микроконтроллера | x0.1, °C |
Регистры настройки параметров обмена данными по RS-485 поддерживаются начиная с прошивки версии 1.6.0