Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
ds [2020/06/10 23:45] walhi [Датчики температуры] |
ds [2024/07/25 11:50] (текущий) walhi |
||
---|---|---|---|
Строка 25: | Строка 25: | ||
| ::: | Ошибка CRC | bool | R | 1 | После нескольких ошибок датчик будет перезагружен по питанию| | | ::: | Ошибка CRC | bool | R | 1 | После нескольких ошибок датчик будет перезагружен по питанию| | ||
| ::: | Архив фильтрации заполнен | bool | R | 2 | Архив содержит 16 значений измерения. Пока он не заполнен, | | ::: | Архив фильтрации заполнен | bool | R | 2 | Архив содержит 16 значений измерения. Пока он не заполнен, | ||
- | | ::: | Интервал опроса | 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 | | | | ::: | ID датчика | String(12) | R | 48 | | | ||
Строка 35: | Строка 35: | ||
| ::: | Ошибка CRC | bool | R | 4 | После нескольких ошибок датчик будет перезагружен по питанию| | | ::: | Ошибка CRC | bool | R | 4 | После нескольких ошибок датчик будет перезагружен по питанию| | ||
| ::: | Архив фильтрации заполнен | bool | R | 5 | Архив содержит 16 значений измерения. Пока он не заполнен, | | ::: | Архив фильтрации заполнен | bool | R | 5 | Архив содержит 16 значений измерения. Пока он не заполнен, | ||
- | | ::: | Интервал опроса | 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 | | | | ::: | ID датчика | String(12) | R | 54 | | | ||
Строка 45: | Строка 45: | ||
| ::: | Ошибка CRC | bool | R | 7 | После нескольких ошибок датчик будет перезагружен по питанию| | | ::: | Ошибка CRC | bool | R | 7 | После нескольких ошибок датчик будет перезагружен по питанию| | ||
| ::: | Архив фильтрации заполнен | bool | R | 8 | Архив содержит 16 значений измерения. Пока он не заполнен, | | ::: | Архив фильтрации заполнен | bool | R | 8 | Архив содержит 16 значений измерения. Пока он не заполнен, | ||
- | | ::: | Интервал опроса | 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 | | | | ::: | ID датчика | String(12) | R | 60 | | | ||
Строка 55: | Строка 55: | ||
| ::: | Ошибка CRC | bool | R | 10 | После нескольких ошибок датчик будет перезагружен по питанию| | | ::: | Ошибка CRC | bool | R | 10 | После нескольких ошибок датчик будет перезагружен по питанию| | ||
| ::: | Архив фильтрации заполнен | bool | R | 11 | Архив содержит 16 значений измерения. Пока он не заполнен, | | ::: | Архив фильтрации заполнен | bool | R | 11 | Архив содержит 16 значений измерения. Пока он не заполнен, | ||
- | | ::: | Интервал опроса | 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 | | | | ::: | ID датчика | String(12) | R | 66 | | | ||
Строка 65: | Строка 65: | ||
| ::: | Ошибка CRC | bool | R | 13 | После нескольких ошибок датчик будет перезагружен по питанию| | | ::: | Ошибка CRC | bool | R | 13 | После нескольких ошибок датчик будет перезагружен по питанию| | ||
| ::: | Архив фильтрации заполнен | bool | R | 14 | Архив содержит 16 значений измерения. Пока он не заполнен, | | ::: | Архив фильтрации заполнен | bool | R | 14 | Архив содержит 16 значений измерения. Пока он не заполнен, | ||
- | | ::: | Интервал опроса | 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 | | | | ::: | ID датчика | String(12) | R | 72 | | | ||
Строка 75: | Строка 75: | ||
| ::: | Ошибка CRC | bool | R | 16 | После нескольких ошибок датчик будет перезагружен по питанию| | | ::: | Ошибка CRC | bool | R | 16 | После нескольких ошибок датчик будет перезагружен по питанию| | ||
| ::: | Архив фильтрации заполнен | bool | R | 17 | Архив содержит 16 значений измерения. Пока он не заполнен, | | ::: | Архив фильтрации заполнен | bool | R | 17 | Архив содержит 16 значений измерения. Пока он не заполнен, | ||
- | | ::: | Интервал опроса | 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 | | | | ::: | ID датчика | String(12) | R | 78 | | | ||
Строка 85: | Строка 85: | ||
| ::: | Ошибка CRC | bool | R | 19 | После нескольких ошибок датчик будет перезагружен по питанию| | | ::: | Ошибка CRC | bool | R | 19 | После нескольких ошибок датчик будет перезагружен по питанию| | ||
| ::: | Архив фильтрации заполнен | bool | R | 20 | Архив содержит 16 значений измерения. Пока он не заполнен, | | ::: | Архив фильтрации заполнен | bool | R | 20 | Архив содержит 16 значений измерения. Пока он не заполнен, | ||
- | | ::: | Интервал опроса | 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 | | | | ::: | ID датчика | String(12) | R | 84 | | | ||
Строка 95: | Строка 95: | ||
| ::: | Ошибка CRC | bool | R | 22 | После нескольких ошибок датчик будет перезагружен по питанию| | | ::: | Ошибка CRC | bool | R | 22 | После нескольких ошибок датчик будет перезагружен по питанию| | ||
| ::: | Архив фильтрации заполнен | bool | R | 23 | Архив содержит 16 значений измерения. Пока он не заполнен, | | ::: | Архив фильтрации заполнен | bool | R | 23 | Архив содержит 16 значений измерения. Пока он не заполнен, | ||
- | | ::: | Интервал опроса | 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 | | | | ::: | ID датчика | String(12) | R | 90 | | | ||
Строка 105: | Строка 105: | ||
| Ошибка CRC | uint16_t | R | 97 | | | Ошибка CRC | uint16_t | R | 97 | | ||
| Архив фильтрации заполнен | uint16_t | R | 98 | | | Архив фильтрации заполнен | uint16_t | R | 98 | | ||
+ | | Датчик в памяти контроллера | uint16_t | R | 104 | | ||
+ | |||
+ | === Интервал опроса === | ||
+ | |||
+ | Для каждого датчика можно указать интервал опроса. Это время в секундах, | ||
=== Калибровка === | === Калибровка === | ||
- | Так как все датчики немного приверают, | + | Так как все датчики немного приверают, |
- | среднего значения по всем датчикам. | + | |
^ Описание ^ Тип данных ^ Режим ^ Регистр ^ Комментарий ^ | ^ Описание ^ Тип данных ^ Режим ^ Регистр ^ Комментарий ^ | ||
| Целевое значение | int16_t | R/W | 16 | Значения типа float будет обновлено после записи в этот регистр | | | Целевое значение | int16_t | R/W | 16 | Значения типа float будет обновлено после записи в этот регистр | | ||
| Целевое значение | float | R/W | 17 | Значения типа int16_t будет обновлено после записи в этот регистр | | | Целевое значение | float | R/W | 17 | Значения типа int16_t будет обновлено после записи в этот регистр | | ||
- | | Выполнить калибровку | bool | R/W | 3 | Расчет калибровочных коэф. | | + | | Количество датчиков в памяти | uint8_t | R | 103 | Максимальное количество - 120 | |
+ | | Выполнить калибровку | bool | R/W | 3 | Расчет калибровочных коэф. | ||
+ | | Очистить калибровку | bool | R/W | 4 | Очистка данных калибровки (всех). Требует ввод кода подтверждения 4420 (защита от случайного срабатывания) | | ||
+ | | Количество датчиков в памяти | uint16_t | R | 103 | | | ||
+ | | Код подтверждения | uint16_t | R/W | 24 | | | ||
+ | |||
+ | Сохранение калибровочных данных осуществляется именно для датчика, | ||
+ | Каждый датчик имеет уникальный идентификатор. Контроллер может хранить до 120 штук. Как только количество известных датчиков достигнет этого числа - сохранение новых датчиков будет недоступно. Для очистки памяти есть отдельная команда. | ||
+ | |||
+ | Калибровка возможна и вручную. Для каждого подключенного к устройству датчика есть специальный регистр. В нем можно получить текущее значение калибровочного коэффициента и изменить его. Подробнее про сохранение настроек контроллера в разделе " | ||
==== Релейные выходы ==== | ==== Релейные выходы ==== | ||
Строка 123: | Строка 137: | ||
==== Состояние контроллера ==== | ==== Состояние контроллера ==== | ||
^ Описание ^ Тип данных ^ Режим ^ Регистр ^ Комментарий ^ | ^ Описание ^ Тип данных ^ Режим ^ Регистр ^ Комментарий ^ | ||
- | | Команда на перезагрузку | bool | R/W | 0 | Контроллер перезагружается | + | | Команда на перезагрузку | bool | R/W | 0 | Контроллер перезагружается. | |
- | | Uptime | uint32_t | R | 96 | Количество секунд, | + | | Uptime | uint32_t | R | 99 | Количество секунд, |
- | | Источник перезагрузки | uint16_t | R | 98 | Причина перезагрузки контроллера. Данный регистр содержит несколько флагов: | + | | Источник перезагрузки | uint16_t | R | 101 | Причина перезагрузки контроллера. Данный регистр содержит несколько флагов: |
==== Настройки ==== | ==== Настройки ==== | ||
- | Все настройки сохраняются после получения команды на перезагрузку контроллера. | + | Все настройки сохраняются после |
^ Описание ^ Тип данных ^ Режим ^ Регистр ^ Комментарий ^ | ^ Описание ^ Тип данных ^ Режим ^ Регистр ^ Комментарий ^ | ||
| Команда на перезагрузку | bool | R/W | 0 | Контроллер перезагружается и применяет новые настройки, | | Команда на перезагрузку | bool | R/W | 0 | Контроллер перезагружается и применяет новые настройки, | ||
| Адрес | uint16_t | R/W | 19 | Адрес устройства в сети (1-xxx) | | | Адрес | uint16_t | R/W | 19 | Адрес устройства в сети (1-xxx) | | ||
| Режим Modbus | uint16_t | R/W | 20 | 0 - RTU, 1 - ASCII | | | Режим Modbus | uint16_t | R/W | 20 | 0 - RTU, 1 - ASCII | | ||
- | | Скорость сети | uint16_t | + | | Скорость сети | uint32_t |
- | | Бит четности | uint16_t | R/W | 21 | 0 - отсутствует, | + | | Бит четности | uint16_t | R/W | 23 | 0 - отсутствует, |
+ | | Код подтверждения | uint16_t | R/W | 24 | 4386 - сохранение настроек (сеть, калибровка, | ||
+ | |||
+ | На плате контроллера присутствует контактная группа, | ||
+ | ==== Файлы для загрузки ==== | ||
+ | Исходный код проекта: | ||
+ | Исходный код библиотеки freemodbus нужно положить рядом с папкой проекта. При необходимости поправить Makefile. |