» Программное обеспечение » SCADA/HMI DataRate » Скорость обработки мнемосхемы

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

1. sialiv - 24 Марта, 2014 - 13:40:57 - перейти к сообщению
Здравствуйте!

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

Как справиться с этой проблемой?
2. Shutin D.V. - 25 Марта, 2014 - 09:19:02 - перейти к сообщению
Добрый день!
Каждое малейшее движение мыши обрабатывается, а при наведении на примитив, у Вас фактически все 40 атрибутов передергиваются. Учитавайте, что мнемосхема обновляется 4 раза в секунду. Управлять какими-то механизмами через контроллер по реакции вход/выход курсора является довольно опасным мероприятием и даже запрещено на некоторых производствах. Возможно лучше воспользоваться обычным нажатием кнопки мыши? При этом при выставленном флаге в единицу прямоугольник будет вминаться, а при нуле наоборот. Есть ли у Вас необходимость использовать имеенно вход/выход курсора? Обычно такие большие табло создаются на основе сцен и отдельных объетов с тегами. Посмотрите как реализованы подобные вещи в Библиотеке энергоучета. Наверняка у Вас все кнопки одинаковые и раскрашиваются подобным образом. Вам досточно будет иметь один объект, которым можно будет пользоваться много раз. Соответвенно, Вам необходимо cоздать мнемохему с кнопкой или группой кнопок, которые будут работать со своими тегами, а затем по какой-то команде собираться вместе и записываться в контроллер.
3. sialiv - 25 Марта, 2014 - 10:53:40 - перейти к сообщению
1 - задачи управлять контроллером нет.
2 - Мнемосхема содержит план размещения оборудования(цех, участок, оборудование)
3 - Всего планируется примерно 100 полей.
4 - Для подсветки выбранного устройства я использую поля, чтобы уменьшить ошибку оператора и уменьшить количество кнопок(т.к. штатной функции выделения нет )
5 - Для вызова мнемосхемы данного устройства используется нажатие мыши. (все команды только по нажатию мыши)

ВОПРОС: Как реализовать подобный интерфейс с помощью клавиатуры (переход по Tab или Up,Down,Left,Right)+ запуск "РЕАКЦИИ"
4. Shutin D.V. - 26 Марта, 2014 - 15:06:48 - перейти к сообщению
Добрый день,
Выделение примитивов по табуляции быстро и просто реализовать не удастся. Оборудование у Вас, вероятно, представлено в виде примитивов Рисунок, а у него нет анимации инверсия границ. Вам придется вписывать изображения оборудования в специальные примитивы и у них анимировать границы. Управление с клавиатуры возможно, но придется на каждый примитив вешать обработчик нажатия клавиши и определять что надо выделить. Ошибки оператора не будет так как в том окне, которое Вы откроете, обязательно должно быть написано к чему это окно относится. Пришлите Ваш проект, посмотрим, что можно сделать в этом случае.
5. Shutin D.V. - 31 Марта, 2014 - 17:50:35 - перейти к сообщению
Добрый день,
Во-первых структура Вашего проекта неверная, с точки зрения проектирования. Каждая кнопка у Вас отвечает за один агрегат и предоставляет по нему всю информацию. Соответвенно, необходимо создать отдельные объекты для каждого из них, с мнемохемой, которая будет содержать прямоугольник для подсветки выбранного устройства и примитив кнопки и тегом в котором будет храниться текущее состояние кнопки и ее индексы в карте объектов всего проекта (по x и у). На панели Вы должны создать скрипт, который будет управлять видимостью всех примитивов панели. Проще всего такой скрипт повесить на подложку панели с кнопками. Все кнопки будут размещены группами в виде сцен. При обработке перемещения кнопками мыши должна происходить обработка изменения текущего индекса, то есть изменение атрибута тега подсвечиваемой кнопки. Общая схема оборудования в этом случае будет чисто информационной и будет подсвечивать оборудование также по изменению атрибутов тегов.

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

шаблон:
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 с клавиатуры невозможно.(Надеюсь Я ошибся?)
7. Shutin D.V. - 02 Апреля, 2014 - 10:07:38 - перейти к сообщению
1. Из ваших пояснений не понятно, хотите ли Dы полностью избавиться от мыши или нет. Должна ли быть у оператора возможность управлять мышью, и насколько будут разделены функции манипулятора и клавиатуры? Какое оборудование Вы предполагаете на производстве использовать? Вы должны строить весь интерфейс проекта от ответов на эти вопросы.

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

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

4. Управление с клавиатуры возможно, но придется поработать разработчику проекта. Мы даем возможность использовать скрипты со всем арсеналом .Net, а дальше пользователь сам решает, что и как разрабатывает. Если у Вас в данный момент пока не получается реализовать такой сложный механизм взаимодействия, может Вам стоит упростить задачу?
8. sialiv - 02 Апреля, 2014 - 11:27:15 - перейти к сообщению
Мне необходимо работать с клавиатуры т.к СКАДА находится непосредственно в цеху, а мышь работает и сейчас нормально.

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

PS:При переходе на элемент управления во всплывающем окне, рабочий стол теряет фокус.
Как вернуть фокус обратно?
9. Support - 03 Апреля, 2014 - 13:21:01 - перейти к сообщению
Это правильные решения. Делайте все на одной мнемосхеме и как можно проще.

Powered by ExBB FM 1.0 Final