Работа расходомеров компании Line Tech в промышленной сети RS-485 по протоколу Modbus-RTU (продолжение)

Вы читаете продолжение статьи «Работа расходомеров компании Line Tech в промышленной сети RS-485 по протоколу Modbus-RTU»

 

Содержание статьи:

  1. Пример: считывание настроек расходомера
  2. Пример: задание расхода
  3. Пример: изменение скорости обмена данными

 

Пример: считывание настроек расходомера

Считывание кода единицы измерения для расходомера с адресом «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-сети.

Получить консультацию