СОВРЕМЕННАЯ ТРАКТОВКА ЯЗЫКА УПРАВЛЯЮЩИХ ПРОГРАММ ISO-7BIT ПРИ ПОСТРОЕНИИ ВИРТУАЛЬНОЙ ISO МАШИНЫ
Мартинов Г.М.
(Москва, МГТУ СТАНКИН)
Зоненштейн И.И.
(Москва, МГТУ СТАНКИН)

        Стандарт языка управляющих программ ISO-7bit принятый в 70-х годах практически не изменился. Новые решения, реализованные в системах ЧПУ, использование сложных алгоритмов интерполяции (такие как сплайновая интерполяция в реальном времени), управление не традиционными процессами обработки (лазерная, электроэрозионная резка и др.) потребовали переработки и расширения некоторых положений языка ISO-7bit.Возникшие противоречия между жесткостью стандарта и потребностями в новых возможностях производители систем ЧПУ решали по-своему. В результате сформировались два пути решения этой проблемы:

  • возникло множество языков управляющих программ высокого уровня типа AnlogC фирмы ANDRON (ФРГ), но эти языки слишком сложны к изучению и имеют ограниченное применение;
  • практически каждый производитель систем ЧПУ выпускает свою версию языка ISO-7bit в соответствии с потребностями круга его пользователей.

        Необходимо отметить, что многие версии языка ISO-7bit не имеют четкой структуры и их синтаксис часто базируется на исключениях, а не на правилах. Это объясняется тем, что эти версии создавались с ограниченными возможностями, без общей концепции при этом расширялись стихийно, под давлением пользователей. Результатом этого развития явилось наличие дублирующихся имен адресов и осей, использование нестандартных символов в качестве конца кадра, нестандартные форматы комментариев, и т.д.
        Тем не менее, язык ISO-7bit является действующим стандартом и ни одна система в мире не выпускается без него. Как правило, все CAD-САМ системы генерируют выходной файл в формате языка ISO-7bit. В связи с этим возникает потребность в некоторой универсальной системе, конфигурируемой на конкретную версию языка ISO-7bit, которая бы позволяла осуществлять интерпретацию, конвертацию и интерполяцию кадра управляющей программы.
        Для решения этих проблем создана виртуальная ISO машина. Она реализована таким образом, что воспринимает инструкции языка ISO-7bit, как если бы они были машинными инструкциями.

        Виртуальная ISO машина базируется на основных принципах построения ISO-процессора [1], но в дополнение к этому виртуальная ISO машина обладает новыми возможностями, в том числе конфигуратором, позволяющим настраивать ее на любую версию языка ISO-7bit.
        Для формирования системы команд и структуры виртуальной ISO машины используются операторы языка ISO-7bit управляющей программы ЧПУ в ее традиционном виде; однако информация управляющей программы трактуется иным образом, используя при этом несколько уровней абстракции.
        Базовый уровень абстракции формально разграничивает функции, несущие алгоритмическое наполнение кадра управляющей программы и функции, обозначающие структуры данных кадра.
        Кадр управляющей программы на языке ISO-7bit несет информацию о заявленных алгоритмах и структурах данных. Алгоритмы представлены подготовительными функциями (G-функциями). Структуру данных составляют функции размерных перемещений (Х, Y, Z, I, J, К, R), функция подачи (F), функция скорости главного движения (S). Функции структур данных можно рассматривать как параметры G-функции, а сами G-функции как систему команд виртуальной ISO машины.
        Следующий уровень абстракции разбивает G-функции системы команд на группы, определяющие их функциональное назначение. В каждой группе выделены одна или несколько подгрупп ортогональных (взаимоисключающих) G-функций. Любая подгруппа может быть модальной (G-функция активна пока в кадре не встретится другая G-функция этой же подгруппы) или не модальной (G-функция активна в пределе текущего кадра). В модальной подгруппе выделяется активная G-функция по умолчанию.
        Активные в данный момент подготовительные функции (команды) образуют G-вектор, размерность которого определяется количеством ортогональных подгрупп, а следовательно, зависит от конкретной версии языка.
        Последний уровень абстракции определяет списки разделителей комментариев, имен осей, имен адресов и имен G-функций. Эти списки специфичны для каждой версии языка ISO-7bit.
        Возможно формализовать описанным выше способом практически любую версию языка управляющих программ ISO-7bit и в соответствии с формализацией настроить виртуальную ISO машину, что, например, позволяет ей быть не чувствительной к форме задания кадра (см. Табл. 1.).

Табл. 1

Кадр Коментарий
G01 X20.00 Y30.00
F2500.
стандартное задание блока
Варианты нестандартного задания блока
G1X20.00Y30.00F2500. отсутствуют пробелы
G1X20.Y30.
F2500;
символ ";" указывает конец кадра
G1,X20.00,Y30.00,F2500. символ "," используется как разделитель
g01 x20.00 y30.00
f2500.
не прописные символы
f2500y30x20g1 обратный порядок задания адресов и G-функции
G  1  X  20.00  Y
30.00  F  2500.
адреса отделены от значений обоющенными пробелами

        Рассмотрим гипотетические возможности виртуальной ISO машины и пример создания на базе ее инструмента разработки и верификации управляющих программ (NC_PTD).
        Особенности предполагаемого подхода состоят в том, что функциональное наполнение алгоритмов связано с конкретными подготовительными функциями, т.е. структура системы команд отображается в ресурсах системы управления. Такая схема, построенная на базе объектно-ориентированного подхода, обеспечивает гибкость, поскольку функциональное назначение и возможности системы определяется множеством выбранных подготовительных функций на этапе конфигурации.
        Определенное в результате разбиения G-функций системы команд на группы число групп G-функций задает количество групповых интерпретаторов; а в каждом интерпретаторе заложены подгруппы, с которыми он работает, но не определены G-функции, входящие в каждую подгруппу. Групповой интерпретатор обращается к подготовительной функции как к соответствующей координате G-вектора и передает ей управление.
        Описанная схема работы групповых интерпретаторов универсальна, в силу абстрагирования от конкретной версии языка ISO-7bit. Она базируется на фундаментальных положениях стандарта ISO-7bit.
        Имея виртуальную ISO машину как автономный модуль и используя принципы открытой архитектуры, можно строить приложения работающие с языком ISO-7bit (редакторы управляющих программ, интерпретаторы и т.д.), работающие как на самом станке, так и в отделе подготовки управляющих программ.
        Рассмотрим проблему построения инструмента подготовки и верификации управляющих программ NC_PDT (NC Program Developer Tool) на базе виртуальной ISO машины.NC_PDT может быт реализован в системе ЧПУ как автономное приложение или в составе ММI (Man Machine Interface) (см. [2]). Основные требования, предъявляемые к инструменту подготовки и верификации управляющих программ приведены в Табл. 2.

Табл. 2
Требования
к текстовому процессору проблемно-ориентированные
Открытость
Поддержка работы с длинными
именами файлов Windows 95/NT,
механизмов Drag and Drop и OLE.
Использование OOC_CL для взаимодействия
с NC-подсистеммой.
Интерактивность
Наличие развитой интерактивной
информационной справочной
подсистемы.
Осуществление интерактивного
синтаксического, отчасти семантического
контроля кадра управляющей программы и
действий оператора, приведение кадров УП к
нормальному виду, графическая эмуляция
отработки управляющей программы.
Адаптируемость
Интерфейса (GUI) Настройка на конкретную версию семантики
языка ISO 7-bit DIN 66025 с возможностью
смены версий в процессе работы.
Высокая производительность
Редактирование нескольких файлов
управляющих программам
одновременно поддержка быстрой
работы с файлами любого размера (10-
100MB) без дополнительной RAM.
При осуществлении симуляции управляющих
программ.
Эргономичность
Поддержка:
  • неограниченного числа уровней
    отмены действий пользователя;
  • стандартных блоковых операций;
  • работа с закладками;
  • интерактивного поиска и замены;
  • контрольно зависимой обработки
    нажатия правой кнопки мыши.

Наличие интерактивного развитого
объектно-ориентированного GUI,
делающего процесс программирования
интуитивным.

Поддержка:
  • работы с панели оператора, не имеющей
    полного набора клавиш стандартной
    клавиатуры PC;
  • вычисление текущего G-вектора;
  • ренумерации кадров в блоке;
  • масштабирование осей, с возможностью
    интерактивной установки масштабных
    коэффициентов;
  • зеркализирование осей.

Осуществление в процессе работы выделения
цветом объектов управляющих программ:
групп G-функций, осей и адресов.

        Все функции по интерпретации конвертированию, отработке кадра выполняет виртуальная ISO машина. Она реализуется как DLL (Dinamic Link Library) и NC_PDT использует стандартный механизм работы с DLL для управления виртуальной ISO машиной. Необходимо отметить, что NC_PDT может переопределить некоторые механизмы виртуальной ISO машины, например, обработчик ошибок (error handler).
        Ключевым моментом при проектировании NC_PDT является механизм быстрой работы с файлами большого объема. Реализованный нами алгоритм работы с файлами назван алгоритмом "сообщающихся файлов", по аналогии сообщающимися сосудами.
        Два файла, нижний из которых хранит строки реверсивно (см. Рис. 1), сообщаются через буфер. Часть данных этого буфера отображается на экран.
        Переход в конец файла осуществляется путем сброса буфера в конец верхнего файла, перекачки необходимого количества строк из нижнего файла в верхний и считывания буфера из нижнего файла. Операции перехода в начало файла, поиск строки, позиционирования и работа с блоками реализованы аналогично.

art10_1.gif (12088 bytes)

Рис. 1.

        Построение прикладных приложений для создания и верификации управляющих программ, как и построение интерпретаторов, в современных системах ЧПУ по типу виртуальной ISO машины открывает дополнительные резервы одновременного повышения быстродействия и гибкости. Открытая модульная архитектура программы базирующейся на виртуальной ISO машине обусловленная объектно-ориентированной моделью самой ISO машины, обеспечивает возможность эволюции устройств ЧПУ.

ЛИТЕРАТУРА:

  1. Сосонкин В.Л., Мартинов Г.М. Концепция геометрического ISO-процессора для систем ЧПУ //Станки и инструмент. 1994. #7.
  2. Мартинов Г.М. Открытая система ЧПУ на базе общей магистрали. //Автомобильная промышленность. 1997. #4.