This is topic Как реализовать квитирование кликом по ГЭ на экране? in forum Операторский интерфейс SCADA/HMI TRACE MODE 6 / at Форум TRACE MODE: техническая поддержка.


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

Posted by Муратов В.В. (Участник № / Member № 2368) on :
 
САБЖ.
Не получается. Версия TM 6.05.
Поиском пользовался. Все что нашел не работает.
У меня есть каналы Событие и каналы Float. Квитирование по первым осуществляю в ГЭ Events, подключен словарь и *.wav-ки по именам сообщений в словаре. Тут проблем нет. Проблемы есть по каналам Float. Как по ним осуществлять квитирование? Обязательным является отключение звука тревоги при квитировании.
Единственный выход вижу в реализации квитирования по по событию нажатия кнопки мыши на каком-нибудь ГЭ. Но как это сделать?
Подскажите пожалуйста. Горит!!!
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Если Вы генерируете звук тревоги с помощью системного канала @Sound_File, то (цитирую из описания этого канала) "Посылка нуля в такой канал останавливает воспроизведение."
Следовательно, Вам нужен ГЭ, который посылал бы "0" в атрибут ВХОД этого канала.
 
Posted by Муратов В.В. (Участник № / Member № 2368) on :
 
Я использую для генерации звуков возможности словаря для канала (PlayStop и т.д.). Все же как осуществить квитирование для канала Float через клик по ГЭ?
 
Posted by Муратов В.В. (Участник № / Member № 2368) on :
 
Как я понимаю, ответа недождусь... -(
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Создайте любой канал @Sound_File и посылайте в него "0" (вместе с "1" в атрибут EXEC).
 
Posted by Вадик (Участник № / Member № 2963) on :
 
Тобиш можна создать любой канал с направлением out и по нажатию на ГЭ отправлять во вход 0 и в EXEC 1, я правельно понял предыдущее сообщение?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Понимание "квитирования" может быть довольно широким.
В данном случае речь идет о прерывании звука. Реализуется эта процедура не любым каналом OUT, а тем, который привязан к системной переменной @Sound_File.
 
Posted by Вадик (Участник № / Member № 2963) on :
 
Это я понял. Я реализовал все так: сздал словарь для канала, далее если определенный бит канала принимает значение наченает воспроизводится звук, далее я создал канал, который связал с системной переменной @Sound_File, и кликом по ГЭ изменяю в даном канале 0 и в EXEC 1, но звук не исчезает до тих пор, пока тот самый бит первого канале не примет другого значения.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Я перепроверил все в соответствии с Вашим алгоритмом. Звук прерывается в момент отработки канала, связанного с системной переменной @Sound_File.
Присылайте Ваше ТЕСТОВЫЙ проект на адрес техподдержки hotline@adastra.ru.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. Тремя записями выше указано, что системная переменная И привязанный к ней канал должны быть типа OUT.
2. Нельзя в словаре сообщений оставлять поле "Текст" пустым.
2. С экрана для гашения звука Вы управляете не каналом, связанным с @Sound_File, а совершенно другим каналом.
3. Прерывать однократное короткое звуковое сообщение таким способом не имеет смысла.
Задайте в словаре тип звукового сообщения PlayLoopStop.
Задайте от руки "аварийное" (а не от генератора) значение каналу со звуковым сообщением. У Вас будет непрерывно воспроизводиться звуковое сообщение.
После этого прерывайте звук - но при правильных привязках аргумента экрана.

Я посылаю Вам откорректированный Ваш проект.
 
Posted by Letiso333 (Участник № / Member № 3298) on :
 
Здравствуйте, уважаемая тех. поддержка!
А возможна ли реализация прекращения проигрывания звука одним действием вместе с квитированием (ctrl+лев.кн.мыши на квитируемом собщении), а не отдельно ч/з @SoundFile?
 
Posted by Day13 (Участник № / Member № 3734) on :
 
Уважаемая тех. поддержка ответьте на вопрос Letiso333. У меня возник такой же вопрос.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Нет, такая операция не осуществима.
 
Posted by ShuraX (TM_Prof) (Участник № / Member № 3130) on :
 
> Нет, такая операция не осуществима.
А жаль...может стоит записать как пожелание?

В довесок по квитированию и проигрыванию звука: необходимо решить следующую задачу.
Есть два канала с настроенными аварийными границами. Оба привязаны к одному словарю сообщений, в котором на аварийную границу указан вывод PlayLoopStop (звуковой файл создан). Созданы две системные переменные @Sound_File одна типа Input, вторая Output. На экране настроено отображение с квитированием (в атрибут 39 канала @Sound_File засылается 0).
Необходимо реализовать следующий алгоритм работы: при срабатывании границы по первому каналу начинается воспроизведение звукового файла (пока ничего не делает), после срабатывания границы на втором файле воспроизведение продолжается. После квитирования первого аварийного события воспроизведение звука продолжается, после квитирования второго прекращается. Т.е. до тех пор пока "очередь воспроизведения звуковых файлов" не закончится (как я понимаю).
1) Возможно ли это организовать на тех исходных данных, что я задал? (Сейчас получается так, что воспроизведение полностью останавливается.)
2) Sound_File типа Input в момент возникновения аварийного события становится =1, а затем =0. Я так понимаю (по хелпу), если я не квитирую (не прерываю воспроизведение через канал Sound_File типа Output) очередь должна расти??? а она =0.
3) Как можно реализовать подобный алгоритм?
 
Posted by ShuraX (TM_Prof) (Участник № / Member № 3130) on :
 
Уважаемая техподдержка, неделя пролетела...

P.S. наверно стоит отдельные темы задавать, чтобы виднее было. Старался просто не плодить похожие вопросы.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1) Если Вы используете параметр 0 у переменной SoundFile, то звук у Вас проигрывается только один раз, поэтому очередь становится равной 0. Вам нужно использовать другие параметры (при этом более ранние события будут иметь более высокий приоритет) или более длинные звуки

2) Механизм реализуется просто. Посылаете нужные числа на вход переменной. А при квитировании посылаете 0 (дублируя посылкой 1 в Еxec, если квитируется несколько событий подряд). При этом при квитировании одного события будет сразу же за ним играть звук от другого события.
 
Posted by ShuraX (TM_Prof) (Участник № / Member № 3130) on :
 
Я наверно что-то не то делаю. Тестовый проект выслал на почту.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
"Постановка в начало очереди, прерывание текущего
воспроизведения" означает обнуление очереди. По этому Вам нужно пользовться
из словаря функцией Play, но звук должен быть максимально продолжительным.
Или написать программу для анализа превышения значений с использованием
@Sound_File с параметром 1.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2