doc:jroboplc:modules:peripherial:promauto_termo5

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
doc:jroboplc:modules:peripherial:promauto_termo5 [2026/07/23 17:19] denisdoc:jroboplc:modules:peripherial:promauto_termo5 [2026/07/24 07:33] (current) – [Параметры] denis
Line 1: Line 1:
 ====== promauto.termo5 ====== ====== promauto.termo5 ======
-Mодуль опроса платы термометрии (ПромАвтоматика). К данной плате можно подключить 12 термоподвесок, имеющих по 6 датчиков температуры на каждой. 
  
-Используемый протокол - MODBUS+Модуль опроса платы термометрии производства «ПромАвтоматика».
  
-Температуры с десятыми градуса+К одной плате можно подключить до 12 термоподвесок. На каждой подвеске может быть установлено до 6 датчиков температуры. 
 + 
 +Для обмена данными используется протокол Modbus. 
 + 
 +Температура и сопротивление сохраняются в тегах с одним знаком после запятой: фактическое значение умножается на 10. 
 + 
 +===== Основные возможности ===== 
 + 
 +  * опрос 12 термоподвесок; 
 +  * обработка 6 датчиков температуры на каждой подвеске; 
 +  * получение измеренных значений напряжения; 
 +  * вычисление сопротивления каждого датчика; 
 +  * вычисление температуры каждого датчика; 
 +  * вычисление максимальной температуры каждой подвески; 
 +  * поддержка классических и компенсированных подвесок; 
 +  * настройка начального сопротивления и сопротивления линии отдельно для каждой подвески; 
 +  * режим принудительного опроса одной подвески; 
 +  * режим остановки обмена данными; 
 +  * автоматический возврат в штатный режим через заданное количество циклов. 
 + 
 +===== Конфигурация ===== 
 + 
 +Пример конфигурации модуля:
  
 <code yaml> <code yaml>
Line 12: Line 33:
     netaddr:  1     netaddr:  1
     type:     promauto.termo5     type:     promauto.termo5
 +    modeResetCntMax: 3600
     params:     params:
       p0:  p  53  0       p0:  p  53  0
Line 27: Line 49:
 </code> </code>
  
-===== Дополнительные параметры =====+===== Параметры =====
  
-|**params**  |параметры термоподвесок в формате ''pN type Rzero RWire''  | +^ Параметр ^ Умолчание ^ Описание 
-|:::| * **pN** - номер подвески, где N от 0 до 11  +''netaddr''''1'' Сетевой адрес платы. 
-|:::* **type** - тип подвески: ''c'' - классическая (буква ''c'' латинская), ''p'' компенссированная. По умолчанию - классическая  | +''modeResetCntMax'' | ''60'' | Максимальное значение счетчика ''ModeResetCnt''. Также используется для автоматической инициализации счетчика при переключении в режим ''Force'' или ''Silent''
-|:::| * **Rzero** - нулевое сопротивление, по умолчанию 53  +''params.p0'' ... ''params.p11'' ''c 53 0'' | Параметры соответствующей подвески. | 
-|:::* **Rwire** - сопротивление линии, по умолчанию 0  |+ 
 +Параметры подвески задаются в следующем формате:
  
-===== Теги ===== 
 <code> <code>
-Pdv0.R0            +pN: type Rzero Rwire 
-Pdv0.R1            +</code>
-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             +
-...аналогично для остальных подвесок+
  
 +где:
  
 +  * ''N'' — номер подвески от 0 до 11;
 +  * ''type'' — тип подвески;
 +  * ''Rzero'' — сопротивление датчика при температуре 0 °C;
 +  * ''Rwire'' — сопротивление соединительной линии.
 +
 +Поддерживаются следующие типы подвесок:
 +
 +^ Значение ^ Тип ^ Описание ^
 +| ''c'' | Classic | Классическая подвеска. При вычислении температуры учитываются сопротивление линии и индивидуальная поправка канала. |
 +| ''p'' | Compensate | Компенсированная подвеска. При вычислении температуры учитывается сопротивление линии без индивидуальной поправки канала. |
 +
 +Значения по умолчанию:
 +
 +^ Параметр ^ Значение ^
 +| Тип подвески | ''c'' |
 +| ''Rzero'' | ''53'' |
 +| ''Rwire'' | ''0'' |
 +
 +Например:
 +
 +<code yaml>
 +params:
 +  p0: c 53 0
 +  p1: p 53 1.5
 </code> </code>
  
 +В данном примере:
 +
 +  * ''Pdv0'' является классической подвеской;
 +  * ''Pdv1'' является компенсированной подвеской;
 +  * для ''Pdv1'' задано сопротивление линии 1,5 Ом.
 +
 +===== Теги =====
 +
 +Для каждой подвески создается отдельная группа тегов:
 +
 +<code>
 +PdvN
 +</code>
 +
 +где ''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. |
  
 +<WRAP center round important>
 +В актуальной реализации тег максимальной температуры называется ''PdvN.TMax'' — с заглавной буквой ''M''.
 +</WRAP>
  
 +==== Управляющие теги ====
  
-===== Управляющие теги =====+^ Имя тега ^ Тип ^ Доступ ^ Умолчание ^ Описание ^ 
 +| ''Mode'' | ''INT'' | RW | ''0'' | Режим работы модуля. | 
 +| ''ModeForcePdv'' | ''INT'' | RW | ''0'' | Номер подвески для принудительного опроса. | 
 +| ''ModeResetCnt'' | ''INT'' | RW | ''0'' | Счетчик автоматического возврата в штатный режим. |
  
-Модуль поддерживает несколько служебных тегов, позволяющих изменять режим работы во время выполнения.+===== Режимы работы =====
  
-===== Mode =====+==== Mode ====
  
-Определяет режим обмена с устройством.+Тег ''Mode'' определяет режим обмена с платой.
  
 ^ Значение ^ Режим ^ Описание ^ ^ Значение ^ Режим ^ Описание ^
-| 0 | Normal | Штатный режим работы. Выполняется опрос всех 12 подвесов. | +''0'' | Normal | Штатный опрос всех 12 подвесок. | 
-| 1 | Force | Выполняется опрос только одного подвеса, указанного в теге ''ModeForcePdv''. | +''1'' | Force | Опрос только одной подвески, указанной в теге ''ModeForcePdv''. | 
-| 2 | Silent | Модуль не выполняет обмен данными с устройством. |+''2'' | Silent | Обмен данными с платой не выполняется. | 
 + 
 +==== Normal ====
  
 В режиме ''Normal'' модуль: В режиме ''Normal'' модуль:
  
-* считывает время обработки всех подвесов (''Pdv*.Time'')+  * считывает значения времени всех подвесок
-* опрашивает все подвесы+  последовательно опрашивает все 12 подвесок
-* вычисляет сопротивления (''R'')+  * получает значения ''U0'' ... ''U5'', ''Umin'' и ''Umax''; 
-* вычисляет температуры (''T'').+  * вычисляет сопротивление каждого датчика
 +  * вычисляет температуру каждого датчика; 
 +  * определяет максимальную температуру каждой подвески.
  
-В режиме ''Force'' выполняется только один запрос к выбранному подвесу.+Для включения штатного режима необходимо записать:
  
-В режиме ''Silent'' модуль не выполняет никаких запросов к устройству и не обновляет данные подвесов. При этом обработка тега ''ModeResetCnt'' продолжается.+<code> 
 +Mode = 0 
 +</code>
  
-===== ModeForcePdv =====+==== Force ====
  
-Используется при ''Mode = 1''.+В режиме ''Force'' модуль опрашивает только одну выбранную подвеску.
  
-Содержит номер подвеса, который необходимо опрашивать.+Номер подвески задается тегом ''ModeForcePdv''.
  
 Допустимые значения: Допустимые значения:
Line 106: Line 183:
  
 <code> <code>
-Mode = 1 
 ModeForcePdv = 5 ModeForcePdv = 5
 +Mode = 1
 </code> </code>
  
-В этом случае модуль будет опрашивать только подвес ''Pdv5''.+После этого модуль будет опрашивать только подвеску ''Pdv5''.
  
-===== ModeResetCnt =====+Если при переключении в режим ''Force'' значение ''ModeResetCnt'' равно нулю, счетчик автоматически устанавливается равным ''modeResetCntMax''.
  
-Используется для автоматического возврата из режимов ''Force'' или ''Silent'' в штатный режим.+Режим может использоваться при диагностике, настройке или для увеличения частоты обновления данных выбранной подвески.
  
-После каждого цикла выполнения значение уменьшается на единицу.+Значение ''ModeForcePdv'' необходимо установить до переключения тега ''Mode'' в значение ''1''.
  
-Когда счётчик достигает нуля, модуль автоматически устанавливает:+==== Silent ====
  
-<code java+В режиме ''Silent'' модуль не отправляет запросы плате и не обновляет измерительные теги. 
-Mode = 0; + 
-ModeResetCnt = 0;+Для включения режима необходимо записать: 
 + 
 +<code> 
 +Mode = 2
 </code> </code>
  
-Таким образом можно временно включить принудительный опрос одного подвеса или полностью остановить обмен данными.+Если при переключении в режим ''Silent'' значение ''ModeResetCnt'' равно нулюсчетчик автоматически устанавливается равным ''modeResetCntMax''.
  
-Например, временный опрос только подвеса ''Pdv3'':+Режим может использоваться для временной остановки обмена данными без отключения модуля. 
 + 
 +Обработка тега ''ModeResetCnt'' в режиме ''Silent'' продолжается. 
 + 
 +==== ModeResetCnt ==== 
 + 
 +Тег ''ModeResetCnt'' позволяет автоматически вернуть модуль в режим ''Normal''
 + 
 +Максимальное допустимое значение счетчика определяется параметром конфигурации ''modeResetCntMax''
 + 
 +Например: 
 + 
 +<code yaml> 
 +modeResetCntMax: 3600 
 +</code> 
 + 
 +Если значение ''Mode'' изменяется с ''Normal'' на ''Force'' или ''Silent'', а значение ''ModeResetCnt'' равно нулю, модуль автоматически устанавливает:
  
 <code> <code>
-Mode = 1 +ModeResetCnt = modeResetCntMax
-ModeForcePdv = 3 +
-ModeResetCnt = 20+
 </code> </code>
  
-Модуль будет опрашивать только ''Pdv3'' в течение 20 циклов выполнения, после чего автоматически вернётся в режим ''Normal''.+Таким образом для включения режима на максимальное количество циклов необязательно предварительно записывать значение в ''ModeResetCnt''.
  
-Пример временного отключения обмена:+Если в тег ''ModeResetCnt'' записано значение, превышающее ''modeResetCntMax'', модуль ограничивает его значением ''modeResetCntMax''
 + 
 +Если значение тега больше нуля и не превышает ''modeResetCntMax'', после каждого цикла выполнения модуля оно уменьшается на единицу. 
 + 
 +Когда значение ''ModeResetCnt'' становится равным нулю, модуль автоматически устанавливает:
  
 <code> <code>
-Mode = +Mode = 0
-ModeResetCnt = 100+
 </code> </code>
  
-В течение 100 циклов модуль не будет выполнять обмен данными с устройством. После окончания отсчёта он автоматически вернётся в режим ''Normal''.+Если в тег ''ModeResetCnt'' записано отрицательное значение, модуль устанавливает:
  
-===== Пример использования =====+<code> 
 +Mode 
 +ModeResetCnt 
 +</code>
  
-Для ускоренного контроля подвеса №7:+Таким образом режимы ''Force'' и ''Silent'' можно включать на ограниченное количество циклов. 
 + 
 +<WRAP center round important> 
 +Чтобы включить режим ''Force'' или ''Silent'' на максимальное количество циклов, достаточно изменить тег ''Mode''. Если ''ModeResetCnt'' равен нулю, он будет автоматически установлен равным ''modeResetCntMax''
 +</WRAP> 
 + 
 +Пример автоматической установки счетчика для подвески ''Pdv3'':
  
 <code> <code>
 +ModeForcePdv = 3
 Mode = 1 Mode = 1
-ModeForcePdv = 7 
-ModeResetCnt = 100 
 </code> </code>
  
-В течение следующих 100 циклов будет опрашиваться только ''Pdv7''. После окончания отсчёта модуль автоматически вернётся в обычный режим работы.+При переключении в режим ''Force'' модуль автоматически устанавливает ''ModeResetCnt'' равным ''modeResetCntMax''.
  
-Для временной остановки обмена:+После окончания отсчета модуль возвращается в режим ''Normal''
 + 
 +Пример принудительной установки продолжительности режима: 
 + 
 +<code> 
 +ModeForcePdv = 3 
 +ModeResetCnt = 20 
 +Mode = 1 
 +</code> 
 + 
 +В этом случае подвеска ''Pdv3'' будет опрашиваться в течение заданного количества циклов, после чего модуль автоматически вернется в режим ''Normal''
 + 
 +Пример автоматической установки счетчика в режиме ''Silent'':
  
 <code> <code>
 Mode = 2 Mode = 2
 +</code>
 +
 +Если перед переключением значение ''ModeResetCnt'' было равно нулю, счетчик автоматически устанавливается равным ''modeResetCntMax''.
 +
 +После окончания отсчета будет восстановлен режим ''Normal''.
 +
 +Пример принудительной установки продолжительности режима ''Silent'':
 +
 +<code>
 ModeResetCnt = 50 ModeResetCnt = 50
 +Mode = 2
 </code> </code>
  
-В течение 50 циклов модуль будет находиться в режиме ''Silent'' и не будет отправлять запросы устройству.+В течение заданного количества циклов модуль не будет выполнять обмен данными с платой. После окончания отсчета будет восстановлен режим ''Normal''.
  
 +Если в ''ModeResetCnt'' записать значение больше ''modeResetCntMax'', продолжительность работы выбранного режима будет ограничена значением ''modeResetCntMax''.
  
 +===== Карта каналов =====
  
 +В карту каналов [[doc:jroboplc:modules:peripherial#адресация_каналов_channelmap|CHANNELMAP]] модуля добавляются теги температуры.
  
 +Формат номера канала:
  
 +<code>
 +N.M
 +</code>
  
 +где:
  
-===== OLD Управляющие теги =====+  * ''N'' — номер подвески от 0 до 11; 
 +  * ''M'' — номер датчика от 0 до 5.
  
-Модуль поддерживает несколько служебных тегов, позволяющих изменять режим работы во время выполнения.+Примеры:
  
-===== Mode =====+^ Канал ^ Тег ^ 
 +| ''0.0'' | ''Pdv0.T0''
 +| ''0.5'' | ''Pdv0.T5''
 +| ''3.2'' | ''Pdv3.T2''
 +| ''11.5'' | ''Pdv11.T5'' |
  
-Определяет режим обмена с устройством. 
  
-^ Значение ^ Режим ^ Описание ^ 
-| 0 | Normal | Штатный режим работы. Выполняется опрос всех 12 подвесов. | 
-| 1 | Force | Выполняется опрос только одного подвеса, указанного в теге ''ModeForcePdv''. | 
-| 2 | Silent | Зарезервировано. В текущей реализации не используется. | 
  
-В режиме ''Normal'' модуль:+===== Принцип работы =====
  
-  * считывает время обработки всех подвесов (''Pdv*.Time''); +==== Опрос в штатном режиме ====
-  * опрашивает все подвесы; +
-  * вычисляет сопротивления (''R''); +
-  * вычисляет температуры (''T'').+
  
-В режиме ''Force'' выполняется только один запрос к выбранному подвесу.+В режиме ''Normal'' сначала одним запросом считываются значения времени всех 12 подвесок.
  
-===== ModeForcePdv =====+Затем выполняется чтение основных данных подвесок. За один запрос считываются данные двух подвесок. Для опроса всех 12 подвесок выполняется шесть запросов.
  
-Используется только при ''Mode = 1''.+Для каждой подвески плата передает:
  
-Содержит номер подвеса, который необходимо опрашивать.+  * шесть измеренных значений напряжения; 
 +  * нижнее опорное значение ''Umin''; 
 +  * верхнее опорное значение ''Umax''.
  
-Допустимые значения:+После получения ответа модуль вычисляет сопротивления и температуры всех датчиков.
  
-<code> +==== Вычисление сопротивления ====
-0...11 +
-</code>+
  
-Например:+Сопротивление датчика вычисляется по измеренному напряжению и опорным значениям ''Umin'' и ''Umax''
 + 
 +Полученное сопротивление записывается в тег ''PdvN.RM'' после умножения на 10. 
 + 
 +==== Вычисление температуры ==== 
 + 
 +Температура рассчитывается по сопротивлению датчика, значению ''Rzero'' и температурному коэффициенту:
  
 <code> <code>
-Mode = 1 +((R / Rzero) - 1) / 0.0043
-ModeForcePdv = 5+
 </code> </code>
  
-В этом случае модуль будет опрашивать только подвес ''Pdv5''.+Перед вычислением температуры из общего сопротивления вычитается сопротивление линии ''Rwire''.
  
-===== ModeResetCnt =====+Для классической подвески дополнительно учитывается индивидуальная поправка сопротивления соответствующего канала.
  
-Используется для автоматического возврата из режима ''Force'' в штатный режим.+Результат умножается на 10 и записывается в тег ''PdvN.TM''.
  
-После каждого цикла выполнения значение уменьшается на единицу.+После расчета всех шести температур наибольшее значение записывается в тег ''PdvN.TMax''.
  
-Когда счетчик достигает нуля, модуль автоматически выполняет:+===== Примеры использования =====
  
-<code java+==== Штатная работа ==== 
-Mode = 0; + 
-ModeResetCnt = 0;+<code> 
 +Mode = 0 
 +ModeResetCnt = 0
 </code> </code>
  
-Таким образом можно временно включить режим принудительного опроса.+Модуль постоянно опрашивает все подвески.
  
-Например:+==== Диагностика одной подвески с автоматическим счетчиком ====
  
 <code> <code>
 +ModeForcePdv = 7
 Mode = 1 Mode = 1
-ModeForcePdv = 3 
-ModeResetCnt = 20 
 </code> </code>
  
-Модуль будет выполнять опрос только ''Pdv3'' в течение 20 циклов выполненияпосле чего автоматически вернется в режим ''Normal''.+Если значение ''ModeResetCnt'' равно нулюмодуль автоматически устанавливает его равным ''modeResetCntMax''.
  
-===== Пример использования =====+До окончания отсчета модуль опрашивает только подвеску ''Pdv7'', после чего автоматически возвращается к опросу всех подвесок.
  
-Для ускоренного контроля подвеса №7:+==== Диагностика одной подвески с заданным счетчиком ====
  
 <code> <code>
-Mode = 1 
 ModeForcePdv = 7 ModeForcePdv = 7
-ModeResetCnt = 100+ModeResetCnt = 50 
 +Mode = 1 
 +</code> 
 + 
 +В течение заданного количества циклов модуль опрашивает только подвеску ''Pdv7'', после чего автоматически возвращается к опросу всех подвесок. 
 + 
 +Значение ''ModeResetCnt'' не должно превышать параметр ''modeResetCntMax''. Если оно превышает допустимый максимум, модуль ограничивает его значением ''modeResetCntMax''
 + 
 +==== Временная остановка обмена с автоматическим счетчиком ==== 
 + 
 +<code> 
 +Mode = 2 
 +</code> 
 + 
 +Если значение ''ModeResetCnt'' равно нулю, модуль автоматически устанавливает его равным ''modeResetCntMax''
 + 
 +До окончания отсчета модуль не выполняет обмен данными, после чего автоматически возвращается в штатный режим. 
 + 
 +==== Временная остановка обмена с заданным счетчиком ==== 
 + 
 +<code> 
 +ModeResetCnt = 50 
 +Mode = 2
 </code> </code>
  
-В течение следующих 100 циклов будет опрашиваться только ''Pdv7''. После окончания отсчета модуль автоматически вернется в обычный режим работы.+В течение заданного количества циклов модуль не выполняет обмен данными, после чего автоматически возвращается в штатный режим
 +===== Ограничения =====
  
 +  * количество подвесок фиксировано и равно 12;
 +  * количество датчиков на одной подвеске фиксировано и равно 6;
 +  * номер подвески в теге ''ModeForcePdv'' должен находиться в диапазоне от 0 до 11;
 +  * изменение количества подвесок или датчиков через конфигурацию не поддерживается;
 +  * в режиме ''Silent'' измерительные теги сохраняют последние полученные значения;
 +  * новые значения температуры появляются только после успешного обмена с платой.
  
  • doc/jroboplc/modules/peripherial/promauto_termo5.1784816386.txt.gz
  • Last modified: 2026/07/23 17:19
  • by denis