Фильтрация алармов по приоритету

Вопросы, не попадающие в другие разделы.

Фильтрация алармов по приоритету

Сообщение 169409 » Ср июн 14, 2017 2:45 pm

Простейшая задача, превращающаяся в головную боль.

Есть иерархия групп аварий:

1.Этаж
2.Установка
3.Датчик

Датчик шлет 4 состояния аварии, у всех аварий разный приоритет, к примеру: 10 - ПДК 1 уровня, 20 - ПДК 2 уровня, 100 - неисправность датчика, 500 - датчик не в сети

К примеру, нужно получить количество неквитированных аварий на этаже:
Этаж.AlarmUnAckCount
вроде все просто, но немного усложняю задачу, требуется получить количество неквитированных аварий на этаже по ПДК 1 уровня.
Как провести такую фильтрацию?
169409
 
Сообщения: 34
Зарегистрирован: Чт дек 20, 2012 1:46 pm

Re: Фильтрация алармов по приоритету

Сообщение Генератор зла » Ср июн 14, 2017 6:04 pm

Каждому ПДК присвоить свой Priority при параметрировании алармов в Tagname Dictionary.
Для AlarmViewCtrl и AlarmDBViewCtrl создать фильтры сортировки аварий по полю Priority
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: Фильтрация алармов по приоритету

Сообщение 169409 » Ср июн 14, 2017 6:24 pm

Приоритеты и так присвоены. Окна алармов настроенны.
Мне нужно число. Я хочу именно расписать в небольшом общем навигационном окне что на первом этаже у меня 6 аварий, 3 из них это ПДК, 1 это не в сети и 2 это датчики с ошибками.
Чтобы оператор мог быстренько взглянуть и увидеть общую картину.
169409
 
Сообщения: 34
Зарегистрирован: Чт дек 20, 2012 1:46 pm

Re: Фильтрация алармов по приоритету

Сообщение Генератор зла » Чт июн 15, 2017 12:30 am

ЕМНИП, группы алармов поддерживают вложение. Вот и воспользуйтесь этим. И циклически в Application-скрипте (например) опрашивайте кол-во неподтверждённых алармов в каждой группе.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: Фильтрация алармов по приоритету

Сообщение 169409 » Чт июн 15, 2017 2:48 pm

Что то я в первый раз слышу о вложениях в группах алармов.
Количество неподтвержденных алармов я и так получаю, для этого есть .AlarmUnAckCount
Вопрос стоит как в этом значении выбрать только те аварии, которые имеют нужный мне приоритет.
На этот вопрос офф.поддержка мне пока ответа нормального дать не смогла. Если этого у интача нет, то это просто позорище, впрочем, ничего нового, я уже привык что в продукте за дохрилион рублей не сделаны элементарные вещи, скоро книгу напишу "Как на примере Wonredware InTouch просить много денег ни за что".
169409
 
Сообщения: 34
Зарегистрирован: Чт дек 20, 2012 1:46 pm

Re: Фильтрация алармов по приоритету

Сообщение Генератор зла » Чт июн 15, 2017 7:36 pm

169409 писал(а):Что то я в первый раз слышу о вложениях в группах алармов.

"Видишь суслика? А он есть" ©
169409 писал(а):Количество неподтвержденных алармов я и так получаю, для этого есть .AlarmUnAckCount

Вот и здОрово. Он же есть и для каждой группы/подгруппы алармов.
169409 писал(а):Вопрос стоит как в этом значении выбрать только те аварии, которые имеют нужный мне приоритет.

Воспользоваться подгруппами алармов.
Если речь идёт только о компоненте AlarmDBViewCtrl, то в нём можно создавать фильтры, можно поиграть ими.
Да и вообще, чтобы выбрать аварии по приоритету, сперва необходимо эти приоритеты правильно назначить ;) Тогда и проблема решится сама собой.
169409 писал(а):Если этого у интача нет, то это просто позорище, впрочем, ничего нового, я уже привык что в продукте за дохрилион рублей не сделаны элементарные вещи, скоро книгу напишу "Как на примере Wonredware InTouch просить много денег ни за что".

Мастерскада и Сайтек, конечно, дешевле, но Вы по каким то причинам работаете в InTouch и не можете убедить руководство поменять каку на конфетку.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: Фильтрация алармов по приоритету

Сообщение 169409 » Чт июн 15, 2017 8:29 pm

Мда... Либо я плохо объяснил, либо что то еще...
Группы и подгруппы в строгой иерархии уже созданы и никакие другие группы дополнительно (только с авариями ПДК) быть не могут!
Иерархия четкая: Этаж - Установка - Датчик
У каждого датчика настроены аварии по приоритетам и настроены они четко и правильно.

Никаких AlarmDBViewCtrl и прочей хероборы интачевской, тошнит уже от этих компонентов помойных.

Хотелось бы как то по существу, если не знаете, то и не нужно делать вид, что что то можете сказать полезного.

Уже многие проекты делаются на других скадах, но есть объекты, для которых был приобретен InTouch, по этому деваться некуда и приходится этим заниматься.
169409
 
Сообщения: 34
Зарегистрирован: Чт дек 20, 2012 1:46 pm

Re: Фильтрация алармов по приоритету

Сообщение Генератор зла » Чт июн 15, 2017 8:55 pm

169409 писал(а):Мда... Либо я плохо объяснил, либо что то еще...

Не сомневайтесь, второе.
169409 писал(а):Группы и подгруппы в строгой иерархии уже созданы и никакие другие группы дополнительно (только с авариями ПДК) быть не могут!

Если будет необходимо - появятся. Жизнь - штука сложная.
169409 писал(а):Иерархия четкая: Этаж - Установка - Датчик

Сколько этажей в здании?
Сколько установок на этаже (максимально)?
По любому датчику всего 4 аварии?
169409 писал(а):У каждого датчика настроены аварии по приоритетам и настроены они четко и правильно.

Только до тех пор пока не приходится всё переделывать :)
169409 писал(а):Уже многие проекты делаются на других скадах, но есть объекты, для которых был приобретен InTouch, по этому деваться некуда и приходится этим заниматься.

Если есть лучше, дешевле и надёжнее, то всегда можно убедить руководство в целесообразности замены.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: Фильтрация алармов по приоритету

Сообщение 169409 » Чт июн 15, 2017 9:18 pm

3 этажа
на этаже может быть порядка 40-60 установок где то
датчиков более 500 штук
4 аварийных состояния

Пример:
1 этаж, стоит 30 установок, на каждой установке по 5 датчиков
всего на этаже фиксируем 15 аварий путем вывода значения:
1этаж.AlarmUnAckCount
а вот теперь нужно определить, сколько аварий какого типа входят в эти 15 штук?
у нас есть деление по приоритетам, каждый тип аварии имеет свой приоритет, соответственно, если авария по ПДК 1 уровня будет иметь приоритет скажем - 10, то нужно будет что то типа выражения:
1этаж.AlarmUnAckCount (priority min,priority max) - грубо говоря, в скобках диапазон приоритетов
Но такой функции у интача нет.
Значит нужно сделать выборку из массива аварий, к которому доступа нет, благодаря бравым программистам вундервафли, нам дают возможность только тянуть эти значения из окон аварий. Но так как информация нужна актуальная и по нескольким группам аварий (например по каждому этажу в отдельности, по некоторым группам установок или по типам датчиков), придется либо городить элементы, связываться с ними и загонять это все в кучу циклов. Это называется "через жопу".
169409
 
Сообщения: 34
Зарегистрирован: Чт дек 20, 2012 1:46 pm

Re: Фильтрация алармов по приоритету

Сообщение Генератор зла » Чт июн 15, 2017 11:02 pm

169409 писал(а):3 этажа
на этаже может быть порядка 40-60 установок где то
датчиков более 500 штук
4 аварийных состояния

Итак...
3*60=240 (Alarmm groups) необходимо создать
$System
Flow_1
F1_Plant_1
F1_P1_AlmSensor_1 (ПДК 1)
F1_P1_AlmSensor_2 (ПДК 2)
F1_P1_AlmSensor_3 (неисправность датчика)
F1_P1_AlmSensor_4 (датчик не в сети)
F1_Plant_2
F1_P2_AlmSensor_1
F1_P2_AlmSensor_2
F1_P2_AlmSensor_3
F1_P2_AlmSensor_4
........
F3_Plant_60
F3_P60_AlmSensor_1
F3_P60_AlmSensor_2
F3_P60_AlmSensor_3
F3_P60_AlmSensor_4

И, как это не удивительно, у каждой Alarm Group будет поле .AlarmUnAckCount
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: Фильтрация алармов по приоритету

Сообщение 169409 » Пт июн 16, 2017 2:08 pm

))))))

Описываю как сделано и для чего:

Группы аварий:
F1, F2, F3 - этажи (первый уровень в иерархии групп, эти группы служат для общего подсчета количества аварий, а так же для вывода аварий поэтажно в окнах аварий)
IMP, CVD и тд. - оборудование, они же установки (на каждом этаже расположено большое количество оборудования, на котором установлены разного типа датчики, если один из датчиков на установке выдает ошибку, вся установка подсвечивается на планировке)
O2, H2, BCL, CL2 и прочие - датчики (у датчика есть 4 тега аварий, если приходит одна из аварий, подсвечивается весь датчик)

Анимация подсвечивания аварий завязана именно на работу с группами аварий, а не с каждым тегом в отдельности.

Структура:
F1
IMP
O2
H2
BCL
CVD
BCL
CL2
F2

Так вот, сейчас групп аварий 3+120 (суммарно установок по 3 этажам) + 500 (датчиков) = 623 (приблизительно)
Все строго распределено и никаких изменений в эту структуру внесено быть не может, ибо она отражает всю иерархию самого объекта.

Далее идет сам датчик и его аварии, их 4 штуки:
ПДК 1 - приоритет 10
ПДК 2 - приоритет 20
неисправность датчика - приоритет 100
датчик не в сети - приоритет 500

Соответственно имея такую иерархию алармов и расставленные приоритеты, я могу нормально работать с окнами аварий, выводить информацию поэтажно, по установкам, по одному приоритету, по группе приоритетов. Но это касается именно окон алармов.
Мне же нужна очень простая вещь - число. Число неквитированных алармов определенного приоритета на этаже. (в дальнейшем для некоторых установок)
Есть небольшое навигационное окно, в котором расположены кнопки для перемещения по планировкам, под кнопкой стоит значение, сколько аварий в данный момент на этаже. Я хочу одно это значение, разделить на 4, как раз по количеству аварий разного приоритета. Все.
Чтобы получить количество неквитированных аварий на этаже, просто использую F1.AlarmUnAckCount без заморочек и всего прочего.
Мне же предлагают тянуть эти значения из окон аварий. Вы осознаете масштаб заморочек, если пойти таким путем?
169409
 
Сообщения: 34
Зарегистрирован: Чт дек 20, 2012 1:46 pm

Re: Фильтрация алармов по приоритету

Сообщение 169409 » Пт июн 16, 2017 2:09 pm

Ну что за форум... Все сообщение перековеркает.

Структура:
F1
__IMP
_____O2
_____H2
_____BCL
__CVD
_____BCL
_____CL2
F2
169409
 
Сообщения: 34
Зарегистрирован: Чт дек 20, 2012 1:46 pm

Re: Фильтрация алармов по приоритету

Сообщение Генератор зла » Пт июн 16, 2017 2:27 pm

Предлагается:
F1
__IMP
_____O2
________10
________20
________100
________500
_____H2
________10
________20
________100
________500
_____BCL
________10
________20
________100
________500
__CVD
_____BCL
_____CL2
F2
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: Фильтрация алармов по приоритету

Сообщение 169409 » Пт июн 16, 2017 2:30 pm

Эм... 2000 групп еще добавить????? Сомнительное удовольствие... ))))

Ну хотя даже и так, предположим сделали, как их дальше объединять по условиям? ))))
169409
 
Сообщения: 34
Зарегистрирован: Чт дек 20, 2012 1:46 pm

Re: Фильтрация алармов по приоритету

Сообщение Генератор зла » Пт июн 16, 2017 6:41 pm

169409 писал(а):Ну хотя даже и так, предположим сделали, как их дальше объединять по условиям?

F1.AlarmUnAckCount - этажные аварии
F1.IMP.AlarmUnAckCount - аварии по конкретной установке
F1.IMP.10.AlarmUnAckCount - по датчикам и приоритету 10

З.ы. Я не просто так пропустил O2 и прочие.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: Фильтрация алармов по приоритету

Сообщение 169409 » Пт июн 16, 2017 6:58 pm

А не останавливает тот факт, что запрещены группы с одинаковыми именами? )))))
169409
 
Сообщения: 34
Зарегистрирован: Чт дек 20, 2012 1:46 pm

Re: Фильтрация алармов по приоритету

Сообщение Генератор зла » Пт июн 16, 2017 7:46 pm

169409 писал(а):А не останавливает тот факт, что запрещены группы с одинаковыми именами?

F1
__IMP
_____O2
_____H2
_____BCL
__CVD
_____BCL
_____CL2
F2

:?:
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: Фильтрация алармов по приоритету

Сообщение 169409 » Пт июн 16, 2017 8:05 pm

Это я писал для примера структуры иерархии, у каждого датчика, помимо обозначения газа есть номер, т.е. О2-001, О2-002 и т.д.
169409
 
Сообщения: 34
Зарегистрирован: Чт дек 20, 2012 1:46 pm

Re: Фильтрация алармов по приоритету

Сообщение 169409 » Пт июн 16, 2017 8:09 pm

Не нужно ничего придумывать, эти способы работать не будут, я даже не уверен что синтаксис подобной функции будет правильным.
Тут либо есть какая то функция или дотфилд, либо нет.
169409
 
Сообщения: 34
Зарегистрирован: Чт дек 20, 2012 1:46 pm

Re: Фильтрация алармов по приоритету

Сообщение Генератор зла » Пт июн 16, 2017 9:02 pm

169409 писал(а):Это я писал для примера структуры иерархии, у каждого датчика, помимо обозначения газа есть номер, т.е. О2-001, О2-002 и т.д.

Значит, никаких одинаковых имён и не будет.
169409 писал(а):Тут либо есть какая то функция или дотфилд, либо нет.

Очень верно сказано. Именно дотфиелд.
Имя_Аларм_Группы.AlarmUnAckCount
или
ЭтажХХ_УстановкаYY_ТипОтказа10.AlarmUnAckCount
ЭтажХХ_УстановкаYY_ТипОтказа20.AlarmUnAckCount
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: Фильтрация алармов по приоритету

Сообщение 169409 » Вс июн 18, 2017 2:14 pm

Откуда вы это берете:
ЭтажХХ_УстановкаYY_ТипОтказа10.AlarmUnAckCount
ЭтажХХ_УстановкаYY_ТипОтказа20.AlarmUnAckCount
из головы придумываете?

Какой тип отказа? Я же написал, НЕ ПОДДЕРЖИВАЮТСЯ ОДИНАКОВЫЕ ИМЕНА ГРУПП.
Дотфилда такого ЭтажХХ_УстановкаYY_ТипОтказа10.AlarmUnAckCount не существует в обозримой документации.
169409
 
Сообщения: 34
Зарегистрирован: Чт дек 20, 2012 1:46 pm

Re: Фильтрация алармов по приоритету

Сообщение Генератор зла » Вс июн 18, 2017 2:44 pm

Трудно с Вами.
Думаю, техподдержка справится с Вашим вопросом.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: Фильтрация алармов по приоритету

Сообщение mp3corp » Вс июн 18, 2017 7:15 pm

Скажите зачем Вам такие трудности? Сделайте все проще, для чего столько групп аварий? Потратить лишнюю минуту для выбора аларма в журнале религия не позволяет... Когда пишут проект для ПЛК так не заморачиваются... в итоге сделаете как "Все" я уверен, алармы в "СКАДЕ" не главное помните, лучше анализируйте код контроллера на ошибки, там и алармов столько не будет...
mp3corp
 
Сообщения: 375
Зарегистрирован: Вт фев 22, 2011 4:47 am

Re: Фильтрация алармов по приоритету

Сообщение 169409 » Пн июн 19, 2017 12:22 am

Генератор зла писал(а):Трудно с Вами. Думаю, техподдержка справится с Вашим вопросом.


От вас я вообще никогда конкретики не видел, сколько читал топиков с вашими ответами. Вы либо советуете что то ссылаясь на теорию, которую сами же и придумали, либо рекомендуете способы, которые не работают ))) Этакий, псевдо-знаток интача, советы которого почему то не помогают )))


mp3corp писал(а):Скажите зачем Вам такие трудности? Сделайте все проще, для чего столько групп аварий? Потратить лишнюю минуту для выбора аларма в журнале религия не позволяет... Когда пишут проект для ПЛК так не заморачиваются... в итоге сделаете как "Все" я уверен, алармы в "СКАДЕ" не главное помните, лучше анализируйте код контроллера на ошибки, там и алармов столько не будет...


Ознакомьтесь с задачей более четко, прежде что то предлагать. Задача простая, но вы ее не поняли, по этому ваш совет в данном контексте полностью лишен смысла.
169409
 
Сообщения: 34
Зарегистрирован: Чт дек 20, 2012 1:46 pm

Re: Фильтрация алармов по приоритету

Сообщение Генератор зла » Пн июн 19, 2017 1:50 am

.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: Фильтрация алармов по приоритету

Сообщение xonyx » Пн июн 26, 2017 2:13 am

ТС, мне вас искренне жаль.
xonyx
 
Сообщения: 156
Зарегистрирован: Пн мар 14, 2011 5:20 am


Вернуться в Другое

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27