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