Показано с 1 по 6 из 6

Тема: Квитирование сообщений в журнале

  1. #1

    По умолчанию Квитирование сообщений в журнале

    Здравствуйте, у вас на форуме выложен срипт квитирования сообщений в журнале. Но данный скрипт не работает. На мнемосхему поместил кнопку квитировать и связал ее с входной переменной "Квитировать". И еще мне не совсем понятно что означает переменная "пред" булевого типа? Можно ли сделать так, чтобы квитировались сразу все сообщения без указания их числа(в данном случае я так понимаю их 200)? Спасибо.
    using System;
    using MasterSCADA.Script.FB;
    using MasterSCADA.Hlp;
    using MasterSCADA.Hlp.Events;
    using FB;
    using System.Linq;

    public partial class ФБ : ScriptBase
    {
    bool? пред;

    public override void Execute()

    {
    if (Квитировать == true && пред != true)

    {

    var alarms = HostFB.TreeItemHlp.Project.AlarmManager;
    var filter = new EventFilterData();
    filter.OnlyNotAcked = true;
    var events = alarms.GetEvents(HostFB.TreeItemHlp.Parent,filter,
    200);// последняя цифра показывает какое количество сообщений будет квитированно за один раз.

    foreach (var ev in events)

    {
    alarms.AckEvents(new [] {ev.EventID}, "");

    }
    }
    пред = Квитировать;
    }
    }
    Последний раз редактировалось Dima1991; 23.05.2016 в 11:44.

  2. #2

    По умолчанию

    У нас все работает. При каких обстоятельствах у вас не выполняется квитирование?
    Также нужно иметь ввиду, что данный скрипт квитирует сообщения из кэша. Если нужно квитировать сообщения из архива (например прошлые сообщения переменной), то тогда используются другие методы - для работы с архивом сообщений.
    Спасибо.

  3. #3

    По умолчанию

    А переменные которые добавляются в журнал они из архива или из кэша?

  4. #4

    По умолчанию

    По умолчанию - из обоих. В настройках (Продвинутый уровень - общие - Производительность сообщений - Источник архива сообщений) можно задать конкретных источник.
    Спасибо.

  5. #5

    По умолчанию

    А как выглядит скрипт для квитирования сообщений из архива?

  6. #6

    По умолчанию

    Что-то вроде этого (квитирование всех сообщений конкретного события)
    var project = HostFB.TreeItemHlp.Project;
    var filter = new EventFilterData();
    var eventItem=HostFB.TreeItemHlp.Parent.GetChild(Имя_С ообщения);
    var _eventID=eventItem.ID;
    filter.OnlyNotAcked=true;
    var server=project.GetService<EventServer>();
    var enumerator = server.CreateEnumerator(HostFB.TreeItemHlp.Parent, filter, true);
    //получение последних 50 сообщений
    var archEvents = enumerator.Next(50);
    foreach (var id in archEvents)
    {
    if (id.EventID.SourceID != _eventID) continue;
    MasterSCADA.Interfaces.EventID[] oo =new[] {id.EventID};

    HostFB.TreeItemHlp.Project.AlarmManager.AckEvents( oo,"Comment)");
    }
    Спасибо.

Похожие темы

  1. Квитирование
    от a_gricaj в разделе Master SCADA 3
    Ответов: 13
    Последнее сообщение: 05.04.2017, 12:35
  2. Квитирование
    от a_gricaj в разделе Master SCADA 3
    Ответов: 0
    Последнее сообщение: 06.06.2015, 10:54
  3. Ответов: 5
    Последнее сообщение: 20.04.2015, 11:31
  4. Время события в журнале.
    от Anton156 в разделе Master SCADA 3
    Ответов: 7
    Последнее сообщение: 10.06.2013, 14:17
  5. Ответов: 1
    Последнее сообщение: 22.03.2013, 15:37

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •