Запись данных на сервер MODBUS

Типы данных, которые можно записать в MODBUS

The write функция выполняет операции записи в два типа целевых адресуемых областей:

  • Катушки

  • Хранение регистров

Каждая из этих двух областей может принять запрос на запись в один адрес или смежную область значений адресов. При выполнении операции записи необходимо задать целевой тип (target), начальный адрес (address), и значения для записи (values). Вы также можете опционально указать адрес сервера (serverId) и формат данных (precision).

Запись катушек через MODBUS

Если целью записи являются катушки, функция записывает непрерывную последовательность 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)

Запись реестров холдинга поверх MODBUS

Если цель записи содержит регистры, функция записывает блок 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')