Описание протокола работы с преобразователями влажности и температуры ДВ2ТС-А.
Протокол основывается на стандартном протоколе MODBUS, соблюдается структура посылки/ответа, расчёт контрольной суммы. Скорость обмена данными 19200 бод 8N1(2). Для обмена данными используются команды чтение/запись регистра и запуск преобразования. Под регистром подразумевается группа из двух байт, 1-й-старшие 8 бит, 2-й – младшие 8 бит. Посылка и ответ состоят из 6-ти, 8-ми или более байт, причём пауза между байтами не должна превышать 20 мс, в противном случае посылка будет проигнорирована. Обмен данными происходит только с тем преобразователем, чей сетевой адрес указывается в посылке. Также определена команда записи на все преобразователи, без получения ответа. Команда запуска преобразования (08h)
Команда служит для запуска преобразования влажности и температуры в цифровой код. После подачи этой команды, перед считыванием значений, необходимо выдержать 2 (две) секунды. В качестве примера дана команда запуска преобразования для всех преобразователей, подключенных к сети:
Команда чтения одного регистра (19h)
Читает содержимое регистра по указанному адресу. В качестве примера дано чтение регистра влажности по адресу 200h из преобразователя с сетевым номером 01h, содержимое регистра в старшем байте - 09h, в младшем байте - F6h соответствует 25,5%:
Команда записи регистра (06h)
Записывает содержимое регистра по у казанному адресу. В качестве примера дана запись в регистр числа 1234h (старший байт=12h, младший байт=34h) в преобразователь с сетевым номером 04h по адресу 200h:
Запись регистра по широковещательному адресу (06h@00h)
Команда предназначена для записи содержимого регистра по указанному адресу во все преобразователи, используя для этого "широковещательный" адрес "0". В качестве примера дана запись в регистр числа 1234h (старший байт=12h, младший байт=34h) во все преобразователи по адресу 200h:
При необходимости можно изменить сетевой номер преобразователя. Для этого нужно оставить в сети только этот преобразователь, убрав все остальные и записать новый сетевой адрес, используя для этого "широковещательный" адрес "0". В качестве примера дана запись адреса 05h в преобразователь по адресу 1000h:
Команда чтения группы регистров (03h, 04h)
Читает содержимое группы регистров, начиная с указанного адреса. Адресация ведется с единицы. В качестве примера дано одновременное чтение регистров влажности и температуры, расположенных по адресу 01h и 02h из преобразователя с сетевым номером 01h:
Расчёт значений, считываемых с преобразователя
Значение относительной влажности в процентах, считанное из регистра с адресом 200h, вычисляется следующим образом: RH = 0,01•(256•HIGH_BYTE + LOW_BYTE)
Значение температуры в градусах Цельсия, считанное из регистра с адресом 202h, вычисляется следующим образом: Т = 0,01•(256•HIGH_BYTE + LOW_BYTE)
Обратите внимание, что значение температуры может быть отрицательным, используйте знаковое представление числа! Адреса ячеек преобразователя ДВ2TС-А (для команды 19h)
Адреса ячеек преобразователя ДВ2TС-А (для команд 03h, 04h)
|