From b4305e8296706a17803f4574a716986240c772f0 Mon Sep 17 00:00:00 2001 From: Coal56AB Date: Wed, 5 Mar 2025 17:14:43 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 100c47d..e5ab55e 100644 --- a/README.md +++ b/README.md @@ -12,26 +12,21 @@ После каждого завершения конверсии выставляется коил `ConvertionDone` (`№16`), который сбрасывается при чтении инпут регистров температуры. Поэтому имеет смысл дополнительно проверить этот коил, обновились ли значения температуры с прошлого считывания. -Если какой-то датчик был потерян, его в инпут регистры на его место записывается `0x0` и выставляется коил `LostedSensors` (`№16`) +Если какой-то датчик был потерян, в инпут регистры на его место записывается `0x0` и выставляется коил `LostedSensors` (`№17`) ## Управление датчиками Взаимодействие с датчиком строится по следующему принципу: - заполнение холдинг регистров (`№0-5`) для параметров датчика для обращения к нему - выставление коила для взаимодействия с датчиком (поиск, чтение, инит, деинит) -- чтение инпут регистров (`№30-36`) содержащих ответ от датчика и статус взаимодействия +- чтение инпут регистров (`№30-36`) содержащих ответ от датчика и [статус взаимодействия](#статус-общения-с-датчиком) После выставления коила, происходит выбранное действие с датчиком и заполнение инпут регистров с ответом, поэтому имеет смысл сделать выдержку в пару миллисекунд между выставлением коила с считыванием ответа -### Сканирование датчиков -Для поиска датчиков необходимо: -- выставить коил `ScanSensors` (`№4`) -- считывать ответ в инпут регистрах, до тех пор, пока Status не будет равен `0x11`: - - `Location` (`№30`), где находится датчик - - `ROM` (`№31-34`), адрес датчика - - `Config` (`№35`), конфиг регистр датчика - - `Status` (`№36`), [статус общения с датчиком](#статус-общения-с-датчиком) +### Адреса всех датчиков +Для получения ROM всех датчиков необходимо: +- считать инпут регистры `№38-158` -После выставления флага в инпут регистрах записываются параметры первого обнаруженного датчика. Когда эти данные считываются по Modbus, регистры обновляются параметрами следующего по порядку датчика. Этот процесс продолжается до тех пор, пока не будут опрошены все устройства на линии. После считывания последнего датчика в статус-регистр записывается значение `0x11`, что означает завершение сканирования +В них записаны ROM всех найденных датчиков (максимум 30 датчиков на линии), каждый ROM занимает 4 регистра Modbus. Т.е. ROM первого датчика находится в регистрах `№38-41`, ROM второго - в регистрах `№42-45` и так далее. ### Считывание параметров датчика Для считывания параметров конкретного датчика необходимо: