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/000099.html

Posted by arido (Участник № / Member № 2961) on :
 
Здравствуйте.
Вот какой вопрос. АРМ оператора установлен на моноблоке с сенсорным экраном. Необходимо вводить уставки параметров без клавиатуры. Есть ли в ТМ штатное решения для этого?

Я организовала ввод числа при помощи кнопок. Число записывается в виде строки, а потом переводится в Real. Тут встает другой вопрос - у меня минимум 12 параметров, не хочется создавать 12 каналов вызова шаблона экрана для ввода значения в конкретный параметр.

Как можно решить такую задачу?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
У Вас должны быть экранная клавиатура.

Trace Mode поддерживает все средства ввода данных прописанные в системе, в том числе и touchscreen.
 
Posted by arido (Участник № / Member № 2961) on :
 
А без использования виртуальной клавиатуры можно?

При использовании "Ввести и передать" появлялось окно с полем для ввода, кнопками ввода числа (как калькулятор) и кнопками "ок" и "Отменить"??
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Для РТМ такой возможности нет.
 
Posted by arido (Участник № / Member № 2961) on :
 
А для чего есть?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Ни для каких исполнительных модулей такой функции нет.
То, что Вы предлагаете, по сути является заменой виртуальной клавиатуры. Подменять системные функции мы не считаем рациональным.
Сделайте вместе с функцией "Ввести и передать" запуск внешнего приложения, вызывающего виртуальную клавиатуру.
 
Posted by ryazanovmtechprom (Участник № / Member № 5671) on :
 
Здравствуйте, подскажите пожалуйста новичку, как можно реализовать вызов экранной клавиатуры для МРВ при работе в полноэкранном режиме?

У меня профессиональная ТМ 6.08 для Windows и ДокМРВ+ 6.08 для Windows.

Если можно то пришлите проект на xxx@yyy

Заранее благодарю за ответ!

[ 19.04.2012, 12:15: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Штатными средствами Trace Mode 6 вызвать экранную клавиатуру нельзя.
 
Posted by ryazanovmtechprom (Участник № / Member № 5671) on :
 
Очень жаль, надеюсь в будущих релизах такая возможность появится.
А как насчет ввода в одну строку значений с разных кнопок, чтобы предыдущее введенное значение не заменялось слудующим, по типу калькулятора.

Если есть такой проект - то пришлите на вышеуказанный эл.ящик.

Просто в моем проекте планируется использовать только сенсорный монитор без подключения клавиатуры и необходимо будет практически на каждом экране организовать ввод данных. А в ТМ я новичок.

Заранее благодарю за ответ!
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вызов клавиатуры можно организовать с помощью канала CALL.EXEC запуском приложения osk.exe.

Ввод в одну строку значений с разных кнопок не планируется.
 
Posted by ryazanovmtechprom (Участник № / Member № 5671) on :
 
Создал канал CALL.EXEC согласно справке установил:
параметр=0;
имя - osk.exe;
комментарий - C:\Windows\System32;
в канале создал один аргумент.
в проекте создал ГЭ"Кнопка" задал ему событие - передать значение, тип передачи- прямая, значение =1, результат - реальное значение созданного канала CALL.EXEC (osk_exe_R).

запускаю профайлер - жму на кнопку - а клавиатура не появляется.
подскажите может быть я что то не так сделал?
а лучше вышлите мне на ящик пример - я лучше с ним поразбираюсь.
 
Posted by ryazanovmtechprom (Участник № / Member № 5671) on :
 
Приношу свои извинения - все заработало.

Огромное спасибо за Ваш совет!

[ 24.04.2012, 09:50: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Передавать значение нужно в атрибут "Входное значение" канал Call.EXEC.

Подобный проект есть в разделе форума "Тестовые примеры".
 
Posted by ryazanovmtechprom (Участник № / Member № 5671) on :
 
Добрый день! Подскажите пжлста - как можно аналогичным образом изменять дату и время системы?

Ведь канал Call.EXEC - работает только с exe-приложениями виндовс, а их приложение timedate имеет расширение cpl - как быть в таком случае?

Пробовал использовать канал TIME, но при этом необходимо задавать источник - где его можно взять?

Используя тип привязки - текущие дата/время,уставка в TRUE - только чтение - не происходит.

как можно решить данную проблему - заранее благодарю за ответ!
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Непонятно, зачем Вам необходимо изменять системное время? И откуда вы предполагаете получать значение времени, которое Вы хотите установить?

Канал CALL.EXEC осуществляет запуск любого приложения Windows, запускаемого с командной строки.
Если для запуска нужного Вам приложения требуются какие-либо дополнительные команды, можно запускать bat-файл, в котором будет прописан корректный запуск приложения.
 
Posted by ryazanovmtechprom (Участник № / Member № 5671) on :
 
У меня по условиям - оператор может производить корретировку времени системы(хотя я и сам против таких действий с его стороны).

Если я Вас правильно понял - то мне необходимо в данной ситуации взять за основу тестовый пример запуска внешнего приложения чрз cmd.exe?
 
Posted by Nico (Участник № / Member № 5342) on :
 
используйте
источники->системные->t_set_time/t_set_data
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вы поняли правильно.
 
Posted by ryazanovmtechprom (Участник № / Member № 5671) on :
 
К сожалению, используя указанный метод в примере как с командной строкой так и с перемещением файла в нужную папку - запустить timedate.cpl не удается (в первом случае он не видит файл и выводит соответствующую ошибку, во втором просто не запускает, даже принудительно вручную из новой директории куда он был перемещен).

2Nico
посмотрел Ваше предложение но вот как я понял там происходит либо занесение нужной величины но без постоянного пересчета времени либо пересчет но занесение невозможно.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Файл timedate.cpl действительно не запускается из другой директории. Это его особенности.

Создал канал CALL.EXEC по имени timedate.cmd с ПАРАМЕТР=1.
В папке узла разместил файл с именем timedate.cmd следующего содержания:

@start c:\Windows\System32\timedate.cpl
exit

Посылаю в канал timedate.cmd число "1". Вызывается диалог "Дата и время".

Попрежнему считаю, что предоставлять оператору АСУ ТП такие возможности нельзя. Оператор не должен вручную корректировать системное время. Не говоря о возможных ошибках, это может быть принести вред процессу управления и системам учета.
 
Posted by ryazanovmtechprom (Участник № / Member № 5671) on :
 
Спасибо за ответ.
Я тоже так считаю и попытаюсь объяснить заказчику нецелесообразность такой опции.

Но вот вопрос можно ли таким образом осуществлять выход из МРВ+ и вообще осуществлять отключение виндовс по нажатию кнопки с привязонной к ней каналом CALL.EXEC ?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Для выгрузки Windows существуют системные средства. Нет необходимости (и даже вредно!) реализовывать это с помощью МРВ. Хотя формально это осуществить можно.

Выгружать МРВ штатно по команде оператора или по событию, которое определяется, например, программно или по внешнему сигналу, возможно. Только делать это надо таким образом, чтобы не нарушить процедуры завершения потоков МРВ. В противном случае могут быть серьезно повреждены все файловые архивы.
Поэтому процедура выгрузки МРВ+ должна включать в себя последовательность операций:
- запуск через CALL.EXEC внешнего приложения, которое должно, с помощью системных функций, контролировать завершение всех потоков МРВ+,
- остановка МРВ+ с помощью системной переменной @Exit,
- выгрузка МРВ+ с помощью этого внешнего приложения после завершения потоков МРВ+.

Если нет возможности контролировать завершение потоков МРВ+ во внешнем приложении, надо задержать выгрузку по отношению к остановке МРВ+ на время, гарантирующее завершение потоков. В разных проектах и ПК это время может быть разным. Может достигать и нескольких минут.
 
Posted by ryazanovmtechprom (Участник № / Member № 5671) on :
 
А как насчет создания в проекте аналога "проводника" для управления создаваемыми html-документами и функций по их удалению и переносу, без прекращения работы МРВ+?

А также хотелось бы узнать - есть ли возможность задания своей директории для сохранения созданного отчета (например для его сохранения на подключенный внешний носитель)? те это задается на этапе задания шаблона документа (например прописать в имени или комментарии самой директории хранения - хотя я пробовал и не получилось) или можно чрз какой то определенный канал это выполнить?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Функции менеджера для просмотра создаваемых html-документов реализованы в исполнительном модуле Data Center Trace Mode 6.

В разделе HELP "Генерация документов/Использование разработанных шаблонов" описано, как организовать сохранение документа по пути, указанному в атрибуте КОММЕНТАРИЙ (80), канала, генерирующего документ.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2