Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: Дмитрий К от 03 Февраля 2025, 13:45:30

Название: Изменение переменной по появлению нового сообщения
Отправлено: Дмитрий К от 03 Февраля 2025, 13:45:30
Здравствуйте!

Хочу сделать вроде бы простую штуку. Иметь возможность привязать переменную, чтобы при наличии хотя бы одного сообщения в группе сообщений (или в определенном типе сообщений, напр. для "аварий") , переводить эту переменную в TRUE. Чтобы от этой переменной подсвечивать символ аварии, чтобы оператор понимал, что в списках есть хотя бы одна.

Можно ли это сделать силами скады? Понимаю, что можно в ПЛК, но конкретно в моё случае есть нюансы...

Есть вариант с созданием скрипта, который бы отслеживал изменение переменных. Но есть минус, что при добавлении новой переменной аварии придётся также обновлять и список переменных для отслеживания.
Название: Re: Изменение переменной по появлению нового сообщения
Отправлено: ARV от 04 Февраля 2025, 15:38:57
Можно каждую секунду по таймеру делать запрос к базе данных, который возвращал бы количество записей в таблице messages с  нужными вам значениями столбца gid и т.п.
Соответственно, получив ответ, подсвечивать символ аварии...
Название: Re: Изменение переменной по появлению нового сообщения
Отправлено: Simple_Scada от 04 Февраля 2025, 16:27:17
Здравствуйте.

Цитировать
возможность привязать переменную, чтобы при наличии хотя бы одного сообщения в группе сообщений (или в определенном типе сообщений, напр. для "аварий") , переводить эту переменную в TRUE.
К сожалению, такой возможности нет. Через функцию SysGet (https://simple-scada.com/help/script/sysget.html) можно получить общее количество активных или неподтвержденных сообщений проекта. Но следует учитывать, что данная функция возвращает количество всех активных сообщений проекта любого типа (https://clck.ru/3GAbtm): Сообщение, Предупреждение, Авария.

Можно создать на ПЛК отдельную переменную с общей аварией для каждой группы сообщений и далее использовать эти переменные в скада-системе. Если такой возможности нет, то в Simple-Scada можно создать скрипт с типом события "Изменились переменные (https://simple-scada.com/help/script/changed-the-variables.html)", отслеживать в нем все необходимые переменные и записывать результат в отдельную внутреннюю переменную.
Название: Re: Изменение переменной по появлению нового сообщения
Отправлено: Дмитрий К от 04 Февраля 2025, 20:32:40
Можно каждую секунду по таймеру делать запрос к базе данных, который возвращал бы количество записей в таблице messages с  нужными вам значениями столбца gid и т.п.
Соответственно, получив ответ, подсвечивать символ аварии...
Как вариант. Спасибо за подсказку!

Через функцию SysGet (https://simple-scada.com/help/script/sysget.html) можно получить общее количество активных или неподтвержденных сообщений проекта. Но следует учитывать, что данная функция возвращает количество всех активных сообщений проекта любого типа (https://clck.ru/3GAbtm): Сообщение, Предупреждение, Авария.
Отлично! В моём случае это то, что нужно. Я всё равно использую только Предупреждения и Аварии в этом проекте. Нужно просто оповещать визуально, что в списке есть активные или неподтвержденные записи.