Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
ds [2020/06/11 14:09] 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 | 4 | Очистка данных калибровки (всех). Требует ввод кода подтверждения | + | | Выполнить калибровку | bool | R/W | 3 | Расчет калибровочных коэф. для всех датчиков и сохранение их. Требует ввод кода подтверждения (защита от случайного срабатывания). Для выравнивания |
| + | | Очистить калибровку | bool | R/W | 4 | Очистка данных калибровки (всех). Требует ввод кода подтверждения | ||
| + | | Количество датчиков в памяти | uint16_t | R | 103 | | | ||
| + | | Код подтверждения | uint16_t | R/W | 24 | | ||
| Сохранение калибровочных данных осуществляется именно для датчика, | Сохранение калибровочных данных осуществляется именно для датчика, | ||
| Каждый датчик имеет уникальный идентификатор. Контроллер может хранить до 120 штук. Как только количество известных датчиков достигнет этого числа - сохранение новых датчиков будет недоступно. Для очистки памяти есть отдельная команда. | Каждый датчик имеет уникальный идентификатор. Контроллер может хранить до 120 штук. Как только количество известных датчиков достигнет этого числа - сохранение новых датчиков будет недоступно. Для очистки памяти есть отдельная команда. | ||
| + | |||
| + | Калибровка возможна и вручную. Для каждого подключенного к устройству датчика есть специальный регистр. В нем можно получить текущее значение калибровочного коэффициента и изменить его. Подробнее про сохранение настроек контроллера в разделе " | ||
| ==== Релейные выходы ==== | ==== Релейные выходы ==== | ||
| Строка 127: | Строка 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. | ||