write

Выполните операцию записи к подключенному серверу 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 до 2 000.

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

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

Запишите 3 значения, запускающиеся в адресе 29473, в сервере ID 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

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

Этот пример пишет в 4 обмотки, запускающиеся в адресе 8289.

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

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

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

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

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

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

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

Этот пример пишет в 4 регистра временного хранения информации, запускающиеся в адресе 2 использования точности 'uint32'.

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

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

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2017a