Четыре модальности написания кода
Я достаточно часто переключаюсь между разными модальностями, или режимами написания кода.
Промышленное программирование
Самая распространённая (и моя самая нелюбимая) — промышленное программирование. В работе программиста слишком много мета-активностей: обсуждения и встречи, код-ревью и изучение чужого кода, скрам-ритуалы и прочие групповые встречи.
В больших компаниях всё ещё хуже: в список добавляются корпоративные тренинги, all-hands встречи, регулярные ревью результатов, часто возведённые в абсолют (в Фейсбуке, например), встречи с руководителями и трескотня бесчисленных чатов. Неудивительно, что многие пишут код всего несколько часов в день — часто в формально нерабочие часы.
Разумеется, для работы компании эффективная коммуникация и обмен информацией исключительно важны, но надо быть весьма специфичного склада характера, чтобы получать удовольствие не от создания чего-то нового из ничего — того, ради чего многие и начинали программировать, — а от участия в процессе.
Многие компании, даже став неповортливыми огромными монстрами, по-прежнему стараются получать результаты как можно эффективнее, практически в режиме стартапа: с короткими итерациями и быстрыми результатами — а значит качество кода и архитектуры, а вместе с ними гордость разработчиков за результат стремятся к нулю.
Творческое программирование
Следующая, куда больше радующая меня модальность — творческое программирование. В результате такой работы получается хорошо продуманный код, правильно моделирующий проблему (и отчасти реальность — привет, ООП) и поэтому решающий её достаточно оптимальным и очевидным способом. Правильно выбранный подход, в свою очередь, приводит к меньшему количеству edge cases, а значит к более простому и надёжному коду.
В творческом программировании по-прежнему много ограничений: например, когда я делал компонент для выбора городов в своём калькуляторе стоимости жизни, мне захотелось не просто выводить плоский список из почти тысячи городов, а как-то выделить популярные и уже выбранные. Сначала я попробовал в дополнение к полному списку городов передавать в компонент два дополнительных подмножества с уже выбранными и популярными, сделав их отдельными категориями с подзаголовками.
Ограничением стали индексы элементов в списке: для правильной и быстрой отрисовки в виде виртуализированного списка (есть в реакте такой способ ускорить отрисовку, которая тормозит уже на сотнях элементов) и для поддержки скроллинга с клавиатуры компоненту нужен индекс элемента, с которого начинается видимая часть списка. Но объединить надмножество всех городов с подмножествами уже выбранных и популярных, правильно транслировав индексы (локальные внутри каждого подмножества) очевидным образом мне не удалось.
Тогда я поменял подход и решил сортировать список так, чтобы на первом месте были уже выбранные города, потом популярные, а в конце — отсортированные по алфавиту оставшиеся города. Получилось намного проще и лучше. Я даже без каких-либо тестов уверен, что этот код не ломается — потому что доверяю старой-доброй сортировке.
Творческий подход также накладывает свои ограничения из-за выбранной модели, а значит допускает более вольное трактование проблемы и подразумевает более гибкий scope — по определению, он подходит не для всех задач. Например, я был рад отказаться от вывода названий подкатегорий и упростить код, но в более зарегламентированном процессе или при наличии жёстких требований к функциональности это было бы невозможно.
Программирование библиотек
Написание библиотечного кода, третья модальность, перенимает многие свойства творческого программирования, но обязывает разработчика соблюдать больше условий. Код должен быть производительным и надёжным, а ещё обратно совместимым и следующим принципам defensive programming — учитывать максимально возможное количество edge cases и предсказуемо вести себя (и ломаться) при “мусоре на входе” и прочих странных обстоятельствах: когда входные данные не помещаются в памяти, если операция прервалась в процессе выполнения (транзакции в БД) или кончилось место на диске, когда функции библиотеки вызываются асинхронно или параллельно, и возможны race conditions.
В дополнение ко всему, библиотечный код должен быть полностью покрытым тестами (в том числе странными), хорошо задокументированным, сопровождённым большим количеством примеров и описаниями релизов. Создание и поддержка этих артефактов тоже требует времени и сил.
Написание библиотек — классная, глубоко техническая работа, которая может увлечь, но мне в ней не хватает связи с внешним миром. В концепциях и деталях работы библиотеки легко потеряться и отвлечься от решения стоящих внимания проблем, а требование обратной совместимости и надёжности, особенно после десятка релизов, оставляет совсем немного простора для творчества.
Программирование в стартапе
Последняя в моей классификации модальность — программирование в стартапе или попросту говнокодинг. Граница между максимально эффективным и быстрым созданием полезных прототипов и небрежным говнокодингом достаточно условна и задаётся размером компании и ожиданиями к времени жизни и качеству кода.
В стартапе на ранней стадии жизни немного разработчиков и мало кода, который выполняет понятные и, вероятно, бесполезные функции. Скорее всего, существенная часть результатов отправится в мусорное ведро в течение считанных месяцев, если не недель, поэтому разработка в режиме “я его слепила из того, что было” вполне оправдана.
В то время как хорошие разработчики пишут прототипы, чтобы исследовать поведение системы и переписать всё правильно, когда поймут её основные свойства, стартаперы пишут плохой код под давлением обстоятельств: короткие итерации помогают быстрее получить необходимый сигнал от первых пользователей с наименьшими затратами, а дурно пахнущий код легко выкинуть и переписать, когда понадобится.
Другое дело, если большие компании пытаются играть по таким же правилам. Цепочка принятия решений в условиях корпорации слишком длинная, разработчиков намного больше, и у них нет ни желания (все работают за зарплату и повышение), ни шанса сопереживать своим пользователям, потому что служба поддержки сидит в лучшем случае на другом этаже, а в худшем — на другом континенте.
Требования к системе нередко приходят откуда-то сверху, а информация распространяется неравномерно и слишком медленно, чтобы все члены команды поспевали за целями компании и идеями коллег и понимали разрабатываемые системы достаточно хорошо. Процесс разработки очень инертный, а анализ результатов занимает не недели, а месяцы или даже годы — в таких условиях говнокод живёт дольше и доставляет много хлопот. Часто уже новым членам команды, которые не имеют представления о том, как всё начиналось.
Я вполне могу принять необходимость писать код быстро и грязно, когда мотивация находится за пределами зарплатной ведомости — например, в ненулевой вероятности создания своей компании, приносящей пользу клиентам и деньги создателям. Но соглашаться на это в условиях обычной компании — чистое безумие.
Какая модальность ваша любимая и что думаете про такую классификацию? Поделитесь мнением в комментариях, а этим постом со своими друзьями и знакомыми, которым может быть интересно.
G- и М-коды
Программирование обработки на современных станках с ЧПУ осуществляется на языке, который обычно называют языком ИСО (ISO) 7 бит, или языком G- и М-кодов. Коды с адресом G, называемые подготовительными, определяют настройку СЧПУ на определенный вид работы. Коды с адресом М называются вспомогательными и предназначены для управления режимами работы станка.
Базовые коды программирования обработки
Код (функция) | Назначение и пример кадра с кодом |
---|---|
Осевое перемещение | |
G00 | Ускоренный ход – перемещение на очень высокой скорости в указанную точку G00 X10. Y20. Z25. |
G01 | Линейная интерполяция – перемещение по прямой линии на указанной скорости подачи G01 X10. Y20. F100 |
G02 | Круговая интерполяция – перемещение по дуге по часовой стрелке на указанной скорости подачи G02 X10. Y20. R10. F100 |
G03 | Круговая интерполяция – перемещение по дуге против часовой стрелки на указанной скорости подачи G03 X10. Y20. R10. F100 |
Настройка | |
G20 | Ввод дюймовых данных G20 G00 X10. Y20 |
G21 | Ввод метрических данных G21 G00 X10. Y20 |
G90 | Абсолютное позиционирование – все координаты отсчитываются от постоянной нулевой точки G90 G00 X10. Y20 |
G91 | Относительное позиционирование – все координаты отсчитываются от предыдущей позиции G91 G00 X10. Y20 |
Обработка отверстий | |
G81 | Цикл сверления G81 X10. Y20. Z-5. F30 |
G82 | Цикл сверления с задержкой на дне отверстия G82 X10. Y20. Z-5. R1. P2. F30 |
G83 | Прерывистый цикл сверления G83 X10. Y20. Z-5. Q0.25 R1. F30 |
G85 | Цикл растачивания отверстия G85 X10. Y20. Z-5. F30 |
Вспомогательные коды (функции) | |
M00 | Запрограммированный останов – выполнение программы временно прекращается |
M01 | Запрограммированный останов по выбору – выполнение программы временно прекращается, если активирован режим останова по выбору |
М03 | Прямое вращение шпинделя – шпиндель вращается по часовой стрелке |
М04 | Обратное вращение шпинделя – шпиндель вращается против часовой стрелки |
М05 | Останов шпинделя |
М06 | Автоматическая смена инструмента М06 Т02 |
M08 | Включение подачи охлаждающей жидкости |
M09 | Выключение подачи охлаждающей жидкости |
M30 | Конец программы, перевод курсора к началу программы |
Оглавление
- Основы числового программного управления
- Автоматическое управление
- Особенности устройства и конструкции фрезерного станка с ЧПУ
- Функциональные составляющие (подсистемы) ЧПУ
- Языки для программирования обработки
- Процесс фрезерования
- Режущий инструмент
- Вспомогательный инструмент
- Основные определения и формулы
- Рекомендации по фрезерованию
- Прямоугольная система координат
- Написание простой управляющей программы
- Создание УП на персональном компьютере
- Передача управляющей программы на станок
- Проверка управляющей программы на станке
- Советы по технике безопасности при эксплуатации станков с ЧПУ
- Нулевая точка станка и направления перемещений
- Нулевая точка программы и рабочая система координат
- Компенсация длины инструмента
- Абсолютные и относительные координаты
- Комментарии в УП и карта наладки
- G- и М-коды
- Структура программы
- Слово данных, адрес и число
- Модальные и немодальные коды
- Формат программы
- Строка безопасности
- Ускоренное перемещение – G00
- Линейная интерполяция – G01
- Круговая интерполяция – G02 и G03
- Введение
- Останов выполнения управляющей программы – М00 и М01
- Управление вращением шпинделя – М03, М04, М05
- Управление подачей СОЖ – М07, М08, М09
- Автоматическая смена инструмента – М06
- Завершение программы – М30 и М02
- Основные принципы
- Использование автоматической коррекции на радиус инструмента
- Активация, подвод и отвод
- Подпрограмма
- Работа с осью вращения (4-ой координатой)
- Параметрическое программирование
- Методы программирования
- Что такое CAD и САМ?
- Общая схема работы с CAD/САМ-системой
- Виды моделирования
- Уровни САМ-системы
- Геометрия и траектория
- Алгоритм работы в САМ-системе и постпроцессор
- Ассоциативность
- Пятикоординатное фрезерование и ЗD-коррекция
- Высокоскоростная (ВСО) и высокопроизводительная обработка
- Критерии для оценки, сравнения и выбора CAM-систем
Модальные и немодальные коды
Все станочные коды можно условно разделить на два класса в зависимости от их способности сохраняться в памяти СЧПУ. Немодальные коды действуют только в том кадре, в котором они находятся. Модальные коды, напротив, могут действовать бесконечно долго, пока их не отменят другим кодом.
Оглавление
- Основы числового программного управления
- Автоматическое управление
- Особенности устройства и конструкции фрезерного станка с ЧПУ
- Функциональные составляющие (подсистемы) ЧПУ
- Языки для программирования обработки
- Процесс фрезерования
- Режущий инструмент
- Вспомогательный инструмент
- Основные определения и формулы
- Рекомендации по фрезерованию
- Прямоугольная система координат
- Написание простой управляющей программы
- Создание УП на персональном компьютере
- Передача управляющей программы на станок
- Проверка управляющей программы на станке
- Советы по технике безопасности при эксплуатации станков с ЧПУ
- Нулевая точка станка и направления перемещений
- Нулевая точка программы и рабочая система координат
- Компенсация длины инструмента
- Абсолютные и относительные координаты
- Комментарии в УП и карта наладки
- G- и М-коды
- Структура программы
- Слово данных, адрес и число
- Модальные и немодальные коды
- Формат программы
- Строка безопасности
- Ускоренное перемещение – G00
- Линейная интерполяция – G01
- Круговая интерполяция – G02 и G03
- Введение
- Останов выполнения управляющей программы – М00 и М01
- Управление вращением шпинделя – М03, М04, М05
- Управление подачей СОЖ – М07, М08, М09
- Автоматическая смена инструмента – М06
- Завершение программы – М30 и М02
- Основные принципы
- Использование автоматической коррекции на радиус инструмента
- Активация, подвод и отвод
- Подпрограмма
- Работа с осью вращения (4-ой координатой)
- Параметрическое программирование
- Методы программирования
- Что такое CAD и САМ?
- Общая схема работы с CAD/САМ-системой
- Виды моделирования
- Уровни САМ-системы
- Геометрия и траектория
- Алгоритм работы в САМ-системе и постпроцессор
- Ассоциативность
- Пятикоординатное фрезерование и ЗD-коррекция
- Высокоскоростная (ВСО) и высокопроизводительная обработка
- Критерии для оценки, сравнения и выбора CAM-систем
© 2015-2022 Планета CAM
Информационно-аналитический электронный журнал «Планета CAM» (12+)
Адрес редакции: 192102, г. Санкт-Петербург, ул. Фучика д. 4, литер К
Главный редактор: Ловыгин А. А.
Контактная информация: Тел. +7 (812) 407-14-04, Email: mail@planetacam.ruЛекция 2 1 Коды и специальные символы программирования Модальные и немодальные презентация, доклад
Слайд 1Лекция 21 Коды и специальные символы программирования Модальные и
немодальные коды. Строка безопасности. G и M коды, специальные символы
и их значение.
Слайд 2 Модальные и немодальные коды
Все станочные кодыв зависимости от их способности сохраняться в памяти СЧПУ разделяют
на два класса,.
Немодальные коды действуют только в том кадре, в котором они находятся.
Модальные коды, действуют бесконечно долго, пока их не отменят другим кодом.
Выделяют несколько групп кодов, в зависимости от выполняемой функции.Слайд 3 Два модальных кода из одной группы не могут
быть активными в одно и то же время.
Например, G02и G0З находятся в группе кодов осевых перемещений, и их невозможно применить оба сразу, поскольку один из них отменит действие другого.
Коды из разных функциональных групп можно использовать одновременно. Например, в одном кадре можно написать G02 и G90.
Особенностью модальных кодов является то, что не нужно вводить активный код в последующие кадры.
Например, код G01 используется для перемещения инструмента по прямой линии. Если необходимо совершить множество прямых перемещений, то не обязательно в каждом последующем кадре писать G01.
Для отмены кода G01 необходимо применить один из кодов той же самой функциональной группы (G00, G02 или G03).
М коды не делят на модальные и немодальные. Однако термин «Модальный» условно можно отнести и к ним. Например, можно выделить группу М кодов отвечающих за подачу охлаждающей жидкости (М07, М08, М09) или за вращение шпинделя (МОЗ, М04, М05).
Тем не менее, большинство М кодов рассматривают как немодальные.
Некоторые стойки ЧПУ допускают программирование только одного М кода в кадре.Слайд 4Строка безопасности
Строкой безопасности называется кадр, содержащий G коды,которые переводят СЧПУ в определенный стандартный режим, отменяют ненужные функции
и обеспечивают безопасную работу с управляющей программой.
Используют для предотвращения отрицательного влияния внештатных ситуаций когда какой либо ненужный модальный G код не был отменен. Например, если программа обработки была прервана по каким-либо причинам в середине. Строка безопасности, находящаяся обычно в начале УП или после кадра смены инструмента позволяет «восстановить» забытые G коды и выйти в нормальный режим работы.
Слайд 5G коды строки безопасности
Код G21 указывает на то, что всеперемещения и подачи рассчитываются и осуществляются в миллиметрах, а не
в дюймах (G20). Поэтому включение этого кода в состав строки безопасности гарантирует работу в правильном режиме.
Код G40 отменяет автоматическую коррекцию на радиус инструмента (авто-матическое смещение инструмента от запрограммированной траектории). Которая может быть активна, если в конце предыдущей программы ее не отменили (выключили).
Код G49 отменяет компенсацию длины инструмента.
Код G54 на большинстве современных станков позволяет активизировать одну из нескольких рабочих систем координат. Предыдущая управляющая программа могла работать в другой системе координат, например в G55. Как и большинство G кодов, G код рабочей системы координат является модальным и сохраняется активным в памяти СЧПУ до тех пор, пока его не отменят. Для того чтобы избежать ошибки, в строку безопасности включают код требуемой рабочей системы координат (G54 — G59).
Код G80 отменяет все постоянные циклы (например, циклы сверления) и их параметры.
Код G90 активизирует работу с абсолютными координатами. Большинство программ обработки создается в абсолютных координатах, возможны случаи, когда требуется выполнять перемещения инструмента в относительных координатах (G91).Слайд 6G коды
Код G00 — используется для выполнения ускоренного перемещения.
Ускоренноеперемещение или позиционирование необходимо для быстрого перемещения режущего инструмента к
позиции обработки или к безопасной позиции. Ускоренное перемещение никогда не используется для выполнения обработки, так как скорость движения исполнительного органа станка очень высока и непостоянна.
Код G00 отменяется при программировании следующих кодов: G01, G02, G03Пример ускоренного перемещения.
G00 Х80 Z10 — позиционирование в точку с координатами (80;10)Слайд 7Код G01 — линейная интерполяция.
Код G01 — команда линейной интерполяции,обеспечивающая перемещение инструмента по прямой линии с заданной скоростью.
Скоростьперемещения указывается F адресом. Код G01 отменяется с помощью кодов G00, G02 G03.
Пример линейной интерполяции.
G01 Х35 Y45 F200 — перемещение по прямой в точку с координатами (35;45) со скоростью подачи 200 мм в минуту.Слайд 8Код G02 — круговая интерполяция (дуга в направлении часовой стрелки)
GО2 предназначен для выполнения круговой интерполяции, то есть для перемещения
инструмента по дуге (окружности) в направлении часовой стрелки с заданной скоростью. Скорость перемещения указывается F адресом. Код G02 отменяется с помощью кодов G00, G01 и G0З.
Код G0З — круговая интерполяция (дуга против часовой стрелки)
Код G0З предназначен для выполнения круговой интерполяции, то есть для перемещения инструмента по дуге (окружности) против часовой стрелки с заданной скоростью. Скорость перемещений и отмена по аналогии с GО2.
Круговая интерполяция в разных плоскостях.
Слайд 9Код G04 — команда на выполнение выдержки (паузы) с заданным
временем. Этот немодальный код программируется вместе с X или Р
адресом, который указывает длительность времени выдержки. Обычно, это время составляет от 0.001 до 99999.999 секунд.
Код G04, X или Р адрес программируются вместе в одном кадре, который не содержит никаких перемещений.
Если для определения времени выдержки используется Р, то нельзя программировать десятичную точку. Адрес Р определяет время выдержки в миллисекундах, а X — в секундах.
Если команда G04 программируется без временного фактора, то она воспринимается системой ЧПУ как немодальная команда для точного останова.
Пример:Слайд 10Из-за автоматического ускорения и замедления осевых перемещений исполнительных органов станка
с ЧПУ не происходит точная обработка кромок углов при переходе
от одного движения резания к другому. Эта неточность обработки выражается в закруглении или притуплении углов.
При работе в обычном режиме , возможно, что при переходе от движения по оси Y к движению по оси X произойдет небольшое скругление кромки
Немодальный код G09 предназначен для согласования фактической траек-тории инструмента с запрограммированной траекторией. То есть при пере-ходе от одного направления движения к другому СЧПУ обеспечит закончен-ное и точное перемещение в указанную координату. Код G09 обычно указыв-ается вместе с координатой, в которой необходимо выполнить точный останов.
В точке Y17.5, СЧПУ выполнит точный останов. Время выдержки в этой координате определяется значением специального параметра системы.
Слайд 11Команда G10 позволяет устанавливать или смещать рабочую систему координат и
вводить определенные значения в регистры коррекции инструмента памяти СЧПУ при
помощи основной УП или специальной (отдельной) программы. Если вводят какие-либо значения в регистры коррекции при помощи основной УП, то они должны находится в начале программы. Этим обеспечивается согласованность значений в регистрах коррекции и самой программы обработки.
Для ввода значений в регистры коррекции применяют следующий формат:— включение режима ввода данных
— настройка регистра коррекции инструмента
— выбор регистра коррекции, который необходимо изменить
— вводимое значение коррекции
Если команда G10 используется одновременно с кодом G90, то значения в регистрах коррекции переписываются (заменяются новыми значениями).
Когда G10 работает вместе с кодом G91, то значения в корректорах складываются (или вычитаются) с числовым значением при R.
Пример: кадр G10 G90 L11 Р12 R100.05 заменяет существующее значение в регистре коррекции №12 на новое значение 100.05.Слайд 12Для установки или смещения рабочей с-мы координат используют следующий формат:
—включение режима ввода данных
определение стандартной рабочей системы координат
—выбор рабочей системы координат
— значения определяющие новое положение рабочей системы координат
Подготовительная функция G10 является модальной и остается активной до тех пор, пока не будет отменена кодом G11. Перед использованием G10 внимательно ознакомьтесь с паспортом станка, так как формат кадра с G10 может быть различным.
При помощи команды G11 отменяется команда G10 для включения режима ввода данных в СЧПУ
Слайд 13Команда G15 отменяет режим работы в полярной системе координат и
возвращает к программированию в прямоугольной системе координат.
Подготовительная функция G16 позволяетработать в полярной системе координат. При этом запрограммированная позиция определяется углом и расстоянием от нулевой точки рабочей системы координат или от текущей действительной позиции.
Работать в полярной системе координат можно в одной из трех плоскостей.
С кодом G17 работают в плоскости ХY, с кодом G18 — в плоскости ХZ, с кодом G19 — в плоскости YZ.Полярные координаты: точка А (5;20) и точка В (4; 120)
Если активна плоскость ХY, то X адрес определяет радиус, а Y устанавливает угол относительно оси X. Если активна плоскость ХZ, то X адрес определяет радиус, а Z устанавливает угол относительно оси X. Если активна плоскость YZ, то Y адрес определяет радиус, а Z устанавливает угол относительно оси Y. Положительным считается угол, который отсчитывается против часовой стрелки.
Слайд 14Полярные перемещения, которые указываются при действующей команде G90, выполняются относительно
нулевой точки активной рабочей системы координат.
Если действует код G91,то полярные перемещения выполняются относительно текущей позиции. Значения угла и радиуса могут быть запрограммированы независимо как абсолютные или относительные значения То есть полярное перемещение может быть одновременно определено углом от нулевой точки рабочей системы координат и расстоянием (радиусом) от текущей позиции.
Не редки случаи, когда на чертежах отверстия указываются при помощи полярных координат. Чтобы не пересчитывать полярные координаты в прямоугольные, можно воспользоваться подготовительной функцией G16Команда G16 является модальной, поэтому остается активной до тех пор, пока ее не отменят командой G15.
Слайд 15Подготовительная функция G17 предназначена для выбора плоскости ХY в качестве
рабочей
G17, G18, G19 используются для выбора активной плоскости системыкоординат.
Плоскость ХY становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.Слайд 16Код G20 активизирует режим работы с дюймовыми данными. Пока действует
этот режим, все вводимые данные воспринимаются как дюймовые. Рекомендуется во
всех программах, которые написаны в дюймовых размерах, поставить команду G20 в начало программы (в строку безопасности), чтобы в случае, если в программе, выполняемой до этого, действовал метрический режим, обеспечить выбор корректного формата.
Пример:Команда является модальной и действует до тех пор, пока ее не отменят командой G21
Код G21 активизирует режим работы с метрическими данными. Пока действует этот режим, все вводимые данные ею принимаются как метрические. Рекомендуется во всех программах, которые написаны в метрических размерах, поставить команду G21 в начало программы (в строку безопасности), чтобы в случае, если в программе, выполняемой до этого, действовал дюймовый режим, обеспечить выбор корректного формата.
Команда является модальной, действует пока не отменят G20 Пример:Слайд 17Код G22 активизирует установленный предел перемещений. В этом случае инструмент
не может выйти за пределы ограничивающей области. Эта область, как
правило, устанавливается с помощью параметров СЧПУ.
При выполнении команды G23 установленные пределы перемещений не действуют. То есть код G23 отменяет действие кода G22 и позволяет инструменту перемещаться в любую точку рабочей зоны станка
Код G27 работает аналогично коду G28 (см. далее). Единственная разница заключается в том, что если позиция к которой произошло перемещение исполнительного органа, не соответствует исходной позиции, то в случае с G27 система ЧПУ станка выдает аварийное сообщение или сигнал
Команды G27 и G28 могут использоваться в циклах и макросах автоматической смены инструмента. Перед выполнением этих G кодов обычно отменяют коррекцию инструмента.Слайд 18Команда G28 предназначена для возврата станка в исходную позицию. Под
этим понимается ускоренное перемещение исполнительных органов в нулевую точку станка.
Возврат в исходную позицию предназначен, прежде всего, для возможности проверки размеров и качества обрабатываемой детали в середине программы обработки. Иногда код G28 ставят в конец управляющей программы, чтобы после ее завершения рабочий стол переместился в положение удобное для съема обработанной детали.
Условный кадр для автоматического возврата в исходную позицию:Если в кадре с G28 указываются оси X, Y и Z с нулевыми значениями, то возврат в исходную позицию происходит по этим трем осям. Однако не всегда нужно выполнять эту операцию со всеми осями. Иногда требуется перемещение только по двум из них. Например, для возврата по осям Z и Y в программе обработки должен стоять следующий кадр:
Слайд 19Код G91 в кадре — активизирует работу в относительных координатах.
При задании кода G28 появляется возможность запрограммировать некоторую промежуточную точку,
в которую будет совершено перемещение, перед тем как станок вернется в исходную позицию. На самом деле, координаты указанные в кадре являются координатами именно промежуточной точки. В приведенных ранее примерах, указывались в качестве координат промежуточной точки нулевые значения. Так как в кадре стоит код относительных координат G91, то станок должен переместиться относительно текущей позиции на нуль миллиметров по каждой из осей. То есть не должен никуда двигаться. Поэтому, при наличии в УП кадра G91 G28 Х0.0 Y0.0 Z0.0 станок будет сразу возвращен в исходную позицию без «заезда» в промежуточную точку.
Если в программе обработки находится кадр G91 G28 Х10.0 Z20.0, то станок сначала переместится вправо и вверх, а только затем вернется в нулевую точку. Для чего нужна эта промежуточная точка? Код G28 вызывает ускоренное перемещение аналогичное G00, а в этом случае оно может быть непрямолинейным. То есть можно запросто что-нибудь ‘зацепить». Опытный программист старается сначала поднять инструмент вверх, а уже затем «отпустить» станок в нулевую точку.Слайд 20 Вопросы для самоконтроля.
В чем отличие модальных кодовот немодальных?
Какие модальные коды вы знаете?
Что называют строкой безопасностив УП для станков с ЧПУ?
В чем состоит основное назначение строки безопасности?
Какие модальные коды строки безопасности вы знаете?
Каким кодом кодируют точный останов рабочего органа станка с ЧПУ?