Копирование настроек Simply MODBUS RTU Master в наш логгер Modbus
Описание проблемы:
Я прекрасно могу прочитать данные из моего MODBUS RTU устройства используя утилиту Simply MODBUS RTU Master. Что мне нужно сделать, чтобы скопировать рабочие настройки в ваш логгер, поскольку мне хотелось бы опрашивать и мониторить мое устройство длительное время?
Вы смогли успешно получить данные от вашего MODBUS устройства используя Simply MODBUS (рис. 1).
Рис. 1. Настройки Simply MODBUS RTU.
Решение:
1. Создайте новую конфигурацию в главном окне логгера кликнув на кнопке "Плюс" в главном окне программы. (рис. 2). Этот пример демонстрирует пример настройки для MODBUS RTU. Если ваше устройство использует MODBUS TCP, пожалуйста, посмотрите тут. Для начала, скопируйте настройки подключения из Simply MODBUS:
COM port → COM порт.
Baud → Скорость передачи.
Data bits → Бит данных.
Stop bits → Стоповых битов.
Parity → Четность.
Режим слежения - отключите эту опцию.
Режим интерфейса RS485 - Включите эту опцию, если подключили ваши MODBUS устройства на одну шину RS-485, и вы используете преобразователь RS485-USB или RS485-RS232.
Остальные опции оставьте по умолчанию.
Рис. 2. Настройка RS232 соединения MODBUS RTU.
2. Выберите модуль "MODBUS RTU" в настройках, в полях "Модуль запроса данных" и "Модуль разбора данных" (рис. 4). Не перепутайте с "MODBUS RTU [Passive]" или "MODBUS RTU [Slave]", которые реализуют другие режимы работы. В данном примере логгер работает как ведущий (мастер) в сети MODBUS. Замечание: если опция "Register size" установлена в "32 bit registers", вы должны выбрать модуль "MODBUS RTU [Enron]" в обоих списках.
Рис. 3. Выбор модуля MODBUS RTU.
3. В настройках модуля MODBUS RTU кликните на кнопке "Действие → Добавить новый запрос" чтобы добавить новый запрос MODBUS (рис. 4). Скопируйте основные настройки запроса из Simply MODBUS:
Slave ID → Адрес устройства.
Function code → Функция.
Результат вычисления (First register - Minus offset) → Первый регистр - Значения.
Number of registers → Считать регистров.
Результат выражения (Response time * 2 * 1000) → Ожидание ответа (мс).
Интервал опроса - настройте по вашему желанию.
Замечание: Рисунок 4 - это пример. Он не соответствует настройками на рисунке 1.
Рис. 4. Основные параметры запроса.
4. Добавьте необходимое количество элементов ответа кликнув на кнопке "Действие → Добавить элемент ответа":
Имя - любое имя по вашему желанию.
Смещение - это смещение в байтах в блоке данных ответа, который не включает адрес, код функции и размер данных. Установите этот параметр равным "-1", и программа будет считать смещение автоматически.
Количество - количество последовательно расположенных в ответе значений с одинаковым типом данных.
Добавлять счетчик к имени - используется, если "Количество" больше 1.
Тип данных - скопируйте тип данных из первой колонки данных ответа (рис. 1).
Число без знака - включите эту опцию если тип данных в Simply MODBUS
это беззнаковое целое (UINT) и отключите опцию в других случаях.
Прямой порядок байт - эта опция имеет обратное значение опции "High byte first" в Simply MODBUS.
Переставлять - эта опция соответствует опции "High word first".
Замечание: Рисунок 5 ниже - это пример настройки, который не совпадает с примером настройки Simply MODBUS на рисунке 1. Правильный и полный список элементов ответа выглядит так:
Имя
Смещение
Количество
Тип данных
Число без знака
Переставлять
VALUE1
-1
1
Decimal 16 bit
VALUE2
-1
1
Float
✓
VALUE3
-1
1
Decimal 32 bit
✓
VALUE4
-1
1
Decimal 32 bit
✓
✓
Рис. 5. Элементы ответа MODBUS.
Ответы на вопросы
Как опрашивать несколько одинаковых MODBUS RTU устройств?
Протокол MODBUS RTU позволяет подключать устройство на одну линию. Максимум может быть 254 устройств на одной шине RS-485. Вы можете указать список адресов в поле "Адрес устройства" в виде 1,2,3,4,5 (рис. 4).
Можно ли опрашивать MODBUS TCP устройства?
Для этого, вы должны использовать соответствующий логгер и настроить TCP соединение. Также, вы должны выбрать модуль MODBUS TCP вместо MODBUS RTU на рис. 3.