Модуль опроса платы термометрии производства «ПромАвтоматика».
К одной плате можно подключить до 12 термоподвесок. На каждой подвеске может быть установлено до 6 датчиков температуры.
Для обмена данными используется протокол Modbus.
Температура и сопротивление сохраняются в тегах с одним знаком после запятой: фактическое значение умножается на 10.
Пример конфигурации модуля:
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 определяет режим обмена с платой.
| Значение | Режим | Описание |
|---|---|---|
0 | Normal | Штатный опрос всех 12 подвесок. |
1 | Force | Опрос только одной подвески, указанной в теге ModeForcePdv. |
2 | Silent | Обмен данными с платой не выполняется. |
В режиме Normal модуль:
U0 … U5, Umin и Umax;Для включения штатного режима необходимо записать:
Mode = 0
В режиме Force модуль опрашивает только одну выбранную подвеску.
Номер подвески задается тегом ModeForcePdv.
Допустимые значения:
0...11
Например:
ModeForcePdv = 5 Mode = 1
После этого модуль будет опрашивать только подвеску Pdv5.
Если при переключении в режим Force значение ModeResetCnt равно нулю, счетчик автоматически устанавливается равным modeResetCntMax.
Режим может использоваться при диагностике, настройке или для увеличения частоты обновления данных выбранной подвески.
Значение ModeForcePdv необходимо установить до переключения тега Mode в значение 1.
В режиме Silent модуль не отправляет запросы плате и не обновляет измерительные теги.
Для включения режима необходимо записать:
Mode = 2
Если при переключении в режим Silent значение ModeResetCnt равно нулю, счетчик автоматически устанавливается равным modeResetCntMax.
Режим может использоваться для временной остановки обмена данными без отключения модуля.
Обработка тега ModeResetCnt в режиме Silent продолжается.
Тег 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
В течение заданного количества циклов модуль не выполняет обмен данными, после чего автоматически возвращается в штатный режим.
ModeForcePdv должен находиться в диапазоне от 0 до 11;Silent измерительные теги сохраняют последние полученные значения;