Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Изменение переменной по появлению нового сообщения  (Прочитано 414 раз)

Дмитрий К

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Здравствуйте!

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

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

Есть вариант с созданием скрипта, который бы отслеживал изменение переменных. Но есть минус, что при добавлении новой переменной аварии придётся также обновлять и список переменных для отслеживания.

ARV

  • Постоялец
  • ***
  • Сообщений: 117
    • Просмотр профиля
Можно каждую секунду по таймеру делать запрос к базе данных, который возвращал бы количество записей в таблице messages с  нужными вам значениями столбца gid и т.п.
Соответственно, получив ответ, подсвечивать символ аварии...

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1306
    • Просмотр профиля
Здравствуйте.

Цитировать
возможность привязать переменную, чтобы при наличии хотя бы одного сообщения в группе сообщений (или в определенном типе сообщений, напр. для "аварий") , переводить эту переменную в TRUE.
К сожалению, такой возможности нет. Через функцию SysGet можно получить общее количество активных или неподтвержденных сообщений проекта. Но следует учитывать, что данная функция возвращает количество всех активных сообщений проекта любого типа: Сообщение, Предупреждение, Авария.

Можно создать на ПЛК отдельную переменную с общей аварией для каждой группы сообщений и далее использовать эти переменные в скада-системе. Если такой возможности нет, то в Simple-Scada можно создать скрипт с типом события "Изменились переменные", отслеживать в нем все необходимые переменные и записывать результат в отдельную внутреннюю переменную.

Дмитрий К

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Можно каждую секунду по таймеру делать запрос к базе данных, который возвращал бы количество записей в таблице messages с  нужными вам значениями столбца gid и т.п.
Соответственно, получив ответ, подсвечивать символ аварии...
Как вариант. Спасибо за подсказку!

Через функцию SysGet можно получить общее количество активных или неподтвержденных сообщений проекта. Но следует учитывать, что данная функция возвращает количество всех активных сообщений проекта любого типа: Сообщение, Предупреждение, Авария.
Отлично! В моём случае это то, что нужно. Я всё равно использую только Предупреждения и Аварии в этом проекте. Нужно просто оповещать визуально, что в списке есть активные или неподтвержденные записи.