Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| doc:jroboplc:modules:peripherial:promauto_termo5 [2019/12/19 11:32] – created - external edit 127.0.0.1 | 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** - сопротивление линии, | + | |
| + | Параметры | ||
| + | |||
| + | < | ||
| + | pN: type Rzero Rwire | ||
| + | </ | ||
| + | |||
| + | где: | ||
| + | |||
| + | | ||
| + | | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Поддерживаются следующие типы подвесок: | ||
| + | |||
| + | ^ Значение ^ Тип ^ Описание ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | Значения | ||
| + | |||
| + | ^ Параметр ^ Значение ^ | ||
| + | | Тип подвески | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | Например: | ||
| + | |||
| + | <code yaml> | ||
| + | params: | ||
| + | p0: c 53 0 | ||
| + | p1: p 53 1.5 | ||
| + | </ | ||
| + | |||
| + | В данном примере: | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| ===== Теги ===== | ===== Теги ===== | ||
| + | |||
| + | Для каждой подвески создается отдельная группа тегов: | ||
| + | |||
| < | < | ||
| - | Pdv0.R0 | + | PdvN |
| - | 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 | + | |
| - | ...аналогично для остальных подвесок | + | |
| + | где '' | ||
| + | Номер датчика обозначается буквой '' | ||
| + | |||
| + | ==== Теги датчиков ==== | ||
| + | |||
| + | ^ Имя тега ^ Тип ^ Доступ ^ Описание ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | Например: | ||
| + | |||
| + | ^ Значение тега ^ Фактическое значение ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | ==== Общие теги подвески ==== | ||
| + | |||
| + | ^ Имя тега ^ Тип ^ Доступ ^ Описание ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | <WRAP center round important> | ||
| + | В актуальной реализации тег максимальной температуры называется '' | ||
| + | </ | ||
| + | |||
| + | ==== Управляющие теги ==== | ||
| + | |||
| + | ^ Имя тега ^ Тип ^ Доступ ^ Умолчание ^ Описание ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | ===== Режимы работы ===== | ||
| + | |||
| + | ==== Mode ==== | ||
| + | |||
| + | Тег '' | ||
| + | |||
| + | ^ Значение ^ Режим ^ Описание ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | ==== Normal ==== | ||
| + | |||
| + | В режиме '' | ||
| + | |||
| + | * считывает значения времени всех подвесок; | ||
| + | * последовательно опрашивает все 12 подвесок; | ||
| + | * получает значения '' | ||
| + | * вычисляет сопротивление каждого датчика; | ||
| + | * вычисляет температуру каждого датчика; | ||
| + | * определяет максимальную температуру каждой подвески. | ||
| + | |||
| + | Для включения штатного режима необходимо записать: | ||
| + | |||
| + | < | ||
| + | Mode = 0 | ||
| + | </ | ||
| + | |||
| + | ==== Force ==== | ||
| + | |||
| + | В режиме '' | ||
| + | |||
| + | Номер подвески задается тегом '' | ||
| + | |||
| + | Допустимые значения: | ||
| + | |||
| + | < | ||
| + | 0...11 | ||
| + | </ | ||
| + | |||
| + | Например: | ||
| + | |||
| + | < | ||
| + | ModeForcePdv = 5 | ||
| + | Mode = 1 | ||
| + | </ | ||
| + | |||
| + | После этого модуль будет опрашивать только подвеску '' | ||
| + | |||
| + | Если при переключении в режим '' | ||
| + | |||
| + | Режим может использоваться при диагностике, | ||
| + | |||
| + | Значение '' | ||
| + | |||
| + | ==== Silent ==== | ||
| + | |||
| + | В режиме '' | ||
| + | |||
| + | Для включения режима необходимо записать: | ||
| + | |||
| + | < | ||
| + | Mode = 2 | ||
| + | </ | ||
| + | |||
| + | Если при переключении в режим '' | ||
| + | |||
| + | Режим может использоваться для временной остановки обмена данными без отключения модуля. | ||
| + | |||
| + | Обработка тега '' | ||
| + | |||
| + | ==== ModeResetCnt ==== | ||
| + | |||
| + | Тег '' | ||
| + | |||
| + | Максимальное допустимое значение счетчика определяется параметром конфигурации '' | ||
| + | |||
| + | Например: | ||
| + | |||
| + | <code yaml> | ||
| + | modeResetCntMax: | ||
| + | </ | ||
| + | |||
| + | Если значение '' | ||
| + | |||
| + | < | ||
| + | ModeResetCnt = modeResetCntMax | ||
| + | </ | ||
| + | |||
| + | Таким образом для включения режима на максимальное количество циклов необязательно предварительно записывать значение в '' | ||
| + | |||
| + | Если в тег '' | ||
| + | |||
| + | Если значение тега больше нуля и не превышает '' | ||
| + | |||
| + | Когда значение '' | ||
| + | |||
| + | < | ||
| + | Mode = 0 | ||
| + | </ | ||
| + | |||
| + | Если в тег '' | ||
| + | |||
| + | < | ||
| + | Mode = 0 | ||
| + | ModeResetCnt = 0 | ||
| + | </ | ||
| + | |||
| + | Таким образом режимы '' | ||
| + | |||
| + | <WRAP center round important> | ||
| + | Чтобы включить режим '' | ||
| + | </ | ||
| + | |||
| + | Пример автоматической установки счетчика для подвески '' | ||
| + | |||
| + | < | ||
| + | ModeForcePdv = 3 | ||
| + | Mode = 1 | ||
| + | </ | ||
| + | |||
| + | При переключении в режим '' | ||
| + | |||
| + | После окончания отсчета модуль возвращается в режим '' | ||
| + | |||
| + | Пример принудительной установки продолжительности режима: | ||
| + | |||
| + | < | ||
| + | ModeForcePdv = 3 | ||
| + | ModeResetCnt = 20 | ||
| + | Mode = 1 | ||
| + | </ | ||
| + | |||
| + | В этом случае подвеска '' | ||
| + | |||
| + | Пример автоматической установки счетчика в режиме '' | ||
| + | |||
| + | < | ||
| + | Mode = 2 | ||
| + | </ | ||
| + | |||
| + | Если перед переключением значение '' | ||
| + | |||
| + | После окончания отсчета будет восстановлен режим '' | ||
| + | |||
| + | Пример принудительной установки продолжительности режима '' | ||
| + | |||
| + | < | ||
| + | ModeResetCnt = 50 | ||
| + | Mode = 2 | ||
| + | </ | ||
| + | |||
| + | В течение заданного количества циклов модуль не будет выполнять обмен данными с платой. После окончания отсчета будет восстановлен режим '' | ||
| + | |||
| + | Если в '' | ||
| + | |||
| + | ===== Карта каналов ===== | ||
| + | |||
| + | В карту каналов [[doc: | ||
| + | |||
| + | Формат номера канала: | ||
| + | |||
| + | < | ||
| + | N.M | ||
| + | </ | ||
| + | |||
| + | где: | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Примеры: | ||
| + | |||
| + | ^ Канал ^ Тег ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | |||
| + | |||
| + | ===== Принцип работы ===== | ||
| + | |||
| + | ==== Опрос в штатном режиме ==== | ||
| + | |||
| + | В режиме '' | ||
| + | |||
| + | Затем выполняется чтение основных данных подвесок. За один запрос считываются данные двух подвесок. Для опроса всех 12 подвесок выполняется шесть запросов. | ||
| + | |||
| + | Для каждой подвески плата передает: | ||
| + | |||
| + | * шесть измеренных значений напряжения; | ||
| + | * нижнее опорное значение '' | ||
| + | * верхнее опорное значение '' | ||
| + | |||
| + | После получения ответа модуль вычисляет сопротивления и температуры всех датчиков. | ||
| + | |||
| + | ==== Вычисление сопротивления ==== | ||
| + | |||
| + | Сопротивление датчика вычисляется по измеренному напряжению и опорным значениям '' | ||
| + | |||
| + | Полученное сопротивление записывается в тег '' | ||
| + | |||
| + | ==== Вычисление температуры ==== | ||
| + | |||
| + | Температура рассчитывается по сопротивлению датчика, | ||
| + | |||
| + | < | ||
| + | T = ((R / Rzero) - 1) / 0.0043 | ||
| + | </ | ||
| + | |||
| + | Перед вычислением температуры из общего сопротивления вычитается сопротивление линии '' | ||
| + | |||
| + | Для классической подвески дополнительно учитывается индивидуальная поправка сопротивления соответствующего канала. | ||
| + | |||
| + | Результат умножается на 10 и записывается в тег '' | ||
| + | |||
| + | После расчета всех шести температур наибольшее значение записывается в тег '' | ||
| + | |||
| + | ===== Примеры использования ===== | ||
| + | |||
| + | ==== Штатная работа ==== | ||
| + | |||
| + | < | ||
| + | Mode = 0 | ||
| + | ModeResetCnt = 0 | ||
| + | </ | ||
| + | |||
| + | Модуль постоянно опрашивает все подвески. | ||
| + | |||
| + | ==== Диагностика одной подвески с автоматическим счетчиком ==== | ||
| + | |||
| + | < | ||
| + | ModeForcePdv = 7 | ||
| + | Mode = 1 | ||
| + | </ | ||
| + | |||
| + | Если значение '' | ||
| + | |||
| + | До окончания отсчета модуль опрашивает только подвеску '' | ||
| + | |||
| + | ==== Диагностика одной подвески с заданным счетчиком ==== | ||
| + | |||
| + | < | ||
| + | ModeForcePdv = 7 | ||
| + | ModeResetCnt = 50 | ||
| + | Mode = 1 | ||
| + | </ | ||
| + | |||
| + | В течение заданного количества циклов модуль опрашивает только подвеску '' | ||
| + | |||
| + | Значение '' | ||
| + | |||
| + | ==== Временная остановка обмена с автоматическим счетчиком ==== | ||
| + | |||
| + | < | ||
| + | Mode = 2 | ||
| + | </ | ||
| + | |||
| + | Если значение '' | ||
| + | |||
| + | До окончания отсчета модуль не выполняет обмен данными, | ||
| + | |||
| + | ==== Временная остановка обмена с заданным счетчиком ==== | ||
| + | |||
| + | < | ||
| + | ModeResetCnt = 50 | ||
| + | Mode = 2 | ||
| </ | </ | ||
| + | В течение заданного количества циклов модуль не выполняет обмен данными, | ||
| + | ===== Ограничения ===== | ||
| + | * количество подвесок фиксировано и равно 12; | ||
| + | * количество датчиков на одной подвеске фиксировано и равно 6; | ||
| + | * номер подвески в теге '' | ||
| + | * изменение количества подвесок или датчиков через конфигурацию не поддерживается; | ||
| + | * в режиме '' | ||
| + | * новые значения температуры появляются только после успешного обмена с платой. | ||