запись

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

Синтаксис

write(m,target,address,values)
write(m,target,address,values,serverId,'precision')

Описание

пример

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

Массив значений, чтобы записать, заданный как двойное или массив удваивается. 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', 'int16', 'uint32', 'int32', 'uint64', 'int64', 'single' и 'double'. Этот аргумент является дополнительным, и значением по умолчанию является 'uint16'.

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

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

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

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

Введенный в R2017a