Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
doc:jroboplc:modules:arcsvr [2021/08/04 12:22] denis [Параметры архивации тегов] |
doc:jroboplc:modules:arcsvr [2021/11/05 13:36] (текущий) denis [Алгоритм архивации сообщений версии 2] |
||
---|---|---|---|
Строка 233: | Строка 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). | | ||
Строка 395: | Строка 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> | ||
+ | |||
+ | |||
+ | |||