Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
doc:jroboplc:modules:arcsvr [2021/08/23 09:02] denis [Удаление старых сообщений] |
doc:jroboplc:modules:arcsvr [2021/11/05 13:36] (текущий) denis [Алгоритм архивации сообщений версии 2] |
||
---|---|---|---|
Строка 397: | Строка 397: | ||
Данная команда, посылаемая модулю с именем ''arcmes'', удаляет все записи старше 2016 года включительно. | Данная команда, посылаемая модулю с именем ''arcmes'', удаляет все записи старше 2016 года включительно. | ||
- | ===== Алгоритм архивации сообщений версии 2 ===== | + | ===== Алгоритм архивации сообщений V2 ===== |
Для работы по данному алгоритму необходимо пересоздать базу сообщений. | Для работы по данному алгоритму необходимо пересоздать базу сообщений. | ||
- | В таблице ''MESSAGES'' добавлены поля ''DTEND'' и ''DTACK'' типа timestamp. | + | В таблице ''MESSAGES'' добавлены поля ''DTEND'' и ''DTACK'': |
<code sql> | <code sql> | ||
CREATE TABLE MESSAGES ( | CREATE TABLE MESSAGES ( | ||
Строка 417: | Строка 417: | ||
) | ) | ||
</code> | </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> | ||
+ | |||
+ | |||
+ | |||