Функция 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')