43 lines
4.6 KiB
Markdown
43 lines
4.6 KiB
Markdown
# 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` - статус работы датчика, к которому было совершено обращение |