Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
| doc:jroboplc:modules:peripherial:promauto_termo5_1 [2026/07/23 17:38] – [Ограничения] denis | doc:jroboplc:modules:peripherial:promauto_termo5_1 [2026/07/23 17:39] (current) – removed denis | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== promauto.termo5 ====== | ||
| - | |||
| - | Модуль опроса платы термометрии производства «ПромАвтоматика». | ||
| - | |||
| - | К одной плате можно подключить до 12 термоподвесок. На каждой подвеске может быть установлено до 6 датчиков температуры. | ||
| - | |||
| - | Для обмена данными используется протокол Modbus. | ||
| - | |||
| - | Температура и сопротивление сохраняются в тегах с одним знаком после запятой: | ||
| - | |||
| - | ===== Основные возможности ===== | ||
| - | |||
| - | * опрос 12 термоподвесок; | ||
| - | * обработка 6 датчиков температуры на каждой подвеске; | ||
| - | * получение измеренных значений напряжения; | ||
| - | * вычисление сопротивления каждого датчика; | ||
| - | * вычисление температуры каждого датчика; | ||
| - | * вычисление максимальной температуры каждой подвески; | ||
| - | * поддержка классических и компенсированных подвесок; | ||
| - | * настройка начального сопротивления и сопротивления линии отдельно для каждой подвески; | ||
| - | * режим принудительного опроса одной подвески; | ||
| - | * режим остановки обмена данными; | ||
| - | * автоматический возврат в штатный режим через заданное количество циклов. | ||
| - | |||
| - | ===== Конфигурация ===== | ||
| - | |||
| - | Пример конфигурации модуля: | ||
| - | |||
| - | <code yaml> | ||
| - | plugin.peripherial: | ||
| - | |||
| - | module.TRM1: | ||
| - | netaddr: | ||
| - | type: | ||
| - | params: | ||
| - | p0: p 53 0 | ||
| - | p1: p 53 0 | ||
| - | p2: p 53 0 | ||
| - | p3: p 53 0 | ||
| - | p4: p 53 0 | ||
| - | p5: p 53 0 | ||
| - | p6: p 53 0 | ||
| - | p7: p 53 0 | ||
| - | p8: p 53 0 | ||
| - | p9: p 53 0 | ||
| - | p10: p 53 0 | ||
| - | p11: p 53 0 | ||
| - | </ | ||
| - | |||
| - | ===== Параметры ===== | ||
| - | |||
| - | ^ Параметр ^ Умолчание ^ Описание ^ | ||
| - | | '' | ||
| - | | '' | ||
| - | |||
| - | Параметры подвески задаются в следующем формате: | ||
| - | |||
| - | < | ||
| - | pN: type Rzero Rwire | ||
| - | </ | ||
| - | |||
| - | где: | ||
| - | |||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | |||
| - | Поддерживаются следующие типы подвесок: | ||
| - | |||
| - | ^ Значение ^ Тип ^ Описание ^ | ||
| - | | '' | ||
| - | | '' | ||
| - | |||
| - | Значения по умолчанию: | ||
| - | |||
| - | ^ Параметр ^ Значение ^ | ||
| - | | Тип подвески | '' | ||
| - | | '' | ||
| - | | '' | ||
| - | |||
| - | Например: | ||
| - | |||
| - | <code yaml> | ||
| - | params: | ||
| - | p0: c 53 0 | ||
| - | p1: p 53 1.5 | ||
| - | </ | ||
| - | |||
| - | В данном примере: | ||
| - | |||
| - | * '' | ||
| - | * '' | ||
| - | * для '' | ||
| - | |||
| - | ===== Теги ===== | ||
| - | |||
| - | Для каждой подвески создается отдельная группа тегов: | ||
| - | |||
| - | < | ||
| - | PdvN | ||
| - | </ | ||
| - | |||
| - | где '' | ||
| - | |||
| - | Номер датчика обозначается буквой '' | ||
| - | |||
| - | ==== Теги датчиков ==== | ||
| - | |||
| - | ^ Имя тега ^ Тип ^ Доступ ^ Описание ^ | ||
| - | | '' | ||
| - | | '' | ||
| - | | '' | ||
| - | |||
| - | Например: | ||
| - | |||
| - | ^ Значение тега ^ Фактическое значение ^ | ||
| - | | '' | ||
| - | | '' | ||
| - | |||
| - | ==== Общие теги подвески ==== | ||
| - | |||
| - | ^ Имя тега ^ Тип ^ Доступ ^ Описание ^ | ||
| - | | '' | ||
| - | | '' | ||
| - | | '' | ||
| - | | '' | ||
| - | |||
| - | <WRAP center round important> | ||
| - | В актуальной реализации тег максимальной температуры называется '' | ||
| - | </ | ||
| - | |||
| - | ==== Управляющие теги ==== | ||
| - | |||
| - | ^ Имя тега ^ Тип ^ Доступ ^ Умолчание ^ Описание ^ | ||
| - | | '' | ||
| - | | '' | ||
| - | | '' | ||
| - | |||
| - | ===== Режимы работы ===== | ||
| - | |||
| - | ==== Mode ==== | ||
| - | |||
| - | Тег '' | ||
| - | |||
| - | ^ Значение ^ Режим ^ Описание ^ | ||
| - | | '' | ||
| - | | '' | ||
| - | | '' | ||
| - | |||
| - | ==== Normal ==== | ||
| - | |||
| - | В режиме '' | ||
| - | |||
| - | * считывает значения времени всех подвесок; | ||
| - | * последовательно опрашивает все 12 подвесок; | ||
| - | * получает значения '' | ||
| - | * вычисляет сопротивление каждого датчика; | ||
| - | * вычисляет температуру каждого датчика; | ||
| - | * определяет максимальную температуру каждой подвески. | ||
| - | |||
| - | Для включения штатного режима необходимо записать: | ||
| - | |||
| - | < | ||
| - | Mode = 0 | ||
| - | </ | ||
| - | |||
| - | ==== Force ==== | ||
| - | |||
| - | В режиме '' | ||
| - | |||
| - | Номер подвески задается тегом '' | ||
| - | |||
| - | Допустимые значения: | ||
| - | |||
| - | < | ||
| - | 0...11 | ||
| - | </ | ||
| - | |||
| - | Например: | ||
| - | |||
| - | < | ||
| - | ModeForcePdv = 5 | ||
| - | Mode = 1 | ||
| - | </ | ||
| - | |||
| - | После этого модуль будет опрашивать только подвеску '' | ||
| - | |||
| - | Режим может использоваться при диагностике, | ||
| - | |||
| - | Значение '' | ||
| - | |||
| - | ==== Silent ==== | ||
| - | |||
| - | В режиме '' | ||
| - | |||
| - | Для включения режима необходимо записать: | ||
| - | |||
| - | < | ||
| - | Mode = 2 | ||
| - | </ | ||
| - | |||
| - | Режим может использоваться для временной остановки обмена данными без отключения модуля. | ||
| - | |||
| - | Обработка тега '' | ||
| - | |||
| - | ==== ModeResetCnt ==== | ||
| - | |||
| - | Тег '' | ||
| - | |||
| - | Если значение тега больше нуля, после каждого цикла выполнения модуля оно уменьшается на единицу. | ||
| - | |||
| - | Когда счетчик достигает нуля, модуль устанавливает: | ||
| - | |||
| - | < | ||
| - | Mode = 0 | ||
| - | ModeResetCnt = 0 | ||
| - | </ | ||
| - | |||
| - | Таким образом режимы '' | ||
| - | |||
| - | Пример временного опроса подвески '' | ||
| - | |||
| - | < | ||
| - | ModeForcePdv = 3 | ||
| - | ModeResetCnt = 20 | ||
| - | Mode = 1 | ||
| - | </ | ||
| - | |||
| - | Подвеска '' | ||
| - | |||
| - | Пример временной остановки обмена: | ||
| - | |||
| - | < | ||
| - | ModeResetCnt = 100 | ||
| - | Mode = 2 | ||
| - | </ | ||
| - | |||
| - | В течение 100 циклов модуль не будет выполнять обмен данными с платой. После окончания отсчета будет восстановлен режим '' | ||
| - | |||
| - | Если автоматический возврат не требуется, | ||
| - | |||
| - | ===== Карта каналов ===== | ||
| - | |||
| - | В карту каналов модуля добавляются теги температуры. | ||
| - | |||
| - | Формат номера канала: | ||
| - | |||
| - | < | ||
| - | N.M | ||
| - | </ | ||
| - | |||
| - | где: | ||
| - | |||
| - | * '' | ||
| - | * '' | ||
| - | |||
| - | Примеры: | ||
| - | |||
| - | ^ Канал ^ Тег ^ | ||
| - | | '' | ||
| - | | '' | ||
| - | | '' | ||
| - | | '' | ||
| - | |||
| - | ===== Принцип работы ===== | ||
| - | |||
| - | ==== Опрос в штатном режиме ==== | ||
| - | |||
| - | В режиме '' | ||
| - | |||
| - | Затем выполняется чтение основных данных подвесок. За один запрос считываются данные двух подвесок. Для опроса всех 12 подвесок выполняется шесть запросов. | ||
| - | |||
| - | Для каждой подвески плата передает: | ||
| - | |||
| - | * шесть измеренных значений напряжения; | ||
| - | * нижнее опорное значение '' | ||
| - | * верхнее опорное значение '' | ||
| - | |||
| - | После получения ответа модуль вычисляет сопротивления и температуры всех датчиков. | ||
| - | |||
| - | ==== Вычисление сопротивления ==== | ||
| - | |||
| - | Сопротивление датчика вычисляется по измеренному напряжению и опорным значениям '' | ||
| - | |||
| - | Полученное сопротивление записывается в тег '' | ||
| - | |||
| - | ==== Вычисление температуры ==== | ||
| - | |||
| - | Температура рассчитывается по сопротивлению датчика, | ||
| - | |||
| - | < | ||
| - | T = ((R / Rzero) - 1) / 0.0043 | ||
| - | </ | ||
| - | |||
| - | Перед вычислением температуры из общего сопротивления вычитается сопротивление линии '' | ||
| - | |||
| - | Для классической подвески дополнительно учитывается индивидуальная поправка сопротивления соответствующего канала. | ||
| - | |||
| - | Результат умножается на 10 и записывается в тег '' | ||
| - | |||
| - | После расчета всех шести температур наибольшее значение записывается в тег '' | ||
| - | |||
| - | ===== Примеры использования ===== | ||
| - | |||
| - | ==== Штатная работа ==== | ||
| - | |||
| - | < | ||
| - | Mode = 0 | ||
| - | ModeResetCnt = 0 | ||
| - | </ | ||
| - | |||
| - | Модуль постоянно опрашивает все подвески. | ||
| - | |||
| - | ==== Диагностика одной подвески ==== | ||
| - | |||
| - | < | ||
| - | ModeForcePdv = 7 | ||
| - | ModeResetCnt = 100 | ||
| - | Mode = 1 | ||
| - | </ | ||
| - | |||
| - | В течение 100 циклов модуль опрашивает только подвеску '' | ||
| - | |||
| - | ==== Временная остановка обмена ==== | ||
| - | |||
| - | < | ||
| - | ModeResetCnt = 50 | ||
| - | Mode = 2 | ||
| - | </ | ||
| - | |||
| - | В течение 50 циклов модуль не выполняет обмен данными, | ||
| - | |||
| - | ==== Остановка обмена без автоматического возврата ==== | ||
| - | |||
| - | < | ||
| - | ModeResetCnt = 0 | ||
| - | Mode = 2 | ||
| - | </ | ||
| - | |||
| - | Модуль остается в режиме '' | ||
| - | |||
| - | ===== Ограничения ===== | ||
| - | |||
| - | * количество подвесок фиксировано и равно 12; | ||
| - | * количество датчиков на одной подвеске фиксировано и равно 6; | ||
| - | * номер подвески в теге '' | ||
| - | * изменение количества подвесок или датчиков через конфигурацию не поддерживается; | ||
| - | * в режиме '' | ||
| - | * новые значения температуры появляются только после успешного обмена с платой. | ||