Files
DS18B20_Library/README.md
2025-03-04 17:24:39 +03:00

43 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PY32F002B PCHTemperature+Modbus Module
Прога для PY32F002B которая будет считывать датчики температуры в ПЧ и сохранять их в модбас регистры.
Конверсия идет непрерывно и после каждой конверсии считываются все датчики и записываются в модбас регистры.
## Управление модулем
**Температура:** Для считывания температуры необходимо выставить коил `RunConvertion` (`0`). После модуль будет непрерывно запускать конверсию считать холдинг регистры `0-29`.
**Параметры датчика:** Для считывания параметров конкретного датчика надо выставить регистр `Location` (`0`) датчика или его `ROM` (`1-4`). Выставляется что-то одно из `Location`/`ROM`, а второе должно быть в нуле. Для того, чтобы считать надо выставить коил `ReadSensor` (`1`). Считываются и записываются в инпут регистры следующие параметры:
- Локация датчика (`0`)
- ROM датчика (`1-4`)
- Config-регистр датчика (`5`)
- Статус датчика (пока неопределено) (`6`)
**Инициализация датчика:** Для инициализации датчика надо выставить регистр `Location` (`0`), где находится датчик, его `ROM` (`1-4`) и регистр `Config` (`5`). Для того, чтобы инициализировать датчик надо выставить коил `InitSensor` (`2`). После в `UserByte` выбранного по ROM датчика записывается его локация и он включается в измерения
**Деинициализация датчика:** Для деинициализации датчика надо выставить регистр `Location` (`0`), где находится датчик, и после выставить коил `DenitSensor` (`3`). После в `UserByte` выбранного по `ROM` датчика записываются нули.
## Структура данных
**Coils**: для управления работой модуля
- 0: `RunConvertion` - запуск преобразований датчика
- 1: `ReadSensor` - считать параметры датчика по холдинг регистрам
- 2: `InitSensor` - инициализация датчика по холдинг регистрам
- 3: `DenitSensor` - деинициализировать датчик по холдинг регистрам
**Coils**: для флагов модуля
- 16: `ConvertionDone` - флаг окончания конверсии. Сбрасывается после считывания температуры из регистров
- 17: `LostedSensors` - флаг есть ли потерянные сенсоры. Сбрасывается по модбас
**Hodling Registers**: используются для передачи параметров датчика и для инициализации/деинициализации.
- 0: `Location` - локация датчика
- 1-4: `ROM` - ROM датчика
- 5: `Config` - разрешение датчика
- 6: `Enable` - считывать напряжение с этого датчика или нет
**Input Registers**: для хранения температуры и параметров датчика
Температура храниться в первых 30 инпут регистрах
- 0-29: `SensTemperature` - температура n-го датчика в [***Цельсий x 100***]
Параметры храняться в рестрах N+1. Хранятся параметры последнего датчика к которому было совершнео обращение (коилы №1-3)
- 30: `Location` - локация датчика, к которому было совершено обращение
- 31-34: `ROM` - ROM датчика, к которому было совершено обращение
- 35: `Config` - конфигурационный регистр датчика, к которому было совершено обращение
- 36: `Status` - статус работы датчика, к которому было совершено обращение