Помощь      Поиск      Пользователи      BanList


 Страниц (1): [1]   

> Описание: медленная работа
sialiv
Отправлено: 24 Марта, 2014 - 13:40:57
Post Id



Пользователь
Member


Покинул форум
Сообщений всего: 134
Дата рег-ции: Окт. 2013  





Здравствуйте!

ПРОБЛЕМА: Выполнение реакций происходит очень медленно.
На мнемосхеме разместил 40 полей(прямоугольник).
Создал тег с 40-а переменными Bool. Связал их со свойством видимость каждому полю свой бит.
Назначил всем полям реакции:
1-Вход курсора, Скрипт(соответствующий бит в 1)
2-Выход курсора, Скрипт(соответствующий бит в 0).
Запускаю эмуляцию и курсор навожу на поле(начинет мигать).
ОСОБЕННОСТЬ: если вести медленно то все срабатывает нормально, но если чуть побыстрее начинается пропуск выполнения скрипта и экран превращается в хаотически мигающие поля.

Как справиться с этой проблемой?
 
 Top
Shutin D.V.
Отправлено: 25 Марта, 2014 - 09:19:02
Post Id



Пользователь
Newbie


Покинул форум
Сообщений всего: 36
Дата рег-ции: Сент. 2010  





Добрый день!
Каждое малейшее движение мыши обрабатывается, а при наведении на примитив, у Вас фактически все 40 атрибутов передергиваются. Учитавайте, что мнемосхема обновляется 4 раза в секунду. Управлять какими-то механизмами через контроллер по реакции вход/выход курсора является довольно опасным мероприятием и даже запрещено на некоторых производствах. Возможно лучше воспользоваться обычным нажатием кнопки мыши? При этом при выставленном флаге в единицу прямоугольник будет вминаться, а при нуле наоборот. Есть ли у Вас необходимость использовать имеенно вход/выход курсора? Обычно такие большие табло создаются на основе сцен и отдельных объетов с тегами. Посмотрите как реализованы подобные вещи в Библиотеке энергоучета. Наверняка у Вас все кнопки одинаковые и раскрашиваются подобным образом. Вам досточно будет иметь один объект, которым можно будет пользоваться много раз. Соответвенно, Вам необходимо cоздать мнемохему с кнопкой или группой кнопок, которые будут работать со своими тегами, а затем по какой-то команде собираться вместе и записываться в контроллер.
 
 Top
sialiv
Отправлено: 25 Марта, 2014 - 10:53:40
Post Id



Пользователь
Member


Покинул форум
Сообщений всего: 134
Дата рег-ции: Окт. 2013  





1 - задачи управлять контроллером нет.
2 - Мнемосхема содержит план размещения оборудования(цех, участок, оборудование)
3 - Всего планируется примерно 100 полей.
4 - Для подсветки выбранного устройства я использую поля, чтобы уменьшить ошибку оператора и уменьшить количество кнопок(т.к. штатной функции выделения нет )
5 - Для вызова мнемосхемы данного устройства используется нажатие мыши. (все команды только по нажатию мыши)

ВОПРОС: Как реализовать подобный интерфейс с помощью клавиатуры (переход по Tab или Up,Down,Left,Right)+ запуск "РЕАКЦИИ"

(Отредактировано автором: 26 Марта, 2014 - 10:53:22)

 
 Top
Shutin D.V.
Отправлено: 26 Марта, 2014 - 15:06:48
Post Id



Пользователь
Newbie


Покинул форум
Сообщений всего: 36
Дата рег-ции: Сент. 2010  





Добрый день,
Выделение примитивов по табуляции быстро и просто реализовать не удастся. Оборудование у Вас, вероятно, представлено в виде примитивов Рисунок, а у него нет анимации инверсия границ. Вам придется вписывать изображения оборудования в специальные примитивы и у них анимировать границы. Управление с клавиатуры возможно, но придется на каждый примитив вешать обработчик нажатия клавиши и определять что надо выделить. Ошибки оператора не будет так как в том окне, которое Вы откроете, обязательно должно быть написано к чему это окно относится. Пришлите Ваш проект, посмотрим, что можно сделать в этом случае.
 
 Top
Shutin D.V.
Отправлено: 31 Марта, 2014 - 17:50:35
Post Id



Пользователь
Newbie


Покинул форум
Сообщений всего: 36
Дата рег-ции: Сент. 2010  





Добрый день,
Во-первых структура Вашего проекта неверная, с точки зрения проектирования. Каждая кнопка у Вас отвечает за один агрегат и предоставляет по нему всю информацию. Соответвенно, необходимо создать отдельные объекты для каждого из них, с мнемохемой, которая будет содержать прямоугольник для подсветки выбранного устройства и примитив кнопки и тегом в котором будет храниться текущее состояние кнопки и ее индексы в карте объектов всего проекта (по x и у). На панели Вы должны создать скрипт, который будет управлять видимостью всех примитивов панели. Проще всего такой скрипт повесить на подложку панели с кнопками. Все кнопки будут размещены группами в виде сцен. При обработке перемещения кнопками мыши должна происходить обработка изменения текущего индекса, то есть изменение атрибута тега подсвечиваемой кнопки. Общая схема оборудования в этом случае будет чисто информационной и будет подсвечивать оборудование также по изменению атрибутов тегов.

Из Вашего описания не совсем понятно планируете ли вы ставить систему непосредственно в цехе, где у Вас будет управление только с клавиатуры, либо у Вас будет манипулятор типа мышь всегда. Возможно у Вас будет реализована комбинированная архитектура и тогда было бы неплохо сделать вызов открывающихся окон по клику мыши на плане цеха по оборудованию. Однако если Вы будете использовать помимо Среды Исполенения клиенты, то теги будут изменяться для них для всех. От того какую конфигурацию системы Вы предполагаете использовать будет зависить реализация графического проекта. Убрать закладку сверху в настоящее время не предсталяется возможным, там надо отобразить наименование Вашего объекта автоматизации.
 
 Top
sialiv
Отправлено: 01 Апреля, 2014 - 11:20:32
Post Id



Пользователь
Member


Покинул форум
Сообщений всего: 134
Дата рег-ции: Окт. 2013  





Здравствуйте.

шаблон:
1 - Создал шаблон с переменной "index" ,"ID-поле" , "vizio" и прямоугольник
2 - Создал в шаблоне скрипт по [index], который [ if (index==ID) {vizio=true} else {vizio=false};]

мнемосхема:
3 - Создал скрипт по "Enter" запуск мнемосхемы по "index"
4 - Создал скрипт по изменению "index" с клавиатуры Up++,Down--

В результате:
1 - События клавиатуры прописаны в примитиве, а работают в мнемосхеме. (клавиатура глобальна)
2 - Если окно не выбрать "мышью", то клавиатура не работает.
3 - Если во всплывающем окне есть элементы управления, они не работают от клавиатуры
4 - Если в Сцене есть управляющие элементы, с клавиатуры не работают.
5 - Отсутствует механизм передачи фокуса с клавиатуры.(TabStop)

ВЫВОД: Управление системой SCADA с клавиатуры невозможно.(Надеюсь Я ошибся?)
 
 Top
Shutin D.V.
Отправлено: 02 Апреля, 2014 - 10:07:38
Post Id



Пользователь
Newbie


Покинул форум
Сообщений всего: 36
Дата рег-ции: Сент. 2010  





1. Из ваших пояснений не понятно, хотите ли Dы полностью избавиться от мыши или нет. Должна ли быть у оператора возможность управлять мышью, и насколько будут разделены функции манипулятора и клавиатуры? Какое оборудование Вы предполагаете на производстве использовать? Вы должны строить весь интерфейс проекта от ответов на эти вопросы.

2. Реакции отрабатывают по очереди наложенных друг на друга примитивов.

3. Естественно, что мнемосхема - это не форма приложения и нужно TabStop и фокус обрабатывать скриптом. Это дополнительная работа.

4. Управление с клавиатуры возможно, но придется поработать разработчику проекта. Мы даем возможность использовать скрипты со всем арсеналом .Net, а дальше пользователь сам решает, что и как разрабатывает. Если у Вас в данный момент пока не получается реализовать такой сложный механизм взаимодействия, может Вам стоит упростить задачу?
 
 Top
sialiv
Отправлено: 02 Апреля, 2014 - 11:27:15
Post Id



Пользователь
Member


Покинул форум
Сообщений всего: 134
Дата рег-ции: Окт. 2013  





Мне необходимо работать с клавиатуры т.к СКАДА находится непосредственно в цеху, а мышь работает и сейчас нормально.

Я решил реализовать все в одном окне, а всплывающие окна использовать как индикация информации.
Используя ваш совет с изменением индекса(2-х индексов) и привязанного макроса все получится без "фокуса" т.к он не будет теряться.

PS:При переходе на элемент управления во всплывающем окне, рабочий стол теряет фокус.
Как вернуть фокус обратно?

(Отредактировано автором: 03 Апреля, 2014 - 09:53:08)

 
 Top
Support
Отправлено: 03 Апреля, 2014 - 13:21:01
Post Id



Администратор
Full Member


Покинул форум
Сообщений всего: 206
Дата рег-ции: Сент. 2010  





Это правильные решения. Делайте все на одной мнемосхеме и как можно проще.
Тема закрыта!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« SCADA/HMI DataRate »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by ExBB FM 1.0 Final