Сосонкин_Системы_ЧПУ (1087166), страница 28
Текст из файла (страница 28)
Эти разделы и служат объектами дальнейшего рассмотрения.3.4.1. Интерпретатор диалога операторав Windows-интерфейсеСовременные системы управления используют архитектуру персонального компьютера и располагают широкими возможностями организациичеловеко-машинного интерфейса MMI (Man-Machine Interface) в операционных средах Windows NT или Windows 95/98. Терминальную задачу управления обычно сводят к проблеме построения MMI [21]; в этом случаезадача выполняет функции клиента в клиент-серверной архитектуре математического обеспечения системы управления.
Проектирование MMI-приложения предполагает создание скелета приложения, реализацию экранов,разработку интерпретатора диалога, организацию информационных сессий с другими модулями системы управления.Этап разработки интерпретатора диалога наиболее сложен. В числе функций диалога можно обозначить: получение текущей информации о процессе управления; тестирование системы и объекта; редактирование и моделирование управляющей программы; ручной ввод и управление отработкой данных; ввод программы и автоматическое управление; управлениеналадочными операциями. Диалог устанавливает допустимые переходымежду состояниями MMI-приложения, в рамках которых и воспроизводятся необходимые функции. Оператор системы управления задает переходы между состояниями с помощью аппаратной и функциональной кла-156В.Л.
Сосонкин, Г.М. Мартинов. Системы числового программного управленияРис. 94. Пример экрана MMI-приложениявиатуры, причем роль последней преобладает. Заметим, что использование мыши, как правило, недопустимо. На рис. 94 показан пример экрана, вкотором размещается базовое окно (frame window) MMI-приложения.
Базовое окно состоит из трех компонентов: окна статуса (StatusBar), рабочейобласти, области функциональной клавиатуры (ToolBar).Рабочая область базового окна покрыта окнами-панелями с рамками изаголовками; каждая панель предоставляет функционально-однороднуюинформацию. Панель в свою очередь содержит управляющие элементы(control elements), которые предназначены для динамического отображения данных, поступающих от сервера или вводимых оператором с помощью клавиатуры.
Управляющие элементы могут быть выбраны на этапепроектирования экрана из стандартной библиотеки (галереи управляющихэлементов) или подлежат проектированию в соответствии с требованиямизаказчика.Окно статуса точно так же состоит из панелей с управляющими элементами: специфическими (пиктограммами режимов и подрежимов, индикаторами готовности, индикаторами используемых системных ресурсов,индикаторами даты и времени) или общего характера (такими же, как и врабочей области, -для слежения за информацией закрытой при смене картинки рабочей области).Область функциональной клавиатуры представлена кнопками, каждаяиз которых является управляющим элементом, имеющим динамическоеимя. Типы и состояния кнопок показаны на рис. 95. Традиционный типГлава 3.
Задачи управления157кнопки - «Клавиша», нажатие которой переводит систему в новый режим(подрежим) или открывает диалог овое окно. Кнопка «Ввод» работает также, как и соответствующая клавиша на панели оператора. Кнопка типа«Функция» инициирует выполнение некоторой функции без предварительных запросов и подтверждений. Кнопка «Ввод функции» объединяет возможности двух предыдущих кнопок. Кнопка «Селектор» выбирает однуиз двух функций (например, метрическую или дюймовую размерность).«Мультиселектор» представляет собой группу, в которой активизация одной кнопки деактивирует все остальные. Кнопка «Триггер» последовательно активирует и деактивирует выбранную функцию.
Все кнопки могутнаходиться в следующих состояниях: г отовности, когда они доступны оператору («ненажатое» состояние); работы под воздействием оператора («нажатое» состояние); блокировки, когда они отсутствуют в области функциональной клавиатуры или когда воздействие на них оператора игнорируется («заблокированное» состояние).Структура диалога в гибкой системе управления с открытой архитектурой определяется заказчиком системы ЧПУ, для которого привычнымязыком внешнего описания диалога служит «дерево» режимов и подрежимов. Ветвям «дерева» приписаны имена кнопок функциональной клавиатуры.
На рис. 96 представлен фрагмент «дерева» для режима автоматического управления в одной из систем ЧПУ. Недостатки подобного представления состоят в отсутствии возвратов к началу диалога или его раннимТип^ ^ \ - ^ ^Ч.Ненажатое2.Нажатое3.Заблокированное1.КлавишаЁЗЭ2.Ввод3.Функция4.Ввод функцииПНввННИП!ШШ5.Селекторб.Мультиселектор7.ТриггерРис. 95. Типы и состояния кнопок158IВ.Л. Сосонкин, Г.М.
Мартинов. Системы числового программного управленияАвтомат.IIСписокпрограммhНПрограммаI ]Редакторпрограммы^||ЗапускГрафикаыВыходПрограмма^•\чhн•\| Управление|ВыходIчВыборМасштаб"Iр|Номер|^Новая|-|Изменить|Выход|ЦОбычныйОчистка экранаВыходРестартПозицияВыходРис. 96. Фрагмент «дерева» для резкими автоматического управлениястадиям, в плохой обозримости «дерева», а также в том, что «дерево» непоясняет структуры функциональной клавиатуры.В этой связи предлагаем описывать диалог, как это показано на рис.
97,для того же его фрагмента. Формальной моделью служит иерархическийграф состояний, вершины которого отражают устойчивые состояния MMIпосле нажатия оператором той или иной клавиши панели оператора, а дугинагружены именами функциональной клавиатуры или других клавишей.Сложное состояние (двойной кружок) само по себе является графом,который раскрывается так, как показано в прямоугольном контуре нарис. 98. Иерархические графы удобны для описания многорежимныхм ногоуровневых диалогов и позволяют проектировать диалог «шаг за шагом» - от укрупненного выбора режимов к детальному определению поддерживаемых функций. При этом возможно описывать процесс управления не только с использованием функциональной клавиатуры, но и с помощью меню, дерева навигации и т.д.В графе состояний могут быть определены две группы переходов:• транзитивные, связанные со сменой состояний;• нетранзитивные, отображаемые дугой, возвращающейся в прежнеесостояние.159Глава 3.
Задачи управленияПереход любого типа инициируется нажатием клавиши, имя которойприписано переходу (дуге). Поскольку каждая клавиша генерирует свойсобственный код (сканкод), этот код также сопоставляется переходу (дуге).По своей сути переход есть запрос на услугу, которая содержательно представляет собой смену экранов, обновление имен клавиатуры экрана, обращение к серверу и др. Услуги реализуются объектами, которые работают всостояниях MMI (имена классов объектов обозначают состояния графа,рис. 97).
Таким образом, ход диалога представляет собой последовательность следующих событий:• нажатие клавиши оператором и генерация сканкода;• обращение к объекту (для транзитивных переходов - в новом состоянии; для нетранзитивных переходов - в старом состоянии) с запросом науслугу (или услуги);• реализация услуг объектом;ГРестарт'ВыборПозицияСписок /программ/РедакторпрограммыЗапускГрафикаВыходВ ы х о д^Очистка экрана-^ А-»-**"МасштабCGraphic_SОбычный ЧУ ПрограммаИзменитьРис. 97.
Фрагмент графа резкими автоматического управления160В.Л. Сосонкин, Г.М. Мартинов. Системы числового программного управления* ожидание очередных действий оператора.Эту цепочку называют последовательностью актов [62], в числе которых есть входные (нажатия клавишей) и выходные (все остальные). Выходные акты порождаются в результате интерпретации входных.Следовательно, интерпретатор диалога есть механизм последовательного вызова услуг соответственно действиям оператора, выражающимся внажатии клавишей. Помимо вызова услуг интерпретатор осуществляет синтаксический контроль действий оператора. Для генерации C++ кодов интерпретатора разработана инструментальная система State Machine Builder.На рис. 98 показано рабочее окно инструментальной системы.В рамках инструментальной системы визуального проектирования задание вводят непосредственно в виде иерархического графа.
В диалоговом режиме устанавливают имена состояний и свойства переходов. Глубина вложения назначается разработчиком по его усмотрению, что позволяМенюВыход!РПереход брежим 2ПанельинструментовСтрокасостоянияРабота/стопРабочаяобластьРис. 98. Рабочее окно инструментальной системы генерацииC++ кода интерпретатора диалогаГлава 3. Задачи управления-| g -|ет концентрировать внимание на текущих фрагментах диалога. Разработчикдолжен также обозначить имена файлов, в которых будут сгенерированыклассы состояния и т.д. Применение системы визуального проектированиямногократно повышает производительность разработчика, позволяет создавать, а впоследствии и развивать сложные интерпретаторы, реализация которых без инструментальной поддержки весьма проблематична.3.4.2.
Специфика построения редактора управляющихпрограмм в коде ISO-7bit (в составе терминальной задачи)К редактору управляющих программ предъявляют как стандартные требования, характерные для текстового редактора, так и ряд специфическихтребований. К стандартным требованиям относятся:• ввод и редактирование текста, скроллинг и перелистывание страниц; операции перехода, контекстного поиска и замены;• блоковые операции маркировки, удаления, копирования, перемещения, загрузки и добавления блоков.К специфическим требованиям относятся:• перенумерация после изъятия-включения кадров;• изменение масштаба и размерности;• вывод активных G-функций (G-вектора) на основе предысториикадра;• синтаксический и семантический контроль;• диалоговый (графический) ввод кадра и параметров стандартныхциклов (файлы графической помощи находятся в составе конфигурационного файла);• создание управляющих программ (УП) в режиме обучения [61].Средства отладки программ включают:• пространственное графическое моделирование траектории инструмента с различением (по цвету, типу и толщине линий) быстрых и рабочихперемещений;• активное использование точек останова (break points), используемых, в том числе, для выделения фрагментов графического изображения;• масштабирование графического изображения (zooming);• поддержку различных режимов изображения (пошаговый, автоматический, между точками останова, со skip-пропуском);• моделирование оставшейся части программы по отношению к текущей позиции станка.Подобные возможности требуют включения в состав редактора некоторого ядра и дополнительных подсистем: интерпретатора управляющихпрограмм (для любых версий кода ISO-7bit) и имитатора интерполяторадля рисования траекторий.-| g2В.Л.