Сосонкин В.Л. 2005 Системы числового программного управления (841803), страница 22
Текст из файла (страница 22)
Полная объектная архитектура ISO-процессораШаг 1: перевод (конвертирование) кадра управляющей программы во внутренний формат. В кадре выделяются G-функции (команды ISO-процессора),перемещения (первый тип параметров), адреса (второй тип параметров) икомментарии. Пример подобного «разбора» кадра показан в табл. 5.Таблица 5.
Пример разбора кадра на первом шаге интерпретацииПример кадраN20G-функцииПеремещенияАдресаКомментарииN70G91G01091G01Х20.5Y37.5Х20.5Y37.5F2500 *CommentF250O*CommentШаг 2: формирование активного G-вектора, размерность (число координат) которого соответствует числу групп G-функций (команд) в рабочейверсии кода IS0-7bit. Всякая новая G-команда включается в ту координату124В.Л. Сосонкин, Г.М. Мартинов. Системы числового программного управления!S0-7bitПеревод кадра вовнутреннийформат(CParserConvertei)Формирование Gвектора (CSubPrc)Генерация IPD-код»для G- и М- командIPD(CG..., СМ..)Интерпретациякадра групповымиинтерпретаторами(CSubPrc)Выделениегеометрическихперемещений(CSubPrc)Эквидистантный анализ(CISOProcessor)Формированиекольцевогобуффера(CArraySubPrc)Рис.
74. Конвейер ISO-процессораG-вектора, которая соответствует номеру группы G-команды, и будет существовать, пока ее не заменит другая модальная G-команда из той жегруппы. Немодальные команды деактивируются в G-векторы после завершения интерпретации кадра.Шаг 3: интерпретация кадра групповыми интерпретаторами (Dimension,Plane, Delay и др.), которые привязаны к группам G-функций и, соответственно, координатам G-вектора.
Вызов того или иного группового интерпретатора определяет порядок выполнения интерпретации, который непосредственно зависит от версии кода ISO-7bit.Шаг 4: назначение геометрических перемещений (при активной эквидистантной коррекции) в объектах классов CLine, CCircle, CPoint.Шаг 5: эквидистантная коррекция, в процессе которой осуществляетсяперерасчет траектории инструмента с учетом его размеров.Шаг 6: формирование кольцевого буфера кадров и «окна просмотратраектории». Цель состоит в корректной стыковке соседних эквидистантных контуров.125Глава 3. Задачи управленияШаг 7: генерация выходного IPD-кода активными командами G-вектора в соответствии с текущими значениями параметров после обращения кним групповых интерпретаторов.Объектная реализация архитектуры и системы команд ISO-процессоранасчитывает более 70 классов, поэтому поясним далее лишь некоторыемоменты.
Диаграмма конвейера интерпретатора представлена на рис. 75.Основной цикл создает функция ExecuteBlock() класса CISOProcessor она вызывает функцию CalckGVectorBlockO того же класса для выполнения двух первых шагов конвейера. После этого вызывается функцияInterpretatorO класса CSubPRC (текущего интерпретируемого кадра) длявыполнения третьего шага, в рамках которого и вызываются групповыеинтерпретаторы StandartCyclesO, DebugO, DimensionO, PlaneO- Если эквидистантная коррекция активна, то вызывается функция Equidistant_TaskOCISOProcessor:.ExecuteBlock()Cl SO ProcessorРгс:CSubPrcI1m_GVector[in_lnterpolatB]:CGCommand•1 : CaloGVectorForBbck(cons( char*)2: lnt<rpretator( {I3: MPrefixf)4:Oelay()5: Dimension()6: Plane()7: Equidist_Task()8: BufferCross()Шаг 5, 6ID9: Eqlnterpr()10: UnCorrect(CAbstractSubPrc*)11: lnterpolate(Puc. 75.
Диаграмма конвейера ISO-процессора126В.Л. Сосонкин, Г.М. Мартинов. Системы числового программного управлениякласса CISOProcessor для выполнения четвертого шага. ФункцияBufferCrossO реализует пятый-шестой шаги, а остальные функции - седьмой шаг. В качестве примера на рис. 76 показана диаграмма объектов, построенная для двух первых шагов конвейера интерпретатора.На первом шаге конвейера, реализующем функцию CalcGVectorForBlockO, вызывается IdentifierO конвертора для синтаксического анализа очередного кадра управляющей программы. В процессе конвертациикадра в формат команд интерпретатора осуществляется инициализацияInitO внутреннего представления.
После этого кадр формата ISO-7bit преобразуется с помощью функции UnificationO, в некоторую стандартнуюформу, при этом расставляются или убираются пробелы, меняются регистры и т.д. Вслед за вызовом функций SetGFuncO, SetMFuncO, SetAxisO,SetAddressO класса CBlock выполняется разбор кадра аналогично примеру в табл.
5. Функция ActivateO класса CISOProcessor реализует второйшаг конвейера. Рисунок 76 демонстрирует использование широко известной CASE-системы RationalRose при проектировании и объектной реализации ISO-процессора.На рис. 77 показан пример практической реализации ISO-процессора врамках двухкомпьютерной системы ЧПУ типа PCNC.8: Activate()3: Unification(CAbstractSubPrc*)ParserConvertw:CParserConvenor2: lnit()4: SetGFunc(CGCommand*, int)5: SetMFunc(CGCommand*, int)6: SetAxis(int)7: SetAddress(int)Рис.
76. Фрагмент диаграммы объектов конвейераГлава 3. Задачи управления127ПРИКЛАДНОЙ УРОВЕНЬACEDI-модаQuick-модаExpert-модаNC-мода(NC Editor)| PCNCIIИнтерполяторIИнтерпретатор(ISO-процессор)СИСТЕМНЫЙ УРОВЕНЬРС\MS Windos NT32- разрядный режим;NCОС Andronic32-:разрядныйрежииАППАРАТНЫЙ УРОВЕНЬЦПЦПР166P166PCI-BUSПрограммируемыйлогическийконтроллерТерминальный блокСопроцессор реального времениРис. 77. Интеграция ISO-процессора в двухкомпъютерную систему ЧПУтипа PCNC3.1.2. ИнтерполяторЗадачи модуля интерполяции полагаются традиционными, однако в последнее время к интерполятору предъявляют новые требования.
В их числе: уменьшение цены дискреты в приводе до 0,5 микрона и меньше; прямой выход на приводы, при котором перемещение в кадре задано в приращениях следящего привода, что необходимо при особо высоких скоростяхподачи; разложение сложных перемещений на линейные комбинации основных перемещений. Подобные требования определяют новую (открытую)архитектуру интерполятора, в которой четко обозначены отдельные блоки.Открытый интерполятор допускает свободное наращивание алгоритмов интерполяции и произвольную их комбинацию при воспроизведениисложных траекторий в многокоординатном пространстве (в том числе и сиспользованием сплайнов).
Ключевым моментом при построении открытого интерполятора является удачный выбор входных форматов. Далее при-•\ 2 8В.Л. Сосонкин, Г/И. Мартинов. Системы числового программного управленияведен фрагмент формального грамматического описания одной из версийвходного формата, в составе которого управляющие структуры (заголовки, HeaderLine) и данные (DataLine).<заголовок> - <старт интерполяции, подача задана явно>|<старт интерполяции, подача задана неявно>|<вызов подпрограммы>|<конец программы>|<комбинация алгоритмов>|<переопределение скорости подачи>|<относительный номер кадра>;<старт интерполяции, подача задана явно> - Н1__Ю1(<идентификаторосей>,<подача в мм/мин>);<старт интерполяции, подача задана неявно> Н1__Ю2(<идентификаторы осей>, <индекс подачи>);<вызов подпрограммы> - HL_iO4(<pa3Mep подпрограммы в байтах>);<конец программы> - HL_End;<комбинация алгоритмов> - Н1__п00(<маска интерполяции>);<маска интерполяции, 16-разрядное спово> - <признак линейной><признак круговой><признак сплайновойхпризнак полиномиальной><признак алгоритма Безье><признак алгоритма Рябенкова><резервные биты>;«^переопределение скорости подачи> - т._п01(<новая подача>);<данные> - <линейная интерполяция>|<сплайновая интерполяция,заданы углы входа и выхода>|<сплайновая интерполяция, задан уголвыхода>|<круговая интерполяция>|<переопределение плоскости>|<переопределение осей>;<линейная интерполяция> - DL_06(<относительные координаты прямой>);<сплайновая интерполяция, заданы углы входа и выхода>DL_07(<oTHocHTenbHbie координаты точек>,<углы входа-выхода>);<сплайновая интерполяция, задан угол выхода> Р1-_08(<относительные координаты точек>,<угол выхода>);<круговая интерполяция> - О1-_11(<относительные координаты дляокружности>);<переопределение плоскости> - DL_16(<KOfl плоскости>);<переопределение осей> - ОЬ_17(<коды осей>).Заголовок HL_iO 1 инициирует старт (начало интерполяции или включение быстрого хода), при этом работают алгоритмы разгона или торможения.Переопределение осей HL_nO 1 производится, если задействованные в текущем кадре оси интерполяции отличаются от ранее установленных.
Каждыйкадр генерирует HL_nO5 со своим относительным номером. Кадры, не содержащие информации для интерполятора, только увеличивают относительный номер следующего кадра. Признак «i» в заголовке означает прерываниеинтерполяции, а признак «п» - отсутствие прерывания.Глава 3. Задачи управления129В табл. 6. приведены примеры исходных текстов в коде ISO-7bit и соответствующие IPD-форматы на входе в интерполятор.Таблица 6. Результаты работы ISO-процессорапо формированию IPD-форматов№1ПрограммаN10%CNC-Test1• N20 'commentN30 G90N40G00X20Y20N50 G01 Х50 Y50N60X100N70Y100N80 МЗО2N10%CNC-Test2N20 'commentN30 G91 G00 X20 Y20N40G01X30Y10F2000N50X100N60 Y100N70 G02 X10 Y10 110 JO F2500N80 МЗО3N10%CNC-Test3N20 *commentN30 G91N40 GOO X30 Y30N50 G300 G01 Z50G02 X20 Y20 I0 J20 F2500N60G01X100N70Y100N80 M30IPD-форматыHL_nO5(O)HL_nO5(3) HLJ02(10,0)HL_nO5(1) HL_i02(10,1)HL_nO5(1)DL_17(8)DLHL_nO5(1)DL_17(2)DLHL_nO5(1)HL_EndDL_06(20,20)DL_06(30,30)06(50)06(50)HL_n05(0)HL_nO5(2) HL_i02(10,0) DL_06(20,20)HL_nO5(1) HLJ01 (10,2000) DL_06(30,10)HL_nO5(1)DL_17(8)DL_06(100)HL_nO5(1) DL_17(2)DL_06(100)HL_nO5(1) HL_n01(2500) DL_17(10)DL_11(...)HL_nO5(1)HL_EndHL_n05(0)HL_nO5(3) HL_i02(10,0) DL_06(30,30)HL_nO5(1) H U 0 1 (12,2500) HL_nOO(3)DL_17(4)DL_06(50)DL_17(10)DL_11(...)HL_nO5(1)DL_17(8)HL_nO5(1)DL_17(2)HL_nO5(1)HL_EndDL_06(100)DL 06(100)Рассмотрим пример интерполятора, реализующего линейную, круговую и сплайновую интерполяции, а также их комбинации.
Модуль интерполяции подключен к общей объектно-ориентированной магистрали системы ЧПУ. Интерфейс интерполятора обеспечивает прием параметров интерполяции и оперативных сигналов управления интерполятором, а такжевыдачу данных о состоянии модуля интерполяции (рис. 78).в-| 30лСосонкин, Г.М. Мартинов.
Системы числового программного управленияе< Приращения координат закаждый период таймера*fПускtsСтопJBАварийный остановпМаска аварийного состоянияконечных переключателей осейesСостояние интерполятораesСброс интерполятора в нуль&tsКоманды ручного управленияприводами подачиНомер кадра, отрабатываемогоинтерполяторомjt- Абсолютные значения всехкоординат11ИнтерполяторРис. 78. Интерфейс подключения интерполятора к общей магистралиСхема интерполятора приведена на рис. 79 в виде некоторого набораблоков, собственной внутренней шины и администратора.














