Копирование настроек из утилиты 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.
Остальные опции оставьте по умолчанию.
Рис. 1. Настройка соединения в MODBUS Poll.
Рис. 2. Дополнительные настройки соединения MODBUS Poll.
Рис. 3. Настройки соединения логгера MODBUS.
2. Выберите модуль "MODBUS RTU" в настройках, в полях "Модуль запроса данных" и "Модуль разбора данных" (рис. 4). Не перепутайте с "MODBUS RTU [Passive]" или "MODBUS RTU [Slave]", которые реализуют другие режимы работы. В данном примере логгер работает как ведущий (мастер) в сети MODBUS.
Рис. 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.
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":
Имя: VALUE, Смещение: -1, Добавлять счетчик: Включено, Количество: 5, Тип данных: Decimal 32 bit, Число без знака: Выключено, Прямой порядок байт: Отключено, Переставлять: Отключено.
Рис. 7. MODBUS Poll: Display.
Рис. 8. Элементы ответа MODBUS.
FAQ
Как я могу опрашивать несколько устройств MODBUS RTU одновременно?
MODBUS RTU позволяет подключить до 254 устройств на одну шину RS-485. Вы можете указать несколько адресов в виде 1,2,3,4,5 в поле "Адрес устройства" (рис. 3).
Могу я читать данные используя MODBUS TCP?
Да, конечно. Настройки почти идентичны. Необходимо только настроить TCP соединение и выбрать другой тип парсера (MODBUS TCP вместо MODBUS RTU в пункте 2).