Files
DS18B20_Library/README.md
2025-03-04 09:51:32 +03:00

4.2 KiB
Raw Blame History

PY32F002B ScanDallas+Modbus Module

Прога для PY32F002B которая будет считывать датчики температуры, сохранять в модбас регистры. Конверсия идет непрерывно и после каждой конверсии считываются все датчики и записываются в модбас регистры.

Управление модулем

Температура: Для считывания температуры необходимо считать холдинг регистры 0-29.

Параметры датчика: Для считывания параметров конкретного датчика надо выставить регистр Location (0) датчика или его ROM (1-4). Выставляется что-то одно из Location/ROM, а второе должно быть в нуле. Для того, чтобы считать надо выставить коил ReadSensor (1). Считанные параметры сохраняются в инпут регистрах 30-36.

Инициализация датчика: Для инициализации датчика надо выставить регистр Location (0), где находится датчик, и его ROM (1-4). Для того, чтобы инициализировать датчик надо выставить коил InitSensor (2). После в UserByte выбранного по ROM датчика записывается его локация.

Деинициализация датчика: Для деинициализации датчика надо выставить регистр Location (0), где находится датчик, и после выставить коил DenitSensor (3). После в UserByte выбранного по ROM датчика записываются нули.

Структура данных

Coils: для управления работой модуля

  • 0: RunConvertions - запуск преобразований датчика
  • 1: ReadSensor - считать параметры датчика по холдинг регистрам
  • 2: InitSensor - инициализация датчика по холдинг регистрам
  • 3: DenitSensor - деинициализировать датчик по холдинг регистрам

Coils: для флагов модуля

  • 16: ConvertionDone - флаг окончания конверсии. Сбрасывается после считывания температуры из регистров
  • 17: LostedSensors - флаг есть ли потерянные сенсоры. Сбрасывается по модбас

Hodling Registers: используются для передачи параметров датчика и для инициализации/деинициализации.

  • 0: Location - локация датчика
  • 1-4: ROM - ROM датчика
  • 5: Resolution - разрешение датчика
  • 6: Enable - считывать напряжение с этого датчика или нет

Input Registers: для хранения температуры и параметров датчика Температура храниться в первых 30 инпут регистрах

  • 0-29: SensTemperature - температура n-го датчика в [Цельсий x 100] Параметры храняться в рестрах N+1. Хранятся параметры последнего датчика к которому было совершнео обращение (коилы №1-3)
  • 30: Location - локация датчика, к которому было совершено обращение
  • 31-34: ROM - ROM датчика, к которому было совершено обращение
  • 35: Resolution - разрешение датчика, к которому было совершено обращение
  • 36: Status - статус работы датчика, к которому было совершено обращение