Стартовая страница › Форумы › Разработка и интеграция › Как работать с AddEvent ?
- В этой теме 16 ответов, 3 участника, последнее обновление 9 лет, 7 месяцев назад сделано
manjey73.
-
АвторЗаписи
-
02.03.2017 в 16:49 #4783
manjey73УчастникКак добавить запись, чтобы она попала в события через AddEvent ?
просто текст не принимает, а как сформировать так и не разобрался.
03.03.2017 в 15:45 #479203.03.2017 в 16:56 #4794
manjey73УчастникKPEvent kpEvent = new KPEvent(DateTime.Now, Number, KPTags[0]); // что есть Number и KPTags[0] ? собственно почему 0 из массива, туда надо подставлять свой номер тега при обработке события ? А Number тогда что ?
kpEvent.Descr = «Test event » + random.Next(100); // random.Next(100) — что тут 100 ?
AddEvent(kpEvent);
CommLineSvc.FlushArcData(this); // это передает Event в сервер из драйвера ?03.03.2017 в 18:09 #4796
MikhailМодератор06.03.2017 в 14:35 #4801
manjey73УчастникНемного разобрался, но осталось непонятным
1. Как изменить цвет События из драйвера ?
2. Требуется привязка к Тегам, без привязки к тегам есть возможность вывести Событие ?06.03.2017 в 16:27 #4802
manjey73УчастникНа примере счетчика.
В ответе счетчик посылает коды ошибок, если они есть, записывать их в лог не проблема.
Как вывести текст ошибки в События ? Если такой функционал БЕЗ создания каких либо дополнительных каналов ? (так как это просто глупо, создавать каналы и хранить их в базе, если в них нет прямой необходимости).
Например счетчик выдает ошибки:
Все Ок
Недопустимая команда или параметр
Внутренняя ошибка счетчика
Не достаточен уровень доступа
Не открыт канал связи+ к этому добавляется вообще наличие связи, то есть когда прибор просто перестает отвечать.
В лог вывожу через case.
Если ли возможность не создавая каналов связи выдать Событие с текстом, взятым так же через case ?
Вообще есть ли какие-то служебные команды, которыми можно было бы оперировать для генерации События ?06.03.2017 в 17:41 #4803
manjey73Участникhttps://s21.postimg.org/uw3s9v21j/image.jpg
Не могу понять закономерности, как драйвер иногда вытягивает в События именно из базы ?
for (int zn = 0; zn < nparc[f]; zn++)
{
if (nbwri[f] == 0x10 && !eventcnl)
{
// генерация события
KPEvent kpEvent = new KPEvent(DateTime.Now, Number, KPTags[tag — 1]);
//kpEvent.Descr = ToLogString(buf_in[1]);
kpEvent.Descr = «Отключение питания»;
AddEvent(kpEvent);
CommLineSvc.FlushArcData(this);
SetCurData(tag — 1, 0, 16);
tag++;
if (zn == nparc[f] — 1) eventcnl = true;}
else
{
SetCurData(tag — 1, 0, 0);
tag++;
}16 — это Событие в базе — «Отключение сети»
06.03.2017 в 20:19 #4804Romiros
Участникmanjey73 я правильно понял, что скада позволяет писать свой собственный текст событий без создания их в БД?
Научите потом, если получится?06.03.2017 в 20:33 #4805
manjey73УчастникДа, она то пишет, но только с привязкой к тегам.
Собственно ссылку на пример Михаил дал выше. https://github.com/RapidScada/scada/blob/e580aed6171fa3ca2dd85804468eb1bee4e31193/ScadaComm/OpenKPs/KpTest/KpTestLogic.csList<TagGroup> tagGroups = new List<TagGroup>();
TagGroup tagGroup = new TagGroup(«Group 1»);
tagGroup.KPTags.Add(new KPTag(1, «Tag 1»)); // Это как раз KPTags[0], следующий 1 и так далее// генерация события
KPEvent kpEvent = new KPEvent(DateTime.Now, Number, KPTags[0]); // нулевой индекс из массива тегов. Из списка List
kpEvent.Descr = «Ваш текст»);
AddEvent(kpEvent);
CommLineSvc.FlushArcData(this);Собственно все, только ведет себя неадекватно, никак не могу последовательность действий понять, когда у меня выдергивается текст из базы Типы Событий.
То «Ваш текст» печатает, то из базы берет как на скрине.Это все в драйвере для устройства.
SCADA сама по себе не знаю, может ли создать подобное Событие, кроме заложенных По изменению, По неопределенному значению и проверкой на уровни. Наверное как-то формулами можно, но не пробовал еще.06.03.2017 в 21:18 #4808Romiros
УчастникМне в драйвере и надо. Спасибо за ответ. А время события можно генерировать? Если я буду тянуть какой-нибудь архив событий например?
-
Ответ изменён 9 лет, 7 месяцев назад пользователем
Romiros.
06.03.2017 в 21:28 #4810Romiros
УчастникСудя по коду можно 🙂
06.03.2017 в 21:34 #4811
manjey73УчастникDateTime.Now так это и есть генерация времени события.
07.03.2017 в 09:10 #4813
MikhailМодератор1. Как изменить цвет События из драйвера ?
Цвет определяется статусом тега (канала).
2. Требуется привязка к Тегам, без привязки к тегам есть возможность вывести Событие ?
Попробуйте передать null вместо ссылки на тег и посмотрите, что будет (я не помню).
Я в таких случаях заводил тег Событие и на него писал события из драйвера. Довольно удобно.07.03.2017 в 09:11 #4814
MikhailМодераторЕсли Вы указываете текст события явно из кода, то на веб-странице отображается этот текст. Если текст не указан (пуст), то текст события генерируется автоматически на основе статуса и значения. Этот момент хотелось бы расширить, чтобы указывать формат вывода, но сейчас так.
07.03.2017 в 09:12 #4815
MikhailМодераторDateTime.Now — просто текущее время, а можете любое другое задать.
-
Ответ изменён 9 лет, 7 месяцев назад пользователем
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.