ds [Dev]

Инструменты пользователя

Инструменты сайта


ds

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ds [2020/05/20 00:07]
walhi
ds [2020/06/29 08:22] (текущий)
walhi [Датчики температуры]
Строка 16: Строка 16:
  
 ==== Датчики температуры ==== ==== Датчики температуры ====
 +=== Измерения ===
 ^ Вход ^ Значение ^ Тип данных ^ Режим ^ Регистр ^ Комментарий ^ ^ Вход ^ Значение ^ Тип данных ^ Режим ^ Регистр ^ Комментарий ^
 | 1 | Текущее значение | int16_t | R | 0 | | | 1 | Текущее значение | int16_t | R | 0 | |
Строка 26: Строка 27:
 | ::: | Интервал опроса | uint16_t | R/W | 0 | Не менее одной секунды. | | ::: | Интервал опроса | uint16_t | R/W | 0 | Не менее одной секунды. |
 | ::: | Калибровочный коэф. | int16_t | R/W | 8 | | | ::: | Калибровочный коэф. | int16_t | R/W | 8 | |
 +| ::: | ID датчика | String(12) | R | 48 | |
 | 2 | Текущее значение | int16_t | R | 1 | | | 2 | Текущее значение | int16_t | R | 1 | |
 | ::: | ::: | float | R | 18 | | | ::: | ::: | float | R | 18 | |
Строка 35: Строка 37:
 | ::: | Интервал опроса | uint16_t | R/W | 1 | Не менее одной секунды. | | ::: | Интервал опроса | uint16_t | R/W | 1 | Не менее одной секунды. |
 | ::: | Калибровочный коэф. | int16_t | R/W | 9 | | | ::: | Калибровочный коэф. | int16_t | R/W | 9 | |
 +| ::: | ID датчика | String(12) | R | 54 | |
 | 3 | Текущее значение | int16_t | R | 2 | | | 3 | Текущее значение | int16_t | R | 2 | |
 | ::: | ::: | float | R | 20 | | | ::: | ::: | float | R | 20 | |
Строка 44: Строка 47:
 | ::: | Интервал опроса | uint16_t | R/W | 2 | Не менее одной секунды. | | ::: | Интервал опроса | uint16_t | R/W | 2 | Не менее одной секунды. |
 | ::: | Калибровочный коэф. | int16_t | R/W | 10 | | | ::: | Калибровочный коэф. | int16_t | R/W | 10 | |
 +| ::: | ID датчика | String(12) | R | 60 | |
 | 4 | Текущее значение | int16_t | R | 3 | | | 4 | Текущее значение | int16_t | R | 3 | |
 | ::: | ::: | float | R | 22 | | | ::: | ::: | float | R | 22 | |
Строка 53: Строка 57:
 | ::: | Интервал опроса | uint16_t | R/W | 3 | Не менее одной секунды. | | ::: | Интервал опроса | uint16_t | R/W | 3 | Не менее одной секунды. |
 | ::: | Калибровочный коэф. | int16_t | R/W | 11 | | | ::: | Калибровочный коэф. | int16_t | R/W | 11 | |
 +| ::: | ID датчика | String(12) | R | 66 | |
 | 5 | Текущее значение | int16_t | R | 4 | | | 5 | Текущее значение | int16_t | R | 4 | |
 | ::: | ::: | float | R | 24 | | | ::: | ::: | float | R | 24 | |
Строка 62: Строка 67:
 | ::: | Интервал опроса | uint16_t | R/W | 4 | Не менее одной секунды. | | ::: | Интервал опроса | uint16_t | R/W | 4 | Не менее одной секунды. |
 | ::: | Калибровочный коэф. | int16_t | R/W | 12 | | | ::: | Калибровочный коэф. | int16_t | R/W | 12 | |
 +| ::: | ID датчика | String(12) | R | 72 | |
 | 6 | Текущее значение | int16_t | R | 5 | | | 6 | Текущее значение | int16_t | R | 5 | |
 | ::: | ::: | float | R | 26 | | | ::: | ::: | float | R | 26 | |
Строка 71: Строка 77:
 | ::: | Интервал опроса | uint16_t | R/W | 5 | Не менее одной секунды. | | ::: | Интервал опроса | uint16_t | R/W | 5 | Не менее одной секунды. |
 | ::: | Калибровочный коэф. | int16_t | R/W | 13 | | | ::: | Калибровочный коэф. | int16_t | R/W | 13 | |
 +| ::: | ID датчика | String(12) | R | 78 | |
 | 7 | Текущее значение | int16_t | R | 6 | | | 7 | Текущее значение | int16_t | R | 6 | |
 | ::: | ::: | float | R | 28 | | | ::: | ::: | float | R | 28 | |
Строка 80: Строка 87:
 | ::: | Интервал опроса | uint16_t | R/W | 6 | Не менее одной секунды. | | ::: | Интервал опроса | uint16_t | R/W | 6 | Не менее одной секунды. |
 | ::: | Калибровочный коэф. | int16_t | R/W | 14 | | | ::: | Калибровочный коэф. | int16_t | R/W | 14 | |
 +| ::: | ID датчика | String(12) | R | 84 | |
 | 8 | Текущее значение | int16_t | R | 7 | | | 8 | Текущее значение | int16_t | R | 7 | |
 | ::: | ::: | float | R | 30 | | | ::: | ::: | float | R | 30 | |
Строка 89: Строка 97:
 | ::: | Интервал опроса | uint16_t | R/W | 7 | Не менее одной секунды. | | ::: | Интервал опроса | uint16_t | R/W | 7 | Не менее одной секунды. |
 | ::: | Калибровочный коэф. | int16_t | R/W | 15 | | | ::: | Калибровочный коэф. | int16_t | R/W | 15 | |
 +| ::: | ID датчика | String(12) | R | 90 | |
 +
 +Для использования с контроллерами или SCADA системами, у которых количество опрашиваемых регистров ограничено, введены дополнительные регистры, которые объединяют статусы всех каналов в один регистр. Номер бита в регистре соответствует номеру канала.
 +
 +^ Значение ^ Тип данных ^ Режим ^ Регистр ^
 +| Наличие датчика | uint16_t | R | 96 |
 +| Ошибка CRC | uint16_t | R | 97 |
 +| Архив фильтрации заполнен | uint16_t | R | 98 |
 +| Датчик в памяти контроллера | uint16_t | R | 104 |
 +
 +=== Интервал опроса ===
 +
 +Для каждого датчика можно указать интервал опроса. Это время в секундах, через которое контроллер попросит датчик измерить температуру. Отсчет ведется не с времени, когда датчик уже предоставил температуру, а с времени прошлого запроса. Для удобства пользователя можно задать время опроса всем датчикам сразу, записав значение в регистр 25.
 +
 +=== Калибровка ===
 +
 +Так как все датчики немного приверают, есть возможность выровнять их показания. Для этого датчики погружают в жидкость, где показания должны быть примерно равны. Для более точной корректировки можно использовать жидкость, температура кипения которой точно известна. Для этого указывается целевая температура и запускается процесс калибровки. При значении целевой температуры в 0, контроллер установит коэффициенты относительно среднего значения по всем датчикам.
 +
 +
 +^ Описание ^ Тип данных ^ Режим ^ Регистр ^ Комментарий ^
 +| Целевое значение | int16_t | R/W | 16 | Значения типа float будет обновлено после записи в этот регистр |
 +| Целевое значение | float | R/W | 17 | Значения типа int16_t будет обновлено после записи в этот регистр |
 +| Количество датчиков в памяти | uint8_t | R | 103 | Максимальное количество - 120 |
 +| Выполнить калибровку | bool | R/W | 3 | Расчет калибровочных коэф. для всех датчиков и сохранение их. Требует ввод кода подтверждения (защита от случайного срабатывания). Для выравнивания по фильтрованному значению: 4403, по текущему значению: 4437.  |
 +| Очистить калибровку | bool | R/W | 4 | Очистка данных калибровки (всех). Требует ввод кода подтверждения 4420 (защита от случайного срабатывания) |
 +| Количество датчиков в памяти | uint16_t | R | 103 |  |
 +| Код подтверждения | uint16_t | R/W | 24 |  |
 +
 +Сохранение калибровочных данных осуществляется именно для датчика, а не конкретного входа. Так что при переключении датчика в другой вход данные о калибровке автоматически будут подгружены из памяти.
 +Каждый датчик имеет уникальный идентификатор. Контроллер может хранить до 120 штук. Как только количество известных датчиков достигнет этого числа - сохранение новых датчиков будет недоступно. Для очистки памяти есть отдельная команда.
 +
 +Калибровка возможна и вручную. Для каждого подключенного к устройству датчика есть специальный регистр. В нем можно получить текущее значение калибровочного коэффициента и изменить его. Подробнее про сохранение настроек контроллера в разделе "Настройки".
 +
 +==== Релейные выходы ====
 +^ Выход ^ Значение ^ Тип данных ^ Режим ^ Регистр ^ Комментарий ^
 +| 1 | Текущее значение | bool | R/W | 1 | Значение регистра соответствует состоянию реле|
 +| 2 | ::: | bool | R/W | 2 | ::: |
 +
 +==== Состояние контроллера ====
 +^ Описание ^ Тип данных ^ Режим ^ Регистр ^ Комментарий ^
 +| Команда на перезагрузку | bool | R/W | 0 | Контроллер перезагружается. |
 +| Uptime | uint32_t | R | 99 | Количество секунд, которое контроллер включен. |
 +| Источник перезагрузки | uint16_t | R | 101 | Причина перезагрузки контроллера. Данный регистр содержит несколько флагов: подача питания (бит 1), внешний сигнал (бит 2), защита от низкого напряжения (бит 3), сторожевой таймер (бит 4) |
 +
 +==== Настройки ====
 +Все настройки сохраняются после ввода кода подтверждения и получения команды на перезагрузку контроллера. 
 +
 +^ Описание ^ Тип данных ^ Режим ^ Регистр ^ Комментарий ^
 +| Команда на перезагрузку | bool | R/W | 0 | Контроллер перезагружается и применяет новые настройки, если те были изменены. |
 +| Адрес | uint16_t | R/W | 19 | Адрес устройства в сети (1-xxx) |
 +| Режим Modbus | uint16_t | R/W | 20 | 0 - RTU, 1 - ASCII |
 +| Скорость сети | uint32_t | R/W | 21 | 9600 - 38400 |
 +| Бит четности | uint16_t | R/W | 23 | 0 - отсутствует, 1 - ODD, 2 - EVEN |
 +| Код подтверждения | uint16_t | R/W | 24 | 4386 - сохранение настроек (сеть, калибровка, интервалы) |
 +
 +На плате контроллера присутствует контактная группа, обозначенная как defalut, при замыкании которой сетевые настройки контроллера будут временно установлены в значения по умолчанию для просмотра настроек или же дальнейшей конфигурации устройства. Замыкать контакты нужно при поданном питании в любое время (не обязательно при включении). Контроллер автоматически перезагружается при отсутствии опроса через Modbus в течение 60 секунд, так что пользователь должен успеть за этот интервал установить соединение с устройством.
ds.1589933260.txt.gz · Последнее изменение: 2020/05/20 00:07 — walhi