Функция write
выполняет операции записи к двум типам целевых адресуемых областей:
Обмотки
Регистры временного хранения информации
Каждая из этих двух областей может принять запрос записи к одному адресу или непрерывному диапазону адресов. Когда вы выполняете операцию записи, необходимо задать целевой тип (target
), начальный адрес (address
) и значения, чтобы записать (values
). Можно также опционально задать адрес сервера (serverId
) и формат данных (precision
).
Если цель записи является обмотками, функция пишет непрерывную последовательность 1–1968 обмоток или к на или к прочь (1 или 0) в удаленном устройстве. Обмотка является одним выходным битом. Значение 1
указывает, что обмотка включена, и значение 0
означает, что это выключено.
Синтаксис, чтобы записать в обмотки:
write(obj,'coils',address,values)
Параметр obj
является именем объекта MODBUS. Примеры принимают, что вы создали объект MODBUS, m
. Для получения информации о создании объекта смотрите, Создают Связь MODBUS.
Параметр address
является начальным адресом обмоток, чтобы записать в, и это - двойное. Параметр values
является массивом значений, чтобы записать. Для цели обмоток допустимыми значениями является 0
и 1
.
Этот пример пишет в 4 обмотки, запускающиеся в адресе 8289.
write(m,'coils',8289,[1 1 0 1])
Можно также создать переменную для значений, чтобы записать.
values = [1 1 0 1]; write(m,'coils',8289,values)
Если цель записи является регистрами временного хранения информации, функция пишет блок 1–123 непрерывных регистров в удаленном устройстве. Значения, представление которых больше, чем 16 битов, хранятся в последовательных адресах регистра.
Синтаксис, чтобы записать в регистры временного хранения информации:
write(obj,'holdingregs',address,values)
Параметр obj
является именем объекта MODBUS. Примеры принимают, что вы создали объект MODBUS, m
. Для получения информации о создании объекта смотрите, Создают Связь MODBUS.
Параметр address
является начальным адресом регистров временного хранения информации, чтобы записать в, и это - двойное. Параметр values
является массивом значений, чтобы записать. Для цели регистров временного хранения информации допустимые значения должны быть в области значений заданной точности.
Этот пример устанавливает регистр в адресе от 49153 до 2 000.
write(m,'holdingregs',49153,2000)
Опция точности
Аргумент 'precision'
задает формат данных регистра, записанного в на сервере MODBUS. Допустимыми значениями является 'uint16'
, 'int16'
, 'uint32'
, 'int32'
, 'uint64'
, 'int64'
, 'single'
и 'double'
. Этот аргумент является дополнительным, и значением по умолчанию является 'uint16'
.
Значения передали в быть записанными, преобразованы, чтобы указать значения на основе заданной точности. Для значений точности 'int32'
, 'uint32'
и 'single'
, каждое значение соответствуют 2 регистрам, и для 'uint64'
, 'int64'
и 'double'
, каждое значение соответствует 4 регистрам. Для 'int16'
и 'uint16'
, каждое значение от одного 16-битного регистра.
Этот пример пишет 3 значения, запускающиеся в адресе 29473 и преобразовывающие в точность single
.
write(m,'holdingregs',29473,[928.1 50.3 24.4],'single')