bg

Копирование настроек из утилиты MODBUS Poll в наш логгер для Modbus

Описание проблемы:

Я могу успешно протестировать и получить данные с моего устройства MODBUS RTU используя программу MODBUS Poll. Как я могу скопировать или перенести необходимые настройки в ваш логгер для MODBUS, поскольку у меня есть необходимость сохранять данные в базу данных?

Требования:

Подразумевается, что:

Вы успешно настроили MODBUS Poll и получили нужные значения с вашего устройства MODBUS (рис. 1).

Решение:

1. Создайте новую конфигурацию в главном окне логгера кликнув на кнопке "Плюс" в главном окне программы. (рис. 3). Этот пример демонстрирует пример настройки для MODBUS RTU. Если ваше устройство использует MODBUS TCP, пожалуйста, посмотрите тут. Сначала, скопируйте настройки соединения из MODBUS poll (Connection → Connect, рис. 1, 2):

  • COM port → COM порт.
  • Baud → Скорость.
  • Data bits → Биты данных.
  • Parity → Четность.
  • Stop bits → Стоповых битов.
  • Режим слежение - отключите эту опцию.
  • RTS toggle (рис. 2) → Режим интерфейса RS485. Включите эту опцию, если подключили ваши MODBUS устройства на одну шину RS-485, и вы используете преобразователь RS485-USB или RS485-RS232.
  • DTR → Контроль передачи данных → Использовать DTR.
  • DSR/CTS → Контроль передачи данных → Требуется DTR/CTS.
  • Остальные опции оставьте по умолчанию.

Настройка соединения в MODBUS Poll
Рис. 1. Настройка соединения в MODBUS Poll.

Дополнительные настройки соединения MODBUS Poll
Рис. 2. Дополнительные настройки соединения MODBUS Poll.

Настройки соединения логгера MODBUS
Рис. 3. Настройки соединения логгера MODBUS.

2. Выберите модуль "MODBUS RTU" в настройках, в полях "Модуль запроса данных" и "Модуль разбора данных" (рис. 4). Не перепутайте с "MODBUS RTU [Passive]" или "MODBUS RTU [Slave]", которые реализуют другие режимы работы. В данном примере логгер работает как ведущий (мастер) в сети MODBUS.

Выбор модуля MODBUS RTU
Рис. 4. Выбор модуля MODBUS RTU.

3. В настройках модуля MODBUS RTU кликните на кнопке "Действие → Добавить новый запрос" чтобы добавить новый запрос MODBUS (рис. 6). Скопируйте базовые настройки запроса из MODBUS poll (Setup → Read/Write Definition, рис. 5):

  • Slave ID → Адрес устройства.
  • Function → Функция.
  • Address (Dec) → Первый регистр - Значение.
  • Quantity → Считать регистров.
  • Response timeout (рис. 1) → Ожидание ответа (мс).
  • Scan rate → Интервал опроса.

Замечание: Рисунок 6 - это пример. Он не соответствует настройками на рисунке 5.

MODBUS poll: Базовые настройки запроса MODBUS
Рис. 5. MODBUS poll: Базовые настройки запроса MODBUS.

Логгер: Базовые настройки MODBUS
Рис. 6. Логгер: Базовые настройки MODBUS.

4. Добавьте только один элемент ответа кликнув на кнопке "Действие → Добавить элемент ответа" если элемент ответа отсутствует в списке (рис. 8).

  • Имя - любое имя значения.
  • Смещение - это смещение в байтах в блоке данных ответа, который не включает адрес, код функции и размер данных. Установите этот параметр равным "-1", и программа будет считать смещение автоматически.
  • Количество - количество последовательно расположенных в ответе значений с одинаковым типом данных. Это значение зависит от значений "Считать регистров" и "Тип данных". Один регистр содержит 16 бит данных. Поэтому, Количество = Считать регистров * 16 / Количество бит в типе данных значения.
  • Добавлять счетчик к имени - используется, если "Количество" больше 1.
  • Тип данных - скопируйте тип данных и пункта меню (рис. 7).
  • Число без знака - включите эту опцию, если тип данных в MODBUS Poll содержит слово "unsigned".
  • Прямой порядок байт - включите эту опцию, если тип данных в MODBUS Poll содержит слово "Little-endian", и отключите в других случаях.
  • Переставлять - включите эту опцию, если тип данных в MODBUS Poll содержит слово "byte swap".

Замечание: Рисунок 8 ниже - это пример настройки, который не совпадает с примером настройки MODBUS Poll на рисунках 5 и 7. Правильные настройки для типа данных "Signed 32 bit, big-endian":

  1. Имя: VALUE, Смещение: -1, Добавлять счетчик: Включено, Количество: 5, Тип данных: Decimal 32 bit, Число без знака: Выключено, Прямой порядок байт: Отключено, Переставлять: Отключено.

MODBUS Poll: Display
Рис. 7. MODBUS Poll: Display.

Элементы ответа MODBUS
Рис. 8. Элементы ответа MODBUS.

FAQ

Как я могу опрашивать несколько устройств MODBUS RTU одновременно?

MODBUS RTU позволяет подключить до 254 устройств на одну шину RS-485. Вы можете указать несколько адресов в виде 1,2,3,4,5 в поле "Адрес устройства" (рис. 3).

Могу я читать данные используя MODBUS TCP?

Да, конечно. Настройки почти идентичны. Необходимо только настроить TCP соединение и выбрать другой тип парсера (MODBUS TCP вместо MODBUS RTU в пункте 2).

Сопутствующие статьи:

MODBUS RTU, MODBUS ASCII, MODBUS/TCP

IEC 62056-21