promauto.termo5
Модуль опроса платы термометрии производства «ПромАвтоматика».
К одной плате можно подключить до 12 термоподвесок. На каждой подвеске может быть установлено до 6 датчиков температуры.
Для обмена данными используется протокол Modbus.
Температура и сопротивление сохраняются в тегах с одним знаком после запятой: фактическое значение умножается на 10.
Основные возможности
- опрос 12 термоподвесок;
- обработка 6 датчиков температуры на каждой подвеске;
- получение измеренных значений напряжения;
- вычисление сопротивления каждого датчика;
- вычисление температуры каждого датчика;
- вычисление максимальной температуры каждой подвески;
- поддержка классических и компенсированных подвесок;
- настройка начального сопротивления и сопротивления линии отдельно для каждой подвески;
- режим принудительного опроса одной подвески;
- режим остановки обмена данными;
- автоматический возврат в штатный режим через заданное количество циклов.
Конфигурация
Пример конфигурации модуля:
plugin.peripherial: module.TRM1: netaddr: 1 type: promauto.termo5 modeResetCntMax: 3600 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
Параметры
| Параметр | Умолчание | Описание |
|---|---|---|
netaddr | 1 | Сетевой адрес платы. |
modeResetCntMax | 60 | Максимальное значение счетчика ModeResetCnt. Также используется для автоматической инициализации счетчика при переключении в режим Force или Silent. |
params.p0 … params.p11 | c 53 0 | Параметры соответствующей подвески. |
Параметры подвески задаются в следующем формате:
pN: type Rzero Rwire
где:
N— номер подвески от 0 до 11;type— тип подвески;Rzero— сопротивление датчика при температуре 0 °C;Rwire— сопротивление соединительной линии.
Поддерживаются следующие типы подвесок:
| Значение | Тип | Описание |
|---|---|---|
c | Classic | Классическая подвеска. При вычислении температуры учитываются сопротивление линии и индивидуальная поправка канала. |
p | Compensate | Компенсированная подвеска. При вычислении температуры учитывается сопротивление линии без индивидуальной поправки канала. |
Значения по умолчанию:
| Параметр | Значение |
|---|---|
| Тип подвески | c |
Rzero | 53 |
Rwire | 0 |
Например:
params: p0: c 53 0 p1: p 53 1.5
В данном примере:
Pdv0является классической подвеской;Pdv1является компенсированной подвеской;- для
Pdv1задано сопротивление линии 1,5 Ом.
Теги
Для каждой подвески создается отдельная группа тегов:
PdvN
где N — номер подвески от 0 до 11.
Номер датчика обозначается буквой M и принимает значения от 0 до 5.
Теги датчиков
| Имя тега | Тип | Доступ | Описание |
|---|---|---|---|
PdvN.T0 … PdvN.T5 | INT | RO | Температура датчика, умноженная на 10. |
PdvN.R0 … PdvN.R5 | INT | RO | Расчетное сопротивление датчика, умноженное на 10. |
PdvN.U0 … PdvN.U5 | INT | RO | Измеренное значение напряжения соответствующего канала. |
Например:
| Значение тега | Фактическое значение |
|---|---|
Pdv3.T2 = 254 | 25,4 °C |
Pdv3.R2 = 537 | 53,7 Ом |
Общие теги подвески
| Имя тега | Тип | Доступ | Описание |
|---|---|---|---|
PdvN.Umin | INT | RO | Нижнее опорное значение напряжения. |
PdvN.Umax | INT | RO | Верхнее опорное значение напряжения. |
PdvN.Time | INT | RO | Значение времени измерения, полученное от платы. |
PdvN.TMax | INT | RO | Максимальная температура датчиков подвески, умноженная на 10. |
В актуальной реализации тег максимальной температуры называется PdvN.TMax — с заглавной буквой M.
Управляющие теги
| Имя тега | Тип | Доступ | Умолчание | Описание |
|---|---|---|---|---|
Mode | INT | RW | 0 | Режим работы модуля. |
ModeForcePdv | INT | RW | 0 | Номер подвески для принудительного опроса. |
ModeResetCnt | INT | RW | 0 | Счетчик автоматического возврата в штатный режим. |
Режимы работы
Mode
Тег Mode определяет режим обмена с платой.
| Значение | Режим | Описание |
|---|---|---|
0 | Normal | Штатный опрос всех 12 подвесок. |
1 | Force | Опрос только одной подвески, указанной в теге ModeForcePdv. |
2 | Silent | Обмен данными с платой не выполняется. |
Normal
В режиме Normal модуль:
- считывает значения времени всех подвесок;
- последовательно опрашивает все 12 подвесок;
- получает значения
U0…U5,UminиUmax; - вычисляет сопротивление каждого датчика;
- вычисляет температуру каждого датчика;
- определяет максимальную температуру каждой подвески.
Для включения штатного режима необходимо записать:
Mode = 0
Force
В режиме Force модуль опрашивает только одну выбранную подвеску.
Номер подвески задается тегом ModeForcePdv.
Допустимые значения:
0...11
Например:
ModeForcePdv = 5 Mode = 1
После этого модуль будет опрашивать только подвеску Pdv5.
Если при переключении в режим Force значение ModeResetCnt равно нулю, счетчик автоматически устанавливается равным modeResetCntMax.
Режим может использоваться при диагностике, настройке или для увеличения частоты обновления данных выбранной подвески.
Значение ModeForcePdv необходимо установить до переключения тега Mode в значение 1.
Silent
В режиме Silent модуль не отправляет запросы плате и не обновляет измерительные теги.
Для включения режима необходимо записать:
Mode = 2
Если при переключении в режим Silent значение ModeResetCnt равно нулю, счетчик автоматически устанавливается равным modeResetCntMax.
Режим может использоваться для временной остановки обмена данными без отключения модуля.
Обработка тега ModeResetCnt в режиме Silent продолжается.
ModeResetCnt
Тег ModeResetCnt позволяет автоматически вернуть модуль в режим Normal.
Максимальное допустимое значение счетчика определяется параметром конфигурации modeResetCntMax.
Например:
modeResetCntMax: 3600
Если значение Mode изменяется с Normal на Force или Silent, а значение ModeResetCnt равно нулю, модуль автоматически устанавливает:
ModeResetCnt = modeResetCntMax
Таким образом для включения режима на максимальное количество циклов необязательно предварительно записывать значение в ModeResetCnt.
Если в тег ModeResetCnt записано значение, превышающее modeResetCntMax, модуль ограничивает его значением modeResetCntMax.
Если значение тега больше нуля и не превышает modeResetCntMax, после каждого цикла выполнения модуля оно уменьшается на единицу.
Когда значение ModeResetCnt становится равным нулю, модуль автоматически устанавливает:
Mode = 0
Если в тег ModeResetCnt записано отрицательное значение, модуль устанавливает:
Mode = 0 ModeResetCnt = 0
Таким образом режимы Force и Silent можно включать на ограниченное количество циклов.
Чтобы включить режим Force или Silent на максимальное количество циклов, достаточно изменить тег Mode. Если ModeResetCnt равен нулю, он будет автоматически установлен равным modeResetCntMax.
Пример автоматической установки счетчика для подвески Pdv3:
ModeForcePdv = 3 Mode = 1
При переключении в режим Force модуль автоматически устанавливает ModeResetCnt равным modeResetCntMax.
После окончания отсчета модуль возвращается в режим Normal.
Пример принудительной установки продолжительности режима:
ModeForcePdv = 3 ModeResetCnt = 20 Mode = 1
В этом случае подвеска Pdv3 будет опрашиваться в течение заданного количества циклов, после чего модуль автоматически вернется в режим Normal.
Пример автоматической установки счетчика в режиме Silent:
Mode = 2
Если перед переключением значение ModeResetCnt было равно нулю, счетчик автоматически устанавливается равным modeResetCntMax.
После окончания отсчета будет восстановлен режим Normal.
Пример принудительной установки продолжительности режима Silent:
ModeResetCnt = 50 Mode = 2
В течение заданного количества циклов модуль не будет выполнять обмен данными с платой. После окончания отсчета будет восстановлен режим Normal.
Если в ModeResetCnt записать значение больше modeResetCntMax, продолжительность работы выбранного режима будет ограничена значением modeResetCntMax.
Карта каналов
В карту каналов CHANNELMAP модуля добавляются теги температуры.
Формат номера канала:
N.M
где:
N— номер подвески от 0 до 11;M— номер датчика от 0 до 5.
Примеры:
| Канал | Тег |
|---|---|
0.0 | Pdv0.T0 |
0.5 | Pdv0.T5 |
3.2 | Pdv3.T2 |
11.5 | Pdv11.T5 |
Принцип работы
Опрос в штатном режиме
В режиме Normal сначала одним запросом считываются значения времени всех 12 подвесок.
Затем выполняется чтение основных данных подвесок. За один запрос считываются данные двух подвесок. Для опроса всех 12 подвесок выполняется шесть запросов.
Для каждой подвески плата передает:
- шесть измеренных значений напряжения;
- нижнее опорное значение
Umin; - верхнее опорное значение
Umax.
После получения ответа модуль вычисляет сопротивления и температуры всех датчиков.
Вычисление сопротивления
Сопротивление датчика вычисляется по измеренному напряжению и опорным значениям Umin и Umax.
Полученное сопротивление записывается в тег PdvN.RM после умножения на 10.
Вычисление температуры
Температура рассчитывается по сопротивлению датчика, значению Rzero и температурному коэффициенту:
T = ((R / Rzero) - 1) / 0.0043
Перед вычислением температуры из общего сопротивления вычитается сопротивление линии Rwire.
Для классической подвески дополнительно учитывается индивидуальная поправка сопротивления соответствующего канала.
Результат умножается на 10 и записывается в тег PdvN.TM.
После расчета всех шести температур наибольшее значение записывается в тег PdvN.TMax.
Примеры использования
Штатная работа
Mode = 0 ModeResetCnt = 0
Модуль постоянно опрашивает все подвески.
Диагностика одной подвески с автоматическим счетчиком
ModeForcePdv = 7 Mode = 1
Если значение ModeResetCnt равно нулю, модуль автоматически устанавливает его равным modeResetCntMax.
До окончания отсчета модуль опрашивает только подвеску Pdv7, после чего автоматически возвращается к опросу всех подвесок.
Диагностика одной подвески с заданным счетчиком
ModeForcePdv = 7 ModeResetCnt = 50 Mode = 1
В течение заданного количества циклов модуль опрашивает только подвеску Pdv7, после чего автоматически возвращается к опросу всех подвесок.
Значение ModeResetCnt не должно превышать параметр modeResetCntMax. Если оно превышает допустимый максимум, модуль ограничивает его значением modeResetCntMax.
Временная остановка обмена с автоматическим счетчиком
Mode = 2
Если значение ModeResetCnt равно нулю, модуль автоматически устанавливает его равным modeResetCntMax.
До окончания отсчета модуль не выполняет обмен данными, после чего автоматически возвращается в штатный режим.
Временная остановка обмена с заданным счетчиком
ModeResetCnt = 50 Mode = 2
В течение заданного количества циклов модуль не выполняет обмен данными, после чего автоматически возвращается в штатный режим.
Ограничения
- количество подвесок фиксировано и равно 12;
- количество датчиков на одной подвеске фиксировано и равно 6;
- номер подвески в теге
ModeForcePdvдолжен находиться в диапазоне от 0 до 11; - изменение количества подвесок или датчиков через конфигурацию не поддерживается;
- в режиме
Silentизмерительные теги сохраняют последние полученные значения; - новые значения температуры появляются только после успешного обмена с платой.