Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| doc:jroboplc:modules:peripherial:promauto_termo5 [2026/07/23 17:19] – denis | doc:jroboplc:modules:peripherial:promauto_termo5 [2026/07/24 07:33] (current) – [Параметры] denis | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== promauto.termo5 ====== | ====== promauto.termo5 ====== | ||
| - | Mодуль опроса платы термометрии (ПромАвтоматика). К данной плате можно подключить 12 термоподвесок, | ||
| - | Используемый протокол - MODBUS. | + | Модуль опроса платы термометрии |
| - | Температуры с десятыми градуса | + | К одной плате можно подключить до 12 термоподвесок. На каждой подвеске может быть установлено до 6 датчиков температуры. |
| + | |||
| + | Для обмена данными используется протокол Modbus. | ||
| + | |||
| + | Температура и сопротивление сохраняются в тегах с одним знаком после запятой: | ||
| + | |||
| + | ===== Основные возможности ===== | ||
| + | |||
| + | * опрос 12 термоподвесок; | ||
| + | * обработка 6 датчиков температуры на каждой подвеске; | ||
| + | * получение измеренных значений напряжения; | ||
| + | * вычисление сопротивления каждого датчика; | ||
| + | * вычисление температуры каждого датчика; | ||
| + | * вычисление максимальной температуры каждой подвески; | ||
| + | * поддержка классических и компенсированных подвесок; | ||
| + | * настройка начального сопротивления и сопротивления линии отдельно для каждой подвески; | ||
| + | * режим принудительного опроса одной подвески; | ||
| + | * режим остановки обмена данными; | ||
| + | * автоматический возврат в штатный режим через заданное количество циклов. | ||
| + | |||
| + | ===== Конфигурация ===== | ||
| + | |||
| + | Пример конфигурации модуля: | ||
| <code yaml> | <code yaml> | ||
| Line 12: | Line 33: | ||
| netaddr: | netaddr: | ||
| type: | type: | ||
| + | modeResetCntMax: | ||
| params: | params: | ||
| p0: p 53 0 | p0: p 53 0 | ||
| Line 27: | Line 49: | ||
| </ | </ | ||
| - | ===== Дополнительные параметры ===== | + | ===== Параметры ===== |
| - | |**params** | + | ^ Параметр |
| - | |:::| * **pN** - номер подвески, где N от 0 до 11 | + | | '' |
| - | |:::| * **type** - тип подвески: | + | | '' |
| - | |:::| * **Rzero** - нулевое сопротивление, по умолчанию 53 | + | | '' |
| - | |:::| * **Rwire** - сопротивление линии, по умолчанию 0 | | + | |
| + | Параметры | ||
| - | ===== Теги ===== | ||
| < | < | ||
| - | Pdv0.R0 | + | pN: type Rzero Rwire |
| - | Pdv0.R1 | + | </ |
| - | Pdv0.R2 | + | |
| - | Pdv0.R3 | + | |
| - | Pdv0.R4 | + | |
| - | Pdv0.R5 | + | |
| - | Pdv0.T0 | + | |
| - | Pdv0.T1 | + | |
| - | Pdv0.T2 | + | |
| - | Pdv0.T3 | + | |
| - | Pdv0.T4 | + | |
| - | Pdv0.T5 | + | |
| - | Pdv0.Time | + | |
| - | Pdv0.Tmax | + | |
| - | Pdv0.U0 | + | |
| - | Pdv0.U1 | + | |
| - | Pdv0.U2 | + | |
| - | Pdv0.U3 | + | |
| - | Pdv0.U4 | + | |
| - | Pdv0.U5 | + | |
| - | Pdv0.Umax | + | |
| - | Pdv0.Umin | + | |
| - | ...аналогично для остальных подвесок | + | |
| + | где: | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Поддерживаются следующие типы подвесок: | ||
| + | |||
| + | ^ Значение ^ Тип ^ Описание ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | Значения по умолчанию: | ||
| + | |||
| + | ^ Параметр ^ Значение ^ | ||
| + | | Тип подвески | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | Например: | ||
| + | |||
| + | <code yaml> | ||
| + | params: | ||
| + | p0: c 53 0 | ||
| + | p1: p 53 1.5 | ||
| </ | </ | ||
| + | В данном примере: | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * для '' | ||
| + | |||
| + | ===== Теги ===== | ||
| + | |||
| + | Для каждой подвески создается отдельная группа тегов: | ||
| + | |||
| + | < | ||
| + | PdvN | ||
| + | </ | ||
| + | |||
| + | где '' | ||
| + | |||
| + | Номер датчика обозначается буквой '' | ||
| + | |||
| + | ==== Теги датчиков ==== | ||
| + | |||
| + | ^ Имя тега ^ Тип ^ Доступ ^ Описание ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | Например: | ||
| + | |||
| + | ^ Значение тега ^ Фактическое значение ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | ==== Общие теги подвески ==== | ||
| + | |||
| + | ^ Имя тега ^ Тип ^ Доступ ^ Описание ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | <WRAP center round important> | ||
| + | В актуальной реализации тег максимальной температуры называется '' | ||
| + | </ | ||
| + | ==== Управляющие теги ==== | ||
| - | ===== Управляющие теги | + | ^ Имя тега ^ Тип ^ Доступ ^ Умолчание ^ Описание ^ |
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| - | Модуль поддерживает несколько служебных тегов, позволяющих изменять режим | + | ===== Режимы работы |
| - | ===== Mode ===== | + | ==== Mode ==== |
| - | Определяет режим обмена с устройством. | + | Тег '' |
| ^ Значение ^ Режим ^ Описание ^ | ^ Значение ^ Режим ^ Описание ^ | ||
| - | | 0 | Normal | Штатный | + | | '' |
| - | | 1 | Force | Выполняется опрос только одного подвеса, указанного в теге '' | + | | '' |
| - | | 2 | Silent | Модуль не выполняет обмен данными с устройством. | | + | | '' |
| + | |||
| + | ==== Normal ==== | ||
| В режиме '' | В режиме '' | ||
| - | * считывает время обработки всех подвесов ('' | + | |
| - | * опрашивает все подвесы; | + | * последовательно |
| - | * вычисляет сопротивления ('' | + | * получает значения '' |
| - | * вычисляет температуры ('' | + | |
| + | * вычисляет температуру каждого датчика; | ||
| + | * определяет максимальную температуру каждой подвески. | ||
| - | В режиме '' | + | Для включения штатного |
| - | В режиме '' | + | < |
| + | Mode = 0 | ||
| + | </ | ||
| - | ===== ModeForcePdv ===== | + | ==== Force ==== |
| - | Используется при '' | + | В режиме '' |
| - | Содержит номер подвеса, который необходимо опрашивать. | + | Номер подвески задается |
| Допустимые значения: | Допустимые значения: | ||
| Line 106: | Line 183: | ||
| < | < | ||
| - | Mode = 1 | ||
| ModeForcePdv = 5 | ModeForcePdv = 5 | ||
| + | Mode = 1 | ||
| </ | </ | ||
| - | В этом случае модуль будет опрашивать только подвес '' | + | После |
| - | ===== ModeResetCnt | + | Если при переключении в режим '' |
| - | Используется для автоматического возврата | + | Режим может использоваться при |
| - | После каждого цикла выполнения значение | + | Значение '' |
| - | Когда счётчик достигает нуля, модуль автоматически устанавливает: | + | ==== Silent ==== |
| - | < | + | В режиме '' |
| - | Mode = 0; | + | |
| - | ModeResetCnt = 0; | + | Для включения режима необходимо записать: |
| + | |||
| + | < | ||
| + | Mode = 2 | ||
| </ | </ | ||
| - | Таким образом можно временно включить принудительный опрос одного подвеса или полностью остановить обмен | + | Если при переключении в режим '' |
| - | Например, временный опрос только подвеса '' | + | Режим может использоваться для |
| + | |||
| + | Обработка тега '' | ||
| + | |||
| + | ==== ModeResetCnt ==== | ||
| + | |||
| + | Тег '' | ||
| + | |||
| + | Максимальное допустимое значение счетчика определяется параметром конфигурации | ||
| + | |||
| + | Например: | ||
| + | |||
| + | <code yaml> | ||
| + | modeResetCntMax: | ||
| + | </ | ||
| + | |||
| + | Если значение '' | ||
| < | < | ||
| - | Mode = 1 | + | ModeResetCnt = modeResetCntMax |
| - | ModeForcePdv = 3 | + | |
| - | ModeResetCnt = 20 | + | |
| </ | </ | ||
| - | Модуль | + | Таким |
| - | Пример временного отключения обмена: | + | Если в тег '' |
| + | |||
| + | Если значение тега больше | ||
| + | |||
| + | Когда значение '' | ||
| < | < | ||
| - | Mode = 2 | + | Mode = 0 |
| - | ModeResetCnt = 100 | + | |
| </ | </ | ||
| - | В течение | + | Если в тег '' |
| - | ===== Пример использования ===== | + | < |
| + | Mode = 0 | ||
| + | ModeResetCnt | ||
| + | </ | ||
| - | Для ускоренного контроля подвеса №7: | + | Таким образом режимы '' |
| + | |||
| + | <WRAP center round important> | ||
| + | Чтобы включить | ||
| + | </ | ||
| + | |||
| + | Пример автоматической установки счетчика для подвески '' | ||
| < | < | ||
| + | ModeForcePdv = 3 | ||
| Mode = 1 | Mode = 1 | ||
| - | ModeForcePdv = 7 | ||
| - | ModeResetCnt = 100 | ||
| </ | </ | ||
| - | В течение следующих 100 циклов будет опрашиваться только | + | При переключении в режим '' |
| - | Для временной | + | После окончания отсчета модуль возвращается в режим '' |
| + | |||
| + | Пример принудительной | ||
| + | |||
| + | < | ||
| + | ModeForcePdv = 3 | ||
| + | ModeResetCnt = 20 | ||
| + | Mode = 1 | ||
| + | </ | ||
| + | |||
| + | В этом случае подвеска '' | ||
| + | |||
| + | Пример | ||
| < | < | ||
| Mode = 2 | Mode = 2 | ||
| + | </ | ||
| + | |||
| + | Если перед переключением значение '' | ||
| + | |||
| + | После окончания отсчета будет восстановлен режим '' | ||
| + | |||
| + | Пример принудительной установки продолжительности режима '' | ||
| + | |||
| + | < | ||
| ModeResetCnt = 50 | ModeResetCnt = 50 | ||
| + | Mode = 2 | ||
| </ | </ | ||
| - | В течение | + | В течение |
| + | Если в '' | ||
| + | ===== Карта каналов ===== | ||
| + | В карту каналов [[doc: | ||
| + | Формат номера канала: | ||
| + | < | ||
| + | N.M | ||
| + | </ | ||
| + | где: | ||
| - | ===== OLD Управляющие теги ===== | + | * '' |
| + | * '' | ||
| - | Модуль поддерживает несколько служебных тегов, позволяющих изменять | + | Примеры: |
| - | ===== Mode ===== | + | ^ Канал ^ Тег ^ |
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| - | Определяет режим обмена с устройством. | ||
| - | ^ Значение ^ Режим ^ Описание ^ | ||
| - | | 0 | Normal | Штатный режим работы. Выполняется опрос всех 12 подвесов. | | ||
| - | | 1 | Force | Выполняется опрос только одного подвеса, | ||
| - | | 2 | Silent | Зарезервировано. В текущей реализации не используется. | | ||
| - | В режиме '' | + | ===== Принцип работы ===== |
| - | * считывает время | + | ==== Опрос в штатном режиме |
| - | * опрашивает все подвесы; | + | |
| - | * вычисляет сопротивления ('' | + | |
| - | * вычисляет температуры ('' | + | |
| - | В режиме '' | + | В режиме '' |
| - | ===== ModeForcePdv ===== | + | Затем выполняется чтение основных данных подвесок. За один запрос считываются данные двух подвесок. Для опроса всех 12 подвесок выполняется шесть запросов. |
| - | Используется только при '' | + | Для каждой |
| - | Содержит номер | + | * шесть измеренных значений напряжения; |
| + | * нижнее | ||
| + | * верхнее опорное значение '' | ||
| - | Допустимые | + | После |
| - | < | + | ==== Вычисление сопротивления ==== |
| - | 0...11 | + | |
| - | </ | + | |
| - | Например: | + | Сопротивление датчика вычисляется |
| + | |||
| + | Полученное сопротивление записывается в тег '' | ||
| + | |||
| + | ==== Вычисление температуры ==== | ||
| + | |||
| + | Температура рассчитывается по сопротивлению датчика, | ||
| < | < | ||
| - | Mode = 1 | + | T = ((R / Rzero) - 1) / 0.0043 |
| - | ModeForcePdv = 5 | + | |
| </ | </ | ||
| - | В этом | + | Перед вычислением температуры из общего сопротивления вычитается сопротивление линии |
| - | ===== ModeResetCnt ===== | + | Для классической подвески дополнительно учитывается индивидуальная поправка сопротивления соответствующего канала. |
| - | Используется | + | Результат |
| - | После | + | После |
| - | Когда счетчик достигает нуля, модуль автоматически выполняет: | + | ===== Примеры использования ===== |
| - | < | + | ==== Штатная работа ==== |
| - | Mode = 0; | + | |
| - | ModeResetCnt = 0; | + | < |
| + | Mode = 0 | ||
| + | ModeResetCnt = 0 | ||
| </ | </ | ||
| - | Таким | + | Модуль постоянно |
| - | Например: | + | ==== Диагностика одной |
| < | < | ||
| + | ModeForcePdv = 7 | ||
| Mode = 1 | Mode = 1 | ||
| - | ModeForcePdv = 3 | ||
| - | ModeResetCnt = 20 | ||
| </ | </ | ||
| - | Модуль будет выполнять опрос только | + | Если значение '' |
| - | ===== Пример использования ===== | + | До окончания отсчета модуль опрашивает только подвеску '' |
| - | Для ускоренного контроля подвеса | + | ==== Диагностика одной подвески с заданным счетчиком ==== |
| < | < | ||
| - | Mode = 1 | ||
| ModeForcePdv = 7 | ModeForcePdv = 7 | ||
| - | ModeResetCnt = 100 | + | ModeResetCnt = 50 |
| + | Mode = 1 | ||
| + | </ | ||
| + | |||
| + | В течение заданного количества циклов модуль опрашивает только подвеску '' | ||
| + | |||
| + | Значение '' | ||
| + | |||
| + | ==== Временная остановка обмена с автоматическим счетчиком ==== | ||
| + | |||
| + | < | ||
| + | Mode = 2 | ||
| + | </ | ||
| + | |||
| + | Если значение '' | ||
| + | |||
| + | До окончания отсчета модуль не выполняет обмен данными, | ||
| + | |||
| + | ==== Временная остановка обмена с заданным счетчиком ==== | ||
| + | |||
| + | < | ||
| + | ModeResetCnt = 50 | ||
| + | Mode = 2 | ||
| </ | </ | ||
| - | В течение | + | В течение |
| + | ===== Ограничения ===== | ||
| + | * количество подвесок фиксировано и равно 12; | ||
| + | * количество датчиков на одной подвеске фиксировано и равно 6; | ||
| + | * номер подвески в теге '' | ||
| + | * изменение количества подвесок или датчиков через конфигурацию не поддерживается; | ||
| + | * в режиме '' | ||
| + | * новые значения температуры появляются только после успешного обмена с платой. | ||