doc:jroboplc:modules:peripherial:promauto_termo5

Differences

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

Link to this comparison view

Next revision
Previous revision
doc:jroboplc:modules:peripherial:promauto_termo5 [2019/12/19 11:32] – created - external edit 127.0.0.1doc: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> 
 +pNtype Rzero Rwire 
 +</code> 
 + 
 +где: 
 + 
 +  ''N'' — номер подвески от 0 до 11
 +  ''type'' — тип подвески
 +  * ''Rzero'' — сопротивление датчика при температуре 0 °C; 
 +  * ''Rwire'' — сопротивление соединительной линии. 
 + 
 +Поддерживаются следующие типы подвесок: 
 + 
 +^ Значение ^ Тип ^ Описание ^ 
 +''c'' | Classic | Классическая подвеска. При вычислении температуры учитываются сопротивление линии и индивидуальная поправка канала. | 
 +''p'' | Compensate | Компенсированная подвеска. При вычислении температуры учитывается сопротивление линии без индивидуальной поправки канала. | 
 + 
 +Значения по умолчанию
 + 
 +^ Параметр ^ Значение ^ 
 +| Тип подвески | ''c''
 +| ''Rzero'' | ''53'' 
 +''Rwire'' | ''0''
 + 
 +Например: 
 + 
 +<code yaml> 
 +params: 
 +  p0c 53 0 
 +  p1: p 53 1.5 
 +</code> 
 + 
 +В данном примере: 
 + 
 +  ''Pdv0'' является классической подвеской; 
 +  ''Pdv1'' является компенсированной подвеской; 
 +  для ''Pdv1'' задано сопротивление линии 1,5 Ом.
  
 ===== Теги ===== ===== Теги =====
 +
 +Для каждой подвески создается отдельная группа тегов:
 +
 <code> <code>
-Pdv0.R0            +PdvN 
-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.
  
 +Номер датчика обозначается буквой ''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'' определяет режим обмена с платой.
 +
 +^ Значение ^ Режим ^ Описание ^
 +| ''0'' | Normal | Штатный опрос всех 12 подвесок. |
 +| ''1'' | Force | Опрос только одной подвески, указанной в теге ''ModeForcePdv''. |
 +| ''2'' | Silent | Обмен данными с платой не выполняется. |
 +
 +==== Normal ====
 +
 +В режиме ''Normal'' модуль:
 +
 +  * считывает значения времени всех подвесок;
 +  * последовательно опрашивает все 12 подвесок;
 +  * получает значения ''U0'' ... ''U5'', ''Umin'' и ''Umax'';
 +  * вычисляет сопротивление каждого датчика;
 +  * вычисляет температуру каждого датчика;
 +  * определяет максимальную температуру каждой подвески.
 +
 +Для включения штатного режима необходимо записать:
 +
 +<code>
 +Mode = 0
 +</code>
 +
 +==== Force ====
 +
 +В режиме ''Force'' модуль опрашивает только одну выбранную подвеску.
 +
 +Номер подвески задается тегом ''ModeForcePdv''.
 +
 +Допустимые значения:
 +
 +<code>
 +0...11
 +</code>
 +
 +Например:
 +
 +<code>
 +ModeForcePdv = 5
 +Mode = 1
 +</code>
 +
 +После этого модуль будет опрашивать только подвеску ''Pdv5''.
 +
 +Если при переключении в режим ''Force'' значение ''ModeResetCnt'' равно нулю, счетчик автоматически устанавливается равным ''modeResetCntMax''.
 +
 +Режим может использоваться при диагностике, настройке или для увеличения частоты обновления данных выбранной подвески.
 +
 +Значение ''ModeForcePdv'' необходимо установить до переключения тега ''Mode'' в значение ''1''.
 +
 +==== Silent ====
 +
 +В режиме ''Silent'' модуль не отправляет запросы плате и не обновляет измерительные теги.
 +
 +Для включения режима необходимо записать:
 +
 +<code>
 +Mode = 2
 +</code>
 +
 +Если при переключении в режим ''Silent'' значение ''ModeResetCnt'' равно нулю, счетчик автоматически устанавливается равным ''modeResetCntMax''.
 +
 +Режим может использоваться для временной остановки обмена данными без отключения модуля.
 +
 +Обработка тега ''ModeResetCnt'' в режиме ''Silent'' продолжается.
 +
 +==== ModeResetCnt ====
 +
 +Тег ''ModeResetCnt'' позволяет автоматически вернуть модуль в режим ''Normal''.
 +
 +Максимальное допустимое значение счетчика определяется параметром конфигурации ''modeResetCntMax''.
 +
 +Например:
 +
 +<code yaml>
 +modeResetCntMax: 3600
 +</code>
 +
 +Если значение ''Mode'' изменяется с ''Normal'' на ''Force'' или ''Silent'', а значение ''ModeResetCnt'' равно нулю, модуль автоматически устанавливает:
 +
 +<code>
 +ModeResetCnt = modeResetCntMax
 +</code>
 +
 +Таким образом для включения режима на максимальное количество циклов необязательно предварительно записывать значение в ''ModeResetCnt''.
 +
 +Если в тег ''ModeResetCnt'' записано значение, превышающее ''modeResetCntMax'', модуль ограничивает его значением ''modeResetCntMax''.
 +
 +Если значение тега больше нуля и не превышает ''modeResetCntMax'', после каждого цикла выполнения модуля оно уменьшается на единицу.
 +
 +Когда значение ''ModeResetCnt'' становится равным нулю, модуль автоматически устанавливает:
 +
 +<code>
 +Mode = 0
 +</code>
 +
 +Если в тег ''ModeResetCnt'' записано отрицательное значение, модуль устанавливает:
 +
 +<code>
 +Mode = 0
 +ModeResetCnt = 0
 +</code>
 +
 +Таким образом режимы ''Force'' и ''Silent'' можно включать на ограниченное количество циклов.
 +
 +<WRAP center round important>
 +Чтобы включить режим ''Force'' или ''Silent'' на максимальное количество циклов, достаточно изменить тег ''Mode''. Если ''ModeResetCnt'' равен нулю, он будет автоматически установлен равным ''modeResetCntMax''.
 +</WRAP>
 +
 +Пример автоматической установки счетчика для подвески ''Pdv3'':
 +
 +<code>
 +ModeForcePdv = 3
 +Mode = 1
 +</code>
 +
 +При переключении в режим ''Force'' модуль автоматически устанавливает ''ModeResetCnt'' равным ''modeResetCntMax''.
 +
 +После окончания отсчета модуль возвращается в режим ''Normal''.
 +
 +Пример принудительной установки продолжительности режима:
 +
 +<code>
 +ModeForcePdv = 3
 +ModeResetCnt = 20
 +Mode = 1
 +</code>
 +
 +В этом случае подвеска ''Pdv3'' будет опрашиваться в течение заданного количества циклов, после чего модуль автоматически вернется в режим ''Normal''.
 +
 +Пример автоматической установки счетчика в режиме ''Silent'':
 +
 +<code>
 +Mode = 2
 +</code>
 +
 +Если перед переключением значение ''ModeResetCnt'' было равно нулю, счетчик автоматически устанавливается равным ''modeResetCntMax''.
 +
 +После окончания отсчета будет восстановлен режим ''Normal''.
 +
 +Пример принудительной установки продолжительности режима ''Silent'':
 +
 +<code>
 +ModeResetCnt = 50
 +Mode = 2
 +</code>
 +
 +В течение заданного количества циклов модуль не будет выполнять обмен данными с платой. После окончания отсчета будет восстановлен режим ''Normal''.
 +
 +Если в ''ModeResetCnt'' записать значение больше ''modeResetCntMax'', продолжительность работы выбранного режима будет ограничена значением ''modeResetCntMax''.
 +
 +===== Карта каналов =====
 +
 +В карту каналов [[doc:jroboplc:modules:peripherial#адресация_каналов_channelmap|CHANNELMAP]] модуля добавляются теги температуры.
 +
 +Формат номера канала:
 +
 +<code>
 +N.M
 +</code>
 +
 +где:
 +
 +  * ''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'' и температурному коэффициенту:
 +
 +<code>
 +T = ((R / Rzero) - 1) / 0.0043
 +</code>
 +
 +Перед вычислением температуры из общего сопротивления вычитается сопротивление линии ''Rwire''.
 +
 +Для классической подвески дополнительно учитывается индивидуальная поправка сопротивления соответствующего канала.
 +
 +Результат умножается на 10 и записывается в тег ''PdvN.TM''.
 +
 +После расчета всех шести температур наибольшее значение записывается в тег ''PdvN.TMax''.
 +
 +===== Примеры использования =====
 +
 +==== Штатная работа ====
 +
 +<code>
 +Mode = 0
 +ModeResetCnt = 0
 +</code>
 +
 +Модуль постоянно опрашивает все подвески.
 +
 +==== Диагностика одной подвески с автоматическим счетчиком ====
 +
 +<code>
 +ModeForcePdv = 7
 +Mode = 1
 +</code>
 +
 +Если значение ''ModeResetCnt'' равно нулю, модуль автоматически устанавливает его равным ''modeResetCntMax''.
 +
 +До окончания отсчета модуль опрашивает только подвеску ''Pdv7'', после чего автоматически возвращается к опросу всех подвесок.
 +
 +==== Диагностика одной подвески с заданным счетчиком ====
 +
 +<code>
 +ModeForcePdv = 7
 +ModeResetCnt = 50
 +Mode = 1
 +</code>
 +
 +В течение заданного количества циклов модуль опрашивает только подвеску ''Pdv7'', после чего автоматически возвращается к опросу всех подвесок.
 +
 +Значение ''ModeResetCnt'' не должно превышать параметр ''modeResetCntMax''. Если оно превышает допустимый максимум, модуль ограничивает его значением ''modeResetCntMax''.
 +
 +==== Временная остановка обмена с автоматическим счетчиком ====
 +
 +<code>
 +Mode = 2
 +</code>
 +
 +Если значение ''ModeResetCnt'' равно нулю, модуль автоматически устанавливает его равным ''modeResetCntMax''.
 +
 +До окончания отсчета модуль не выполняет обмен данными, после чего автоматически возвращается в штатный режим.
 +
 +==== Временная остановка обмена с заданным счетчиком ====
 +
 +<code>
 +ModeResetCnt = 50
 +Mode = 2
 </code> </code>
  
 +В течение заданного количества циклов модуль не выполняет обмен данными, после чего автоматически возвращается в штатный режим.
 +===== Ограничения =====
  
 +  * количество подвесок фиксировано и равно 12;
 +  * количество датчиков на одной подвеске фиксировано и равно 6;
 +  * номер подвески в теге ''ModeForcePdv'' должен находиться в диапазоне от 0 до 11;
 +  * изменение количества подвесок или датчиков через конфигурацию не поддерживается;
 +  * в режиме ''Silent'' измерительные теги сохраняют последние полученные значения;
 +  * новые значения температуры появляются только после успешного обмена с платой.
  
  • doc/jroboplc/modules/peripherial/promauto_termo5.1576744376.txt.gz
  • Last modified: 2019/12/19 11:32
  • by 127.0.0.1