6 Эксплуатация • отдельных значений (в том числе разных типов) различным приборам – каждый из них получит уникальное значение своего типа данных (например первый – Int, второй – Word, третий – Int и т. д.); • отдельных значений (в том числе разных типов) различным группам приборов – например, приборы 1 и 2 получат значение типа Int, приборы 3 и 4 получат значение типа Float. Под каждое передаваемое значение в пакете данных выделяется массив размером 8 байт. Это связано с размером максимального типа данных, поддерживаемого прибором (String). Значения типа Int, Word, Float, «Портрет» выравниваются по правому краю массива байт. Неиспользуемые байты заполняются нулями.
В пакете данных, передаваемом с помощью широковещательной команды, может присутствовать от 1 до 31 значения. Тип передаваемого значения должен совпадать с типом значения, отображаемым индикатором в данный момент. При записи нескольких значений, одним из полей пакета данных Modbus является адрес начального регистра для записи данных. В случае широковещательной команды для прибора, адрес начального регистра является идентификатором первого из записываемых значений. Идентификатор каждого последующего значения на единицу больше предыдущего. Для выделения из пакета нужного значения, в настройках прибора должен быть задан соответствующий идентификатор.
Он представляет собой сумму величин параметров: • код пользовательской функции для установки значений нескольким приборам ( AD.AD ); • адрес прибора ( ADDR ). Прибор с кодом пользовательской функции 1000 и адресом 1 будет иметь идентификатор 1001 . Если в пакете данных широковещательной команды указан адрес начального регистра 1001 , то прибор получит первое значение, содержащееся в пакете, если 1000 – то второе. Параметр AD.AD выбирается в программе «Конфигуратор СМИ2» на вкладке Сетевые параметры/ Расширенная группа параметров . 16 Пример Структура пакета широковещательной команды Пусть в сети находятся два прибора с адресами 1 и 2. Параметр AD.AD для обоих приборов имеет значение 1000.
Необходимо одной командой установить значение для отображения: первому индикатору – 1234 (типа Int), второму – 12.34 (типа Float).
Поле Значение (HEX) Размер Комментарий Адрес Slave 0x00 1 байт Код функции 0x10 1 байт Адрес регистра 0x03 0xE9 2 байта 1001 (DEC) Количество регистров 0x00 0x08 2 байта Количество регистров в 2 раза меньше количества байт (1 регистр = 2 байта) Количество байт данных 0x10 1 байт 16 байт – так как два значения по 8 байт Записываемые данные Значение 1001 0x000 0x001 8 байт Показатель степени – номер байта в пределах значения 0x002 0x003 1234 (DEC) 0x004 0x005 0x046 0xD27 Значение 1002 0x000 0x001 8 байт Показатель степени – номер байта в пределах значения 0x002 0x003 12.34 согласно стандарту IEEE 754-2008 0x414 0x455 0x706 0xF47 CRC 0x49 0x6E 2 байта Пример использования широковещательной команды доступен на странице прибора на сайте www.owen.ru, название проекта – «Пример использования широковещательной команды».