write

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

Описание

пример

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

пример

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

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

Примеры

свернуть все

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

Напишите на 4 катушки, начиная с адреса 8289. The address параметр является начальным адресом катушек, в которые нужно записать, и является двойным. The 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

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

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

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

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

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

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

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

Адрес сервера, которому нужно отправить команду write, заданный как 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++ с помощью Coder™ MATLAB ®

.
Введенный в R2017a