exponenta event banner

написать

Выполнение операции записи на подключенный сервер MODBUS

Описание

пример

write(m,target,address,values) записывает данные в объект MODBUS m в целевой тип target по начальному адресу address использование значений для чтения values. Вы можете записывать в катушки или держать регистры.

пример

write(m,target,address,values,serverId,'precision') дополнительно указывает serverId, который является адресом сервера для отправки команды чтения, и precision, который является форматом данных считываемого регистра.

serverId может использоваться как для катушек, так и для регистров хранения, и precision может использоваться только для регистров. Можно использовать либо сам аргумент, либо использовать оба аргумента вместе, когда цель записи содержит регистры.

Примеры

свернуть все

Если целью записи являются катушки, функция записывает непрерывную последовательность из 1-1968 катушек во включенное или выключенное в удаленном устройстве. Катушка - это один выходной бит. Значение 1 указывает, что катушка включена, и значение 0 значит, он выключен.

Запись в 4 катушки, начиная с адреса 8289. address параметр является начальным адресом витков для записи и является двойным. values параметр является массивом значений для записи.

write(m,'coils',8289,[1 1 0 1])

Можно также создать переменную для записи значений.

values = [1 1 0 1];
write(m,'coils',8289,values)

Если целью записи является хранение регистров, функция записывает блок из 1-123 смежных регистров в удаленное устройство. Значения, представление которых больше 16 бит, хранятся в последовательных адресах регистров.

Установите регистр по адресу 49153 - 2000.

write(m,'holdingregs',49153,2000)

Можно выполнить запись в катушки или в регистры хранения, а также указать необязательный параметр для идентификатора сервера, а также задать точность для регистров хранения. Можно задать либо опцию самостоятельно, либо оба параметра serverId опции и precision вариант вместе. Оба параметра должны быть перечислены после требуемых аргументов.

Запишите 3 значения, начиная с адреса 29473, с идентификатора сервера 2, преобразуя в single точность.

write(m,'holdingregs',29473,[928.1 50.3 24.4],2,'single')

Входные аргументы

свернуть все

Целевая область для записи, заданная как символьный вектор или строка. Можно выполнить операцию записи MODBUS для двух типов целей: катушек и регистров хранения, поэтому необходимо установить тип цели как 'coils' или 'holdingregs'. Цель должна быть первым аргументом после имени объекта. В этом примере выполняется запись в 4 катушки, начиная с адреса 8289.

Пример: write(m,'coils',8289,[1 1 0 1])

Типы данных: char

Начальный адрес для записи, указанный как двойной. Адрес должен быть вторым аргументом после имени объекта. В этом примере выполняется запись на 6 катушек, начиная с адреса 5200.

Пример: write(m,'coils',5200,[1 1 0 1 1 0])

Типы данных: double

Массив значений для записи, указанный как двойной или двойной массив. values должен быть третьим аргументом после имени объекта. Если целью являются катушки, допустимые значения: 0 и 1. Если цель содержит регистры, допустимые значения должны находиться в диапазоне заданной точности. Можно включить массив значений в синтаксис, как показано здесь, или использовать переменную для значений.

В этом примере выполняется запись в 4 катушки, начиная с адреса 8289.

Пример: write(m,'coils',8289,[0 1 0 1])

Типы данных: double

Адрес сервера для отправки команды записи, указанный как двойной. Идентификатор сервера должен быть указан после имени объекта, целевого объекта, адреса и значений. Если не указать serverId, значение по умолчанию 1 используется. Допустимые значения: 0-247, с 0 является адресом широковещательной передачи. В этом примере записывается 8 катушек, начиная с адреса 1 с идентификатора сервера 3.

Пример: write(m,'coils',1,[1 1 1 1 0 0 0 0],3);

Типы данных: double

Формат данных регистра, записываемого на сервер MODBUS, заданный как символьный вектор или строка. Точность должна быть указана после имени объекта, цели, адреса и значений. Допустимые значения: 'uint16', 'int16', 'uint32', 'int32', 'uint64', 'int64', 'single', и 'double'. Этот аргумент является необязательным, а значение по умолчанию - 'uint16'.

Обратите внимание, что precision не ссылается на возвращаемый тип, который всегда 'double'. Здесь указывается, как интерпретировать данные регистра.

В этом примере выполняется запись в 4 регистра хранения, начиная с адреса 2 с точностью 'uint32'.

Пример: write(m,'holdingregs',2,[100 200 300 500],'uint32');

Типы данных: char

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2017a