doc:jroboplc:modules:peripherial:promauto_termo5

This is an old revision of the document!


promauto.termo5

Модуль опроса платы термометрии производства «ПромАвтоматика».

К одной плате можно подключить до 12 термоподвесок. На каждой подвеске может быть установлено до 6 датчиков температуры.

Для обмена данными используется протокол Modbus.

Температура и сопротивление сохраняются в тегах с одним знаком после запятой: фактическое значение умножается на 10.

* опрос 12 термоподвесок; * обработка 6 датчиков температуры на каждой подвеске; * получение измеренных значений напряжения; * вычисление сопротивления каждого датчика; * вычисление температуры каждого датчика; * вычисление максимальной температуры каждой подвески; * поддержка классических и компенсированных подвесок; * настройка начального сопротивления и сопротивления линии отдельно для каждой подвески; * режим принудительного опроса одной подвески; * режим остановки обмена данными; * автоматический возврат в штатный режим через заданное количество циклов.

Пример конфигурации модуля:

plugin.peripherial:

  module.TRM1:
    netaddr:  1
    type:     promauto.termo5
    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 Сетевой адрес платы.
params.p0params.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.T0PdvN.T5 INT RO Температура датчика, умноженная на 10.
PdvN.R0PdvN.R5 INT RO Расчетное сопротивление датчика, умноженное на 10.
PdvN.U0PdvN.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 определяет режим обмена с платой.

Значение Режим Описание
0 Normal Штатный опрос всех 12 подвесок.
1 Force Опрос только одной подвески, указанной в теге ModeForcePdv.
2 Silent Обмен данными с платой не выполняется.

В режиме Normal модуль:

* считывает значения времени всех подвесок; * последовательно опрашивает все 12 подвесок; * получает значения U0U5, Umin и Umax; * вычисляет сопротивление каждого датчика; * вычисляет температуру каждого датчика; * определяет максимальную температуру каждой подвески.

Для включения штатного режима необходимо записать:

Mode = 0

В режиме Force модуль опрашивает только одну выбранную подвеску.

Номер подвески задается тегом ModeForcePdv.

Допустимые значения:

0...11

Например:

ModeForcePdv = 5
Mode = 1

После этого модуль будет опрашивать только подвеску Pdv5.

Режим может использоваться при диагностике, настройке или для увеличения частоты обновления данных выбранной подвески.

Значение ModeForcePdv необходимо установить до переключения тега Mode в значение 1.

В режиме Silent модуль не отправляет запросы плате и не обновляет измерительные теги.

Для включения режима необходимо записать:

Mode = 2

Режим может использоваться для временной остановки обмена данными без отключения модуля.

Обработка тега ModeResetCnt в режиме Silent продолжается.

Тег ModeResetCnt позволяет автоматически вернуть модуль в режим Normal.

Если значение тега больше нуля, после каждого цикла выполнения модуля оно уменьшается на единицу.

Когда счетчик достигает нуля, модуль устанавливает:

Mode = 0
ModeResetCnt = 0

Таким образом режимы Force и Silent можно включать на ограниченное количество циклов.

Пример временного опроса подвески Pdv3:

ModeForcePdv = 3
ModeResetCnt = 20
Mode = 1

Подвеска Pdv3 будет опрашиваться в течение 20 циклов, после чего модуль автоматически вернется в режим Normal.

Пример временной остановки обмена:

ModeResetCnt = 100
Mode = 2

В течение 100 циклов модуль не будет выполнять обмен данными с платой. После окончания отсчета будет восстановлен режим Normal.

Если автоматический возврат не требуется, значение ModeResetCnt должно быть равно нулю.

В карту каналов 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

адресация_каналов_channelmap

В режиме 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
ModeResetCnt = 100
Mode = 1

В течение 100 циклов модуль опрашивает только подвеску Pdv7, после чего возвращается к опросу всех подвесок.

ModeResetCnt = 50
Mode = 2

В течение 50 циклов модуль не выполняет обмен данными, после чего автоматически возвращается в штатный режим.

ModeResetCnt = 0
Mode = 2

Модуль остается в режиме Silent, пока в тег Mode не будет записано другое значение.

  • количество подвесок фиксировано и равно 12;
  • количество датчиков на одной подвеске фиксировано и равно 6;
  • номер подвески в теге ModeForcePdv должен находиться в диапазоне от 0 до 11;
  • изменение количества подвесок или датчиков через конфигурацию не поддерживается;
  • в режиме Silent измерительные теги сохраняют последние полученные значения;
  • новые значения температуры появляются только после успешного обмена с платой.
  • doc/jroboplc/modules/peripherial/promauto_termo5.1784817704.txt.gz
  • Last modified: 2026/07/23 17:41
  • by denis