Язык программирования cam высокого уровня
Описание систем CAD и CAM.
Для станков с ЧПУ имеются три метода программирования обработки, такие как ручное программирование, программирование на пульте УЧПУ и программирование с помощью CAD/CAM системы.
Ручное программирование это достаточно утомительная работа. Но, тем не менее, технологи-программисты должны хорошо понимать технику ручного программирования, несмотря на то, как они работают. В настоящее время еще существуют предприятия, где используют метод ручного программирования. На самом деле, если у предприятия есть несколько станков с ЧПУ, а производимые детали несложные, то знающий программист сможет работать и, не имея средств автоматизации своего труда.
Метод программирования на пульте УЧПУ стал особо популярным только в последние годы. Связано это с увеличением их возможностей, улучшением интерфейса, ну и конечно техническое развитие систем ЧПУ оказало свое влияние. В данном методе, применяя клавиатуру и дисплей, программы пишутся и устанавливаются на самой стойке ЧПУ. Нынешние системы ЧПУ на самом деле дают возможность эффективно работать. Диалоговый язык программирования, который имеется у некоторых систем ЧПУ, существенно облегчает процедуру разработки УП и делает работу с ЧПУ удобной для оператора.
Программирование при помощи CAD/CAM системы дает возможность продвинуть процедуру создания программ обработки на уровень выше. Технолог-программист, используя СAD/CAM систему, освобождается от трудоемких математических расчетов и приобретает набор инструментов, который существенно увеличивает скорость разработки УП.
Определение CAD и САМ
В настоящее время, чтобы достичь успеха на рынке, промышленному предприятию необходимо работать над снижением себестоимости, сокращением срока выпуска и повышением качества продукции. Развитие компьютерных и информационных технологий послужило причиной создания CAD/CAM/CAE систем, которые в свою очередь, стали эффективными средствами решения таких задач.
Продвижение CAD/CAM/CAE систем длится уже много десятков лет. В течение этого времени произошло некоторое деление, а скорее ранжирование систем на уровни: верхний, средний и нижний. Системы нижнего уровня очень доступны для изучения, но обладают значительно ограниченными функциями. Системы среднего уровня являются золотой серединой. Они предоставляют пользователю все необходимые средства для решения большей части задач, и при этом такие системы просты в изучении и работе. Системы верхнего уровня имеют огромное количество функций и возможностей, но при этом с ними тяжело работать.
Алгоритм работы с CAD/CAM системой.
1 этап. В CAD системе разрабатывается 3D модель детали или ее электронный чертеж. На рисунке представлена трехмерная модель детали с карманом сложной формы.
2 этап. 3D модель детали или ее электронный чертеж импортируется в САМ систему. Технолог-программист определяет поверхности и геометрические элементы, необходимые для обработки, делает выбор стратегии обработки, режущего инструмента и задает режим резания. Система вычисляет траектории перемещений инструмента.
3 этап. В САМ системе проводится визуальная про¬верка возникших траекторий. Программист имеет возможность достаточно легко исправить ошибки, которые могут обнаружиться на этом этапе, просто заново вернувшись к предыдущему.
4 этап. Завершающим продуктом САМ системы предстает код УП. Такой код создается с помощью постпроцессора, который в свою очередь подгоняет УП под характеристики определенного станка и системы ЧПУ.
На нашем сайте вы можете выбрать подходящее программное обеспечение для автоматизации составления карт раскроя и подготовки управляющих программ для станков плазменной резки с ЧПУ.
Что такое CAD CAM системы?
Программирование станков с ЧПУ
Станки с числовым программным управлением можно программировать тремя способами:
Неавтоматизированное программирование
Ручное или неавтоматизированное программирование станков ЧПУ является самым примитивным и используется для производства несложных деталей на опытном и не массовом производстве. Также ручное программирование остается базовым в обучении технологов программистов ЧПУ.
Пульт УЧПУ
Это метод прост и поэтому наиболее популярен на производстве. Суть его в программировании станков ЧПУ с интерфейса («клавы» и монитора), смонтированного на стойке станка.
Автоматизированное программирование
На производстве сложных изделий и деталей, используются продвинутые методы программирования ЧПУ, относящиеся к автоматизированным. Они носят названия CAD CAM системы.
Что такое CAD CAM системы
Аббревиатура CAD в английской версии означает, computeraideddesign. CAM, то же английская аббревиатура рас шифруемая, как computeraidedmanufacturing. В русском языке все это создавалось и обозначалось, как САПР — системы автоматизированного программирования.
На современном этапе программирования станков, системы программирования станков с числовым программным управлением чаще называют CAD/CAM системами.
CAD CAM система это компьютерная технология, созданная и используемая для программирования производства и изготовления рабочих документов этого производства. Семейство CAD CAM программ применяется для создания проектов изделий и деталей на производстве, в том числе для станков ЧПУ.
По технологии, сначала в CAD создаются модели изделия, которые собираются в сборки. Потом эти модели используются в CAM для создания траекторий движения инструментов ЧПУ. Используя созданную программу, станок производит нужную деталь.
Программирование сложных деталей
В том то и прелесть ЧПУ, что на них можно быстро и точно производить сложные и даже сложнейшие изделия и детали. Для таких производств, где используются много осевые станки ЧПУ, применяется более сложная система программирования под названием Autodesk PowerMill. Приобрести программное обеспечение Autodesk PowerMill вы можете на сайте https://www.pointcad.ru/product/autodesk-powermill.
Это CAM система сложного программирования станков ЧПУ с много осевой фрезерной обработкой. Используется тысячами предприятий по всему миру. Включает все возможные сценарии обработки, что значительно снижает время производства и качество изделия.
Продукты Autodesk используются для создания 2D и 3D моделей и проектов, для 3D-визуализации производства и деталей, электротехнического и комплексного проектирования.
Применяются продукты Autodesk практически во всех отраслях промышленности.
Сила OCaml. Разбираемся с типизацией и пишем скрипты
Содержание статьи
OCaml и семейство ML
OCaml относится к семейству языков ML. К нему же относятся ныне редкий Standard ML, Microsoft F#, который во многом представляет собой клон OCaml, и, с оговорками, Haskell.
Теоретическая основа вывода типов — алгоритм Хиндли — Милнера. Детерминированный вывод типов возможен не во всех системах. В частности, Haskell использует тот же подход, но функции в нем требуют явного объявления типа. Цена детерминированности — отсутствие полиморфизма ad hoc (перегрузки функций). Каждая функция в OCaml может иметь один и только один тип. Отсутствие перегрузки функций компенсируется «функторами» — параметризованными модулями.
Swift заимствовал многие концепции из ML, в частности алгебраические типы и параметрический полиморфизм, которые обеспечивают удобную и безопасную работу функций с коллекциями (списками) независимо от типа значений. Новые языки для JS также зачастую заимствуют из них, так что знакомство с ML полезно для их понимания.
Почему OCaml?
Традиционное применение OCaml и языков семейства ML — разработка компиляторов, средств статического анализа и автоматического доказательства теорем. К примеру, на нем был написан компилятор Rust до того, как он научился компилировать сам себя. OCaml также нашел применение в финансовой сфере, где ошибка в коде может за пару минут довести компанию до банкротства, например в Lexifi и Jane Street.
Пригодным к применению в качестве скриптового его делает особенность реализации: он предоставляет одновременно интерпретатор, компилятор в байт-код и компилятор в машинный код для популярных платформ, в том числе x86 и ARM. Можно начать разработку в интерактивной оболочке интерпретатора, затем записать код в файл. А если скрипт превращается в полноценную программу, скомпилировать ее в машинный код.
С помощью сторонних инструментов вроде js_of_ocaml и BuckleScript код на OCaml также можно компилировать в JavaScript. В Facebook таким способом переписали большую часть Facebook Messenger на ReasonML, это альтернативный синтаксис для OCaml.
В отличие от Haskell, в OCaml используется строгая, а не ленивая модель вычислений, что упрощает ввод-вывод и анализ производительности. Кроме того, он поддерживает изменяемые переменные (ссылки) и прочие средства императивного программирования.
Мы не будем затрагивать веб-скрипты и сосредоточимся на традиционных. В этой статье я также намеренно опускаю создание собственных типов, систему модулей и многие другие возможности. Первая цель — показать «вкус» языка.
В этой статье предполагается использование совместимой с POSIX системы: Linux, FreeBSD или macOS. Сам OCaml работает на Windows, но менеджер пакетов OPAM пока не поддерживает эту систему, поэтому библиотеки пришлось бы собирать вручную со всеми зависимостями. Теоретически использовать OPAM можно в Cygwin, но я не пробовал.
Установка
Стандартным менеджером пакетов для OCaml стал OPAM. Он может устанавливать сам компилятор, библиотеки и переключаться между разными версиями. Многие системы предоставляют какую-то версию OCaml в репозиториях (часто устаревшую), но с помощью OPAM легко поставить самую свежую от имени обычного пользователя. Для Linux и macOS авторы предоставляют статически скомпилированную версию.
Как установить OPAM, ты можешь прочитать в документации.
После установки мы поставим самую новую на настоящий момент версию компилятора 4.07 и несколько утилит и библиотек, которые потребуются нам в примерах.
Для проверки работоспособности запустим utop — интерактивную оболочку интерпретатора. Стандартный интерпретатор ( ocaml ) слишком «спартанский» — без поддержки истории команд и автодополнения, поэтому его мы будем использовать только в неинтерактивном режиме.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Программирование с помощью CAD/CAM-систем
САМ-системы позволяют «поднять» программирование станков с ЧПУ на более высокий уровень по сравнению с рутинным ручным программированием, облегчая труд технолога-программиста в трех главных направлениях [1, 3, 11]:
· избавляют технолога-программиста от необходимости делать математические вычисления вручную;
· позволяют создавать на одном базовом языке управляющие программы для различного оборудования с ЧПУ;
· обеспечивают технолога-программиста типовыми функциями, автоматизирующими ту или иную обработку.
При использовании САМ-системы УП генерируется автоматически в G-коде, после чего передается тем или иным способом УЧПУ станка [11].
САМ-системы можно разделить на две категории – с языковым и графическим способом ввода информации. Используя первые, технолог-программист обязан использовать язык программирования, подобный Basic или С, в силу чего такие САМ-системы весьма сложны для освоения. Другой тип САМ-систем позволяют задавать каждый шаг обработки интерактивно в графическом режиме, а технолог-программист имеет зрительную обратную связь в течение каждого шага задачи программирования. Поэтому в общем случае такие системы более просты в изучении и работе [11].
Несмотря на многообразие существующих САМ-систем, обладающих различными возможностями и «внешним видом», их объединяет схожая методология использования. Сначала технолог-программист должен ввести некую общую информацию, далее описать параметры заготовки и рабочего места (приспособление, инструмент и т. д.), после чего определить последовательность обработки [11]. Рассмотрим данную последовательность более подробно.
Первый шаг – задание общей информации. На этом шаге от технолога-программиста потребуется ввод информации о наименовании детали, ее шифра, даты генерации и имени управляющей программы, габаритах детали, материале и форме заготовки [11].
Второй шаг – описание параметров заготовки и рабочего места. Используя ряд методов определения геометрии, программист постепенно описывает форму обрабатываемой детали. Большинство САМ-систем допускает импортирование геометрии детали, спроектированной в CAD-системе. Это особенно полезно в случае деталей сложной формы, ведь технологу не нужно тратить усилия на повторное описание сложной геометрии.
При этом важно уже в процессе проектирования детали учитывать местонахождение нулевой точки чертежа, а также «правильность» простановки размеров в зависимости от предполагаемого способа программирования. В противном случае технолог-программист будет вынужден повторно рассчитывать весь контур детали [11].
Третий шаг – определение последовательности обработки. Здесь программист задает в САМ-системе способ обработки детали с использованием имеющихся для этого большого количества готовых решений в виде интерактивных меню для задания параметров конкретного вида обработки. Технологу-программисту остается только ввести параметры, а САМ-система сама рассчитает траекторию движения инструмента. На этом шаге
САМ-система визуализирует траекторию инструмента, предоставляя программисту возможность визуального анализа того, что может произойти на станке, что является одним из преимуществ САМ-систем. [11]. Применение систем симуляции позволяет технологу-программисту наблюдать трехмерную модель перемещающихся частей технологической системы, что снижает вероятность ошибок в программе, сокращает время на ее отладку на станке и исключает возможность столкновения и поломки инструмента. С помощью систем симуляции можно редактировать и оптимизировать управляющие программы, определить количество материала, удаляемого в каждом сегменте пути инструмента, а также подобрать элементы режима резания. Довольно хорошо распространенными системами симуляции являются программный комплекс VERICUT компании CGTech и редактор управляющих программ CIMCO Edit компании CIMCO Integration [11]. После необходимых коррекций технолог-программист запускает процесс генерации УП в виде G-кодов.
Постпроцессоры
Постпроцессор – это программный модуль, предназначенный для преобразования управляющей траектории, сформированной CAM-системой, в управляющую программу для конкретного станка с ЧПУ с учетом особенностей его кинематики. Исходной информацией для получения программы обработки на станке с ЧПУ является геометрия детали, определенная на проектно-конструкторском этапе. Затем при создании управляющей программы для станка с ЧПУ технолог-программист пользуется CAM-системой. Система генерирует файл, содержащий информацию о положении, траектории инструмента, режимы резания и другие технологические параметры. Далее вступает в работу постпроцессор, который обрабатывает эти данные и формирует управляющую программу для определенного станка [9].
Постпроцессор выполняет немалое количество функций, например [7]:
· кодирует линейные перемещения сообразно цене импульса;
· выполняет линейную или круговую интерполяцию перемещений по дуге окружности, а также кодирует их в импульсах;
· рассчитывает динамику перемещений, отслеживая и, если нужно, уменьшая слишком большую подачу на малом перемещении;
· автоматически выдает в кадр вектора или функции коррекции на радиус инструмента;
· строит текущий кадр по шаблону, автоматически нумеруя кадры под адресом N;
· превращает подачи, назначенные технологом, в конкретный набор символов с адресом F и выдает в нужное место кадра.
· оформляет начало, конец и структуру УП;
· выдает в кадр перемещения только по тем координатам, движения по которым имело место;
· определяет выпуклость/вогнутость контура детали для правильного расчета вектора коррекции и т. д.
Постпроцессоры бывают нескольких типов [9]:
Внешний постпроцессор часто называют «обобщенным постпроцессором» (Generalized postprocessor). Такое название акцентирует независимость постпроцессора от используемой CAM-системы. Он принимает на вход файл формата CL-DATA (Cutter Locations DATA – данные о положении инструмента), выдаваемый CAM-системой через специальную команду экспорта управляющей траектории. Таким образом, работа внешнего постпроцессора автономна и вообще не привязана к CAM-системе. Этот формат официально принят стандартом DIN 66215-1 и поддерживается большинством CAM-систем [9].
Преимуществом внешнего постпроцессора является то, что он настраивается только один раз на конкретный станок. Для всех CAM-систем постпроцессор одинаков. Этот фактор имеет значение, если при создании программ для одного и того же станка на предприятии используются различные CAM-системы. Такая ситуация не редкость для крупных предприятий, но, практически, не встречается в средних и мелких компаниях. Кроме этого, поскольку постпроцессор не делается индивидуально для каждой CAM-системы, а настраивается только на конкретный станок, то он более широко тиражируем. Вследствие этого он обычно стоит дешевле и, как правило, есть уже готовый [9].
Минусом внешнего постпроцессора является сложность его настройки «под себя».
Нередко внешний постпроцессор поставляется вообще в закрытом от редактирования виде, но даже если он открыт, и на предприятии есть специалисты, знающие, как его настроить, все равно, возможности настройки внешнего постпроцессора гораздо меньшие, чем встроенного. Очень часто такая настройка постпроцессора становится камнем преткновения для 5-осевых станков и обрабатывающих центров, в связи с чем очень часто технологи-программисты, даже купив внешний постпроцессор, вынуждены перейти на встроенный [9].
Встроенный постпроцессор (Native – «Родной») не только запускается
из CAM-системы, но и работает с управляющей траекторией прямо во внутреннем формате CAM-системы [9]. Каждый постпроцессор работает только со своей «родной»
CAM-системой, в связи с чем возникает необходимость приобретения для каждого станка постпроцессора под конкретную CAM-систему. Именно поэтому нередко приходится заказывать разработку постпроцессора, так как готового нет в наличии, особенно для новых моделей станков. Встроенный постпроцессор, также как и внешний, может поставляться в закрытом или открытом для редактирования виде [9].
Основным достоинством встроенного постпроцессора является возможность доступа из него к большому числу важных параметров и переменных CAM-системы. По умолчанию эти переменные не выгружаются в файл CL-DATA, и поэтому недоступны во внешнем постпроцессоре. Хотя в CAM-системах и существует возможность задавать дополнительные значения переменных для передачи их в файл CL-DATA, но это надо делать вручную, что крайне неудобно в работе [9].
Встроенный постпроцессор имеет доступ ко многим категориям параметров. Особенно важными являются полные данные об инструменте и операции, например, номенклатурном номере патрона или материале фрезы. Обрабатывая кадр с перемещением, встроенный постпроцессор может различить конкретный тип движения, например, подвод, врезание или отвод инструмента [9].
Такой постпроцессор может обращаться к корпоративным базам данных
и PDM-системе (PDM – Product Data Management), используя текущий сеанс и права пользователя. Эти данные могут использоваться встроенным постпроцессором, что позволяет заложить в него сложную технологическую логику и генерировать быстро, «одной кнопкой» полностью готовые, сложные программы обработки. Внешний постпроцессор в этом смысле более ограничен, чем встроенный. При создании программ обработки с большим количеством операций (20 и более), программ с переустановами, или программ многоосевой обработки, такая технологическая логика в постпроцессоре становится просто необходимой, и внешний постпроцессор уже не может решить задачу [9].
Встроенный, «родной» постпроцессор является более удобным решением, ускоряющим работу технолога [9].
Встроенные постпроцессоры исторически появились позднее, чем внешние, и отставали от них по своим возможностям. На сегодняшний день практически в каждой
CAM-системе есть свой «родной» встроенный постпроцессор, содержащий полный набор необходимых функций [9].
Индивидуальный постпроцессорразрабатывается самым старым способом создания постпроцессоров, когда с помощью специальных алгоритмических языков программистом (именно программистом, а не технологом-программистом) пишется постпроцессор для определенного станка. Способ очень долгий, дорогой и не гибкий, но иногда единственный. Изменения в таком постпроцессоре зачастую способен сделать только сам
автор-разработчик [9].
Для удобства настройки постпроцессора на конкретный станок, постпроцессор разделен на две части: постпроцессирующий модуль и шаблон постпроцессора [9].
Постпроцессирующий модуль (Post executable) – это исполняемый файл, который запускается при старте постпроцессора. Он загружает управляющую траекторию, полученную из CAM-системы, и, используя шаблон постпроцессора, генерирует управляющую программу [9].
Шаблон постпроцессора (Post customization script) содержит инструкции, сообщающие постпроцессирующему модулю, как обрабатывать управляющую траекторию и генерировать программу. Именно шаблон постпроцессора и является настройкой на конкретный станок, и именно он и называется постпроцессором [9].
Обычно шаблон постпроцессора – это текстовый (ASCII) файл, который можно редактировать обычным текстовым редактором. Формат шаблона постпроцессора всегда достаточно сложной структуры, которая описывается в документации разработчика [9].
Для того чтобы облегчить разработку шаблона постпроцессора, многие современные постпроцессоры предлагают специальный редактор постпроцессоров, который часто и называют «Генератором постпроцессоров» [9].
Генератор постпроцессоров (Post—Processor Generator) – это редактор, в котором разработчик может выбрать тип станка, задать различные опции и параметры, на основе которых редактор «сгенерирует» постпроцессор. Это может быть как новый постпроцессор, так и модифицированный существующий постпроцессор [9].
Другой функцией редактора постпроцессоров часто является компиляция постпроцессора. Компиляция делается, в основном, для защиты постпроцессора от редактирования и применения функций лицензирования постпроцессора. В системах, где поддерживается компиляция шаблона постпроцессора, можно говорить об исходном тексте и о скомпилированном постпроцессоре. Это очень важный момент, относящийся к вопросу открытости постпроцессора, т. е. возможности его редактирования конечным пользователем. Кроме генерации и компиляции постпроцессора, редактор постпроцессоров имеет множество полезных функций, которые позволяют ускорить разработку
постпроцессора [9].
Диалоговое программирование
Ручное программирование является весьма утомительным занятием. По общему признанию, слова, адреса и кадры воспринимаются большинством новичков, как «китайская грамота». Однако все программисты-технологи обязаны иметь хорошее понимание техники ручного программирования независимо от того, используют они ее или нет. Так, если в компании используется несколько станков с ЧПУ, а изготавливаемые детали предельно просты, то грамотный технолог-программист с великолепной техникой ручного программирования будет способен превзойти по производительности труда мощного программиста-технолога, использующего CAM-систему. Или, скажем, компания использует свои станки для выполнения ограниченной номенклатуры изделий. Как только обработка таких изделий запрограммирована, она вряд ли будет изменена когда-либо в будущем.
В этом случае ручное программирование для ЧПУ наиболее экономически эффективно. Наконец, даже в случае применения CAM-системы нередко возникает потребность коррекции кадров УП вследствие обнаружения ошибок на этапе верификации. Также общепринятой является коррекция кадров УП после ряда первых пробных прогонов на станке с ЧПУ. Если для выполнения этих, часто элементарных, корректировок программист должен опять использовать CAM-систему, то это неоправданно удлинит процесс подготовки производства [10].
В то же время диалоговое программирование стало весьма популярно в последние годы благодаря широкому использованию системы графических пиктограмм и меню непосредственно на стойке системы ЧПУ (рис. 6.1). Программист может немедленно верифицировать кадры УП путем графической имитации обработки на экране стойки ЧПУ станка [10].
Рис. 6.1. Примеры диалогового программирования в системе Siemens SINUMERIK 840D
Системы диалогового программирования существенно различаются между собой.
В большинстве случаев любая из них является одноцелевой системой, предназначенной для автоматизации программирования определенного типа обработки на определенном оборудовании. Более того, некоторые модели, особенно уже снятые с производства, были рассчитаны только на ручной ввод управляющей программы и тем самым не могли обеспечить технологию удаленного программирования при помощи CAM-системы. Однако более современные модели СЧПУ могут работать как в диалоговом режиме, так и имеют устройства для ввода G-кодов, сгенерированных другими CAM-системами [10].
В то же время интуитивно понятный пошаговый редактор диалогового программирования максимально сокращает время программирования именно для единичного и мелкосерийного производства, в то время как его применение в средне- и крупносерийном производстве нецелесообразно, как и при изготовлении деталей сложной формы [10].
Совершенный язык ЧПУ, основанный на командах языка высокого уровня, обеспечивает максимальную гибкость и минимальное время разработки УП в режиме диалога, и сочетает в себе гибкость языка ЧПУ и удобство простой параметризации интенсивных циклов обработки, что обеспечивает максимальную производительность. Встроенный интерпретатор кодов ISO обеспечивает максимальное удобство операторам, знакомым со специальными языками ISO [5].
В общем виде, циклы удаления материала диалоговой СЧПУ имеют следующие функции оптимизации процесса обработки [5]:
· снятие слоев материала параллельно контуру;
· проточка пазов свободно задаваемых контуров;
· обточка канавок свободно задаваемых контуров;
· автоматическое определение оставшегося материала;
· сегментация припусков с автоматической адаптацией заготовок;
· прерывание подачи при образовании длинной стружки;
· переменная подача, продлевающая срок службы инструмента;
· обработка контурных углублений;
· обработка фигурных выступов;
· автоматический расчет точки входа инструмента в заготовку и т. д.
Следует отметить, что в некоторых СЧПУ нашли применение анимированные элементы, поддерживающие ввод параметров обработки в ходе короткого видеоролика, а не в статическом изображении, что обеспечивает оператору поддержку в эксплуатации и программировании СЧПУ [5].
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций.