
Вы читаете продолжение статьи «Работа расходомеров компании Line Tech в промышленной сети RS-485 по протоколу Modbus-RTU»
Содержание статьи:
- Пример: считывание настроек расходомера
- Пример: задание расхода
- Пример: изменение скорости обмена данными
Пример: считывание настроек расходомера
Считывание кода единицы измерения для расходомера с адресом «1»
Запрос: 01 03 00 04 00 01 C5 CB, где
0х01 Адрес устройства
0х03 Код функции
0х00 Адрес первого регистра, старший байт
0х04 Адрес первого регистра, младший байт
0х00 Количество регистров, старший байт
0х01 Количество регистров, младший байт
0xC5 Контрольная сумма, младший байт
0xCB Контрольная сумма, старший байт
Ответ: 01 03 02 00 02 39 85, где
0х01 Адрес устройства
0х03 Код функции
0х02 Количество байт данных
0х00 Код единицы измерения, старший байт
0х02 Код единицы измерения, младший байт
0x39 Контрольная сумма, младший байт
0x85 Контрольная сумма, старший байт
Код единицы измерения (регистр 0х0004): 0х0002, что соответствует «н.л/мин» (см. таблицу регистров)
Считывание верхнего предела измерения для расходомера с адресом «1»
Запрос: 01 03 00 05 00 02 D4 A0, где
0х01 Адрес устройства
0х03 Код функции
0х00 Адрес первого регистра, старший байт
0х05 Адрес первого регистра, младший байт
0х00 Количество регистров, старший байт
0х02 Количество регистров, младший байт
0xD4 Контрольная сумма, младший байт
0xA0 Контрольная сумма, старший байт
Ответ: 01 03 04 3F 80 00 00 B9 A2, где
0х01 Адрес устройства
0х03 Код функции
0х04 Количество байт данных
0х3F Верхний предел измерения, старший байт 1
0х80 Верхний предел измерения, байт 2
0х00 Верхний предел измерения, байт 3
0х00 Верхний предел измерения, младший байт 4
0xB9 Контрольная сумма, младший байт
0xA2 Контрольная сумма, старший байт
Верхний предел измерения (регистры 0х0005 и 0x0006): 0х3F800000, что равно «1,0» в десятеричной системе счисления.
С учетом значения регистра 0x0004 (код единицы измерения) получаем, что ВПИ расходомера составляет: 1,0 н.л/мин
Считывание типа прибора для расходомера с адресом «1»
Запрос: 01 03 00 07 00 01 35 CB, где
0х01 Адрес устройства
0х03 Код функции
0х00 Адрес первого регистра, старший байт
0х07 Адрес первого регистра, младший байт
0х00 Количество регистров, старший байт
0х01 Количество регистров, младший байт
0x35 Контрольная сумма, младший байт
0xCB Контрольная сумма, старший байт
Ответ: 01 03 02 00 00 B8 44, где
0х01 Адрес устройства
0х03 Код функции
0х02 Количество байт данных
0х00 Тип расходомера, старший байт
0х00 Тип расходомера, младший байт
0xB8 Контрольная сумма, младший байт
0x44 Контрольная сумма, старший байт
Тип расходомера (регистр 0х0007): 0х0000, что соответствует типу «регулятор» (см. таблицу регистров)
Считывание типа аналогового сигнала для расходомера с адресом «1»
Запрос: 01 03 00 08 00 01 05 CB, где
0х01 Адрес устройства
0х03 Код функции
0х00 Адрес первого регистра, старший байт
0х08 Адрес первого регистра, младший байт
0х00 Количество регистров, старший байт
0х01 Количество регистров, младший байт
0x05 Контрольная сумма, младший байт
0xCB Контрольная сумма, старший байт
Ответ: 01 03 02 00 01 79 84, где
0х01 Адрес устройства
0х03 Код функции
0х02 Количество байт данных
0х00 Тип аналогового сигнала, старший байт
0х01 Тип аналогового сигнала, младший байт
0x79 Контрольная сумма, младший байт
0x84 Контрольная сумма, старший байт
Тип расходомера (регистр 0х0008): 0х0001, что соответствует типу аналогового сигнала «ток» (см. таблицу регистров)
Считывание для расходомера с адресом «2» кода единицы измерения, верхнего предела измерения, типа прибора и аналогового сигнала
Запрос: 02 03 00 18 00 05 05 FD, где
0х02 Адрес устройства
0х03 Код функции
0х00 Адрес первого регистра, старший байт
0х18 Адрес первого регистра, младший байт
0х00 Количество регистров, старший байт
0х05 Количество регистров, младший байт
0x05 Контрольная сумма, младший байт
0xFD Контрольная сумма, старший байт
Ответ: 02 03 0A 00 01 44 3B 80 00 00 04 00 00 FD E4, где
0х02 Адрес устройства
0х03 Код функции
0х0A Количество байт данных
0х00 Код единицы измерения, старший байт 1
0х01 Код единицы измерения, младший байт
0х44 Верхний предел измерения, Старший байт 1
0х3B Верхний предел измерения, байт 2
0х80 Верхний предел измерения, байт 3
0х00 Верхний предел измерения, младший байт 4
0х00 Тип расходомера, старший байт
0х04 Тип расходомера, младший байт
0x00 Тип аналогового сигнала, старший байт
0x00 Тип аналогового сигнала, младший байт
0xFD Контрольная сумма, младший байт
0xE4 Контрольная сумма, старший байт
Код единицы измерения (регистр 0х0018): 0х0001, что соответствует «н.см3/мин» (см. таблицу регистров)
Верхний предел измерения (регистр 0х0019 и 0x001A): 0х443B8000, что равно «750» в десятеричной системе счисления
Таким образом, ВПИ расходомера: 750 н.см3/мин
Тип расходомера (регистр 0х001B): 0х0004, что соответствует типу «измеритель» (см. таблицу регистров)
Тип аналогового сигнала (регистр 0х001C) : 0х0000, что соответствует типу аналогового сигнала «напряжение» (см. таблицу регистров)
Пример: задание расхода
Для задания уставки регулятору расхода газа MD через промышленную сеть Modbus необходимо:
- переключить прибор на цифровой источник уставки (регистр 0x0009 для прибора с адресом «1»). При очередном включении питания расходомер всегда переключается на аналоговый источник уставки (значение «0x0000»)
- включить режим регулирования расхода (регистр 0x000A для прибора с адресом «1»)
- задать значение уставки в единицах измерения расхода
Переключение на цифровой источник уставки для расходомера с адресом «1»
Для переключения расходомера на цифровой источник уставки необходимо в регистр выбора источника (0x0009 для прибора с адресом «1») записать значение «0x0001» (см. таблицу регистров). Можно использовать функцию записи одного регистра 0x06.
Запрос: 01 06 00 09 00 01 98 08, где
0х01 Адрес устройства
0х06 Код функции
0х00 Адрес записываемого регистра, старший байт
0х09 Адрес записываемого регистра, младший байт
0х00 Источник уставки, старший байт
0х01 Источник уставки, младший байт
0x98 Контрольная сумма, младший байт
0x08 Контрольная сумма, старший байт
Ответ: 01 06 00 09 00 01 98 08
Включение режима регулирования расхода для расходомера с адресом «1»
Для включения режима регулирования расхода необходимо в соответствующий регистр (0x000A для прибора с адресом «1») записать значение «0x0001» (см. таблицу регистров). Можно использовать функцию записи одного регистра 0x06.
Запрос: 01 06 00 0A 00 01 68 08, где
0х01 Адрес устройства
0х06 Код функции
0х00 Адрес записываемого регистра, старший байт
0х0A Адрес записываемого регистра, младший байт
0х00 Включение режима регулирования, старший байт
0х01 Включение режима регулирования, младший байт
0x68 Контрольная сумма, младший байт
0x08 Контрольная сумма, старший байт
Ответ: 01 06 00 0A 00 01 68 08
Задание значения уставки для расходомера с адресом «1»
Для задания уставки регулятору расхода необходимо в соответствующий регистр (0x000C и 0x000D для прибора с адресом «1») записать значение уставки в единицах измерения расхода (см. таблицу регистров). Например, значение «0,2» в десятеричной системе счисления, что равно «0x3E4CCCCD» в шестнадцатеричном представлении для числа типа Float, 32 бит. Здесь необходимо использовать функцию «0x10», поскольку необходимо записать данные не в один, а уже в два регистра
Запрос: 01 10 00 0С 00 02 04 3E 4C CC CD AB 50, где
0х01 Адрес устройства
0х10 Код функции
0х00 Адрес первого регистра, старший байт
0х0С Адрес первого регистра, младший байт
0x00 Количество записываемых регистров, старший байт
0x02 Количество записываемых регистров, младший байт
0x04 Количество записываемых байтов, старший байт
0х3E Значение уставки, старший байт 1
0х4C Значение уставки, байт 2
0xCC Значение уставки, байт 3
0xCD Значение уставки, младший байт 4
0xAB Контрольная сумма, младший байт
0x50 Контрольная сумма, старший байт
Ответ: 01 10 00 0C 00 02 81 CB, где
0х01 Адрес устройства
0х10 Код функции
0х00 Адрес первого регистра, старший байт
0х0C Адрес первого регистра, младший байт
0х00 Количество записываемых регистров, старший байт
0х02 Количество записываемых регистров, младший байт
0x81 Контрольная сумма, младший байт
0xCB Контрольная сумма, старший байт
Пример: изменение скорости обмена данными
Расходомеры Line Tech серии MD поставляются с настроенной скоростью передачи данных 38 400 бод. При этом скорость передачи может настраиваться конечным пользователем с использованием цифрового интерфейса. Достаточно задать соответствующее значение регистру с кодом скорости передачи данных (см. таблицу регистров).
Следует отметить, что при выключении питания и последующем включении расходомера его скорость передачи данных сохраняется и НЕ переключается на заводское значение 38 400 бод. Во избежание недоразумений в будущем, следует зафиксировать новое значение скорости передачи данных, установленное для расходомера.
Задание скорости передачи данных для расходомера с адресом «1»
Для задания новой скорости передачи данных расходомера (например, 19 200 бод) необходимо в соответствующий регистр (0x000E для прибора с адресом «1») записать значение «0x0001» (см. таблицу регистров). Можно использовать функцию записи одного регистра 0x06.
Запрос: 01 06 00 0E 00 01 29 C9, где
0х01 Адрес устройства
0х06 Код функции
0х00 Адрес записываемого регистра, старший байт
0х0E Адрес записываемого регистра, младший байт
0х00 Код скорости передачи данных, старший байт
0х01 Код скорости передачи данных, младший байт
0x29 Контрольная сумма, младший байт
0xC9 Контрольная сумма, старший байт
В ответ на отправленный запрос будет получен ответ с ошибкой связи. Дело в том, что ведущее устройство сети продолжает коммуникацию на скорости 38 400 бод, а расходомер теперь сконфигурирован для работы на скорости 19 200 бод.
Для продолжения коммуникации с расходомером необходимо изменить скорость обмена данными ведущего устройства на 19 200 бод. После этого можно отправить запрос на считывание скорости передачи данных расходомера.
Запрос: 01 03 00 0E 00 01 E5 C9, где
0х01 Адрес устройства
0х03 Код функции
0х00 Адрес первого регистра, старший байт
0х0E Адрес первого регистра, младший байт
0х00 Количество регистров, старший байт
0х01 Количество регистров, младший байт
0xE5 Контрольная сумма, младший байт
0xC9 Контрольная сумма, старший байт
Ответ: 01 03 02 00 01 79 84, где
0х01 Адрес устройства
0х03 Код функции
0х02 Количество байт данных
0х00 Код скорости передачи данных, старший байт
0х01 Код скорости передачи данных, младший байт
0x79 Контрольная сумма, младший байт
0x84 Контрольная сумма, старший байт
Реализуя управление расходомерами Line Tech серии MD с помощью ПК, можно воспользоваться большим числом уже написанных программ-симуляторов ведущего устройства Modbus-сети. Можно разработать специализированное программное обеспечение самостоятельно, учитывая особенности конкретного приложения. Несомненно, каждый специалист, занимающийся построением промышленных сетей RS485, имеет свои предпочтения. Для тех, кто не так глубоко погружен в данную тематику, можно рекомендовать популярную и удобную программу Modbus Poll, имеющую довольно большой бесплатный пробный период. Она позволяет проверить на практике описанные выше примеры и понять принципы цифровой коммуникации в Modbus-сети.