doc:jroboplc:modules:arctrm

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:arctrm [2026/08/01 10:51] denisdoc:jroboplc:modules:arctrm [2026/08/01 11:25] (current) – [События] denis
Line 5: Line 5:
 Модуль сохраняет: Модуль сохраняет:
  
-  * температурные срезы по каждой подвеске;+  * температурные срезы по подвескам с актуальными данными;
   * сведения о подвесках;   * сведения о подвесках;
-  * события запуска архива и изменения состояния связи с устройствами.+  * события запуска архиваизменения состояния связи с устройствами и потери актуальности данных подвесок.
  
 Сам модуль не выполняет обмен с оборудованием. Данные и состояние связи он получает из тегов других модулей. Сам модуль не выполняет обмен с оборудованием. Данные и состояние связи он получает из тегов других модулей.
Line 44: Line 44:
 | ''sensorCount'' | ''6'' | Количество датчиков в каждой подвеске. | | ''sensorCount'' | ''6'' | Количество датчиков в каждой подвеске. |
 | ''promauto.termo5'' | — | Список модулей-источников и настроенных подвесок. | | ''promauto.termo5'' | — | Список модулей-источников и настроенных подвесок. |
-| ''podvesUpdateTimeLimit'' | ''600'' | Максимально допустимое значение тега ''PdvN.Time''. Если значение превышает лимит, температура не архивируется и записывается событие о прекращении обновления подвески. | 
  
 Значения ''size'', ''period'' и ''sensorCount'' должны быть больше нуля. Значения ''size'', ''period'' и ''sensorCount'' должны быть больше нуля.
Line 52: Line 51:
 Ключ первого уровня в секции ''promauto.termo5'' является именем модуля-источника тегов. Ключ подвески состоит из произвольного первого символа и числового номера. Например, из ключа ''p5'' модуль получает номер подвеса ''5''. Ключ первого уровня в секции ''promauto.termo5'' является именем модуля-источника тегов. Ключ подвески состоит из произвольного первого символа и числового номера. Например, из ключа ''p5'' модуль получает номер подвеса ''5''.
  
-Для каждой подвески создаются ссылки на теги температуры и времени:+Для каждой подвески создаются ссылки на теги:
  
 <code text> <code text>
-<deviceName>:Pdv<podvesNum>.Time 
 <deviceName>:Pdv<podvesNum>.T0 <deviceName>:Pdv<podvesNum>.T0
 <deviceName>:Pdv<podvesNum>.T1 <deviceName>:Pdv<podvesNum>.T1
Line 61: Line 59:
 <deviceName>:Pdv<podvesNum>.T<sensorCount-1> <deviceName>:Pdv<podvesNum>.T<sensorCount-1>
 </code> </code>
 +
 +Актуальность данных подвески определяется по тегу:
 +
 +<code text>
 +<deviceName>:Pdv<podvesNum>.Time
 +</code>
 +
 +Данные считаются актуальными, если ссылка на тег существует, а его значение находится в диапазоне от ''0'' до ''600'' включительно.
  
 Состояние связи с устройством определяется по тегу: Состояние связи с устройством определяется по тегу:
Line 78: Line 84:
   - записывает событие запуска архива.   - записывает событие запуска архива.
  
-На каждом рабочем цикле модуль считывает текущие значения датчиков. Время берётся с сервера базы данных и округляется вниз до границы периода ''period''+На каждом рабочем цикле модуль сначала проверяет ''Pdv<podvesNum>.Time'' каждой подвески. Значения датчиков считываются только для подвесок с актуальными данными. Время архивного среза берётся с сервера базы данных и округляется вниз до границы периода ''period''.
- +
-Если наступил новый период, модуль проверяет значение тега ''PdvN.Time'' каждой подвески. Если оно не превышает ''podvesUpdateTimeLimit'', в ''TEMPER'' записывается одна строка для подвески. Если значение превышает лимит, архивная запись не создаётся+
- +
-При первом переходе подвески в состояние превышения лимита в журнал событий записывается соответствующее событие.+
  
-При превышении лимита ''size'' удаляются строки с наименьшими значениями ''ID''.+Если наступил новый период, в ''TEMPER'' записывается по одной строке для каждой подвески с актуальными данными. Для подвески с отсутствующим тегом ''Time'' или значением вне диапазона ''0...600'' строка не создаётся. При превышении лимита ''size'' удаляются строки с наименьшими значениями ''ID''.
  
 ===== База данных ===== ===== База данных =====
Line 91: Line 93:
 | ''PODVES'' | Справочник подвесок: имя и описание. | | ''PODVES'' | Справочник подвесок: имя и описание. |
 | ''TEMPER'' | Архив температурных срезов. Содержит ''PODVES_ID'', ''DT'' и динамические колонки ''T0...Tn''. | | ''TEMPER'' | Архив температурных срезов. Содержит ''PODVES_ID'', ''DT'' и динамические колонки ''T0...Tn''. |
-| ''EVENTLOG'' | Журнал запуска архива и изменения состояния связи с устройствами. |+| ''EVENTLOG'' | Журнал запуска архиваизменения состояния связи с устройствами и потери актуальности данных подвесок. |
  
 Основные связи: Основные связи:
Line 115: Line 117:
  
 ^ Код ^ Событие ^ ^ Код ^ Событие ^
-| ''0''Инициализация архива. | +| ''0''Ссылка на ''SYSTEM.ErrorFlag'' не найдена. | 
-''1'' | Связь с устройством установлена. | +| ''1'' | Связь с устройством потеряна: ''SYSTEM.ErrorFlag = true''. | 
-| ''2'' | Связь с устройством потеряна: ''SYSTEM.ErrorFlag = true''. | +| ''3''Данные подвески неактуальны: ссылка на ''Pdv<podvesNum>.Time'' не найдена или значение находится вне диапазона ''0...600''. | 
-| ''3''Ссылка на ''SYSTEM.ErrorFlag'' не найдена. | +| ''99''Связь с устройством установлена. | 
-| ''4''Превышено допустимое время обновления подвески (''PdvN.Time''). |+''100'' | Инициализация архивации. |
  
-События состояния устройства записываются только при изменении состояния.+Для событий состояния устройства в поле ''MESSAGE'' записывается имя устройства, для события неактуальных данных — имя подвески в формате ''<deviceName>.<podvesNum>'', для события инициализации — пустая строка.
  
-Событие превышения времени обновления подвески записывается один раз при переходе из нормального состояния в состояние превышения лимита.+Событие состояния устройства записывается только при изменении его состояния. Событие неактуальных данных формируется при первой потере актуальностизаписывается при наступлении следующего архивного периода и не повторяется до восстановления актуальности и её следующей потери.
  
 ===== Теги модуля ===== ===== Теги модуля =====
  • doc/jroboplc/modules/arctrm.1785570683.txt.gz
  • Last modified: 2026/08/01 10:51
  • by denis