This is topic Квитирование иным способом in forum SIAD/SQL. Архивирование в TRACE MODE / SIAD/SQL. Data Logging in TRACE MODE at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/40/t/000074.html

Posted by Миханик (Участник № / Member № 3346) on :
 
Как можно по-другому сквитировать события не через CTRL-ЛК мыши?

Если я, например, использую сенсорный монитор без клавиатуры. Мне бы подошли две кнопки: квитрование последнего события и квитирование сразу всех событий. Можно ли такое осуществить?
 
Posted by Romсheg (Участник № / Member № 3792) on :
 
Мы в своих проектах уже давно ушли от штатного квитирования сообщений в ОТ. Квитанцию делаем через отдельные каналы в проекте. В ОТ получается два сообщения - одно о событии, а второе о квитировании этого события. При таком методе гораздо нагляднее получается отследить последовательность событий в системе по журналу, чем высчитывать в уме сколько и чего произошло за то время, когда сообщение появилось, но еще не было квитировано, если использовать штатный механизм. Кроме того, при таком подходе гораздо удобнее реализовывать экраны для индикации событий и их квитанции, у нас это реализуется через индикаторы. Получается, что в Вашем варианте с сенсорными экранами - это именно то, что нужно! [Улыбка / Smile]
Будут вопросы - стучите мне в ICQ (206646106), помогу...
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Можно еще квитировать последнее сообщение по каналу с помощью 46 атрибута канала, путем посылки туда 3 или 4.
 
Posted by Romсheg (Участник № / Member № 3792) on :
 
2AdAstra Technical Support
Объем буфера (количество записей), в котором система поиск "последнего сообщения" в ОТ осуществляет при таком квитировании не подскажете? [Пдмигивание / Wink]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Объем буфера ограничен размером отчета тревог.
 
Posted by Romсheg (Участник № / Member № 3792) on :
 
А проверяли? [Улыбка / Smile]
Помнится в одном из моих проектов пришлось отказаться от такого механизма, как раз из-за ограничений.

Если ситуация уже поменялась, то я только рад!
 
Posted by Миханик (Участник № / Member № 3346) on :
 
А если мне нужно сразу квитировать все сообщения?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Зачем Вам квитировать сразу все сообщения? Оператор не будет даже смотреть, что произошло, а просто все квитирует?
 
Posted by Миханик (Участник № / Member № 3346) on :
 
Оператор просмотрит сообщения, но чтобы не жать по каждому сообщению проще сделать одну кнопку для квитирования сразу всех.

Способ квитирования по 46 атрибуту мне не подойдет, потому как у меня, например, есть канал класса Hex16, каждый бит которого отвечает за определенную аварию. То есть если я запишу туда 3 или 4, то квитируется только последнее произошедшее событие, а события произошедшие до этого остаются неквитированными.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Другого выхода нет, и не планируется.
 
Posted by VadimNN (Участник № / Member № 5312) on :
 
Тоже использую сенсорный монитор и столкнулся с проблемой квитирования в ОТ. Подскажите, может быть можно программно имитировать нажатие Ctrl?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Можно квитировать последнее сообщение по конкретному каналу в ОТ через атрибут 46 этого канала. Это можно реализовать как с экрана (в том числе и сенсорного), так и из программы.
 
Posted by VadimNN (Участник № / Member № 5312) on :
 
А как узнать какой канал нужно квитировать? и как квитировать предпоследнее сообщение? попробовал через 46 атрибут, остаются неквитированные сообщения в ОТ
 
Posted by VadimNN (Участник № / Member № 5312) on :
 
Нашел сам.
В ТМ создаем программу типа ST и в ней подключаем внешнюю библиотеку user32.dll, как указано в справочной системе ТМ. В данной библиотеке задаем функцию keybd_event (тип возвращаемого значения <пусто>, соглашение о вызове stdcall, переменное число аргументов - no). У данной функции указываем 4 аргумента:
bVk (unsigned char),
bScan (unsigned char),
dwFlags (unsigned long),
dwExtraInfo (unsigned long).

Все аргументы не являются указателями.
Затем в самой программе вызываем данную функцию:
keybd_event (17,0,0,0);

17 - это десятичный код клавиши Ctrl.

После вызова программы квитировать в отчете тревог можно нажатием одной левой кнопки мыши.

Для того, чтобы "отжать" клавишу Ctrl нужно вызвать функцию keybd_event с "2" в третьем аргументе:
keybd_event (17,0,2,0);
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2