The write
функция выполняет операции записи в два типа целевых адресуемых областей:
Катушки
Хранение регистров
Каждая из этих двух областей может принять запрос на запись в один адрес или смежную область значений адресов. При выполнении операции записи необходимо задать целевой тип (target
), начальный адрес (address
), и значения для записи (values
). Вы также можете опционально указать адрес сервера (serverId
) и формат данных (precision
).
Если целью записи являются катушки, функция записывает непрерывную последовательность 1-1968 катушек в или on или off (1 или 0) в удаленном устройстве. Катушка является одним выходным битом. Значение 1
указывает, что катушка включена, и значение 0
означает, что это отключено.
Синтаксис записи в катушки:
write(obj,'coils',address,values)
The obj
параметр является именем объекта MODBUS. Примеры предполагают, что вы создали объект MODBUS, m
. Дополнительные сведения о создании объекта см. в разделе Создание соединения MODBUS.
The address
параметр является начальным адресом катушек, в которые нужно записать, и является двойным. The 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)
The obj
параметр является именем объекта MODBUS. Примеры предполагают, что вы создали объект MODBUS, m
. Дополнительные сведения о создании объекта см. в разделе Создание соединения MODBUS.
The address
параметр является начальным адресом удерживающих регистров, в которые нужно записать, и является double. The values
параметр является массивом значений для записи. Для цели хранения регистров допустимые значения должны быть в области значений заданной точности.
Этот пример устанавливает регистр по адресу 49153 на 2000.
write(m,'holdingregs',49153,2000)
Опция точности
The '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')