SINUMERIK Operate SINUMERIK 828D/840D sl Основы языка программирования высокого уровня Редакция 2018.03 Учебное руководство Настоящий документ предназначен для целей обучения. Компания Siemens не несет ответственности за его SINUMERIK Основы языка программирования высокого уровня Действительно для: SINUMERIK 828D SINUMERIK 840D sl SW4.7 SW4.7 Содержание Начало M200 Основы языка программирования высокого уровня M203 M201 Подпрограмма M209 Цикл Расширенный Конец M202 R-параметр M208 Цикл глубины сверления Переходы и пользовательс кие переменные M207 Кадры M205 Системная переменная Подпрограмма M206 Системная переменная Запрос безопасности Основы языка программирования высокого уровня M200 SINUMERIK Operate Описание модуля: В данном модуле описывается процедура темы «Основы языка программирования высокого уровня» Определяется и описывается термин «Язык высокого уровня» для SINUMERIK. 828D/840D sl SINUMERIK Operate Здесь же демонстрируется структура модулей «Основы языка программирования высокого уровня». Назначение: Вы узнаете, как применить «Основы языка программирования высокого уровня» в целях упрощения использования и внедрения тем и примеров, содержащихся в модуле. Содержание: Определение «Язык высокого уровня» в контексте SINUMERIK Применение содержимого документации «Основы языка программирования высокого уровня» 828D/840Dsl SINUMERIK Operate v4.7 Стр. 1 Настоящий документ предназначен для целей обучения. Компания Siemens не несет ответственности за его содержание. M200 M200 M200 Стр. 2 828D/840Dsl SINUMERIK Operate Основы языка программирования высокого уровня M200 Основы языка программировани я высокого уровня: НАЧАЛО Статус Команды Задача Блок-схема Базовая программа Основы языка программировани я высокого уровня: КОНЕЦ Примечания 828D/840Dsl SINUMERIK Operate Стр. 3 M200 M200 Основы языка программирования высокого уровня Статус: В начале каждого модуля приведен график, показывающий его состояние, т. е. какие темы изучены, какие темы изучаются в данный момент и какие будут изучаться в следующих модулях. Название модуля Текущий модуль Следующие модули Для модулей «Основы языка программирования высокого уровня» существуют готовые программы ЧПУ. Эти программы ЧПУ четко соотнесены с соответствующими модулями и имеют свои названия. Они включают рекомендуемое решение задач, содержащихся в модуле. Это обеспечивает наличие исполняемой программы в каждом модуле. Кроме того, рекомендуется использовать дополнительную документацию, поставляемую к существующим модулям: Доступно в TAC EXTRANET. Модуль: DE800D_Complete Hígh-Level Language (Всё о языке высокого уровня) Доступно в INTERNET. SINUMERIK System Variables List Manual (Перечень переменных системы SINUMERIK). Production Planning for SINUMERIK (Планирование производства SINUMERIK). Fundamentals for SINUMERIK Programming Manual (Основы программирования SINUMERIK). Доступно в DOC на CD или в сети Internet в формате pdf. Просто введите указанные термины в строку поиска в Internet. Примечания M200 Стр. 4 828D/840Dsl SINUMERIK Operate Основы языка программирования высокого уровня M200 Различают две тематические области: Программирование станка с ЧПУ. Это команды языка высокого уровня, используемые для линейного программирования. Программирование станка с ЧПУ Операция Преобразование Операция Конец Язык программирования ЧПУ высокого уровня: Это команды языка высокого уровня, используемые для процедурного функционально-ориентированного программирования. Язык программирования ЧПУ высокого уровня Начало Операция Операция Нет Запрос Да Операция Операция Операция Конец Примечания 828D/840Dsl SINUMERIK Operate Стр. 5 M200 M200 Основы языка программирования высокого уровня Команды: Шаг 1: В первом шаге кратко перечисляются команды, используемые программой. Пример: Общие Команда Значение Команда 1 Описание Команда 2 Описание Команда 3 Описание Команда 4 Описание Задача: Шаг 2: Описание задачи: В данном боксе описываются задача и программные требования. Пример: Сквозные отверстия Примечания M200 Стр. 6 828D/840Dsl SINUMERIK Operate M200 Основы языка программирования высокого уровня Статус: Шаг 3: Для задачи создается блок-схема. Пример: . Начало Операция Операция Нет Запрос Да Операция Операция Операция Конец Шаг 4: Создание программы. Пример: Цикл PROC DRILL (REAL _STARTP, REAL _RETRAC, REAL _DEPTH_TOTAL, REAL _DEPTH_1, REAL _FEED, REAL _FEED_1, REAL _DEPTH_MAX, REAL _DEPTH_MIN) ;DISPLOF SAVE ;-----------------------------DEF REAL _DEPTH_CAL DEF REAL _LAST_STEP DEF INT _STEP DEF REAL _STEP_EV DEF REAL _ACTPOS DEF INT _TOOLTYPE ;------------------------------_DEPTH_TOTAL=ABS(_DEPTH_TOTAL) _DEPTH_1=ABS(_DEPTH_1) IF _FEED==0 GOTOF _ERROR2 ENDIF _TOOLTYPE=$TC_DP1[$P_TOOLNO,1] IF (_TOOLTYPE<200) OR (_TOOLTYPE>299) GOTOF _ERROR1 Каждый модуль содержит соответствующую программу в виде файла «MPF». Он может мгновенно загружаться и моделироваться. Примечания 828D/840Dsl SINUMERIK Operate Стр. 7 M200 M200 Основы языка программирования высокого уровня Базовая программа основывается на существующей документации: Обучение преподавателя, фрезерование. В этой программе нет циклов и команд на языке высокого уровня. Они добавляются в нее пошагово. Чертеж: Сквозные отверстия Блок-схема: Начало Центровка Сверление Нарезание резьбы Технология Технология Технология 1-я позиция 1-я позиция 1-я позиция Технология Технология Технология 2-я позиция 2-я позиция 2-я позиция Положение Положение Положение Технология Технология Технология 3-я позиция 3-я позиция 3-я позиция Технология Технология Технология 4-я позиция 4-я позиция 4-я позиция Технология Технология Технология Конец Примечания M200 Стр. 8 828D/840Dsl SINUMERIK Operate Основы языка программирования высокого уровня M200 Базовая программа: N10 G17 G64 G90 G54 N20 G40 G60 G71 G94 N30 WORKPIECE(,"",,"BOX",0,0,-20,-80,0,0,150,100) N40 T="CENTERDRILL_12" ;CENTERTOOL N50 M6 D1 N60 G95 S1200 F0.1 M3 M8 N70 G0 Z100 N80 G0 X30 Y25 N90 G0 Z3 N100 G1 Z-5 N110 G0 Z3 N120 G0 X120 N130 G1 Z-5 N140 G0 Z3 N150 G0 Y75 N160 G1 Z-5 N170 G0 Z3 N180 G0 X30 N190 G0 X30 N200 G1 Z-5 N210 G0 Z3 N220 G0 Z100 N230 T="DRILL_8.5" ;DRILLINGTOOL N240 M6 D1 N250 G95 S1200 F0.1 M3 M8 N260 G0 Z100 N270 G0 X30 Y25 N280 G0 Z3 N290 G1 Z-27 N300 G0 Z3 N310 G0 X120 N320 G1 Z-27 N330 G0 Z3 N340 G0 Y75 N350 G1 Z-27 N360 G0 Z3 N370 G0 X30 N380 G1 Z-27 N390 G0 Z3 N400 G0 Z100 ;THREAD CUTTING N300 G0 Z3 N310 G0 X120 N320 G1 Z-27 N330 G0 Z3 N340 G0 Y75 N350 G1 Z-27 N360 G0 Z3 N370 G0 X30 N380 G1 Z-27 N390 G0 Z3 N400 G0 Z100 ;THREAD CUTTING N410 T="THREADCUTTER_M10" ;THREADTOOL N420 M6 D1 N430 G95 S200 M3 M8 N440 G0 Z100 N450 G0 Z100 N460 N470 N480 G490 N500 N510 N520 N530 N540 N550 N560 N570 N580 N590 N600 G0 X30 Y25 G0 Z3 G331 Z-25 K1.5 S2000 G332 Z3 K1.5 S400 G0 Y75 G331 Z3 K1,5 S400 G332 Z3 K1.5 S400 G0 Y75 G331 Z-25 K1.5 S200 G332 Z3 K1.5 S400 G0 X30 G331 Z-25 K1.5 S200 G332 Z3 K1.5 S400 G0 Z100 M30 Примечания 828D/840Dsl SINUMERIK Operate Стр. 9 M200 M200 Основы языка программирования высокого уровня Базовая программа завершена. Данная программа оптимизирована с помощью команд на языке высокого уровня в следующем модуле. Рекомендуется скопировать программу в SinuTrain, чтобы обеспечить возможность воспроизведения следующих модулей. Создайте новую программу G-code. Скопируйте программу G-code из данного модуля в редактор созданной программы G-code. Теперь у вас есть базовая программа для следующих модулей, и вы сможете легко воспроизвести следующие шаги. Примечания M200 Стр. 10 828D/840Dsl SINUMERIK Operate Подпрограмма M201 SINUMERIK Operate Описание модуля: 828D/840D sl SINUMERIK Operate В данном модуле описывается создание подпрограмм на наглядном примере. Назначение: Изучив модуль, вы сможете программировать с помощью подпрограмм и таким образом оптимизировать свои программы ЧПУ в отношении структуры и конфигурации. Это экономит время и позволяет конфигурировать программы ЧПУ таким образом, чтобы они легко читались и использовались другими операторами. Расшифровка команд для работы с подпрограммами Использование материала на примере 828D/840Dsl SINUMERIK Operate v4.7 Настоящий документ предназначен для целей обучения. Компания Siemens не несет ответственности за его Стр. 1 содержание. M201 M201 M201 Стр. 2 828D/840Dsl SINUMERIK Operate M201 Подпрограмма Подпрограмма НАЧАЛО Статус Команды Задача Блок-схема Пример программы Подпрограмма КОНЕЦ Примечания 828D/840Dsl SINUMERIK Operate Стр. 3 M201 M201 Статус: Подпрограмма M200 Основы языка программирования высокого уровня M206 Системная переменная, запрос безопасности M201 Подпрограмма M207 Кадры M202 R-переменные M208 Цикл M203 Переходы и пользовательские переменные M204 Точение, шпиндель, плоскости M205 Системная переменная, подпрограмма Работа с подпрограммами: Создает четкую программную структуру. Программ становится понятнее и проще для чтения. Сегменты программы могут повторяться как «кадры» из библиотеки механической обработки. Поскольку не требуется постоянно записывать программные сегменты, это экономит время, необходимое для создания программы, и объем памяти. Структура подпрограммы: Основная программа 1-я подпрограмма В принципе, подпрограммы структурируются таким же образом, что и основная программа. Существуют специальные команды для подпрограмм, зависящие от приложения. Вызов подпрограммы подчиняется определенной иерархии: 2-я подпрограмма Файл «Programname.MPF» распознается, если он находится в той же директории (WPD). Файл «Programname.SPF» распознается при точном соблюдении следующей последовательности поиска: 1. В активной директории 2. В папке «Subprograms» (Подпрограммы) 3. В директории циклов пользователя 4. В директории циклов производителя 5. В стандартной директории циклов Эта тема подробно раскрыта в следующих модулях. Примечания M201 Стр. 4 828D/840Dsl SINUMERIK Operate M201 Подпрограмма Команды: Команда Значение M17 Конец подпрограммы RET Конец подпрограммы Имя Произвольное имя, идентифицирующее подпрограмму M17: Обозначает конец подпрограммы с инструкциями по возврату к основной программе. Возврат осуществляется с помощью ПЛК. RET: Тоже конец подпрограммы, но без прерывания режима контурной обработки и без функционального вывода на ПЛК. (Более быстрый возврат, чем в M17) Имя: Аналогичные правила (преобразования DOS), что и для основной программы, применяются для имен подпрограмм: Имя программы может состоять не более чем из 24 символов. Они отображаются в ЧПУ. Буквы A...Z и a...z Цифры 0...9 Нижние подчеркивания _ Зарезервированные ключевые слова, например «RET», не могут использоваться в именах. Задача: Существующая базовая программа из модуля M200 поделена на подпрограммы, в зависимости от процесса обработки. Основная программа и подпрограммы оканчиваются на MPF и должны находиться в одной директории. Базовая программа теперь оптимизирована с помощью подпрограмм. Чертеж: Сквозные отверстия Примечания 828D/840Dsl SINUMERIK Operate Стр. 5 M201 M201 Блок-схема: Подпрограмма Начало 1. Технология Центровка 2. Технология Сверление 3. Технология Нарезание резьбы Конец Пример программы: Основная программа N10 G17 G64 G90 G54 N20 G40 G60 G71 G94 N30 WORKPIECE(,"",,"BOX",0,0,-20,-80,0,0,150,100) N40 T="CENTERDRILL_12" N50 M6 D1 N60 G17 G40 G60 G71 G90 N70 G95 S1200 F0.1 M3 M8 ;SUBPROGRAM CALL N80 _CENTERING N90 T="DRILL_8.5" N100 M6 D1 N110 G95 S1200 F0.1 M3 M8 ;SUBPROGRAM CALL N120_DRILLING N130 T="THREADCUTTER_M10" N140 M6 D1 N150 G95 S1200 M3 M8 ;;SUBPROGRAM CALL N160 _THREAD CUTTING N170 G0 Z100 N180 M30 1. Технология 2. Технология 3. Технология Примечания M201 Стр. 6 828D/840Dsl SINUMERIK Operate M201 Подпрограмма Подпрограмма центровки N10 G0 Z100 N20 G0 X30 Y25 N30 G0 Z3 N40 G1 Z-5 N50 G0 Z3 N60 G0 X120 N70 G1 Z-5 N80 G0 Z3 N90 G0 Y75 N100 G1 Z-5 N110 G0 Z3 N120 G0 X30 N130 G1 Z-5 N140 G0 Z3 N150 G0 Z100 N160 M17 Подпрограмма сверления N10 G0 Z100 N20 G0 X30 Y25 N30 G0 Z3 N40 G1 Z-27 N50 G0 Z3 N60 G0 X120 N70 G1 Z-27 N80 G0 Z3 N90 G0 Y75 N100 G1 Z-27 N110 G0 Z3 N120 G0 X30 N130 G1 Z-27 N140 G0 Z3 N150 G0 Z100 N160 RET Подпрограмма нарезания резьбы N10 G0 Z100 N20 G0 X30 Y25 N30 G0 Z3 N40 G331 Z-25 K1.5 S200 N50 G332 Z3 K1.5 S400 N60 G0 X120 N70 G331 Z-25 K1.5 S200 N80 G332 Z3 K1.5 S400 N90 G0 Y75 N100 G331 Z-25 K1.5 S200 N110 G332 Z3 K1.5 S400 N120 G0 X30 N130 G331 Z-25 K1.5 S200 N140 G332 Z3 K1.5 S400 N150 M17 Примечания 828D/840Dsl SINUMERIK Operate Стр. 7 M201 M201 Подпрограмма Примечания M201 Стр. 8 828D/840Dsl SINUMERIK Operate R-переменные M202 SINUMERIK Operate Описание модуля: 828D/840D sl SINUMERIK Operate В данном модуле описывается работа с R-переменными (арифметическими параметрами). Назначение: Изучив модуль, вы сможете более эффективно конфигурировать программы ЧПУ, программные статусы и актуальные запросы, а также визуализировать их. Программы ЧПУ станут более понятными и прозрачными. Инструкции по работе с R-переменными Использование материала на примере 828D/840Dsl SINUMERIK Operate v4.7 Настоящий документ предназначен для целей обучения. Компания Siemens не несет ответственности за его Стр. 1 содержание. M202 M202 M202 Стр. 2 828D/840Dsl SINUMERIK Operate M202 M202 R-переменные R-переменные R-переменные НАЧАЛО Статус Команды Задача Блок-схема Пример программы R-переменные КОНЕЦ Примечания 828D/840Dsl SINUMERIK Operate Стр. 3 M202 M202 Статус: R-переменные M200 Основы языка программирования высокого уровня M206 Системная переменная, запрос безопасности M201 Подпрограмма M207 Кадры M202 R-переменные M208 Цикл M203 Переходы и пользовательские переменные M204 Точение, шпиндель, плоскости M205 Системная переменная, подпрограмма Команды: Команда R... Значение Заданные арифметические параметры, обозначенные буквой «R» после классификационного номера. Арифметические параметры доступны для любых систем управления SINUMERIK и могут использоваться как программистами, так и пользователями. Количество арифметических параметров варьируется и определяется машинными параметрами. Обычно используется 99 переменных. Изучите спецификации производителя станка. Функция: Арифметические параметры могут использоваться, когда необходимо обеспечить гибкость программы ЧПУ, поскольку значения могут различаться в пределах программы в зависимости от заготовки. Этим параметрам могут быть произвольно присвоены адреса ЧПУ в рамках программы с переменным значением. Присвоенные значения должны быть числовыми. Важно, чтобы переменным присваивались корректные значения, поскольку они не проверяются на достоверность. R-переменные - это переменные, которые сохраняются (сохраняемые переменные) после выключения станка. R-переменные являются локальными, видимыми только в активном канале. Примечания M202 Стр. 4 828D/840Dsl SINUMERIK Operate M202 R-переменные Требования к R-переменным: Значение R-переменной должно быть присвоено в блоке Пример: R12=100 Допускается не более восьми позиций после десятичной запятой. Десятичная запятая может опускаться, если значение представляет собой целое число. У положительных чисел знак может опускаться. Арифметические функции могут выполняться с использованием R-переменных - при этом применяется математическое обозначение. Значениям можно присвоить практически любые адреса с R-переменными, кроме (N, G и L). R-переменные в SINUMERIK: Отображение R-переменных в системе управления Задача: 1. Задача: Расстояние до отверстия относительно нулевой точки заготовки программируется переменными в программе. Примечания 828D/840Dsl SINUMERIK Operate Стр. 5 M202 M202 R-переменные Чертеж: Расстояние Расст. 3 Расст. 4 Расстояние Сквозные отверстия Блок-схема: Начало Задание R-переменных Центровка Сверление Нарезание резьбы Установка R-переменных на ноль Конец Программа может использоваться для разных заготовок, запрограммированных с R-переменными. Примечания M202 Стр. 6 828D/840Dsl SINUMERIK Operate M202 R-переменные Пример программы ;PLEASE ASSIGN CORRECT VALUES TO THE R VARIABLES ;R1= DISTANCE 1 IN THE DRAWING ;R2= DISTANCE 2 IN THE DRAWING ;R3= DISTANCE 3 IN THE DRAWING ;R4= DISTANCE 4 IN THE DRAWING ;ASSIGN VALUES TO VARIABLES N10 R1=30 N20 R2=90 N30 R3=25 N40 R4=50 N50 MSG("FILLED IN THE CORRECT VALUES?") N60 M0 N70 MSG() N80 MSG("R1="<<R1<<"__R2="<<R2<<"__R3="<<R3<<"__R4="<<R4) N90 G17 G64 G90 G54 G94 G71 N100 WORKPIECE(,"",,"BOX",0,0,-20,-80,0,0,150,100) N110 T="CENTERDRILL_12" Центровка N120 M6 D1 N130 G40 G60 N140 G95 S1200 F0.1 M3 M8 N150 G0 Z100 N160 G0 X=R1 Y=R3 N170 G0 Z3 N180 G1 Z-5 N190 G0 Z3 N200 G0 X=R1+R2 N210 G1 Z-5 N220 G0 Z3 N230 N240 N250 N260 N270 N280 N290 N300 N310 N320 N330 N340 N350 N360 N370 N380 N390 N400 N410 N420 N430 N440 N450 N460 N470 N480 N490 N500 N510 N520 G0 Y=R3+R4 G1 Z-5 G0 Z3 G0 X=R1 G1 Z-5 G0 Z3 G0 Z100 T="DRILL_8.5" M6 D1 G95 S1200 F0.1 M3 M8 G0 Z100 G0 X=R1 Y=R3 G0 Z3 G1 Z-27 G0 Z3 G0 X=R1+R2 G1 Z-27 G0 Z3 G0 Y=R3+R4 G1 Z-27 G0 Z3 G0 X=R1 G1 Z-27 G0 Z3 G0 Z100 T="THREADCUTTER_M10" M6 D1 G95 S1200 M3 M8 G0 Z100 G0 X=R1 Y=R3 Сверление Нарезание резьбы Примечания 828D/840Dsl SINUMERIK Operate Стр. 7 M202 M202 R-переменные N530 G0 Z3 N540 G331 Z-25 K1.5 S200 N550 G332 Z3 K1.5 S400 N560 G0 X=R1+R2 N570 G331 Z-25 K1.5 S200 N580 G332 Z3 K1.5 S400 N590 G0 Y=R3+R4 N600 G331 Z-25 K1.5 S200 N610 G332 Z3 K1.5 S400 N620 G0 X=R1 N630 G331 Z-25 K1.5 S200 N630 G331 Z-25 K1.5 S200 N640 G332 Z3 K1.5 S400 N650 G0 Z100 N660 M30 ;RESET THE VARIABLES N670 R1=0 N680 R2=0 N690 R3=0 N700 R4=0 Сброс R-переменных Введенные значения присваиваются R-переменным в перечне R-переменных и отменяются в конце выполнения программы. Примечания M202 Стр. 8 828D/840Dsl SINUMERIK Operate M202 R-переменные Тексты сообщения: Команда MSG Значение Произвольные тексты, а также значения переменных, могут быть выведены в строке сигнализации в области управления «Automatic» (Автоматический режим). Сообщения могут быть запрограммированы оператором с помощью команды MSG, которая будет отображаться при выполнении программы. Произвольные тексты, а также значения переменных, могут отображаться с помощью команды MSG. Пример текста сообщения: MSG(«This is a sample text») Текст остается активным и видимым до завершения выполнения программы . MSG() Данная команда удаляет весь отображаемый текст в произвольном месте программы. Пример текста сообщения с переменной: MSG(«Value of variable R1=»<<R1) Текст, заключенный в кавычки, может быть произвольным «Value of variable R1=» (Значение переменной R1=). Два символа «меньше» (<<) в данном случае показывают значение R-переменной R1. Описание задачи 2 Задача: Текст сообщения предназначен для демонстрации оператору, что значения R-переменных введены корректно. В конце программы текущие значения R-переменных отображаются в области управления «Automatic» (Автоматический режим). Примечания 828D/840Dsl SINUMERIK Operate Стр. 9 M202 M202 Блок-схема: R-переменные Начало Параметры запроса R-переменные Останов Начало Задание R-переменных Отображение R-переменных Центровка Сверление Нарезание резьбы Сброс R-переменных Конец ;PLEASE ASSIGN CORRECT VALUES TO THE R VARIABLES ;R1= DISTANCE 1 IN THE DRAWING ;R2= DISTANCE 2 IN THE DRAWING ;R3= DISTANCE 3 IN THE DRAWING ;R4= DISTANCE 4 IN THE DRAWING N10 R1=20 N20 R2=120 N30 R3=20 N40 R4=80 N50 MSG("FILLED IN THE CORRECT VALUES?") N60 M0 N70 MSG() N80 MSG("R1="<<R1<<"__R2="<<R2<<"__R3="<<R3<<"__R4="<<R4) N90 G17 G64 G90 G54 G94 . … M30; DELETES MESSAGE TEXT Отображение R-переменных Останов Отображение R-переменных Примечания M202 Стр. 10 828D/840Dsl SINUMERIK Operate M202 R-переменные Текст 1-го сообщения Удаляется нажатием Cycle Start (Запуск цикла). Текст 2-го сообщения Остается видимым до завершения выполнения программы M30. Примечания 828D/840Dsl SINUMERIK Operate Стр. 11 M202 M202 R-переменные Примечания M202 Стр. 12 828D/840Dsl SINUMERIK Operate Переходы и пользовательские переменные M203 SINUMERIK Operate Описание модуля: 828D/840D sl SINUMERIK Operate В данном модуле вы узнаете, как задать свои собственные переменные, и ознакомитесь с инструкциями по переходу. Назначение модуля: Изучив модуль, вы сможете задавать простые пользовательские переменные и программировать запросы с помощью инструкций по переходу. Ваша работа станет более эффективной и гибкой. Описание переменных Описание переходов Программирование запросов 828D/840Dsl SINUMERIK Operate v4.7 Стр. 1 Настоящий документ предназначен для целей обучения. Компания Siemens не несет ответственности за его содержание. M203 M203 M203 Стр. 2 828D/840Dsl SINUMERIK Operate Переходы и пользовательские переменные M203 Переходы и пользовательские переменные НАЧАЛО Статус Команды Задача Блок-схема Пример программы Переходы и пользовательские переменные КОНЕЦ Примечания 828D/840Dsl SINUMERIK Operate Стр. 3 M203 M203 Статус: Переходы и пользовательские переменные M200 Основы языка программирования высокого уровня M206 Системная переменная, запрос безопасности M201 Подпрограмма M207 Кадры M202 R-переменные M208 Цикл M203 Переходы и пользовательские переменные M204 Точение, шпиндель, плоскости M205 Системная переменная, подпрограмма Команды: Команда Значение DEF INT Пользовательские переменные IF Условия ЯРЛЫК Ярлыки переходов GOTO; GOTOF; GOTOB Инструкции по переходу DEF INT: С помощью этой команды вы можете задавать свои собственные переменные и присваивать им значения. Это так называемые пользовательские переменные. Пользовательские переменные должны всегда начинаться с нижнего подчеркивания для исключения использования запрограммированных имен. Пользовательская переменная не может состоять более чем из 15 символов. Обозначения должны быть всегда одинаковыми (все символы в верхнем регистре). INT всегда означает целые числа. Существует множество типов переменных, подробно описанных в руководстве «Всё о языке высокого уровня». Значение присваивается переменной с помощью знака равенства (VALUE =). Запрос о значимости переменной выполняется с помощью двух знаков равенства (IF VALUE ==1). IF: Данная команда является ключевым словом, с которым всегда связано какое-либо условие. Таким образом, программист может менять заданную последовательность программ ЧПУ для интеграции структуры управления. Примечания M203 Стр. 4 828D/840Dsl SINUMERIK Operate Переходы и пользовательские переменные M203 Ярлык: Ярлыки перехода могут задаваться с помощью так называемых ярлыков, на которые дается ссылка из других положений в той же программе. Имя ярлыка можно выбрать произвольно. Рекомендуется использовать «говорящие» имена ярлыков, например, THREAD CUTTING (Нарезание резьбы). Если ссылка на ярлык дается как назначение перехода, после слова должно стоять двоеточие. LABEL_1: Это означает ярлык как таковой. GOTO/GOTOF/GOTOB: GOTO это прямые команды перехода, которые всегда используются вместе с ярлыками перехода. Направление перехода определяется ярлыками GOTOF или GOTOB. Это ускоряет поиск. Назначение перехода с таким же именем может быть ярлыком в пределах активной программы или подпрограммы, оканчивающейся на MPF или SPF. При работе с «говорящими» идентификаторами необходимо использовать уникальные имена. Если назначение перехода не найдено, выводится предупреждение 14080 «Jump destination not found» (Назначение перехода не найдено). Задача: Задача: Используется базовая программа с подпрограммами из модуля 201 Оператор должен выбрать между тремя программами с разными расстояниями до отверстия. Соответствующая подпрограмма с необходимыми расстояниями выбирается посредством ввода значения между 1 и 3. Если значение между 1 и 3 не выбрано, программа прерывается. Появляется сообщение о некорректном вводе данных. 1-я программа Примечания 828D/840Dsl SINUMERIK Operate Стр. 5 M203 M203 Переходы и пользовательские переменные 50 2-я программа 110 3-я программа Примечания M203 Стр. 6 828D/840Dsl SINUMERIK Operate M203 Переходы и пользовательские переменные Блок-схема: Выбор заготовки 1-3 Начало 1-3 Если значение = не 1, 2 или 3 Сообщение Если значение = 1 1-я подпрограмма Если значение = 2 Если значение = 3 2-я подпрограмма 3-я подпрограмма Конец Пример программы: Основная программа: N10 DEF INT _WORKPIECE ;ENTER NUMBER OF THE WORKPIECE IN THE NEXT BLOCK N20 WORKPIECE=3 ;QUERY VALUE WITH ASSIGNMENT JUMP N30 IF _WORKPIECE==1 GOTOF LABEL_1 N40 IF _WORKPIECE==2 GOTOF LABEL_2 N50 IF _WORKPIECE==3 GOTOF LABEL_3 N60 MSG("INCORRECT VALUE") ;DISPLAY IF VALUE NOT 1-3 N70 M0 N80 M30 ;END OF PROGRAM IF VALUE INCORRECT N90 LABEL_1: ;JUMP LABEL N100 PROGRAM_1 N110 M30 N120 LABEL_2: N130 PROGRAM_2 N140 M30 N150 LABEL_3: N160 PROGRAM_3 N170 M30 Выбор заготовки 1-3 Если значение = 1 Если значение = 2 Если значение = 3 Примечания 828D/840Dsl SINUMERIK Operate Стр. 7 M203 M203 Переходы и пользовательские переменные Подпрограмма для заготовки 1 N10 G17 G64 G90 G54 N20 G40 G60 G71 G94 N30 WORKPIECE(,"",,"BOX",0,0,-20,-80,0,0,150,100) ;CENTERING N40 T="CENTERDRILL_12" N50 M6 D1 N60 G95 S1200 F0.1 M3 M8 N70 G0 Z100 N80 G0 X30 Y25 N90 G0 Z3 N100 G1 Z-8 N110 G0 Z3 N120 G0 X120 N130 G1 Z-8 N140 G0 Z3 N150 G0 Y75 N160 G1 Z-8 N170 G0 Z3 N180 G0 X30 N190 G1 Z-8 N200 G0 Z3 N210 G0 Z100 ;DRILLING N220 T="DRILL_8.5" N230 M6 D1 N240 G95 S1200 F0.1 M3 M8 N250 G0 Z100 N260 G0 X30 Y25 N270 G0 Z3 N280 G1 Z-27 N290 G0 Z3 N300 G0 X120 N310 G1 Z-27 N320 G0 Z3 N330 G0 Y75 N340 G1 Z-27 N350 G0 Z3 N360 G0 X30 N370 G1 Z-27 N380 G0 Z3 N390 G0 Z100 ;THREAD CUTTING N400 T="THREADCUTTER_M10" N410 M6 D1 N420 G95 S200 M3 M8 N430 G0 Z100 N440 G0 X30 Y25 N450 G0 Z3 N460 G331 Z-25 K1.5 S200 N470 G332 Z3 K1.5 S400 N480 G0 X120 N490 G331 Z-25 K1.5 S200 N500 G332 Z3 K1.5 S400 N510 G0 Y75 N510 G0 Y75 N520 G331 Z-25 K1.5 S200 N530 G332 Z3 K1.5 S400 N540 G0 X30 N550 G331 Z-25 K1.5 S200 N560 G332 Z3 K1.5 S400 N570 G0 Z100 N580 M17 Примечания M203 Стр. 8 828D/840Dsl SINUMERIK Operate M203 Переходы и пользовательские переменные Подпрограмма для заготовки 2 N10 G17 G64 G90 G54 N20 G40 G60 G71 G94 N30 WORKPIECE(,"",,"BOX",0,0,-20,-80,0,0,150,100) ;CENTERING N40 T="CENTERDRILL_12" N50 M6 D1 N60 G95 S1200 F0.1 M3 M8 N70 G0 Z100 N80 G0 X50 Y25 N90 G0 Z3 N100 G1 Z-8 N110 G0 Z3 N120 G0 X120 N130 G1 Z-8 N140 G0 Z3 N150 G0 Y75 N160 G1 Z-8 N170 G0 Z3 N180 G0 X50 N190 G1 Z-8 N200 G0 Z3 N210 G0 Z100 ;DRILLING N220 T="DRILL_8.5" N230 M6 D1 N240 G95 S1200 F0.1 M3 M8 N250 G0 Z100 N260 G0 X50 Y25 N270 G0 Z3 N280 G1 Z-27 N290 G0 Z3 N300 G0 X120 N310 G1 Z-27 N320 G0 Z3 N330 G0 Y75 N340 G1 Z-27 N350 G0 Z3 N360 G0 X50 N370 G1 Z-27 N380 G0 Z3 N390 G0 Z100 ;THREAD CUTTING N400 T="THREADCUTTER_M10" N410 M6 D1 N420 G95 S200 M3 M8 N430 G0 Z100 N440 G0 X50 Y25 N450 G0 Z3 N460 G331 Z-25 K1.5 S200 N470 G332 Z3 K1.5 S400 N480 G0 X120 N490 G331 Z-25 K1.5 S200 N500 G332 Z3 K1.5 S400 N510 G0 Y75 N520 G331 Z-25 K1.5 S200 N530 G332 Z3 K1.5 S400 N540 G0 X50 N550 G331 Z-25 K1.5 S200 N560 G332 Z3 K1.5 S400 N570 G0 Z100 N580 M17 Примечания 828D/840Dsl SINUMERIK Operate Стр. 9 M203 M203 Переходы и пользовательские переменные Подпрограмма для заготовки 3 N10 G17 G64 G90 G54 N20 G40 G60 G71 G94 N30 WORKPIECE(,"",,"BOX",0,0,-20,-80,0,0,150,100) ;CENTERING N40 T="CENTERDRILL_12" N50 M6 D1 N60 G95 S1200 F0.1 M3 M8 N70 G0 Z100 N80 G0 X30 Y25 N90 G0 Z3 N100 G1 Z-8 N110 G0 Z3 N120 G0 X110 N130 G1 Z-8 N140 G0 Z3 N150 G0 Y75 N160 G1 Z-8 N170 G0 Z3 N180 G0 X30 N190 G1 Z-8 N200 G0 Z3 N210 G0 Z100 ;DRILLING N220 T="DRILL_8.5" N230 M6 D1 N240 G95 S1200 F0.1 M3 M8 N250 G0 Z100 N260 G0 X30 Y25 N270 G0 Z3 N280 G1 Z-27 N290 G0 Z3 N300 G0 X110 N310 G1 Z-27 N320 G0 Z3 N330 G0 Y75 N340 G1 Z-27 N350 G0 Z3 N360 G0 X30 N370 G1 Z-27 N380 G0 Z3 N390 G0 Z100 ;THREAD CUTTING N400 T="THREADCUTTER_M10" N410 M6 D1 N420 G95 S200 M3 M8 N430 G0 Z100 N440 G0 X30 Y25 N450 G0 Z3 N460 G331 Z-25 K1.5 S200 N470 G332 Z3 K1.5 S400 N480 G0 X110 N490 G331 Z-25 K1.5 S200 N500 G332 Z3 K1.5 S400 N510 G0 Y75 N520 G331 Z-25 K1.5 S200 N530 G332 Z3 K1.5 S400 N540 G0 X30 N550 G331 Z-25 K1.5 S200 N560 G332 Z3 K1.5 S400 N570 G0 Z100 N580 M17 Примечания M203 Стр. 10 828D/840Dsl SINUMERIK Operate Переходы и пользовательские переменные M203 Моделирование: Заготовка 1 Заготовка 2 Заготовка 3 Дополнительная задача: Программу необходимо оптимизировать. Для всех трех вариантов используется подпрограмма 1. Совет: Решение: Использовать R-параметр. Примечания 828D/840Dsl SINUMERIK Operate Стр. 11 M203 M203 Переходы и пользовательские переменные Примечания M203 Стр. 12 828D/840Dsl SINUMERIK Operate Системная переменная, подпрограмма M205 SINUMERIK Operate Описание модуля: 828D/840D sl SINUMERIK Operate В данном модуле приводятся основы работы с системными переменными программ ЧПУ. Назначение модуля: Изучив модуль, вы сможете программировать простые циклы с помощью системных переменных. Разработать решение можно для каждой задачи Содержание: Описание системных переменных Описание подпрограмм, расположенных в других папках Программирование пользовательских переменных 828D/840Dsl SINUMERIK Operate v4.7 Настоящий документ предназначен для целей обучения. Компания Siemens не несет ответственности за его Стр. 1 содержание. M205 M205 M205 Стр. 2 828D/840Dsl SINUMERIK Operate M205 Системная переменная, подпрограмма Системная переменная, подпрограмма НАЧАЛО Статус Команды Задача Блок-схема Пример программы Системная переменная, подпрограмма КОНЕЦ Примечания 828D/840Dsl SINUMERIK Operate Стр. 3 M205 M205 Статус: Системная переменная, подпрограмма M200 Основы языка программирования высокого уровня M206 Системная переменная, запрос безопасности M201 Подпрограмма M207 Кадры M202 R-переменные M208 Цикл M203 Переходы и пользовательские переменные M204 Точение, шпиндель, плоскости M205 Системная переменная, подпрограмма Команды: Команда Значение $AA_IW[MZ1] Системная переменная CALL Call RET Возврат из подпрограммы Системная переменная: В дополнение к двум другим типам переменных - пользовательские переменные (DEF) и арифметические переменные (R-переменные) - существуют также системные переменные. Эти переменные предоставляются производителем станка и имеют специальное обозначение. С помощью этих системных переменных можно узнать состояние станка и управления и внести его в программу ЧПУ. Например, рабочее смещение, положения осей и коррекция инструмента. Все эти переменные можно считать, а некоторые из них также допускают изменение. Перечень системных переменных и их значение можно найти в сети Internet поиском по термину «Siemens system variables» (Системные переменные Siemens), а также в pdf-документе «Системные переменные». Его можно скачать бесплатно. Вызов: Подпрограммы можно вызывать косвенно с помощью этой команды. «Косвенно» означает, что они не находятся в той же папке, что и основная программа. Команду Call необходимо написать вместе с именем подпрограммы и типом файла. Можно также ввести полный путь к местонахождению подпрограммы. В этом случае переход к подпрограмме будет быстрее. Пример: Call "_Name.spf RET: Данная команда может использоваться для возврата из подпрограммы, минуя ПЛК и не прерывая режима контурной обработки. Примечания M205 Стр. 4 828D/840Dsl SINUMERIK Operate M205 Системная переменная, подпрограмма Задача: Описание задачи В заготовке необходимо просверлить три отверстия. Положение отвода после операции обработки определяется с помощью системной переменной и является одинаковым для всех трех отверстий. Цикл с системной переменной записывается в подпрограмму. Режим контурной обработки остается активным по завершении вызова подпрограммы. Чертеж: Примечания 828D/840Dsl SINUMERIK Operate Стр. 5 M205 M205 Системная переменная, подпрограмма Блок-схема: Начало Положение 1 Цикл Положение 2 Цикл Положение 3 Цикл КОНЕЦ Пример программы: Основная программа: N10 G17 G64 G90 G54 N20 G40 G60 G71 G94 N30 WORKPIECE(,"",,"BOX",0,0,-10,-80,0,0,200,200) ;DRILL N40 T="SOLID DRILL_25" N50 M6 D1 N60 G95 S1200 F0.1 M3 M8 N70 G0 Z100 N80 G0 X25 Y25 N90 G0 Z5 N100 Call "sub_1.spf" N110 G0 Z100 N120 G0 X100 Y100 N130 G0Z5 N140 Call "sub_1.spf" N150 G0 Z100 N160 G0 X175 Y175 N170 G0Z5 N180 Call "sub_1.spf" N190 G0 Z100 N200 M30 Положение 1 Цикл Положение 2 Цикл Положение 3 Цикл Примечания M205 Стр. 6 828D/840Dsl SINUMERIK Operate M205 Системная переменная, подпрограмма Циклическая подпрограмма: DEF real _Merk1 N110_Merk1=$AA_IW[Z] N120 G1 Z-27 N130 Z=_MERK1 Ret Задание пользовательской переменной Текущее положение оси Z привязано к пользовательской переменной Аппроксимация к системной переменной Быстрый переход к основной программе Примечание: Обозначение оси Z ($AA_IW[Z]) должно соответствовать имени оси, зафиксированному для станка. Хранение основной программы Хранение подпрограммы цикла: Положение отвода всегда обеспечивается данным циклом. В программе предусмотрен безопасный зазор. Примечания 828D/840Dsl SINUMERIK Operate Стр. 7 M205 M205 Системная переменная, подпрограмма Примечания M205 Стр. 8 828D/840Dsl SINUMERIK Operate Системная переменная, запрос M206 SINUMERIK Operate Описание модуля: 828D/840D sl SINUMERIK Operate В данном модуле продолжается рассмотрение принципов работы с системными переменными, начатое в модуле M205. Здесь изучается процедура запроса типа инструмента с помощью соответствующих переменных. В программе всегда предусмотрен цикл безопасности на случай ошибки выбора инструмента. Назначение: Изучив модуль, вы узнаете о дополнительных системных переменных и сможете запрограммировать цикл безопасности, чтобы программа ЧПУ не запускалась при наличии неверных условий. Содержание: Описание типов инструмента Описание используемых системных переменных Программирование цикла безопасности, который приводит к безусловному сбросу Настоящий документ предназначен для целей обучения. 828D/840Dsl SINUMERIK Operate v4.7 Стр. 1 Компания Siemens не несет ответственности за его содержание. M206 M206 M206 Стр. 2 828D/840Dsl SINUMERIK Operate Системная переменная, запрос безопасности M206 Системная переменная, запрос безопасности НАЧАЛО Статус Команды Задача Блок-схема Пример программы Системная переменная, запрос безопасности КОНЕЦ Примечания 828D/840Dsl SINUMERIK Operate Стр. 3 M206 M206 Статус: Системная переменная, запрос безопасности M200 Основы языка программирования высокого уровня M206 Системная переменная, запрос безопасности M201 Подпрограмма M207 Кадры M202 R-переменные M208 Цикл M203 Переходы и пользовательские переменные M204 Точение, шпиндель, плоскости M205 Системная переменная, подпрограмма Команда: Команда Значение $TC_DP[N] Тип инструмента $P_TOOLNO Номер активного инструмента $P_TOOL Режущая кромка активного инструмента $TC_DP[N]: Тип инструмента определяется этой системной переменной. В SINUMERIK инструменты классифицируются по типам. Каждому типу инструмента присвоен 3-значный номер. Первая цифра означает группу инструментов с соответствующей технологией. Тип инструмента Группа инструмента 1 Фрезы 2 Сверла 3 Резерв 4 Шлифовальные инструменты 5 Токарные инструменты 6 Резерв 7 Специальные инструменты, например пазовая пила Примечания M206 Стр. 4 828D/840Dsl SINUMERIK Operate Системная переменная, запрос безопасности M206 Фрезерные инструменты: Группа 1 «Фрезы» включает следующие типы: 100 Фрезерная головка согласно CLDATA (данные траектории перемещения режущего инструмента) 110 Сферическая фрезерная головка (цилиндрическая фреза для обработки полостей штампов) 111 Сферическая фрезерная головка (коническая фреза для обработки полостей штампов) 120 Концевая фреза (не галтельная) 121 Концевая фреза (галтельная) 130 Фреза для обработки под углом (не галтельная) 131 Фреза для обработки под углом (галтельная) 140 Подрезной резец 145 Резьбонарезная фреза 150 Дисковая фреза 151 Отрезная фреза 155 Кромкострогальная фреза (не галтельная) 156 Кромкострогальная фреза (галтельная) 157 Коническая фреза для обработки полостей штампов 160 Сверлильно-резьбонарезная фреза Сверла: Группа 2 «Сверла» включает следующие типы: 200 Спиральное сверло 205 Бур 210 Расточная оправка 220 Центровочное сверло 230 Зенкер 231 Зенковка 240 Стандартный метчик 241 Метчик для мелкой резьбы 242 Метчик для дюймовой резьбы 250 Развёртка Токарный инструмент: 500 Черновой резец 510 Чистовой резец 520 Инструмент для врезания 530 Отрезной резец 540 Резьбовой резец 550 Фасонный / строгальный резец (TOOLMAN) 560 Электросверло (ECOCUT) 580 Ручной бур с параметром позиционирования режущей кромки В данном модуле перечисляются только наиболее важные группы токарного и фрезерного инструмента. Примечания 828D/840Dsl SINUMERIK Operate Стр. 5 M206 M206 Системная переменная, запрос безопасности Номер инструмента отображается в SINUMERIK Operate, когда в системе управления инструментом выбирается соответствующее обозначение «TYPE» (Тип). При этом открывается перечень номеров типов возможного инструмента. $P_TOOLNO Эта системная переменная описывает номер активного инструмента, т. е. активного инструмента в ЧПУ: Активный инструмент Примечания M206 Стр. 6 828D/840Dsl SINUMERIK Operate Системная переменная, запрос безопасности M206 $P_Tool Данная системная переменная описывает режущую кромку активного инструмента и текущие смещения. Режущая кромка активного инструмента Задача: Описание задачи В основе данного модуля используется заготовка из модуля M205. Определяется целочисленная переменная с именем «TOOLTYPE» (Тип инструмента). С помощью данной переменной производится запрос типа инструмента, инструмента, используемого в ЧПУ, и активной режущей кромки. Если тип инструмента для обработки некорректный, программа переходит к циклу, который оператор может покинуть, только нажав «Program reset» (Сброс программы). Для оператора будет выведено текстовое сообщение о том, что выбран некорректный активный инструмент. Примечания 828D/840Dsl SINUMERIK Operate Стр. 7 M206 M206 Системная переменная, запрос безопасности Чертеж: Блок-схема: НАЧАЛО Запрос состояния инструмента TOOLTYPE OK TOOLTYPE NOT OK Сообщение Положение 1 Цикл LOOP Положение 2 Цикл Положение 3 Цикл КОНЕЦ Примечания M206 Стр. 8 828D/840Dsl SINUMERIK Operate M206 Системная переменная, запрос безопасности Пример программы: Основная программа: ;_TOOLTYPE= VARIABLE FOR TOOL TYPE WITH CURRENT ;TOOL NUMBER AND CUTTING EDGE NUMBER N10 DEF INT _TOOLTYPE DEF как целочисленная переменная (целое) N20 G17 G64 G90 G54 G94 N30 WORKPIECE(,"",,"BOX",0,0,-10,-80,0,0,200,200) ;Drilling N40 T="DRILL" Пример корректного типа инструмента ;T="CUTTER 4" Пример некорректного типа инструмента N50 M6 D1 N60 _TOOLTYPE = $TC_DP1[$P_TOOLNO,$P_TOOL] N70 IF (_TOOLTYPE <200) OR (_TOOLTYPE >299) GOTOF _ERROR1 Запрос N80 G17 G40 G60 G71 G90 состояния N90 G95 S1200 F0.1 M3 M8 N100 G0 Z100 N110 G0 X25 Y25 N120 G0 Z5 N130 Call "sub_1.spf" N140 G0 Z100 N150 G0 X100 Y100 N160 G0 Z5 N170 Call "sub_1.spf" N180 G0 Z100 N190 G0 X175 Y175 N200 G0Z5 N210 Call "sub_1.spf" N220 G0 Z100 N230 M30 N240 _ERROR1: N250 MSG("INCORRECT TOOL TYPE") N260 M0 STOPRE N270 GOTOB _ERROR1 Сообщение LOOP Дополнительная задача: Данная программа может использоваться, только если выбрано цельное сверло. Примечания 828D/840Dsl SINUMERIK Operate Стр. 9 M206 M206 Системная переменная, запрос безопасности Примечания M206 Стр. 10 828D/840Dsl SINUMERIK Operate Кадры M207 SINUMERIK Operate Описание модуля: 828D/840D sl SINUMERIK Operate В данном модуле описывается считывание и запись кадров. Назначение: Изучив модуль, вы сможете программировать пользовательские кадры для сверления, а также считывать и записывать кадры. Содержание: Структура кадров Описание используемых команд и переменных 828D/840Dsl SINUMERIK Operate v4.7 Настоящий документ предназначен для целей обучения. Компания Siemens не несет ответственности за его Стр. 1 содержание. M207 M207 M207 Стр. 2 828D/840Dsl SINUMERIK Operate M207 Кадры Кадры НАЧАЛО Статус Команды Задача Блок-схема Пример программы Кадры КОНЕЦ Примечания 828D/840Dsl SINUMERIK Operate Стр. 3 M207 M207 Статус: Кадры M200 Основы языка программирования высокого уровня M206 Системная переменная, запрос безопасности M201 Подпрограмма M207 Кадры M202 R-переменные M208 Цикл M203 Переходы и пользовательские переменные M204 Точение, шпиндель, плоскости M205 Системная переменная, подпрограмма Команды: В данном модуле рассматриваются только кадры настраиваемого рабочего смещения, например G54, $P_UIFR[1] Команда Значение $P_GG[n] Считывание активной G-функции функционально группы G $P_UIFR Активный настраиваемый кадр CTRANS Грубый сдвиг CFINE Тонкий сдвиг $P_GG[n]: G-функции разделяются на так называемые функциональные группы. Это предотвращает двойной вызов команд из группы в одном блоке. Примечания M207 Стр. 4 828D/840Dsl SINUMERIK Operate M207 Кадры Пример: G-команды G0, G1, G2, G3 находятся в функциональной группе 1. Согласно логике они не могут быть записаны в одном блоке, поскольку принадлежат к одной функциональной группе. (Руководство «Основы SINUMERIK», гл. 12 «Таблицы», Перечень инструкций). Активные группы G-code и их состав в любой момент можно отобразить в SINUMERIK Operate. В области управления «Станок» имеются два варианта. Вариант 1: Нажатием командой. функциональной клавиши отображаются наиболее важные группы G-функций с активной Примечания 828D/840Dsl SINUMERIK Operate Стр. 5 M207 M207 Кадры Вариант 2 Если открыть строку экранных клавиш и нажать функциональную клавишу, отобразятся все активные группы G-функций с активной командой. Это окно может оставаться активным при обработке, так что вы можете следить за тем, какая команда является активной в тот или иной момент и в какой группе в процессе выполнения программы. $P_UIFR: Эта системная переменная открывает прямой доступ к значениям настраиваемых рабочих смещений. $P_UIFR[N] Цифра в квадратных скобках означает, какое рабочее смещение будет использоваться. Команда, описывающая действия со значениями рабочего смещения, стоит после системной переменной. CTRANS: Рабочее смещение (грубый сдвиг) может быть записано с помощью данной функции кадра. Сначала определяется ось, а затем значение следующего параметра. Команда CTRANS не может использоваться отдельно, она работает только с системной переменной. Примечание: Если значение присвоено только одной оси, все остальные устанавливаются на ноль. Пример: Активные значения рабочего смещения G54 Примечания M207 Стр. 6 828D/840Dsl SINUMERIK Operate M207 Кадры Ввод в MDI: SP_UIFR[1] Число в квадратных скобках означает G54 =CTRANS (X,110) Оси X присвоено значение 110 При нажатии, значение для «X» присваивается рабочему смещению G54. Значения для всех осей устанавливаются на ноль. CFINE: Функциональные возможности CFINE аналогичны таковым у CTRANS. Все активные значения тонкого сдвига устанавливаются на ноль, если значение присвоено только одной оси. См. пример выше. CFINE используется, если вы не хотите менять значения рабочих смещений (грубых сдвигов). Вы можете использовать уровни доступа, чтобы, например, ограничить доступ оператора только значениями тонкого сдвига. Максимальную величину тонкого сдвига также можно настроить. Примечание: Значения CFINE всегда активны для рабочего смещения и включены в расчет соответствующих осей. Важно, чтобы тонкий сдвиг также учитывался для рабочего смещения. Если в кадре будут удаляться не все значения, а только значения для одной оси, это можно сделать с помощью команды TR в кадре. Пример: $P_UIFR[1,X,TR]=25 В кадре G54 только значение для оси X меняется на 25. Все остальные значения остаются неизменными. Примечания 828D/840Dsl SINUMERIK Operate Стр. 7 M207 M207 Кадры Задача: Описание задачи В основе данного модуля используется заготовка из модуля M206. Допущение: Заготовка зафиксирована в постоянной системе зажимов в нулевой точке. Ее координаты заданы и записаны относительно нулевой точки. Программа конфигурируется так, чтобы запрашивалась группа G-code и рабочее смещение G54 было активным. Оператор не должен менять рабочие смещения. Если активным смещением нулевой точки не является G54, программа зацикливается и может быть прервана только нажатием «RESET» (Сброс). Оператор вносит высоту заготовки в программу. Запрос системных переменных для системного кадра и описание помимо грубого сдвига должны учитывать и тонкий сдвиг. Чертеж: Примечания M207 Стр. 8 828D/840Dsl SINUMERIK Operate M207 Кадры Блок-схема: G54 NOT ACTIVE НАЧАЛО Запрос ЧПУ Нулевая точка G54 ACTIVE Сообщение Запрос состояния инструмента TOOLTYPE OK TOOLTYPE NOT OK Сообщение Положение 1 LOOP Цикл LOOP Положение 2 Цикл Положение 3 Цикл КОНЕЦ Пример программы: Основная программа ;_TOOLTYPE= VARIABLE FOR TOOL TYPE WITH CURRENT ;TOOL NUMBER AND CUTTING EDGE NUMBER N10 DEF INT _TOOLTYPE N20 DEF REAL _POSITION_X N30 DEF REAL _POSITION_Y N40 DEF REAL _POSITION_Z N50 DEF REAL _WORKPIECE ;-------------------------------;POSITION OF THE ZERO POINT CLAMPING SYSTEM N60 _POSITION_X=100 N70 _POSITION_Y=100 N80 _POSITION_Z=10 ;------------------------------;ENTER HEIGHT OF WORKPIECE N90 _WORKPIECE=50 ;------------------------------N110 IF $P_GG[8] <> 1 GOTOF _ERROR2 N120 $P_UIFR[$P_GG[8]]=CTRANS (X, _POSITION_X, Y, _POSITION_Y, Z, _POSITION_Z):CFINE(X,0,Y,0,Z,0) N130 ATRANS Z=_WORKPIECE N140 G17 G64 G90 G94 G54 N150 WORKPIECE(,"",,"BOX",0,0,-10,-80,0,0,200,200) ;Drilling N160 T="DRILL_Tool" ;T="CUTTER 4" N170 M6 D1 Запрос ЧПУ Нулевая точка Примечания 828D/840Dsl SINUMERIK Operate Стр. 9 M207 M207 Кадры N180 _TOOLTYPE = $TC_DP1[$P_TOOLNO,$P_TOOL] N190 IF (_TOOLTYPE <200) OR (_TOOLTYPE >299) GOTOF _ERROR1 N200 G17 G40 G60 G71 G90 N210 G95 S1200 F0.1 M3 M8 N220 G0 Z100 N230 G0 X25 Y25 N240 G0 Z5 N250 Call "sub_1" N260 G0 Z100 N270 G0 X100 Y100 N280 G0 Z5 N290 Call "sub_1" N300 G0 Z100 N310 G0 X175 Y175 N320 G0Z5 N330 Call "sub_1" N340 G0 Z100 N350 M30 ;--------------------------------N360 _ERROR1: N370 MSG("INCORRECT TOOL TYPE") N380 M0 N390 GOTOB _ERROR1 N400 _ERROR2: N410 MSG("INCORRECT ZERO POINT!! G54 MUST BE SELECTED") N420 M0 N430 GOTOB _ERROR2 Дополнительная задача: Цель: Пользователь не может изменять программу ЧПУ. Уровень защиты Высота заготовки, записанная в программе пользователем, должна быть включена непосредственно в смещение нулевой точки. Если высота заготовки составляет более 60 мм, будет выдано предупреждение. Запуск программы становится невозможен, поскольку система зажимов не сможет зафиксировать эту заготовку. Примечания M207 Стр. 10 828D/840Dsl SINUMERIK Operate Цикл глубины сверления M208 SINUMERIK Operate Описание модуля: 828D/840D sl SINUMERIK Operate В данном модуле описывается работа с самопрограммируемым циклом. Цикл действует в любой программе и вызывается из основной программы переносом параметров, требуемых для операции обработки. Назначение: Изучив модуль, вы сможете записать цикл, в точности соответствующий вашим требованиям и работающий во всех программах. Таким образом можно сократить время программирования и увеличить производительность. Количество ошибок программирования также снижается, поскольку циклы уже содержат важные программные сегменты. Содержание: Конфигурирование цикла, работающего в любой программе, и управление им Запись собственного цикла для глубины сверления 828D/840Dsl SINUMERIK Operate v4.7 Настоящий документ предназначен для целей обучения. Компания Siemens не несет ответственности за его Стр. 1 содержание. M208 M208 M208 Стр. 2 828D/840Dsl SINUMERIK Operate M208 Цикл глубины сверления Базовый цикл НАЧАЛО Статус Команды Задача Блок-схема Пример программы Базовый цикл КОНЕЦ Примечания 828D/840Dsl SINUMERIK Operate Стр. 3 M208 M208 Статус: Цикл глубины сверления M200 Основы языка программирования высокого уровня M206 Системная переменная, запрос безопасности M201 Подпрограмма M207 Кадры M202 R-переменные M208 Базовый цикл M203 Переходы и пользовательские переменные M207 Расширенный цикл M204 Точение, шпиндель, плоскости M205 Системная переменная, подпрограмма Команды: Команда Значение PROC Первая инструкция программы с объявлением переменных на прием значений из основной программы DISPLOF Запрещение отображения текущего блока SAVE Сохранение модальных G-функций IF/ENDIF Программные циклы для проверки пересылаемых переменных на достоверность PROC: Данная команда используется для подпрограмм, значения параметров которых принимаются вызывающей программой. Пример: Цикл MY_DRILLSPF - это самозаписываемый пользовательский цикл. Цикл является активным в основной программе, т. е. запрограммированные значения и параметры принимаются основной программой. Если для пользовательского цикла такие условия приемлемы, первой командой всегда будет «PROC». Все циклы от Siemens начинаются с этой команды. Примечания M208 Стр. 4 828D/840Dsl SINUMERIK Operate M208 Цикл глубины сверления DISPLOF: Отображение текущего блока может быть запрещено этой командой. Пример: Если циклы вызываются в основной программе, отдельные блоки ЧПУ текущего цикла MY_DRILL.SPF оказываются невидимыми. Их отображение подавляется. Циклы обычно программируются таким образом. ENDIF/ELSE: Эти команды используются, если программный цикл должен содержать альтернативный программный блок. Если условие IF удовлетворяется, то блок IF запускается. Если условие IF не удовлетворяется, то запускается программный блок, стоящий после команды ELSE. Команда ENDIF означает конец цикла IF. Программа возвращается в начало цикла. SAVE: Командой SAVE модальные G-функции и текущий кадр, бывший активным до вызова подпрограммы, сохраняются основной программой и снова становятся активными после возврата. Использование циклов в SINUMERIK: В Siemens циклы это всегда подпрограммы, оканчивающиеся на «.SPF». Принцип их использования является следующим: В области управления имеются три папки в папке Cycles. Стандартные циклы Все циклы SINUMERIK Operate находятся в данной папке. Эти циклы являются подпрограммами и могут быть открыты и записаны. Однако когда управление снова активируется, циклы возвращаются в их первоначальное состояние. Циклы производителя В данной папке находятся циклы производителя. Модифицированные циклы являются активными и сохраняются. Они подлежат изменению только производителем станка. Пользовательские циклы В данной папке находятся циклы, записанные оператором. Модифицированные циклы являются активными и сохраняются. Примечания 828D/840Dsl SINUMERIK Operate Стр. 5 M208 M208 Цикл глубины сверления Порядок действий: При создании пользовательского цикла он не обязательно должен быть записан полностью. Возможно, например, изменить стандартные циклы. Если необходимо модифицировать существующий цикл, выполните следующее: Стандартный цикл «Drilling depth» (Глубина сверления) из папки «Standard cycles» (Стандартные циклы) программируется в папке «User cycles»(Пользовательские циклы). Переход из папки «Standard cycles»в папку «User cycles» Имя цикла сохраняется, изменения вносятся и управление возобновляется. После возобновления измененный цикл «Глубина сверления» становится доступным. Примечание: Не рекомендуется изменять стандартные циклы, но если это необходимо, будьте очень осторожны. Для вызова цикла применяется следующая процедура: Система проверяет, находится ли вызываемый цикл в папке «User cycles». Если да, он запускается. Если вызываемый цикл находится не в папке «User cycles», а в папке «Manufacturer cycles» (Циклы производителя), он запускается. Если вызываемый цикл находится только в папке «Standard cycles», используется он. Данная процедура гарантирует, что всегда используется самый последний цикл программы и все изменения активируются. Если вы записываете новый цикл, он сохраняется прямо в папку «User cycles». Если вызывается собственный цикл, оператор не имеет непосредственного влияния на него, потому что он обычно невидим и оператор не знает, где его найти. Если управления возобновляется, цикл становится активным в папке «User cycles». Примечания M208 Стр. 6 828D/840Dsl SINUMERIK Operate M208 Цикл глубины сверления Задача: Простой цикл сверления с именем «My_drill»необходимо запрограммировать и использовать как пользовательский цикл. Цикл программируется в основной программе и невидим при исполнении программы. Цикл берет значения основной программы: Безопасный зазор, глубина сверления, скорость подачи и отвода. Если безопасный зазор составляет меньше нуля, появляется сообщение об ошибке. Если глубина сверления не представляет собой отрицательное значение, также появляется сообщение об ошибке. НАЧАЛО Блок-схема: Main program M208.MPF Вызов пользовательского цикла My_drill» с передачей значений Запрос безопасного зазора Безопасный зазор не OK Сообщение об ошибке Безопасный зазор OK Запрос глубины сверления Глубина сверления не OK Сообщение об ошибке Глубина сверления OK Обработка положений КОНЕЦ Примечания 828D/840Dsl SINUMERIK Operate Стр. 7 M208 M208 Цикл глубины сверления Пример программы Для создания пользовательского цикла MY_DRILL.SPF откройте папку «User cycles» и создайте файл MY_DRILL.SPF, нажав клавишу New. Main program M208.MPF ;================================================================ ;M208 MAIN PROGRAM FOR DRILLING WITH PARAMETER TRANSFER TO MY_DRILL CYCLE ;================================================================ ; ;TRANSFER PARAMETERS TO THE MY_DRILL CYCLE ;------------------------------------------------;_SAFE ;SAFETY CLEARANCE- POSTIVE NUMERIC VALUE ;_DEPTH ;DRILLING DEPTH- NEGATIVE NUMERIC VALUE ;_FEED ;FEEDRATE MM/REV- POSTIVE NUMERIC VALUE ;_RETR ;RETRACTION AFTER DRILLING- POSTIVE NUMERIC VALUE ;=========================== ;PROGRAM CODE MAIN PROGRAM ;=========================== ; G17 G64 G95 G90 ;Set environment ; G54 ;Select 1st WO ; WORKPIECE(,"",,"BOX",112,0,-10,-80,0,0,200,200) Примечания M208 Стр. 8 828D/840Dsl SINUMERIK Operate M208 Цикл глубины сверления ; T="CENTERDRILL_12" ;TOOL CALL CENTER DRILL M06 D1 ; G95 S2000 M03 ;SET TECHNOLOGY ; MCALL MY_DRILL(1,-4.5,0.08,10) ; Вызов пользовательского цикла «My_drill»с переходом значений G00 X25 Y25 G00 X100 Y100 G00 X175 Y175 MCALL T="DRILL_D8.5" M06 D1 ; G95 S850 M03 ;Set technology MCALL MY_DRILL(1,-12,0.12,10) G00 X25 Y25 G00 X100 Y100 G00 X175 Y175 MCALL G00 Z100 G00 X-100 Y300 M05 M30 ;DESELECT MODAL USER CYCLE ;Tool call drill ;Modal call user cycle ;Deselect modal execution ;RETRACTION ;SPINDLE STOP ;================================================================= ;USER CYCLE MY_DRILL.SPF ;================================================================= ;SAFE=SAFETY CLEARANCE- POSTIVE NUMERIC VALUE ;DEPTH=DRILLING DEPTH- NEGATIVE NUMERIC VALUE ;FEED= FEEDRATE MM/REV- POSTIVE NUMERIC VALUE ;RETR= RETRACTION AFTER DRILLING- POSTIVE NUMERIC VALUE , PROC MY_DRILL(REAL _SAFE,REAL _DEPTH,REAL _FEED,REAL _RETR) DISPLOF SAVE IF _SAFE <0 GOTOF _ERROR1 ENDIF Запрос безопасного зазора IF _DEPTH >0 GOTOF _ERROR2 ENDIF G00 Z=_SAFE Запрос глубины G01 Z=_DEPTH F=_FEED сверления G00 Z=_RETR ;---------------------------------------------------------------RET ;----------------------------------------------------------------_ERROR1: MSG("THE SAFETY CLEARANCE MUST BE GREATER THAN ZERO!") M00 GOTOB _ERROR1 _ERROR2: MSG("THE DRILLING DEPTH MUST BE LESS THAN ZERO!") M00 GOTOB _ERROR2 Примечания 828D/840Dsl SINUMERIK Operate Стр. 9 M208 M208 Цикл глубины сверления Программирование заготовки завершено. Дополнительная задача: Необходимо изменить цикл. Должна быть обеспечена возможность работы с отрицательным безопасным зазором. Сверление всегда начинается с уровня поверхности материала. Пример: Сверление начинается в кармане. Примечания M208 Стр. 10 828D/840Dsl SINUMERIK Operate Расширенный цикл M209 SINUMERIK Operate Описание модуля: 828D/840D sl SINUMERIK Operate В данном модуле описывается работа с самопрограммируемым расширенным циклом. Расширенный цикл действует в любой программе. Назначение: Изучив модуль, вы сможете записать расширенный цикл, работающий в любой программе. Содержание: Описание структуры расширенного цикла Описание используемых системных переменных и команд 828D/840Dsl SINUMERIK Operate v4.7 Настоящий документ предназначен для целей обучения. Компания Siemens не несет ответственности за его Стр. 1 содержание. M209 M209 M209 Стр. 2 828D/840Dsl SINUMERIK Operate M209 Расширенный цикл Расширенный цикл НАЧАЛО Статус Команды Задача Блок-схема Пример программы Расширенный цикл КОНЕЦ Примечания 828D/840Dsl SINUMERIK Operate Стр. 3 M209 M209 Статус: Расширенный цикл M200 Основы языка программирования высокого уровня M206 Системная переменная, запрос безопасности M201 Подпрограмма M207 Кадры M202 R-переменные M209 Расширенный цикл M203 Переходы и пользовательские переменные M204 Точение, шпиндель, плоскости M205 Системная переменная, подпрограмма Команды: Команда Значение PROC Первая инструкция программы DISPLOF Запрещение отображения текущего блока SAVE Сохранение модальных G-функций ABS Абсолютный размер ENDIF/ELSE Программный цикл Примечания M209 Стр. 4 828D/840Dsl SINUMERIK Operate M209 Расширенный цикл Команда Значение SBLOF Запрет запуска отдельного блока SBLON Разрешение запуска отдельного блока LOOP Запуск бесконечного цикла ENDLOOP Конечная строка бесконечного цикла ENDIF/ELSE Программные циклы SETAL Настройка сигнализаций PROC: Данная команда используется для подпрограмм, программные параметры которых принимаются вызывающей программой. Пример: Расширенный цикл это всегда подпрограмма. Расширенный цикл является активным в основной программе, т. е. запрограммированные значения и параметры принимаются основной программой. Если подпрограмма удовлетворяет таким условиям, первой командой всегда будет «PROC» Все циклы от Siemens начинаются с этой команды. DISPLOF: Отображение текущего блока может быть запрещено этой командой. Пример: Если циклы вызываются в основной программе, отдельные блоки ЧПУ текущего расширенного цикла оказываются невидимыми. Их отображение подавляется. Циклы обычно программируются таким образом. SAVE: Командой SAVE модальные G-функции и текущий кадр, бывший активным до вызова подпрограммы, сохраняются основной программой и снова становятся активными после возврата. ABS: Значение всегда означает абсолютный размер. ENDIF/ELSE: Эти команды используются, если программный цикл должен содержать альтернативный программный блок. Если условие IF удовлетворяется, то блок IF запускается. Если условие IF не удовлетворяется, то запускается программный блок, стоящий после команды ELSE. Команда ENDIF означает конец цикла IF. Программа возвращается в начало цикла. SBLOF: В программах, в которых имеется SBLOF, следующие блоки выполняются полностью, даже если запущено выполнение отдельного блока. Пример: связанная операция обработки должна быть выполнена отдельными блоками, поскольку в противном случае будет поврежден инструмент или заготовка. Примечания 828D/840Dsl SINUMERIK Operate Стр. 5 M209 M209 Расширенный цикл SBLON: После данной команды следующие блоки ЧПУ выполняются отдельными блоками. LOOP/ENDLOOP: Данной командой часто программируются бесконечные циклы. Запуск цикла программируется командой «LOOP». ENDLOOP означает конец цикла и приводит к возврату к операции «LOOP», то есть в начало цикла. Пример: Данная команда используется, если определенная операция обработки повторяется очень часто. С помощью R-переменных в данный программный цикл может быть встроен счетчик. После выполнения определенного количества операций обработки происходит переход к другому программному сегменту. SETAL: C помощью данной программы можно запрограммировать аварийный сигнал. Команда SETAL должна быть записана в другой блок ЧПУ вместе с номером сигнала. Номера сигналов и аварийные сигналы структурируются следующим образом: Номера с 60000 по 64999 зарезервированы за циклами Siemens. Номера с 65000 по 69999 доступны пользователям. Здесь также можно добавить текст. Пример: N100 SETAL (65000) ;Set alarm no. 65000. Использование циклов в SINUMERIK: В Siemens циклы это всегда подпрограммы, оканчивающиеся на «.SPF». Принцип их использования является следующим: В области управления имеются три папки в папке Cycles. Стандартные циклы Все циклы SINUMERIK Operate находятся в данной папке. Эти циклы являются подпрограммами и могут быть открыты и записаны. Однако когда управление снова активируется, циклы возвращаются в их первоначальное состояние. Циклы производителя В данной папке находятся циклы производителя. Модифицированные циклы являются активными и сохраняются. Они подлежат изменению только производителем станка. Пользовательские циклы В данной папке находятся циклы, записанные оператором. Модифицированные циклы являются активными и сохраняются. Примечания M209 Стр. 6 828D/840Dsl SINUMERIK Operate M209 Расширенный цикл Порядок действий: При создании расширенного пользовательского цикла он не обязательно должен быть записан полностью. Возможно, например, изменить стандартные циклы. Если необходимо модифицировать существующий расширенный цикл, выполните следующее: Расширенный стандартный цикл из папки «Standard cycles» (Стандартные циклы) программируется в папке «User cycles» (Пользовательские циклы). Копирование расширенного цикла из папки «Standard cycles» в папку «User cycles» Имя расширенного цикла сохраняется, изменения вносятся и управление возобновляется. После возобновления измененный расширенный цикл становится доступным. Примечание: Не рекомендуется изменять стандартные циклы, но если это необходимо, будьте очень осторожны. Для вызова расширенного цикла применяется следующая процедура. Система проверяет, находится ли вызываемый расширенный цикл в папке «User cycles». Если да, он запускается. Если вызываемый расширенный цикл находится не в папке «User cycles», а в папке «Manufacturer cycles»(Циклы производителя), он запускается. Если вызываемый расширенный цикл находится только в папке «Standard cycles», используется он. Данная процедура гарантирует, что всегда используется самый последний расширенный цикл программы и все изменения активируются. Если вы записываете новый расширенный цикл, он сохраняется прямо в папку «User cycles». Если вызывается собственный расширенный цикл, оператор не имеет непосредственного влияния на него, потому что он обычно невидим и оператор не знает, где его найти. Примечания 828D/840Dsl SINUMERIK Operate Стр. 7 M209 M209 Расширенный цикл Задача: Описание задачи Необходимо запрограммировать расширенный цикл сверления и использовать его как расширенный пользовательский цикл. Расширенный цикл программируется в основной программе, но является невидимым. Расширенный цикл должен содержать следующие значения: Начальное положение, положение отвода, полная глубина сверления, глубина сверления на первом этапе, скорость подачи, скорость подачи на первом этапе, макс. глубина обработки, мин. глубина обработки. Если скорость подачи не запрограммирована, необходимо создать программный цикл, который может быть отменен только командой «RESET». Тип инструмента должен быть проверен. Если он является некорректным, необходимо создать программный цикл, который может быть отменен только командой «RESET». Перед обработкой необходимо включить подачу охлаждающей жидкости с помощью M-функции. Сверление до первой глубины обработки производится за один проход, а не в режиме одного блока. Дальнейшая подача осуществляется поэтапно, пока последней подачей не будет достигнута глубина сверления. Затем из отверстия удаляется стружка. Поперечное перемещение осуществляется до глубины сверления на последнем этапе и затем в положение отвода. НАЧАЛО Блок-схема: Создание подпрограммы Определение функций расширенного цикла Определение пользовательских переменных FEEDRATE NOT OK Запрос скорости подачи FEEDRATE OK Запрос состояния инструмента Сообщение TOOLTYPE OK TOOLTYPE NOT OK Сообщение Выполнение расчета расширенного цикла LOOP Программная последовательность для программирования расширенного цикла LOOP КОНЕЦ Примечания M209 Стр. 8 828D/840Dsl SINUMERIK Operate M209 Расширенный цикл Пример программы: Расширенный цикл PROC DRILL (REAL _STARTP, REAL _RETRAC, REAL _DEPTH_TOTAL, REAL _DEPTH_1, REAL _FEED, REAL _FEED_1, REAL _DEPTH_MAX, REAL _DEPTH_MIN)SAVE;DISPLOF ;-----------------------------DEF REAL _DEPTH_CAL DEF REAL _LAST_STEP DEF INT _STEP DEF REAL _STEP_EV DEF REAL _ACTPOS DEF INT _TOOLTYPE ;------------------------------_DEPTH_TOTAL=ABS(_DEPTH_TOTAL) _DEPTH_1=ABS(_DEPTH_1) IF _FEED==0 GOTOF _ERROR2 ENDIF _TOOLTYPE=$TC_DP1[$P_TOOLNO,1] IF (_TOOLTYPE<200) OR (_TOOLTYPE>299) GOTOF _ERROR1 ;--------------------------------_DEPTH_CAL=(_DEPTH_TOTAL)-(_DEPTH_1) _STEP=ROUNDUP(_DEPTH_CAL)/(_DEPTH_MAX) _LAST_STEP=_DEPTH_CAL-(_STEP*_DEPTH_MAX) IF _LAST_STEP<_DEPTH_MIN _LAST_STEP=_DEPTH_MIN _DEPTH_CAL=_DEPTH_CAL-_DEPTH_MIN _STEP_EV=_DEPTH_CAL/_STEP ELSE _DEPTH_CAL=_DEPTH_MAX*_STEP _STEP_EV=_DEPTH_CAL/_STEP ENDIF ;------------------------------------------ Примечания 828D/840Dsl SINUMERIK Operate Стр. 9 M209 M209 Расширенный цикл G0 Z=_RETRAC M=$MCS_M_CODE_COOLANT_1_ON G1 Z=_STARTP F=_FEED_1 G1 Z=-_DEPTH_1 G0 Z=_RETRAC G0 Z=(-_DEPTH_1)+1 SBLOF G1 Z=(-_DEPTH_1) F=_FEED LOOP G1 Z=IC(-_STEP_EV) SBLON _ACTPOS=$AA_IW[Z] G0 Z=_RETRAC IF _ACTPOS==(_DEPTH_TOTAL-_LAST_STEP)*(-1) GOTOF _END G0 Z=_ACTPOS+1 SBLOF G1 Z=IC(-1) ENDLOOP _END: ;--------------------------------------------G0 Z=_ACTPOS+1 G1 Z=_DEPTH_TOTAL*(-1) G0 Z=_RETRAC ;----------------------------------------------M17 _ERROR1: MSG("INCORRECT TOOL TYPE") M0 GOTOB _ERROR1 _ERROR2: SETAL(61003) M0 GOTOB _ERROR2 M17 Примечания M209 Стр. 10 828D/840Dsl SINUMERIK Operate