Сосонкин В.Л. 2005 Системы числового программного управления (841803), страница 28
Текст из файла (страница 28)
Ветвям «дерева» приписаны имена кнопок функциональной клавиатуры. На рис. 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В.Л.
Сосонкин, Г.М. Мартинов. Системы числового программного управленияГоворя о редакторе, необходимо затронуть проблему представления управляющих программ в коде ISO-7bit. Стандарт этого кода, принятый в1970-х годах, практически не перетерпел изменений и тормозит использование сложных алгоритмов интерполяции (таких, как сплайновая интерполяция в реальном времени), управление лазерной и электроэррозионной обработкой и др. По этой причине производители систем ЧПУ используют собственные версии кода IS0-7bit в соответствии с потребностямисвоего круга пользователей. Многие версии не имеют четкой структуры, аих синтаксис базируется скорее на исключениях, чем правилах, посколькуверсии создавались без общей концепции и расширялись стихийно. Темне менее код IS0-7bit остается действующим стандартом и ни одна система ЧПУ не может его игнорировать.
Заметим также, что все CAD-CAMсистемы генерируют выходной файл в формате ISO-7bit. В этой связи существует потребность в редакторе, конфигурируемом под конкретную версию кода ISO-7bit.Конфигуратор формализует код ISO7-bit путем выделения в нем нескольких уровней абстракции. На первом уровне определяется системакоманд (G-функций) и параметры каждой команды. Следующий уровеньразбивает систему команд на группы по функциональному назначениюG-функций и формирует G-вектор активных команд.
Последний уровеньабстракции назначает списки разделителей, комментариев, имен осей иадресов, имен G-функций. Подобным способом удается формализовать любую версию кода ISO7-bit и соответствующим способом сконфигурировать редактор.Основной принцип реализации редактора состоит в его модульности(рис.
99), которая позволяет применить стандартные Windows-решения(механизм «документ-представление», ActiveX-элементы в интерфейсе оператора, концентрацию ресурсов в ресурсных библиотеках для локализации на разных языках), использовать объектно-ориентированный подход,при котором каждому компоненту структуры редактора сопоставлен свойсобственный набор объектов.Первый модуль представляет собой клиентскую часть, определяющую,будет ли редактор независимым приложением или «встроенным» в режимсистемы ЧПУ. Второй, серверный модуль, выполненный в виде DLL-библиотеки, предлагает клиентской части полный набор сервисных функцийи «скрывает» от клиентской части наличие других модулей. ВиртуальнаяISO-машина, построенная в виде DLL-библиотеки, выполняет такие операции над кадрами, как синтаксический и семантический контроль, конвертацию и интерпретацию кадра, вычисление G-вектора и т.д.
Компоненты графического моделирования траектории инструмента также выделены в набор модулей и реализованы в виде ActiveX-элементов.163iveXГлава 3. Задачи управленияXX-Ос_S. Q 5Оо О %о п по1ОююпXXXXXXп• 1 •е« . Q8.оо0)XXП Компо ос1оXграфикщОсмохоI•8II164В.Л. Сосонкин, Г.М. Мартинов. Системы числового программного управленияВиртуальная ISO-машина считывает конфигурационный файл (*.cfg) инастраивается на текущую версию кода ISO-7bit. Документ управляющейпрограммы серверного модуля осуществляет работу с файлами управляющей программы. Файл загружается в документ и отображается (представляется) по-разному в зависимости от текущего режима редактора. Так, однии те же данные могут быть представлены в виде панели адресов, в текстовом или графическом формате или в виде графической модели траектоНезависимое приложениеИнтерфейс операторасистемы ЧПУ3D симуляцияна базе OpenGLРис.
100. Версии ActiveX-управляющих элементовдля системы графического моделирования траектории инструментаГлава 3. Задачи управления-| 0 5рии. Для интерпретации и конвертации кадра документ обращается к виртуальной ISO-машине. После интерпретации кадров виртуальная ISO-машина генерирует входной код интерполятора, IPD-код (Interpolator Data) исохраняет его в файле. IPD-файлы считываются IPD-документом, которыйотображается в представление графического моделирования.Клиентская часть генерирует функциональную клавиатуру, которая позволяет управлять редактором, а также окно статуса, где в процессе работы отображается контекстно-зависимая информация.Редактор управляющих программ имеет архитектуру, открытую дляконечных пользователей, разработчиков самого редактора, внешних приложений. Для конечных пользователей это прежде всего означает возможность конфигурации на различные версии языка ISO-7bit с помощьюконфигурационного файла, имеющего текстовый формат.















