Команды и переменные Modbus-устройств: руководство пользователя
Этот документ объясняет, как Modbus-устройства "разговаривают" с системой - что такое команда, регистр и переменная, и как их настроить и использовать. Раздел разделён на две части, потому что находится в двух разных местах интерфейса:
Где находится
- Создание команд и переменных (протокольная карта устройства): "Конфигуратор" → "Типы" → "Modbus-устройства"
- Назначение ролей готовым командам конкретного устройства: "Конфигуратор" → "Modbus-устройства"
См. также мануалы "Подготовка справочников отеля" и "Настройка ModBus сети"
Базовые понятия
Представьте, что шлюз - это диспетчер, который опрашивает все подключённые устройства. Чтобы получить от устройства данные, диспетчер посылает ему команду - конкретный вопрос: "дай мне регистр номер 0".
Устройство отвечает регистром - это просто 16 бит (2 байта), набор нулей и единиц. Сам по себе регистр ничего не значит для человека. Чтобы превратить его в понятную информацию, в нём выделяют диапазон бит и говорят системе: "вот эти конкретные биты означают тревогу" - это и есть переменная
graph TD
A["Шлюз<br/>опрашивает устройства по сети"] --> B["Устройство<br/>конкретный прибор, свой адрес"]
B --> C["Команда<br/>какой регистр прочитать"]
C --> D["Регистр<br/>ответ устройства, 16 бит"]
D --> E["Переменная<br/>диапазон бит = конкретное значение"]
PROTOSS-PE11-H |
| Устройство | Конкретный физический прибор со своим Modbus-адресом | WP8026ADAM |
| Команда | Запрос: какой регистр читать, с какого адреса, сколько штук | GET_DATA, PING |
| Регистр | Сырой ответ устройства - 16 бит (2 байта) | Регистр 0 |
| Переменная | Диапазон бит внутри регистра, которому присвоено значение | Биты 3-12 → тревожное событие |
Один регистр может содержать сразу несколько переменных, если в нём закодировано несколько независимых сигналов. Например, для регистра из 16 бит:
| Биты | Что означают |
|---|---|
| 0-2 | не используется |
| 3-12 | Переменная: тревожное событие |
| 13-15 | не используется |
Часть 1: Создание команд и переменных в типе устройства
Команды и переменные задаются один раз - на уровне типа устройства, а не для каждого экземпляра отдельно
Шаг 1: Параметры типа устройства
- В боковом меню выберите "Конфигуратор" → "Типы" → "Modbus-устройства"
- Нажмите "+ Добавить тип"
-
Заполните параметры устройства:
- Активность: переключатель в правом верхнем углу
- Название типа: уникальное название (например,
WP8026ADAM) (обязательное поле) - Преднастроенный Modbus-адрес: адрес устройства на шине Modbus (обязательное поле)
- Тип события: тип события, связанный с устройством (обязательное поле)
- Описание: (опционально)
Шаг 2: Добавление команды устройства
- В блоке "Команды" нажмите "+ Добавить"
-
Заполните параметры команды:
- Название: например,
Команда 1(обязательное поле) - Тип события: тип события, связанный с командой (обязательное поле)
- Тип регистра: выберите тип регистра Modbus, например "Регистры ввода" или "Регистры хранения" (обязательное поле)
- Название: например,
-
Укажите начальный регистр ("Старт") и количество регистров ("Регистров")
- Система отобразит визуальную карту регистра по байтам и битам
Шаг 3: Создание переменной
- В визуальной карте регистра выделите нужный диапазон бит, можно несколько бит подряд (например, биты 3-12)
- Под картой регистра появится подсказка "Выделено: биты N-N" с кнопками "+ Создать переменную" и "Отменить выделение"
- Нажмите "+ Создать переменную"
-
Заполните параметры переменной:
- Активность: переключатель
- Название: обязательное поле
- Тип события: обязательное поле
- Стартовый бит в команде: подставляется автоматически по выделению (обязательное поле)
- Длина: количество бит, подставляется автоматически по выделению (например, для диапазона 3-12 длина будет
10) (обязательное поле) - Описание: опционально
-
Нажмите "Сохранить" (или "Отмена")
Часть 2: Работа с командами на странице "Modbus-устройства"
Здесь команды и переменные уже не создаются - только используются. Для конкретного экземпляра устройства можно назначить ролью имеющиеся команды и при необходимости отредактировать их
Шаг 4: Назначение роли команде
- Под устройством в таблице вы увидите карточки всех его команд - тип регистра, диапазон, количество переменных, статус
- Нажмите на значок карандаша на карточке команды, чтобы открыть окно "Изменить команду" и изменить "Название команды", "Тип события" или "Описание"
-
Нажмите на значок молнии на карточке, чтобы назначить команде роль:
-
"Использовать команду для получения данных" - команда будет читать данные с устройства
-
"Использовать команду для пинга устройства" - команда будет использоваться для проверки доступности устройства
-
Статус под карточкой покажет текущую роль (например, "Читает данные и пингует", "Используется для пинга") или "Выключена", если роль не назначена
- Столбец "Состав" в таблице "Modbus-устройства" показывает, сколько команд из общего числа уже получили роль (например,
1/2 команды)
Шаг 5: Если переменные не настроены
Если под карточками команд написано "Переменные команды отсутствуют" - значит, для устройства не настроены переменные. Вернитесь к Шагу 3 в справочнике типа устройства и добавьте нужные переменные
Возможные проблемы и решения
"Команда не получает данные"
Причины:
- Команде не назначена роль "Использовать команду для получения данных"
- Для команды не настроены переменные
Решение:
- Нажмите на значок молнии на карточке команды и назначьте нужную роль
- Настройте переменные в справочнике типа устройства (Часть 1, Шаг 3)
Важная информация
- Команды и переменные настраиваются один раз на уровне типа устройства - все экземпляры этого типа получают одинаковый набор команд
- На странице "Modbus-устройства" команды и переменные нельзя создать или изменить состав - только назначить роль и отредактировать название/тип события/описание существующей команды
- Одна команда может содержать несколько переменных, если в её регистрах закодировано несколько независимых сигналов