Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
doc:jroboplc:modules:arcsvr [2020/06/18 08:17] denis [Общие параметры] |
doc:jroboplc:modules:arcsvr [2021/11/05 13:36] (текущий) denis [Алгоритм архивации сообщений версии 2] |
||
|---|---|---|---|
| Строка 37: | Строка 37: | ||
| |**schema**| '''' |Имя схемы (для firebird это префикс имен метаданных). | | |**schema**| '''' |Имя схемы (для firebird это префикс имен метаданных). | | ||
| |**place**| ''имя модуля'' |Название места сообщения по умолчанию. Может быть перекрыто в сообщениях при необходимости. | | |**place**| ''имя модуля'' |Название места сообщения по умолчанию. Может быть перекрыто в сообщениях при необходимости. | | ||
| - | |**<del>tagsources</del>**| '''' |<html><span style="color:red">Данный параметр более не актуален! </span></html>Список модулей, предоставляющих теги устройств. Требуется в случае, если архивируемые теги не находятся непосредственно в системе, а импортируются посредством другого модуля, например, [[doc:jroboplc:modules:rpclient]] | | + | |**<del>tagsources</del>**| '''' |//Deprecated! Определения модулей источников тегов полностью автоматизировано.// \\ <del>Список модулей, предоставляющих теги устройств. Требуется в случае, если архивируемые теги не находятся непосредственно в системе, а импортируются посредством другого модуля, например, [[doc:jroboplc:modules:rpclient]]</del> | |
| ===== Теги модуля ===== | ===== Теги модуля ===== | ||
| Строка 111: | Строка 111: | ||
| - SCR.Device1_Temperature | - SCR.Device1_Temperature | ||
| - | tagsources: | ||
| - | - rpcl_zlak | ||
| - | - rpcl_resurs | ||
| | | ||
| </code> | </code> | ||
| Строка 121: | Строка 118: | ||
| ===== Параметры архивации тегов ===== | ===== Параметры архивации тегов ===== | ||
| ^ Параметр ^ Умолчание ^ Описание ^ | ^ Параметр ^ Умолчание ^ Описание ^ | ||
| - | |**arcval.robo**| '''' |Список atg-файлов из roboplant-проекта. В нескольких файлах может использоваться одно и то же имя архивной таблицы (например, ARC_2SEC и ARC_4SEC), при этом значения размера и периода архивирования будут взяты из последнего. Формат atg-файла [[doc:jroboplc:modules:arcsvr_atg|здесь]]. | | + | |**arcval.robo**| '''' |Список atg-файлов из roboplant-проекта. В нескольких файлах может использоваться одно и то же имя архивной таблицы (например, ARC_2SEC и ARC_4SEC), при этом значения размера и периода архивирования будут взяты из последнего. Привязка выполнения записи ко времени, кратному period_ms, выполняется при указании period_ms>=60000. Формат atg-файла [[doc:jroboplc:modules:arcsvr_atg|здесь]]. | |
| |**arcval.regex**| '''' |Набор описаний архивных таблиц с использованием regex-выражений. Внутри данного параметра содержатся имена архивных таблиц. Внутри имени архивной таблицы, содержится описание архива. Имя таблицы не должно использоваться другими архивами. | | |**arcval.regex**| '''' |Набор описаний архивных таблиц с использованием regex-выражений. Внутри данного параметра содержатся имена архивных таблиц. Внутри имени архивной таблицы, содержится описание архива. Имя таблицы не должно использоваться другими архивами. | | ||
| - | ^ **Описание архивной таблицы** ^^^ | + | ^ **Описание архивной таблицы для arcval.regex** ^^^ |
| |**mode**| ''period'' |Режим архивирования: ''period'' и ''change'' | | |**mode**| ''period'' |Режим архивирования: ''period'' и ''change'' | | ||
| - | |**type**| ''int16'' |Тип поля данных:<html><br>int16 - SMALLINT<br>int32 - INTEGER<br>float - FLOAT<br>double - DOUBLE PRECISION</html> | | + | |**type**| ''int16'' |Тип поля данных:<html><br> |
| + | int16 - SMALLINT<br> | ||
| + | int32 - INTEGER<br> | ||
| + | int64 - BIGINT<br> | ||
| + | float - FLOAT<br> | ||
| + | double - DOUBLE PRECISION | ||
| + | </html> | | ||
| |**size**| ''604800'' |Количество записей в архивной таблице | | |**size**| ''604800'' |Количество записей в архивной таблице | | ||
| |**period_ms**| ''1000'' |Период архивирования, мс. См.[[doc:jroboplc:modules:arcsvr#периодичность_архивирования|"Периодичность архивирования"]] | | |**period_ms**| ''1000'' |Период архивирования, мс. См.[[doc:jroboplc:modules:arcsvr#периодичность_архивирования|"Периодичность архивирования"]] | | ||
| - | |**force_s**| ''0'' |Период обязательной записи. Только для режима ''change''. | | + | |**force_s**| ''60'' |Период обязательной записи. Только для режима ''change''. | |
| - | |**period_align**| ''off'' |Привязка выполнения записи к кратному period_ms или force_s для архивов режима ''period'' или ''change'' соответственно | | + | |**period_align**| ''off'' |Привязка выполнения записи ко времени, кратному period_ms или force_s для архивов режима ''period'' или ''change'' соответственно | |
| |**tags**| '''' |Список регулярных выражения, задающих правила отбора тегов. Соответствие определяется в заданной списком последовательности. Символ ''~'' обозначает исключающее правило. | | |**tags**| '''' |Список регулярных выражения, задающих правила отбора тегов. Соответствие определяется в заданной списком последовательности. Символ ''~'' обозначает исключающее правило. | | ||
| Строка 171: | Строка 174: | ||
| place: Крупоцех | place: Крупоцех | ||
| - | tagsources: | ||
| - | - rpcl_zlak | ||
| - | - rpcl_resurs | ||
| - | | ||
| arcmes.robo: | arcmes.robo: | ||
| - projects/NRMEL.ams; Элеватор | - projects/NRMEL.ams; Элеватор | ||
| Строка 234: | Строка 233: | ||
| ===== Параметры архивации сообщений ===== | ===== Параметры архивации сообщений ===== | ||
| ^ Параметр ^ Умолчание ^ Описание ^ | ^ Параметр ^ Умолчание ^ Описание ^ | ||
| + | |**version**| ''1'' |Версия алгоритма архивации сообщений: 1 - старый вариант, 2 - новый (см. ) | | ||
| |**arcmes.robo**| '''' |Список ams-файлов из roboplant-проекта. Имя файла указывается через точку с запятой с местом:<code>- путь_и_имя_ams-файла[;место]</code> В нескольких файлах может использоваться сообщения с одинаковыми MesId, при этом остальные параметры сообщения будут взяты из последнего файла. Формат ams-файла [[doc:jroboplc:modules:arcsvr_ams|здесь]]. | | |**arcmes.robo**| '''' |Список ams-файлов из roboplant-проекта. Имя файла указывается через точку с запятой с местом:<code>- путь_и_имя_ams-файла[;место]</code> В нескольких файлах может использоваться сообщения с одинаковыми MesId, при этом остальные параметры сообщения будут взяты из последнего файла. Формат ams-файла [[doc:jroboplc:modules:arcsvr_ams|здесь]]. | | ||
| |**arcmes.plain**| '''' |Список описаний простых сообщений (plain). | | |**arcmes.plain**| '''' |Список описаний простых сообщений (plain). | | ||
| Строка 396: | Строка 396: | ||
| arcmes:sweepmes 2016 | arcmes:sweepmes 2016 | ||
| Данная команда, посылаемая модулю с именем ''arcmes'', удаляет все записи старше 2016 года включительно. | Данная команда, посылаемая модулю с именем ''arcmes'', удаляет все записи старше 2016 года включительно. | ||
| + | |||
| + | ===== Алгоритм архивации сообщений V2 ===== | ||
| + | Для работы по данному алгоритму необходимо пересоздать базу сообщений. | ||
| + | |||
| + | В таблице ''MESSAGES'' добавлены поля ''DTEND'' и ''DTACK'': | ||
| + | <code sql> | ||
| + | CREATE TABLE MESSAGES ( | ||
| + | IDM INTEGER NOT NULL, | ||
| + | DT TIMESTAMP, | ||
| + | DTEND TIMESTAMP, | ||
| + | DTACK TIMESTAMP, | ||
| + | IDMSG INTEGER, | ||
| + | IDTAG INTEGER, | ||
| + | IDUSER INTEGER, | ||
| + | IDPLACE INTEGER, | ||
| + | DATA VARCHAR(128), | ||
| + | ACT CHAR(1), | ||
| + | CLB INTEGER, | ||
| + | CLF INTEGER | ||
| + | ) | ||
| + | </code> | ||
| + | |||
| + | При работе в режиме ''version: 1'' поля ''DTEND'' и ''DTACK'' не используются. | ||
| + | |||
| + | При работе в режиме ''version: 2'' поля дат имеют следующее назначение: | ||
| + | * ''DT'' - дата наступления события | ||
| + | * ''DTEND'' - дата ухода события (перестает быть актуальным). Если ''null'', то сообщение считается актуальным. | ||
| + | * ''DTACK'' - дата подтверждения. Если ''null'', то сообщение считается не подтвержденным. | ||
| + | | ||
| + | При наступлении события в ''MESSAGES'' создается запись (сообщение), где ''DT'' содержит текущую дату, а ''DTEND'' и ''DTACK'' содержат null. | ||
| + | |||
| + | При уходе события в ''MESSAGES'' находится соответствующее актуальное сообщение с ''DTEND'' = null и прописывается текущая дата в ''DTEND''. | ||
| + | |||
| + | В ''DTACK'' значение прописывает scada-клиент. | ||
| + | |||
| + | Для удобства использования в scada-клиентах в базе данных имеются дополнительные метаобъекты: | ||
| + | * view MESMONITOR - выдает отсортированный список текущих сообщений (используется для мониторинга сообщений) <code sql> | ||
| + | CREATE VIEW MESMONITOR( | ||
| + | IDM, | ||
| + | ORD, | ||
| + | DT, | ||
| + | DTEND, | ||
| + | DTACK, | ||
| + | IDPLACE, | ||
| + | PLACENAME, | ||
| + | IDUSER, | ||
| + | USERNAME, | ||
| + | MESTEXT, | ||
| + | TAGTEXT, | ||
| + | DATA, | ||
| + | FULLTEXT, | ||
| + | CLB, | ||
| + | CLF) | ||
| + | </code> | ||
| + | * view MESVIEW - выдает отсортированный список всех сообщений (используется для просмотра архива) <code sql> | ||
| + | CREATE VIEW MESVIEW( | ||
| + | IDM, | ||
| + | DT, | ||
| + | DTEND, | ||
| + | DTACK, | ||
| + | IDPLACE, | ||
| + | PLACENAME, | ||
| + | IDUSER, | ||
| + | USERNAME, | ||
| + | MESTEXT, | ||
| + | TAGTEXT, | ||
| + | DATA, | ||
| + | FULLTEXT, | ||
| + | CLB, | ||
| + | CLF, | ||
| + | ACT) | ||
| + | </code> | ||
| + | |||
| + | * procedure SAVE_MESSAGE - сохраняет текстовое сообщение (используется для фиксации действий пользователя) <code sql> | ||
| + | create procedure SAVE_MESSAGE ( | ||
| + | MSGTEXT varchar(1024), | ||
| + | TAGTEXT varchar(1023), | ||
| + | DATATEXT varchar(128), | ||
| + | IDUSER integer, | ||
| + | IDPLACE integer, | ||
| + | CLB integer, | ||
| + | CLF integer) | ||
| + | returns ( | ||
| + | IDM integer, | ||
| + | IDMSG integer, | ||
| + | IDTAG integer) | ||
| + | </code> | ||
| + | |||
| + | |||
| + | |||