Вы находитесь на странице: 1из 650

SINUMERIK 840D/840Di/810D

Руководство по Издание 09.01


программированию

Расширенное программирование

Документация пользователя
6FC5298-6AB10-0PP1
Гибкое NC- 1
программирование

Техника использования 2
подпрограмм, техника
макросов
Управление файлами и 3
программами

SINUMERIK 840D/840Di/810D Защищенные области 4


Расширенное
Специальные команды 5
программирование перемещения

Фреймы 6
Руководство по
программированию
Преобразования 7

Коррекции инструмента 8

Параметры движения 9
по траектории

Синхронные действия 10
движения

Действительно для Качание 11


СЧПУ Версия ПО
SINUMERIK 840D 6
SINUMERIK 840DE (экспортый вариант) 6 Штамповка и вырубка 12
SINUMERIK 840D powerline 6
SINUMERIK 840DE powerline 6
SINUMERIK 840Di 2
SINUMERIK 840DiE (экспортый вариант) 2 Прочие функции 13
SINUMERIK 810D 3
SINUMERIK 810DE (экспортый вариант) 3
SINUMERIK 810D powerline 6 Собственные 14
SINUMERIK 810DE powerline 6 программы обработки
резаньем
Таблицы 15
Издание 09.01 Приложение A
B
Документация по SINUMERIK®

Код тиража

Перечисленные ниже издания появились до выпуска данного издания.

В графе "Примечание" буквами обозначено, какой статус имеют ранее выпущенные издания.

Обозначение статуса в графе "Примечание":

A .... Новая документация.


B .... Перепечатка без изменений с новым номером заказа.
C .... Переработанная редакция с новой версией издания.
Если представленное на странице техническое содержание изменилось по сравнению
с предыдущей версией издания, то это показывается в головной строке
соответствующей страницы.

Издание Номер заказа Примечание


09.01 6FC5298-6AB10-0PP1 А

Товарные знаки
SIMATIC, SIMATIC HMI, SIMATIC NET, SIROTEC, SINUMERIK и SIMODRIVE являются
зарегистрированными товарными знаками AG. Прочие обозначения в данной документации могут быть
товарными знаками, использование которых третьими лицами для своих целей могут нарушить права
собственника.
СЧПУ может иметь и иные функции, не описанные в данной документации. Но
Прочую информацию Вы найдете в Интернете по адресу: в случае новой поставки или технического обслуживания претензии по этим
http://www.sinumerik.ru функциям не принимаются.

Исключение ответственности
Данная документация подготовлена с помощью WinWord V 2000 Содержание данного документа проверено на соответствие с описанным
аппаратным и программным обеспечением. Но отклонения не могут быть
Передача и размножение данной документации, обработка и передача ее исключены, поэтому мы не несем ответственность за полное соответствие.
содержания запрещены, если не указано иначе. Следствием нарушения Содержание данного документа регулярно проверяется, и необходимые
является возмещение ущерба. Все права сохраняются, особенно в случае исправления вносятся в последующие издания. Мы будем благодарны за
патентов или GM-регистрации. предложения по улучшению.

© ООО SIEMENS 2001. Все права защищены. Возможны технические изменения


Заказной номер. 6FC5298-6AB10-0PP1
Отпечатано в Российской Федерации ООО SIEMENS
0 0
Содержание 09.01

Содержание
Предисловие 0-14

Гибкое NC-программирование 1-23

1.01 Переменная и R-параметры 1-24


1.02 Определение переменных 1-26
1.03 Определение поля 1-32
1.04 Косвенное программирование 1-38
1.05 Присвоения 1-40
1.06 Операции/функции вычисления 1-41
1.07 Операторы сравнения и логические операторы 1-43
1.08 Приоритет операторов 1-46
1.09 Возможные преобразования типов 1-47
1.10 Операции со строкой 1-48
1.10.01 Преобразование типов 1-49
1.10.02 Сопряжение строк 1-51
1.10.03 Преобразование в строчные/прописные буквы 1-52
1.10.04 Длина строки 1-53
1.10.05 Поиск символа/строки в строке 1-53
1.10.06 Выбор части строки 1-55
1.10.07 Выбор одиночного символа 1-56
1.11 CASE-оператор 1-58
1.12 Контрольные структуры 1-60
1.1.13 Координация программы 1-65
1.1.14 Режим прерываний 1-70
1.1.15 Замена оси, замена шпинделя 1-78
NEWCONF: Эффективное использование машинных данных (от ПО
1.1.16 4.3) 1-82
1.1.17 WRITE: запись файла (от ПО 4.3) 1-83
1.1.18 DELETE: стирание файла (от ПО 4.3) 1-85
1.1.19 READ: чтение строк в файле (от ПО 5.2) 1-86
1.1.20 ISFILE: файл имеется в прикладной памяти NCK (от ПО 5.2) 1-89
1.1.21 CHECKSUM: образование контрольных сумм через поле (от ПО 5.2) 1-90

Техника использования подпрограмм, техника макросов 2-93

2.1 Использование подпрограмм 2-94


2.2 Подпрограмма с механизмом SAVE 2-96
2.3 Подпрограммы с передачей параметров 2-97

 ООО Siemens 2001 Все права защищены.


0-6 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
0 0
09.01 Содержание

2.4 Вызов подпрограмм: L или EXTERN 2-101


2.5 Подпрограмма с повторением программы: P 2-105
2.6 Модальная подпрограмма: MCALL 2-106
2.7 Косвенный вызов подпрограммы: CALL 2-107
2.8 Вызов подпрограммы с указанием пути и параметрами: PCALL 2-108
2.9 Подавление актуальной индикации кадра: DISPLOF 2-109
2.10 Подавление отдельного кадра: SBLOF, SBLON (от ПО 4.3) 2-110
2.11 Выполнение внешней подпрограммы: EXTCALL (от ПО 4.2) 2-113
2.12 Вызов подпрограммы с помощью M-/T-функции 2-115
2.13 Циклы: параметрирование циклов пользователя 2-117
2.14 Техника макросов. DEFINE...AS 2-121

Управление файлами и программами 3-125

3.1 Обзор 3-126


3.2 Программная память 3-127
3.3 Оперативная память 3-132
3.4 Определение данных пользователя 3-135
3.5 Определение степеней защиты для данных пользователя (GUD) 3-139
3.6 Автоматическая активизация GUD и MAC (от ПО 4.4) 3-141

Защищенные области 4-143

4.1 Определение защищенных областей CPROTDEF, NPROTDEF 4-144


4.2 Активизация, деактивизация защищенных областей: CPROT, NPROT 4-148

Специальные команды перемещения 5-153

Перемещение к кодированным позициям, CAC, CIC, CDC, CACP,


5.1 CACN 5-154
5.2 Сплайн-интерполяция 5-155
5.3 Компрессор COMPON/COMPCURV/COMPCAD (ПО 6.2) 5-164
5.4 Полиномиальная интерполяция– POLY, POLYPATH (от ПО 5) 5-172
Устанавливаемое соотношение траекторий, SPATH, UPATH (от ПО
5.5 4.3) 5-179
5.6 Измерение с контактным щупом, MEAS, MEAW 5-183
Расширенная функций измерения MEASA, MEAWA, MEAC (от ПО 4,
5.7 опция) 5-186
5.8 Специальные функции для OEM-пользователя 5-196
5.9 Программируемый критерий окончания движения (от ПО 5.1) 5-197
5.10 Программируемый блок сервопараметров (от ПО 5.1) 5-198

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 0-7
0 0
Содержание 09.01

Фреймы 6-201

6.1 Трансформация координат через фрейм-переменную 6-202


6.2 Фрейм-переенные / присваивание значений фреймам 6-207
6.3 Грубое и точное смещение 6-214
6.4 DRF-смещение 6-215
6.5 Внешнее смещение нулевой точки 6-216
6.6 Программирование Preset-смещения, PRESETON 6-216
6.7 Деактивизация фреймов 6-216
Вычисление фрейма из 3-х точек измерения в пространстве,
6.8 MEAFRAME 6-216
6.9 Глобальные фреймы ЧПУ (от ПО 5) 6-216
6.9.01 Специфические для канала фреймы 6-216
6.9.02 Действующие в канале фреймы 6-216

Трансформации 7-231

7.1 Трех-, четырех- и пятиосевая трансформация: TRAORI 7-232


7.1.01 Программирование ориентации инструмента 7-235
7.1.02 Соотношение осей ориентации - ORIWKS, ORIMKS 7-240
7.1.03 Сингулярные позиции и их обработка 7-241
7.1.04 Оси ориентации (от ПО 5.2) 7-242
7.1.05 Декартово PTP-перемещение (от ПО 5.2) 7-245
7.2 Фрезерная обработка токарных деталей: TRANSMIT 7-250
7.3 Трансформация боковой поверхности цилиндра: TRACYL 7-253
7.4 Наклонная ось: TRAANG 7-259
7.4.01 Программирование наклонной оси: G05, G07 (от ПО 5.3) 7-263
7.5 Граничные условия при выборе трансформации 7-265
7.6 Отключение трансформации: TRAFOOF 7-267
7.7 Связанные трансформации 7-268
7.8 Переключаемые геометрические оси, GEOAX 7-271

Коррекции инструмента 8-277

8.1 Память коррекций 8-278


8.2 Языковые команды для управления инструментом 8-280
Коррекция инструмента Online PUTFTOCF, PUTFTOC, FTOCON,
8.3 FTOCOF 8-283
8.4 Фиксация коррекции радиуса инструмента, CUTCONON (от ПО 4) 8-289
8.5 Активизация 3D-коррекций инструмента 8-292
8.6 Ориентация инструмента 8-300

 ООО Siemens 2001 Все права защищены.


0-8 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
0 0
09.01 Содержание

8.7 Свободное распределение D-номеров, номера резцов CE (от ПО 5) 8-305


8.7.01 Проверка D-номеров (CHKDNO) 8-306
8.7.02 Переименование D-номеров (GETDNO, SETDNO) 8-307
8.7.03 Определение T-номеров для заданных D-номеров (GETACTTD) 8-308
8.7.04 Установка D-номеров недействительными 8-309
8.8 Кинематика держателя инструмента 8-310

Параметры движения по траектории 9-315

9.1 Тангенциальное управление TANG, TANGON, TANGOF 9-316


9.2 Буксировка TRAILON, TRAILOF 9-321
9.3 Таблицы кривых, CTABDEF, CTABEND, CTAB, CTABINV 9-325
9.4 Осевое соединение по ведущему значению, LEADON, LEADOF 9-333
9.5 Ход подачи, FNORM, FLIN, FCUB, FPO 9-339
Выполнение программы с памятью подачи, STARTFIFO, STOPFIFO,
9.6 STOPRE 9-344
9.7 Повторный подвод к контуру, REPOSA, REPOSL, REPOSQ, REPOSH 9-346

Синхронные действия движения 10-351

10.1 Структура, общие основы 10-353


10.1.01 Программирование и управляющие элементы 10-355
10.1.02 Область действия: идентификационный номер ID 10-356
10.1.03 Кодовое слово 10-357
10.1.04 Операции 10-360
10.1.05 Обзор синхронных действий 10-362
10.02 Базовые элементы для условий и операций 10-364
Специальные переменные реального времени для синхронных
10.03 действий 10-367
10.3.01 Идентификаторы/счетчики $AC_MARKER[n] 10-367
10.3.02 Переменная таймера $AC_TIMER[n], от ПО 4 10-367
10.3.03 Параметр синхронного действия $AC_PARAM[n] 10-368
10.3.04 Доступ к R-параметру $Rxx 10-369
10.3.05 Чтение/запись машинных и установочных данных, от ПО 4 10-370
10.3.06 FIFO-переменная $AC_FIFO1[n] … $AC_FIFO10[n], от ПО 4 10-371
10.04 Операции в синхронных действиях 10-373
10.4.01 Вывод вспомогательных функций 10-373
10.4.02 Установка блокировки считывания RDISABLE 10-374
10.4.03 Отмена остановки подачи STOPREOF 10-375
10.4.04 Стирание остатка пути 10-376
Стирание остатка пути с подготовкой, DELDTG, DELDTG(„Ось 1 до

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 0-9
0 0
Содержание 09.01

x“)
10.4.07 Определение полинома, FCTDEF, синхронно с кадром 10-378
10.4.08 Управление мощностью лазера 10-380
10.4.09 Функция обработки SYNFCT 10-381
10.4.10 Адаптивное управление (аддтивное) 10-382
10.4.11 Адаптивное управление (мультипликативное) 10-383
10.4.12 Регулировка дистанции с ограниченной коррекцией 10-384
10.4.13 Коррекция инструмента Online FTOC 10-386
10.4.14 Движения позиционирования 10-388
10.4.15 Позиционировние оси POS 10-390
10.4.16 Старт/стоп оси MOV 10-390
10.4.17 Осевая подача: FA 10-391
10.4.18 ПО-конечный выключатель 10-392
10.4.19 Координация осей 10-392
10.4.20 Установка фактического значения 10-394
10.4.21 Движения шпинделя 10-395
10.4.22 Буксировка: TRAILON, TRAILOF 10-396
10.4.23 Соединение по ведущему значению LEADON, LEADOF 10-397
10.4.24 Измерение 10-399
Установка/стирание меток ожидания: SETM, CLEARM (от версии
10.4.25 ПО 5.2) 10-399
10.4.26 Реакции на ошибки 10-400
10.4.27 Перемещение к жесткому упору FXS и FOCON/FOCOF 10-400
10.5 Технологические циклы 10-403
10.5.01 Блокировка, освобождение, прерывание: LOCK, UNLOCK, RESET 10-405
10.6 Стирание синхронного действия: CANCEL 10-407
10.7 Граничные условия 10-408

Качание 11-413

11.1 Асинхронное качание 11-414


11.2 Управляемое через синхронные действия качание 11-422

Штамповка и вырубка 12-433

12.1 Активизация, деактивизация 12-434


12.1.01 Языковые команды 12-434
12.1.02 Использование M-команд 12-437
12.2 Автоматическое разделение пути 12-438
12.2.01 Разделение пути для осей траектории 12-439
12.2.02 Разделение пути для отдельных осей 12-440

 ООО Siemens 2001 Все права защищены.


0-10 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
0 0
09.01 Содержание

12.2.03 Примеры программирования 12-442

Прочие функции 13-445

13.1 Функции оси AXNAME, SPI, ISAXIS, AXSTRING (от ПО 6) 13-446


13.2 Определение характеристик компенсации: QECLRNON, QECLRNOF 13-448
13.3 Синхронный шпиндель 13-450
13.4 EG: электронный редуктор (от ПО 5) 13-460
13.4.01 Определение электронного редуктора: EGDEF 13-461
13.4.02 Включение электронного редуктора 13-462
13.4.03 Выключение электронного редуктора 13-464
13.4.04 Стирание определения электронного редуктора 13-465
13.4.05 Окружная подача (G95)/электронный редуктор (ПО 5.2) 13-465
Поведение ЭР при Power On, RESET, смене режимов работы,
13.4.06 поиске 13-466
13.4.07 Системные переменные электронного редуктора 13-466
13.5 Расширенная остановка и отвод (от ПО 5) 13-466
13.5.01 Автономные реакции привода 13-468
13.5.02 Управляемые NC реакции 13-469
13.5.03 Возможные источник запуска 13-472
13.5.04 Логика связи: связь источников/реакций 13-472
13.5.05 Активизация 13-473
13.5.06 Режим генератора/поддержка промежуточного контура 13-474
13.5.07 Автономная остановка привода 13-474
13.5.08 Автономный отвод привода 13-475
13.5.09 Пример: использование автономной реакции привода 13-476
13.6 Link-коммуникация (от ПО 5.2) 13-477
13.7 Осевой контейнер (от ПО 5.2) 13-480
13.8 Время выполнения программы/счетчик деталей (от ПО 5.2) 13-482
13.8.01 Время выполнения программы 13-482
13.8.02 Счетчик деталей 13-484
Интерактивный вызов окон из программы обработки деталей, ММC-
13.9 Coммands (от ПО 4.4) 13-486

Собственные программы обработки резаньем 14-489

14.1 Функции поддержки для резания 14-490


14.2 Подготовка контура - CONTPRON 14-491
14.3 Декодирование контура - CONTDCON (от ПО 5.2) 14-498
14.4 Точка пересечения двух элементов контура - INTERSEC 14-502
14.5 Перемещение элемента контура из таблицы - EXECTAB 14-504

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 0-11
0 0
Содержание 09.01

14.6 Вычисление данных круга - CALCDAT 14-505

Таблицы 15-507

15.1 Список операторов 15-509


15.2 Список системных переменных 15-535
15.2.01 R-параметры 15-535
15.2.02 Специфические для канала переменные синхронного действия 15-535
15.2.03 Фреймы 1 15-536
15.2.04 Данные держателя инструмента 15-537
15.2.05 Специфические для канала защищенные области 15-543
15.2.06 Параметры инструмента 15-545
15.2.07 Данные резцов пользователя OEM 15-550
15.2.08 Данные контроля управления инструментом 15-558
15.2.09 Данные контроля пользователя OEM 15-559
15.2.10 Относящиеся к инструменту данные 15-559
15.2.11 Относящиеся к инструменту данные шлифования 15-561
15.2.12 Данные места в магазине 15-562
15.2.13 Данные места в магазине пользователя OEM 15-563
15.2.14 Данные описания магазина управления инструментом 15-564
Данные описания магазина управления инструментом
15.2.15 пользователя OEM 15-565
15.2.16 Параметры модуля магазина 15-566
15.2.17 Данные адаптера 15-566
15.2.18 Значения компенсации системы измерения 15-566
15.2.19 Компенсация квадрантных ошибок 15-567
15.2.20 Интерполяционная компенсация 15-568
15.2.21 Специфические защищенные области ЧПУ 15-570
15.2.22 Параметрирование циклов 15-571
15.2.23 Системные данные 15-574
15.2.24 Фреймы 2 15-574
15.2.25 Данные инструмента 15-576
15.2.26 Магазины 15-579
15.2.27 Запрограммированные значения геометрической оси 15-582
15.2.28 G-группы 15-583
15.2.29 Запрограммированные значения 15-583
15.2.30 Состояния канала 15-586
15.2.31 Синхронные действия 15-590
15.2.32 Входы/выходы 15-591
15.2.33 Чтение и запись переменных PLC 15-591
15.2.34 ЧПУ-Link 15-592

 ООО Siemens 2001 Все права защищены.


0-12 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
0 0
09.01 Содержание

15.2.35 Прямое PLC-IO 15-592


15.2.36 Управление инструментом 15-593
15.2.37 Времена 15-595
15.2.38 Движение по траектории 15-596
15.2.39 Скорости/ускорения 15-597
15.2.40 Шпиндели 15-598
15.2.41 Значения полинома для синхронных действий 15-601
15.2.42 Состояния канала 15-603
15.2.43 Измерение 15-604
15.2.44 Позиционирование 15-606
15.2.45 Делительные оси 15-607
15.2.46 Значения датчика 15-607
15.2.47 Осевое измерение 15-608
15.2.48 Смещения 15-609
15.2.49 Осевые пути 15-611
15.2.50 Качание 15-612
15.2.51 Осевые скорости 15-612
15.2.52 Данные привода 15-614
15.2.53 Состояния оси 15-615
15.2.54 Master-Slave-соединения 15-615
15.2.55 Движение до жесткого упора 15-616
15.2.56 Электронный редуктор 15-617
15.2.57 Соединение по ведущему значению 15-618
15.2.58 Синхронный шпиндель 15-619
15.2.59 Safety Integrated 15-621

Приложение A-625
A Указатель A-626
B Команды, идентификаторы A-642

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 0-13
0 0
Предисловие 09.01

Предисловие
Подразделение документации
Документация по SINUMERIK подразделяется на 3
уровня:
• общая документация
• Документация пользователя
• Документация изготовителя/сервисная
документация

Для кого эта документация


Настоящая документация предназначена для
программистов. В руководстве подробно
представлена необходимая для пользователя
информация по обслуживанию и управлению
SINUMERIK 840D/840Di/840Di/810D.

Стандартный объем
В настоящем руководстве по программированию
представлено описание стандартного объема
функций. Дополнения и изменения,
осуществляемые изготовителем оборудования,
документируются изготовителем оборудования.

Более подробную информацию касательно


дополнительной документации по SINUMERIK
840D/840Di/810D, а также документацию,
относящуюся ко всем СЧПУ SINUMERIK (к примеру,
универсальный интерфейс, циклы измерения...),
можно получить в представительстве Siemens.

В СЧПУ могут работать и другие функции, не


нашедшие своего отображения в данной
документации. Однако претензии по этим функциям
не принимаются ни при поставке, ни в случае
технического обслуживания.

 ООО Siemens 2001 Все права защищены.


0-14 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
0 0
09.01 Предисловие

Соответствие
Данное руководство по программированию
относится к следующим СЧПУ:
SINUMERIK 840D ПО6
SINUMERIK 840DE (экспортный вариант) ПО6
SINUMERIK 840Di SW2
SINUMERIK 840DiE (экспортный вариант) SW2
SINUMERIK 810D SW3
SINUMERIK 810DE (экспортный вариант) SW3
с панелями управления OP 010, OP 010C, OP
010S,
OP 12 или OP 15 (PCU 20 или PCU 50)

SINUMERIK 840D powerline


Начиная с 09.2001 имеются
• SINUMERIK 840D powerline и
• SINUMERIK 840DE powerline
с улучшенными характеристиками. Перечень
имеющихся powerline — модулей можно найти в
описании аппаратного обеспечения /PHD/
в главе 1.1

SINUMERIK 810D powerline


Начиная 12.2001 имеются
• SINUMERIK 810D powerline и
• SINUMERIK 810DE powerline
с улучшенными характеристиками. Перечень
имеющихся powerline—модулей можно найти в
описании аппаратного обеспечения /PHD/ в главе
1.1

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 0-15
0 0
Предисловие 09.01

Экспортный вариант

Функция 810DE 840DE


Пакет обработки 5 осей − −
Пакет трансформаций Handling (5 осей) − −
Многоосевая интерполяция (> 4 осей) − −
Интерполяция винтовых линий 2D+6 − −
1)
Синхронные действия ступень 2 − O
1)
Измерение ступень 2 − O
1) 1)
Adaptive control O O
1) 1)
Continuous dressing O O
Использование компилирующих циклов (OEM) − −
1) 1)
Многоразмерная компенсация провисания O O
− функция не возможна
1) ограниченная функциональность

 ООО Siemens 2001 Все права защищены.


0-16 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
0 0
09.01 Предисловие

Структура описаний
Все циклы и возможности программирования
описываются – насколько это позволяет смысл –
основываясь на одной и той же внутренней
структуре. Благодаря подразделению на различные
информационные уровни имеется возможность
целенаправленного обращения к необходимой в
данный момент информации.

1. Быстрый обзор
При необходимости получения информации по
редко используемой команде или значению
параметра Вы одновременно получаете
информацию по программированию функции и
объяснения по командам и параметрам.

Данная информация всегда находится в начале


страницы.

Указание:
По причине ограниченности места невозможно
привести все виды представления, доступные
через язык программирования. Поэтому
программирование команд составлено таким
образом, как оно наиболее часто встречается на
практике.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 0-17
0 0
Предисловие 09.01

2. Подробные объяснения
В теоретической части содержаться следующие
подробные описания:

Для чего необходима команда?

Результат команды?

Как происходит процесс?

Что вызывают параметры?

На что ещё необходимо обратить особое внимание?

Теоретические блоки предназначены прежде всего


для новичков в области ЧПУ и служат учебными
пособиями. Необходимо по меньшей мере один раз
подробно ознакомиться с данным руководством,
чтобы получить представление об объеме функций
и возможностях СЧПУ SINUMERIK.

3. От теории к практике
Примеры программирования показывают
технические возможности использования команд в
процессуальной последовательности.

Практически для всех команд после теоретической


части следуют примеры использования.

 ООО Siemens 2001 Все права защищены.


0-18 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
0 0
09.01 Предисловие

Объяснение символов

Последовательность управления

Объяснение

Функция

Параметр

Пример программирования

Программирование

Прочие указания

Перекрестные ссылки на другую документацию


и главы

Указания и опасности

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 0-19
0 0
Предисловие 09.01

Основное положение
SINUMERIK 840D/840Di/810D изготовлен в
соответствии с современными стандартами техники
признанными правилами техники безопасности,
нормами и предписаниями.

Дополнительные устройства
Благодаря специальным, предлагаемым SIEMENS
дополнительным приборам, дополнительным
устройствам и модернизациям возможно
целенаправленное расширение СЧПУ SIEMENS-в
их областях применения.

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

Соответствующий уровень компетенции


допущенного для установки, обслуживания и
поддержания технического состояния персонала
должен быть ясно определен и его соблюдение
должно контролироваться.

Исполнение
Перед вводом СЧПУ в эксплуатацию убедиться, что
руководства по эксплуатации были прочитаны и
поняты отвечающим за это персоналом. Кроме этого
эксплуатация подлежит обязательному
постоянному контролю общего технического
состояния (внешние видимые недостатки,
повреждения и изменения рабочих параметров)
СЧПУ.

 ООО Siemens 2001 Все права защищены.


0-20 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
0 0
09.01 Предисловие

Сервис
Ремонт может осуществляться только в
соответствии с указаниями в руководствах по
техническому обслуживанию и ремонту персоналом,
специально обученным и имеющим
соответствующую квалификацию в данной
области.

Указание
Неправильными и исключающими любую
ответственность изготовителя являются:

Любое отличное от перечисленного выше


применение и выходящее за эти рамки
использование.

Если СЧПУ эксплуатируется не в безупречном


техническом состоянии, без соблюдения указаний
по безопасности и всех указаний в руководстве по
эксплуатации.

Если помехи, которые могут повлиять на


безопасность, не устраняются перед вводом в
эксплуатацию СЧПУ.

Любое изменение, блокировка или отключение


устройств на СЧПУ, которые служат для
безупречного функционирования, неограниченного
использования, а также для активной и пассивной
безопасности.

Могут возникнуть непредвиденные опасности для:


• здоровья и жизни персонала,
• СЧПУ, станка и прочих материальных ценностей
предприятия и пользователя.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 0-21
0 0
Предисловие 09.01

В документации используются следующие указания,


имеющие специальное значение:
Указания
Этот символ используется в тех местах документации, где
имеется указание на связанные содержания и необходимо
обратить особое внимание на важные моменты.
Этот символ в документации означает указание на
дополнение заказных параметров. Описанная функция
работает только в том случае, если СЧПУ имеет
обозначенную опцию.
Предупреждающие указания
В документации используются следующие
предупреждающие указания с градацией значений.
Опасность
Это предупреждающее указание означает, что следствием
несоблюдения соответствующих мер безопасности
являются смерть, тяжкие телесные повреждения или
значительный материальный ущерб.
Предупреждение
Это предупреждающее указание означает, что следствием
несоблюдения соответствующих предписаний могут стать
смерть, тяжкие телесные повреждения или значительный
материальный ущерб.
Осторожно
Это предупреждающее указание (с предупреждающим
знаком) означает, что следствием несоблюдения
соответствующих мер безопасности могут стать легкие
телесные повреждения.
Осторожно
Это предупреждающее указание (без предупреждающего
знака) означает, что следствием несоблюдения
соответствующих мер безопасности может стать
материальный ущерб.

Внимание
Это предупреждающее указание означает, что следствием
несоблюдения соответствующих указаний может быть
нежелательный результат или состояние.

 ООО Siemens 2001 Все права защищены.


0-22 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое программирование числового управления

Гибкое NC - программирование

1.1 Переменная и R-параметры ........................................................................................ 1-24

1.2 Определение переменных............................................................................................ 1-26

1.3 Определение поля......................................................................................................... 1-32

1.4 Косвенное программирование...................................................................................... 1-38

1.5 Присвоения .................................................................................................................... 1-40

1.6 Операции/функции вычисления ................................................................................... 1-41

1.7 Операторы сравнения и логические операторы ......................................................... 1-43

1.8 Приоритет операторов .................................................................................................. 1-46

1.9 Возможные преобразования типов.............................................................................. 1-47

1.10 Операции со строкой..................................................................................................... 1-48


1.10.1 Преобразование типов .......................................................................................... 1-49
1.10.2 Сопряжение строк .................................................................................................. 1-51
1.10.3 Преобразование в строчные/прописные буквы ................................................... 1-52
1.10.4 Длина строки........................................................................................................... 1-53
1.10.5 Поиск символа/строки в строке ............................................................................. 1-53
1.10.6 Выбор части строки................................................................................................ 1-55
1.10.7 Выбор одиночного символа................................................................................... 1-56

1.11 CASE-оператор .............................................................................................................. 1-58

1.12 Контрольные структуры................................................................................................. 1-60

1.13 Координация программы .............................................................................................. 1-65

1.14 Режим прерываний........................................................................................................ 1-70

1.15 Замена оси, замена шпинделя ..................................................................................... 1-78

1.16 NEWCONF: Эффективное использование машинных данных (от ПО 4.3).............. 1-82

1.17 WRITE: запись файла (от ПО 4.3)................................................................................ 1-83

1.18 DELETE: стирание файла (от ПО 4.3) ......................................................................... 1-85

1.19 READ: чтение строк в файле (от ПО 5.2) .................................................................... 1-86

1.20 ISFILE: файл имеется в прикладной памяти NCK (от ПО 5.2)................................... 1-89

1.21 CHECKSUM: образование контрольных сумм через поле (от ПО 5.2) ..................... 1-90

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-23
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.1 Переменные и R-параметры


Функция
Благодаря использованию переменных вместо
фиксированных величин имеется возможность
гибкого формирования программы. Таким
образом, появляется возможность реагировать
на сигналы, к примеру, измеряемые величины,
или, посредством использования переменных в
качестве заданной величины, можно применять
одну и ту же программу для разных геометрий.

Вместе с вычислением переменных и


переходами в программах это открывает перед
опытным программистом возможность создания
гибкого программного архива, экономя благодаря
этому время на программирование.

Виды переменных
В управлении различаются 3 вида переменных:

Пользовательская переменная Переменная, имя и тип которой


определяются пользователем, к примеру,
параметр вычисления.
R-параметр Специальная, заранее определенная
операционная переменная, для которой
предусмотрен адрес R с последующим
номером. Заранее определенные
операционные переменные имеют тип
REAL.
Системная переменная Предоставляемые управлением
переменные, которые могут
обрабатываться в программе (запись,
чтение). Системные переменные
предлагают доступ к смещениям нулевой
точки, коррекциям инструмента,
фактическим величинам, измеряемым
величинам осей, состояниям управления
и т.п. (значение системных переменных
см. приложение)

 ООО Siemens 2001 Все права защищены.


1-24 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-
программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Типы переменных

Тип Значение Диапазон значений


INT целые величины со знаковым разрядом ±(231 - 1)
REAL действительные числа (дробные числа с ±(10-300 … 10+300)
десятичной запятой, LONG REAL по IEEE)
BOOL истинные величины: TRUE (1) и FALSE (0) 1, 0
CHAR 1 символ ASCII, соответствующий коду 0 … 255
STRING символьная строка, число символов в […], Последовательность
макс. 200 символов величин 0 … 255
AXIS только имена осей (адреса осей) все имеющиеся на канале
идентификаторы осей и
шпиндели
FRAME геометрические данные по смещению,
вращению, масштабированию, зеркальному
отображению, см. главу 4.

R- переменная
По адресу R стандартно находятся 100 R-
переменных типа REAL без дополнительного
описания.

Точное количество R-переменных (максимум


1000) определяется машинными данными.

Пример: R10=5

Системная переменная

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-25
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Для особой идентификации имя системных


переменных всегда начинается со знака "$".
После этого следуют специфические
обозначения.

Обзор типов системных переменных


1. Буква Значение
$M машинные данные
$S установочные параметры
$T параметры управления инструментом
$P программируемые величины
$A актуальные величины
$V сервисные параметры

2. Буква Значение
N глобальные данные ЧПУ
C специфические для канала
A специфические для оси

Пример: $AA_IM
Означает: актуальная осевая фактическая
величина в системе координат станка.

1.2 Определение переменных


Прикладные переменные
Наряду с заранее определенными переменными
б

 ООО Siemens 2001 Все права защищены.


1-26 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-
программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

программист может определять собственные


переменные и присваивать им значения.
Локальные переменные (LUD) относятся только к
программе, в которой они определены.
Глобальные переменные (GUD) относятся ко
всем программам.
От ПО4.4:
Через машинные данные, определенные в
главной программе, локальные прикладные
переменные (LUD) переопределяются в
глобальные программные прикладные
переменные (PUD).
Изготовитель станка
См. данные изготовителя станка

Если они определены в главной программе, то


они действуют и на всех уровнях вызываемых
подпрограмм. Они устанавливаются при запуске
программы обработки деталей и стираются при
ее завершении или Reset.

Пример:
$MN_LUD_EXTENDED_SCOPE=1

PROC MAIN ;главная программа


DEF INT VAR1 ;PUD-определение
...
SUB2 ;вызов подпрограммы
...
M30

PROC SUB2 ;подпрограмма SUB2


DEF INT VAR2 ;LUD-ОПРЕДЕЛЕНИЕ
...
IF (VAR1==1) ;PUD чтение
VAR1=VAR1+1 ;PUD чтение и запись
VAR2=1 ;LUD запись
ENDIF
SUB3 ;вызов подпрограммы
...
M17
PROC SUB3 ;подпрограмма SUB3
...
IF (VAR1==1) ;PUD чтение
VAR1=VAR1+1 ;PUD чтение и запись

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-27
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

VAR2=1 ;ошибка: LUD из SUB2


;не известен
ENDIF
...
M17

Если машинное данное


$MN_LUD_EXTENDED_SCOPE установлено, то
более невозможно, определить в главной или
подпрограммах переменную с тем же именем.

Имена переменных
Имя переменной состоит максимум из 31 знака.
Первые два знака должны быть буквой или
символом подчеркивания.

Символ "$" не может использоваться для


пользовательских переменных, так как этот
символ используется для системных
переменных.

Программирование
DEF INT имя
или DEF INT имя=величина
DEF REAL имя
или DEF REAL имя1, имя 2=3, имя 4
или DEF REAL имя [индекс поля1,индекс
поля2]
DEF BOOL имя
DEF CHAR имя
или DEF CHAR имя[индекс поля]=("A","B",…)
DEF STRING[длина строки] имя
DEF AXIS имя
или DEF AXIS name[индекс поля]
DEF FRAME имя

 ООО Siemens 2001 Все права защищены.


1-28 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-
программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Если при определении переменной не присвоено


значение, то система присваивает ей ноль.
Переменные должны быть определены перед их
использованием в начале программы.
Определение должно осуществляться в
собственной группе; на группу может быть
определен только один тип переменных.

Пояснение

INT тип переменных Integer, т.е. целое число


REAL тип переменных Real, т.е дробное число с десятичной запятой
BOOL тип переменных Bool, т.е. 1 или 0 (TRUE или FALSE)
CHAR тип переменных Char, т.е. знак в соответствии с кодом ASCII (0 до 255)
STRING тип переменных String, т.е. символьная строка
AXIS тип переменных Axis, т.е. адреса осей и шпинделей
FRAME тип переменных Frame, т.е. геометрические данные
name имя переменных

Пример программирования

Тип переменных INT


DEF INT ANZAHL Устанавливается переменная типа Integer с именем
ANZAHL. Предварительное системное значение ноль.
DEF INT ANZAHL=7 Устанавливается переменная типа Integer с именем
ANZAHL. Начальное значение переменной равно 7.

Тип переменных REAL


DEF REAL TIEFE Устанавливается переменная типа Real с именем
TIEFE.
Предварительное системное значение ноль (0.0).
DEF REAL TIEFE=6.25 Устанавливается переменная типа Real с именем
TIEFE. Начальное значение переменной равно 6.25.
DEF REAL В одной строке могут также определяться несколько
TIEFE=3.1,LAENGE=2,ANZAHL переменных.

Тип переменных BOOL


DEF BOOL WENN_ZUVIEL Устанавливается переменная типа Bool с именем
WENN_ZUVIEL. Предварительное системное

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-29
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

значение ноль (FALSE).


DEF BOOL WENN_ZUVIEL=1 или Устанавливается переменная типа Bool с именем
DEF BOOL WENN_ZUVIEL=TRUE или WENN_ZUVIEL.
DEF BOOL WENN_ZUVIEL=FALSE

Тип переменных CHAR


DEF CHAR GUSTAV_1=65 Переменной типа Char может быть присвоено
кодовое значение для соответствующего символа
ASCII или
DEF CHAR GUSTAV_1="A" непосредственно символ ASCII (кодовое значение
65 соответствует букве "A").

Тип переменных STRING


DEF STRING[6] Переменные типа String могут записывать
MUSTER_1="ANFANG" символьную строку. Максимальное количество
символов находится в квадратных кавычках после
типа переменной.

Тип переменных AXIS


DEF AXIS ACHSNAME=(X1) Переменные типа AXIS имеют имя ACHSNAME и
включают идентификатор оси канала – здесь X1.
(исключения с расширенным адресом стоят в
круглых скобках.)

Тип переменных FRAME


DEF FRAME SCHRAEG_1 Переменные типа FRAME имеют имя SCHRAEG_1.

 ООО Siemens 2001 Все права защищены.


1-30 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-
программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Прочие указания
Переменная типа AXIS записывает идентификатор
оси и идентификатор шпинделя канала.
Обратить внимание:
Исключения с расширенным адресом должны
записываться в круглых скобках.

Пример программирования с
локальными программными
переменными
DEF INT ZAEHLER
SCHLEIFE: G0 X… ;метка
ZAEHLER=ZAEHLER+1
IF ZAEHLER<50 GOTOB SCHLEIFE
M30

Пример программирования

Опрос имеющихся геометрических осей


DEF AXIS ABSZISSE; ;1. геометрическая ось
IF ISAXIS(1) == FALSE GOTOF WEITER
ABSZISSE = $P_AXN1

WEITER:

Косвенное программирование шпинделя


DEF AXIS SPINDLE
SPINDLE=(S1)
OVRA[SPINDLE]=80 ;процентовка шпинделя= 80%
SPINDLE=(S3)

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-31
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.3 Определение поля


Программирование
DEF CHAR NAME[n,m]
DEF INT NAME[n,m]
DEF REAL NAME[n,m]
DEF AXIS NAME[n,m]
DEF FRAME NAME[n,m]
DEF STRING[длина строки] NAME[m]
DEF BOOL[n,m]

Пояснение

INT NAME[n,m] Тип переменных (CHAR, INTEGER, REAL,


REAL NAME[n,m] AXIS, FRAME, BOOL)
n = размер поля для первой размерности
m = размер поля для второй размерности
DEF STRING[длина строки] NAME[m] Тип данных STRING может определяться
только с одноразмерными полями
NAME Имя переменной

Размер памяти для типа BOOL равен размеру


памяти для типа CHAR.
До ПО 3:
Максимальный размер поля устанавливается
через машинные данные.
Изготовитель станка
См. данные изготовителя станка

Тип Размер памяти на элемент поля


BOOL 1 байт
CHAR 1 байт
INT 4 байта
REAL 8 байтов
STRING длина строки + 1
FRAME ∼ 400 байт, зависит от кол-ва осейl
AXIS 4 байта

Максимальный размер поля определяет размер


блоков памяти, в которых управляется ЗУ
переменных. Они не должны устанавливаться
большими, чем это необходимо.
Стандарт: 812 байт

 ООО Siemens 2001 Все права защищены.


1-32 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-
программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Если большие поля не определяются,


выбирается 256 байт.

От ПО 4:
Поле может быть больше блока памяти.
Величина MD для размера блока должна быть
выбрана таким образом, чтобы припасовывание
полей происходило только в виде исключения.
Стандарт: 256 байт
Размер памяти на элемент: см. выше
Пример:
Глобальные данные пользователя должны включать
PLC-машинные данные для включения/выключения
СЧПУ (определение полей BOOL).

Прочие указания
Могут определяться поля с максимум двумя
размерностями.

Поля с переменными типа STRING могут быть


только одноразмерными. Длина строки
указывается по типу данных String.

Индекс поля
Доступ к элементам поля может осуществляться
через индекс поля. Через этот индекс поля
элементам поля либо может быть присвоено
значение, либо значения элементов поля могут
считываться.

Первый элемент поля начинается с индекса [0,0];


при размере поля в [3,4] максимально возможный
индекс поля равен, к примеру, [2,3].

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-33
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

В вышеуказанном примере значения при


инициализации были выбраны таким образом,
что они одновременно представляют индекс
элемента поля. Таким образом, видна
последовательность отдельных элементов поля.
Инициализация полей
Элементам поля в ходе программы или ещё при
определении поля могут быть присвоены
инициализационные значения.

У двухразмерных полей сначала


инкрементируется правый индекс поля.

Инициализация с помощью списков значений,


SET

1. Возможности при определении поля

DEF Typ VARIABLE = SET(WERT)


DEF Typ FELD[n,m] = SET(WERT, Wert, …)

или:
DEF Typ VARIABLE = Wert
DEF Typ FELD[n,m] = (Wert, Wert, …)

• распределяется столько элементов поля, как


запрограммированы инициализационные
значения.
• элементам поля без значений (пропуски в
списке значений) автоматически
присваивается 0.
• у переменных типа AXIS пропуски в списке
значений не допускаются.
• если программируется больше значений чем
количество оставшихся элементов поля, то
система выдает ошибку.
Пример:
DEF REAL FELD[2,3]=(10, 20, 30, 40)

При определении поля SET может указываться


как опция.
2. Возможности при выполнении программы

 ООО Siemens 2001 Все права защищены.


1-34 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-
программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

FELD[n,m]= SET(Wert, Wert, Wert,…)


FELD[n,m]= SET(Ausdruck, Ausdruck,
Ausdruck,…)

• инициализация осуществляется как при


определении
• в качестве значений здесь возможны и
выражения.
• инициализация начинается с
запрограммированных граничных пар поля.
Благодаря этому также возможно целевое
присвоение значений подполям.
Пример:
Распределение выражений
DEF INT FELD[5, 5]
FELD[0,0] = SET(1, 2, 3, 4, 5)
FELD[2,3] = SET(VARIABLE, 4*5.6)

У переменных осей индекс осей не пропускается:


Пример:
Инициализация в одной строке
$MA_AX_VELO_LIMIT[1, AX1] = SET(1.1, 2.2, 3.3)

Соответствует:
$MA_AX_VELO_LIMIT[1,AX1] = 1.1
$MA_AX_VELO_LIMIT[2,AX1] = 2.2
$MA_AX_VELO_LIMIT[3,AX1] = 3.3

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-35
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Инициализация с одинаковыми значениями,


REP

1. Возможности при определении поля

DEF Typ FELD[n,m] = REP(Wert)

Всем элементам поля присваивается одно и то


же значение (постоянная).

Переменные типа FRAME не могут быть


инициализированы.

Пример:
DEF REAL FELD5[10,3] = REP(9.9)

2. Возможности при выполнении программы

FELD[n,m] = REP(Wert)
FELD[n,m] = REP(Ausdruck)

• в качестве значений здесь возможны и


выражения
• все элементы поля инициализируются с
одним и тем же значением.
• инициализация начинается с
запрограммированных граничных пар поля.
Благодаря этому также возможно целевое
присвоение значений подполям.

Переменные типа FRAME допускаются и тем


самым могут очень просто инициализироваться.

Пример:
инициализация всех элементов с одним
значением

DEF FRAME FRM[10]


FRM[5] = REP(CTRANS (X,5))

 ООО Siemens 2001 Все права защищены.


1-36 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-
программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Пример программирования
Инициализация целых полей переменных.
Соответствующее актуальное распределение см. рисунок.

N10 DEF REAL FELD1[10,3] = SET(0, 0, 0, 10, 11, 12, 20, 20, 20, 30, 30,
30, 40, 40, 40,)
N20 FELD1[0,0] = REP(100)
N30 FELD1[5,0] = REP(-100)
N40 FELD1[0,0] = SET(0, 1, 2, -10, -11, -12, -20, -20, -20, -30, , , ,
-40, -40, -50, -60, -70)
N50 FELD1[8,1] = SET(8.1, 8.2, 9.0, 9.1, 9.2)

Элементы поля [3,0] до


Элементы поля [5,0] до
[4,0] были
[9,0] были
инициализированы с
инициализированы с
величиной по умолчанию
величиной по
(0.0). Элементы поля [6,0]
умолчанию (0.0)
до [8,0] не изменялись.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-37
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.4 Косвенное программирование


Благодаря косвенному программированию
возможно универсальное использование
программ. При этом расширенный адрес (индекс)
соответственно заменяется на переменную
подходящего типа.

Могут параметрироваться все адреса кроме:


• N – номер кадра
• G – G-команда
• L – подпрограмма

Для всех устанавливаемых адресов косвенное


программирование невозможно.
Пример: X[1] вместо X1 не допускается.

Программирование
ADRESSE[INDEX]

Примеры программирования
Шпиндель
S1=300 прямое программирование
косвенное программирование:
DEF INT SPINU=1 Число оборотов 300 об/мин для
S[SPINU]=300 шпинделя, номер которого находится в
переменной SPINU (в этом примере 1).

Подача
FA[U]=300 прямое программирование
косвенное программирование:
DEF AXIS AXVAR2=U подача для оси позиционирования, имя
FA[AXVAR2]=300 адреса которой находится в переменной
типа AXIS под именем переменной
AXVAR2.

Измеряемая величина
$AA_MM[X] прямое программирование
косвенное программирование:
DEF AXIS AXVAR3=X Измеряемая величина в координатах
$AA_MM[AXVAR3] станка для оси, имя которой находится в

 ООО Siemens 2001 Все права защищены.


1-38 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-
программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

переменной AXVAR3.

Элемент поля
DEF INT FELD1[4,5] прямое программирование
DEFINE DIM1 AS 4
DEFINE DIM2 AS 5
DEF INT FELD[DIM1,DIM2]
FELD[DIM1-1,DIM2-1]=5 косвенное программирование:
Для размерностей полей размеры поля
должны указываться как фиксированные
величины.

Команда оси с переменными оси


X1=100 X2=200 прямое программирование
косвенное программирование:
DEF AXIS AXVAR1 AXVAR2 Определение переменных
AXVAR1=(X1) AXVAR2=(X2) Присвоение имен оси. Перемещение
AX[AXVAR1]=100 AX[AXVAR2]=200 осей, зафиксированных в переменных, на
100 или 200.

Интерполяционные параметры с
переменными осей
G2 X100 I20 прямое программирование
косвенное программирование:
DEF AXIS AXVAR1=X Определение и распределение имени
G2 X100 IP[AXVAR1]=20 осей
Косвенное программирование значений
средней точки.

Косвенный вызов подпрограммы


CALL "L" << R10 Вызов программы, номер которой
находится в R10

Прочие указания
R-параметры также могут пониматься как
одноразмерное поле с укороченной записью (R10
соответствует R[10]).

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-39
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.5 Присвоение
Переменным/параметрам вычисления в
программе могут быть присвоены значения
подходящего типа.

При этом присвоение всегда требует отдельного


кадра записи; на кадр возможно несколько
присвоение. Присвоение на адреса осей
(команда перемещения) требует отдельного
кадра в отличие от присвоения переменных.

Пример программирования

R1=10.518 R2=4 VARI1=45 Присвоение цифрового значения.


X=47.11 Y=R2
R1=R3 VARI1=R4 Присвоение переменной подходящего
типа.
R4=-R5 R7=-VARI8 Присвоение с противоположным знаком
(разрешено только для типа INT и REAL)

Присвоение для строчных переменных


Внутри цепочки CHAR или STRING роль играет
прописное или строчное написание.
Если ' или " является составной частью
символьной строки, то он должен быть заключен
в кавычки '…'.

Пример:
MSG("Viene lavorata l' ''ultima
figura")
показывается на экране как текст 'Viene lavorata
l'ultima figura'.

Скрытые знаки могут записываться в строку в


качестве двоичных или шестнадцатеричных
постоянных.

 ООО Siemens 2001 Все права защищены.


1-40 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-
программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.6 Операции/функции вычисления


Функции вычисления имеют приоритет для R-
параметров и переменных (или постоянных и
функций) типа REAL. Допускаются также и типы
INT и CHAR.

Для операций вычисления действует обычное


математическое представление. Приоритеты в
обработке определяются круглыми скобками. Для
тригонометрических и их обратных функций
необходимо указание градуса (прямой угол =
90°).

Операторы/функции вычисления

+ Сложение
- Вычитание
* Умножение
/ Деление
Внимание: (тип INT)/(тип INT)=(тип REAL); пример: 3/4 = 0.75
DIV Целочисленное деление, для типа переменных INT и REAL
Внимание: (тип INT)DIV(тип INT)=(тип INT); пример: 3 DIV 4 = 0
MOD Выделение дробной части (INT или REAL) выдает остаток INT-
делений, к примеру, 3 MOD 4=3
: Связывающий оператор (для переменных FRAME)
Sin() Синус
COS() Косинус
TAN() Тангенс
ASIN() Арксинус
ACOS() Арккосинус
ATAN2(,) Арктангенс2
SQRT() Квадратный корень
ABS() Сумма
POT() Вторая степень (квадрат)
TRUNC() Целая часть
ROUND() Округление до целого
LN() Натуральный логарифм
EXP() Показательная функция
CTRANS() Сдвиг
CROT() Вращение
CSCALE() Изменение масштаба

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-41
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

CMIRROR() Зеркальное отображение

Примеры программирования

R1=R1+1 Новый R1 = старый R1 +1


R1=R2+R3 R4=R5-R6 R7=R8*R9
R10=R11/R12 R13=SIN(25.3)
R14=R1*R2+R3 Вычисление точки имеет приоритет перед
вычислением тире
R14=(R1+R2)*R3 Сначала вычисляются скобки
R15=SQRT(POT(R1)+POT(R2)) Сначала раскрываются внутренние
скобки R15 = квадратный корень из
(R12+R22)
RESFRAME= FRAME1:FRAME2 С помощью связывающего оператора
фреймы связываются в результирующий
FRAME3=CTRANS(…):CROT(…) фрейм или компонентам фрейма
присваиваются значения

Функция вычисления ATAN2( , )


Функция вычисляет из двух расположенных
вертикально друг на друге векторов угол
суммарного вектора. Результат находится в
диапазоне четырех квадрантов (–180° < 0 <
+180°). Базой для угловой корреляции всегда
является вторая величина в положительном
направлении.

 ООО Siemens 2001 Все права защищены.


1-42 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-
программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.7 Операторы сравнения и логические операторы


Операторы сравнения
Операторы сравнения могут использоваться для
переменных типа CHAR, INT, REAL и BOOL. Для
типа CHAR сравнивается кодовая величина.

Для типов STRING, AXIS и FRAME возможно: ==


и <>.

Результатом сравнительных операций всегда


является тип BOOL.

Операции сравнения могут использоваться, к


примеру, для формулирования условия
перехода. При этом могут сравниваться и полные
выражения.

Значение операторов сравнения

== равно
<> не равно
> больше
< меньше
>= больше или равно
<= меньше или равно
<< сопряжение строк

Пример программирования
IF R10>=100 GOTOF ZIEL
или
R11=R10>=100
IF R11 GOTOF ZIEL

Сначала осуществляется промежуточная


буферизация результата сравнения R10>=100 в
R11.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-43
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Логические операторы
Логические операторы служат для связи
значений истинности.
AND, OR, NOT и XOR могут использоваться
только для переменных типа BOOL. Через
неявную конвертацию типов они могут
использоваться и для типов данных CHAR, INT и
REAL.

Между логическими операндами и операторами


должны быть записаны пробелы.

Для логических (булевых) операций для типов


данных BOOL, CHAR, INT и REAL действует:
0 соответствует FALSE
не равно 0 соответствует TRUE

Значение логических операторов

AND И
OR ИЛИ
NOT отрицание
XOR исключающее ИЛИ

В арифметических выражениях с помощью


круглых скобок может определяться
последовательность обработки всех операторов,
отклоняясь тем самым от обычных правил
последовательности.

Пример программирования
IF (R10<50) AND ($AA_IM[X]>=17.5) GOTOF ZIEL

IF NOT R10 GOTOB START

NOT относится только к одному операнду.

 ООО Siemens 2001 Все права защищены.


1-44 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-
программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Побитовые логические операторы


С помощью переменных типа CHAR и INT могут
осуществляться и побитовые логические
операции. При необходимости преобразование
типа осуществляется автоматически.

Значение побитовых логических


операторов
B_AND побитовое И
B_OR побитовое ИЛИ
B_NOT побитовое отрицание
B_XOR побитовое исключающее ИЛИ

Операторr B_NOT относится только к одному


операнду; он стоит после оператора.

Пример программирования
IF $MC_RESET_MODE_MASK B_AND 'B10000' GOTOF ACT_PLANE

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-45
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.8 Приоритет операторов


Приоритет операторов
Каждый оператор имеет приоритет. При
обработке выражения сначала всегда
используются операторы с более высоким
приоритетом. При равноуровневых операторах
обработка осуществляется слева направо.

В арифметических выражениях с помощью


круглых скобок может определяться
последовательность обработки всех операторов,
отклоняясь тем самым от обычных правил
последовательности.

Последовательность операторов
(от высшего к низшему приоритету)

1. NOT, B_NOT отрицание, побитовое отрицание


2. *, /, DIV, MOD умножение, деление
3. +, – сложение, вычитание
4. B_AND побитовое И
5. B_XOR побитовое исключающее ИЛИ
6. B_OR побитовое ИЛИ
7. AND И
8. XOR исключающее ИЛИ
9. OR ИЛИ
10. << сопряжение строк, тип результата STRING
11. ==, <>, >, <, >=, <= операторы сравнения

Пример If-указания:
If (otto==10) and (anna==20) gotof end

Связывающий оператор экспонента ":" для


фреймов не может находится с другими
операторами в одном выражении. Поэтому
градация приоритетов для этого оператора не
требуется.

 ООО Siemens 2001 Все права защищены.


1-46 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-
программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.9 Возможные преобразования типов


Преобразование типов при распределении
Постоянная числовая величина, переменная или
выражение, присваиваемое переменной, должно
быть совместимо с типом этой переменной. Если
это имеет место, то при подчинении тип
автоматически преобразуется.

Возможные преобразования типов


в REAL INT BOOL CHAR STRING AXIS FRAME
из
REAL да да * да 1) да * – – –
INT да да да 1)
да 2)
– – –
BOOL да да да да да – –
CHAR да да да 1)
да да – –
STRING – – да 4) да 3) да – –
AXIS – – – – – да –
FRAME – – – – – – да

* При преобразовании типа REAL в INT дробные


величины >= 0.5 округляются в большую
сторону, в иных случаях округление
осуществляется в меньшую сторону (ср.
функцию ROUND)
1)
величина <> 0 соответствует TRUE, величина
== 0 соответствует FALSE
2)
если величина находится в допустимом
числовом диапазоне
3)
если только 1 символ
4)
длина строки 0 = >FALSE, в ином случае TRUE

Если при преобразовании величина больше


диапазона назначения, то следует сообщение об
ошибке.

Прочие указания
Если в одном выражении встречаются
смешанные типы, то согласование типов
осуществляется автоматически.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-47
1 1
Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.10 Операции со строками


Обзор
Наряду с описанными в этой главе классическими
операциями "Присвоение" и "Сравнение" имеются
дополнительные возможности работы со строками:
Объяснение
Преобразование типа в STRING:
STRING_ERG = <<bel._Typ1) Тип результата: STRING
STRING_ERG = AXSTRING (AXIS) Тип результата: STRING

Преобразование типа из STRING:


BOOL_ERG = ISNUMBER (STRING) Тип результата: BOOL
REAL_ERG = NUMBER (STRING) Тип результата: REAL
AXIS_ERG = AXNAME (STRING) Тип результата: AXIS

Сопряжение строк:
bel._Typ1) << bel. Typ1) Тип результата: STRING

Преобразование в строчные/прописные буквы:


STRING_ERG = TOUPPER (STRING) Тип результата: STRING
STRING_ERG = TOLOWER (STRING) Тип результата: STRING

Длина строки:
INT_ERG = STRLEN (STRING) Тип результата: INT

Поиск символов/строк в строке:


INT_ERG = INDEX (STRING, CHAR) Тип результата: INT
INT_ERG = RINDEX (STRING, CHAR) Тип результата: INT
INT_ERG = MINDEX (STRING, STRING) Тип результата: INT
INT_ERG = MATCH (STRING, STRING) Тип результата: INT

Выбор частичной строки:


STRING_ERG = SUBSTR (STRING, INT) Тип результата: INT
STRING_ERG = SUBSTR (STRING, INT, INT) Тип результата: INT

Выбор отдельного символа:


CHAR_ERG = STRINGVAR [IDX] Тип результата: CHAR
CHAR_ERG = STRINGFELD [IDX_FELD, IDX_CHAR] Тип результата: CHAR
1)
"bel._Typ" стоит у типов переменных INT, REAL, CHAR, STRING и BOOL.

 ООО Siemens 2001 Все права защищены.


1-48 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Специальное значение 0-символа


0-символ имеет внутреннюю интерпретацию в
качестве идентификатора конца строки.
Замена символа символом 0 сокращает строку.

Пример:
DEF STRING[20] STRG = "Achse . steht"
STRG[6] = "X" ;выдает сообщение "Ось X
стоит"
MSG(STRG)
STRG[6] = 0
MSG(STRG) ;выдает сообщение "Ось"

1.10.1 Преобразование типов

Благодаря этому возможно использование


переменных различного типа в качестве
составной части сообщения (MSG).

Преобразование в STRING
Осуществляется при неявном использовании
оператора << для типов данных INT, REAL,
CHAR и BOOL (см. "Сопряжение строк").
Величина INT преобразуется в обычную
читаемую форму. Для величин REAL указывается
до 10 позиций после запятой.

Переменные типа AXIS могут с помощью


функции AXSTRING быть преобразованы в
STRING.
Переменные FRAME не могут быть
преобразованы.

Пример:
MSG("Position:"<<$AA_IM[X])

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-49
1 1
Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Преобразование из STRING
С помощью функции NUMBER осуществляется
преобразование из STRING в REAL.
Если ISNUMBER выдает величину FALSE, то при
ВЫЗОВЕ NUMBER с тем же параметром
включается тревога.
С помощью функции AXNAME строка может быть
преобразована в тип данных AXIS. Если строка
не может быть присвоена спроектированному
идентификатору оси, то включается тревога.

Синтаксис
BOOL_ERG = ISNUMBER (STRING) Тип результата: BOOL
REAL_ERG = NUMBER (STRING) Тип результата: REAL
STRING_ERG = AXSTRING (AXIS) Тип результата: STRING
AXIS_ERG = AXNAME (STRING) Тип результата: AXIS

Семантика:
ISNUMBER (STRING) выдает TRUE, если строка
представляет собой верное по правилам языка
REAL-число. Таким образом можно проверить,
может ли строка быть преобразована в верное
число. NUMBER (STRING) отправляет
представленное строкой число в качестве REAL-
величины обратно. AXSTRING (AXIS) выдает
указанный идентификатор оси как строку.
AXNAME (STRING) преобразует указанную строку
в идентификатор оси.

Примеры
DEF BOOL BOOL_ERG
DEF REAL REAL_ERG
DEF AXIS AXIS_ERG
DEF STRING[32] STRING_ERG
BOOL_ERG = ISNUMBER ("1234.9876Ex-7") ; теперь: BOOL_ERG == TRUE
BOOL_ERG = ISNUMBER ("1234XYZ") ; теперь: BOOL_ERG == FALSE
REAL_ERG = NUMBER ("1234.9876Ex-7") ; теперь: REAL_ERG == 1234.9876Ex-7
STRING_ERG = AXSTRING(X) ; теперь: STRING_ERG == "X"
AXIS_ERG = AXNAME("X") ; теперь: AXIS_ERG == X

 ООО Siemens 2001 Все права защищены.


1-50 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.10.2 Сопряжение строк

Эта функций предоставляет возможность


составления строки из отдельных компонентов.
Сопряжение осуществляется с помощью
оператораr: <<. Типом назначения этого
оператора для всех комбинаций базовых типов
CHAR, BOOL, INT, REAL и STRING является
STRING. Возможно необходимое
преобразование осуществляется по
существующим правилам. Типы FRAME и AXIS
не могут использоваться с эти оператором.

Синтаксис:
bel._Typ << bel._Typ Тип результата: STRING

Семантика:
Существующие строки (или неявно
преобразованный другой тип) связываются друг с
другом.

Этот оператор имеется отдельно в качестве так


называемого „унарного“ варианта. Таким
образом, возможно осуществление явного
преобразования типа в STRING (не для FRAME и
AXIS).

Синтаксис:
<< bel._Typ Тип результата: STRING

Семантика:
Указанный тип неявно преобразуется в тип
STRING.

К примеру, такое сообщение или команда может


быть составлена из текстовых списков, допуская
вставку параметров (около одного имени блока):
MSG(STRG_TAB[LOAD_IDX]<<BAUSTEIN_NAME)

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-51
1 1
Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Промежуточные результаты при сопряжении


строк не могут превышать максимальную длину
строки.

Пример программирования

DEF INT IDX = 2


DEF REAL VALUE = 9.654
DEF STRING[20]STRG = "INDEX:2"
IF STRG == "Index:" <<IDX GOTOF NO_MSG
MSG ("Index:" <<IDX <<"/Wert:" ;индикация: "Index: 2/Wert: 9.654"
<<VALUE)
NO_MSG:

1.10.3 Преобразование в строчные/прописные буквы

Эта функция позволяет перевести все буквы


строки в унифицированное представление.

Синтаксис:
STRING_ERG = TOUPPER (STRING) Тип результата: STRING
STRING_ERG = TOLOWER (STRING) Тип результата: STRING

Семантика:
Все строчные буквы преобразуются в прописные
или строчные буквы.

Пример:
Так как также возможно запускать данные
пользователя в MMC, то может быть достигнуто
унифицированное представление с прописными
или строчными буквами:

DEF STRING [29] STRG



IF "LEARN.CNC" == TOUPPER (STRG) GOTOF LOAD_LEARN

 ООО Siemens 2001 Все права защищены.


1-52 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.10.4 Длина строки

Эта функция позволяет определять длину строки.

Синтаксис:
INT_ERG = STRLEN (STRING) Тип результата: INT

Семантика:
Возвращается количество символов, которые,
считая с начала строки, не являются символами
0.

Пример:
Это позволяет, к примеру, вместе с описанным
ниже посимвольным обращением, определять
конец строки:

IF(STRLEN (BAUSTEIN_NAME) > 10) GOTOF FEHLER

1.10.5 Поиск символов/строк в строке

Эта функция позволяет осуществлять поиск


отдельных символов или строки в другой строке.
Результат показывает, в какой позиции строки
был найдет символ/строка в проверяемой строке.

INT_ERG = INDEX (STRING,CHAR) Тип результата: INT


INT_ERG = RINDEX (STRING,CHAR) Тип результата: INT
INT_ERG = MINDEX (STRING,STRING) Тип результата: INT
INT_ERG = MATCH (STRING,STRING) Тип результата: INT

Семантика:
Функции поиска: они возвращают позицию в
строке (первый параметр), где поиск был
успешным. Если символ/строка не найдена, то
возвращается величина -1. Первый символ при
этом имеет позицию 0.
INDEX ищет указанный вторым параметром символ (с начала) в первом параметре.
RINDEX ищет указанный вторым параметром символ (с конца) в первом параметре.
MINDEX соответствует функции INDEX, за исключением того, что передается список
символов (как строка), из которых возвращается индекс первого найденного

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-53
1 1
Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

символа.
MATCH ищет строку в строке.

Таким образом, строки могут разбиваться по


определенным критерия, к примеру, в позициях с
символами пробела или разделительными
символами маршрута ("/").

Пример программирования
Пример разбиения вводимых данных на имена
маршрута и блока:

DEF INT PFADIDX, PROGIDX


DEF STRING[26] EINGABE
DEF INT LISTIDX
EINGABE = "/_N_MPF_DIR/_N_EXECUTE_MPF"
LISTIDX = MINDEX (EINGABE, „M,N,O,P“) В качестве величины в LISTIDX
+ 1 возвращается 3; так как „N“ является
первым символом в параметре
EINGABE, из списка выбора с начала.
PFADIDX = INDEX (EINGABE, "/") +1 ;тем самым: PFADIDX = 1
PROGIDX = RINDEX (EINGABE, "/") +1 ;тем самым: PROGIDX = 12
;с помощью введенной в следующем
разделе функции SUBSTR переменная
EINGABE может быть разбита на
компоненты "маршрут" и "блок":
VARIABLE = SUBSTR (EINGABE, PFADIDX, после выводит "_N_MPF_DIR"
PROGIDX-PFADIDX-1)
VARIABLE = SUBSTR (EINGABE, PROGIDX) после выводит "_N_EXECUTE_MPF"

 ООО Siemens 2001 Все права защищены.


1-54 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.10.6 Выбор части строки

Эта функция позволяет вычленять часть из строки.


Для этого указывается индекс первого символа и,
при необходимости, желаемая длина. Если
информация о длине не указана, то
подразумевается часть от символа до окончания
строки.

STRING_ERG = SUBSTR (STRING,INT) Тип результата: INT


STRING_ERG = SUBSTR (STRING,INT, INT) Тип результата: INT

Семантика:
В первом случае возвращается часть строки от
позиции, определенной первым параметром, до
конца строки.
Во втором случае результирующая строка
ограничена максимальной длиной, заданной
третьим параметром.
Если начальная позиция расположена за концом
строки, то возвращается пустая строка (" ").
Если начальная позиция или длина является
отрицательной, то включается тревога.

Пример:
DEF STRING [29] ERG
ERG = SUBSTR ("QUITTUNG: 10 bis 99", ;при этом: ERG == "10"
10, 2)

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-55
1 1
Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.10.7 Выбор одиночного символа

Эта функция позволяет выбирать одиночные


символы строки. Это относится как к обращению
чтения, так и к обращению записи.

Синтаксис:
CHAR_ERG = STRINGVAR [IDX] Тип результата: CHAR
CHAR_ERG = STRINGFELD [IDX_FELD, Тип результата: CHAR
IDX_CHAR]

Семантика:
Считывается/записывается символ внутри
строки, который находится на указанном месте.
Если данные позиции отрицательные или
больше чем строка, то включается тревога.

Пример сообщений:
Установка идентификатора оси в предварительно
созданную строку.

DEF STRING [50] MELDUNG = "Achse n hat


Position erreicht"
MELDUNG [6] = "X"
MSG (MELDUNG) ;выдает сообщение "Ось X достигла
позиции"

 ООО Siemens 2001 Все права защищены.


1-56 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Обращение к одиночному символу возможно


только на переменных, определенных
пользователем (LUD-,GUD- и PUD-данные).
Кроме этого данный вид обращения при вызове
подпрограммы возможен только для параметров
типа "Call-By-Value".

Примеры:

Обращение к одиночному символу на


системное/машинное данное, …:
DEF STRING [50] STRG
DEF CHAR QUITTUNG

STRG = $P_MMCA
QUITTUNG = STRG [0] ;обработка компонентов квитирования

Обращение к одиночному символу для


параметра Call-By-Reference:
DEF STRING [50] STRG
DEF CHAR CHR1
EXTERN UP_CALL (VAR CHAR1) ;Call-By-Reference-параметр!

CHR = STRG [5]
UP_CALL (CHR1) ;Call-By-Reference
STRG [5] = CHR1

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-57
1 1
Гибкое NC-программирование 09.01

58 581

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.11 Оператор CASE


Программирование
CASE (выражение) OF постоянная1 GOTOF LABEL1 … DEFAULT GOTOF LABELn
CASE (выражение) OF постоянная1 GOTOB LABEL1 … DEFAULT GOTOB LABELn

Объяснение команд

CASE кодовое слово для оператора перехода


GOTOF оператор перехода с целью перехода впереди (в направлении конца
программы)
GOTOB оператор перехода с целью перехода сзади (в направлении начала
программы)
LABEL цель (маркировка внутри программы)
LABEL: после имени цели перехода следует двоеточие
Ausdruck арифметическое выражение
Konstante постоянная типа INT
DEFAULT путь программы, если ни одна из названных выше постоянных не
является правильной

Функция
Оператор CASE предлагает возможность различной
передачи управления в зависимости от актуальной
величины типа INT.

Выполнение
В зависимости от того, какую величину принимает
проверяемая оператором CASE постоянная,
программа переводит управление в место,
определенное соответствующей целью перехода.

 ООО Siemens 2001 Все права защищены.


1-58 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Для случаев, в которых постоянная не принимает


ни одну из заранее определенных величин, с
помощь оператора DEFAULT может быть
определена цель перехода.

Если оператор DEFAULT не запрограммирован,


то целью перехода в этих случаях становится
следующий по команде CASE кадр.

Пример программирования
Пример 1
CASE(Ausdruck) OF 1 GOTOF LABEL1 2 GOTOF LABEL2 … DEFAULT GOTOF LABELn
"1" и "2" это возможные постоянные.
Если величина выражения = 1 (INT-постоянная), то переход к кадру с LABEL1
Если величина выражения = 2 (INT- постоянная), то переход к кадру с LABEL2

в иных случаях переход к кадру с LABELn

Пример 2
DEF INT VAR1 VAR2 VAR3
CASE(VAR1+VAR2-VAR3) OF 7 GOTOF MARKE1 9 GOTOF MARKE2 DEFAULT GOTOF MARKE3
MARKE1: G0 X1 Y1
MARKE2: G0 X2 Y2
MARKE3: G0 X3 Y3

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-59
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.12 Управляющие структуры


Объяснение

IF–ELSE–ENDIF выбор между двумя альтернативами


LOOP–ENDLOOP бесконечный цикл
FOR–ENDFOR цикл счета
WHILE–ENDWHILE цикл с условием в начале цикла
REPEAT–UNTIL цикл с условием в конце цикла

Функция
СЧПУ обрабатывает NC-кадры стандартно в
запрограммированной последовательности.

С помощью этих команд – наряду с описанными в


этой главе переходами в программе – могут
определяться дополнительные альтернативы и
циклы в программе.
Команды позволяют осуществлять
структурированное программирование и
обеспечивают хорошую читаемость программ.

Выполнение

1. IF–ELSE–ENDIF

Блок IF–ELSE–ENDIF служит для выбора между


двумя альтернативами:

IF (выражение)
NC-кадры
ELSE
NC-кадры
ENDIF

Если выражение имеет величину TRUE, т.е.


условие выполнено, то исполняется следующий
блок программы. Если условие не выполнено, то
выполняется ELSE-ветвь.
ELSE-ветвь может отсутствовать.

 ООО Siemens 2001 Все права защищены.


1-60 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

2. Бесконечный цикл LOOP

Бесконечный цикл используется в бесконечных


программах. В конце цикла всегда
осуществляется возврат в начало цикла.

LOOP
NC-кадры
ENDLOOP

3. Цикл FOR

Цикл FOR используется тогда, когда


последовательность выполнения операций
должна быть повторена фиксированное
количество раз. При этом счетная переменная
увеличивается от начальной к конечной
величине. Начальная величина должна быть
меньше конечной величины. Переменная должна
иметь тип INT.

FOR переменная = начальная величина TO


конечная величина
NC-кадры
ENDFOR

4. Программный цикл с условием в начале


цикла WHILE

Цикл WHILE осуществляется до тех пор, пока


условие выполняется.

WHILE выражение
NC-кадры
ENDWHILE

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-61
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

5. Программный цикл с условием в конце


цикла REPEAT

Цикл REPEAT осуществляется один и


повторяется до тех пор, пока условие не будет
выполнено.

REPEAT
NC-кадры
UNTIL (выражение)

Глубина вложенности
Управляющие структуры действуют на локальном
программном уровне. Внутри каждого уровня
подпрограммы возможна глубина вложенности
до 8 управляющих структур.

Динамическая характеристика
При стандартно активном режиме
интерпретатора можно (благодаря
использованию переходов в программе)
добиться более быстрого выполнения
программы, чем с управляющими структурами.
В предскомпелированных циклах разница между
переходами в программе и управляющими
структурами отсутствует.

 ООО Siemens 2001 Все права защищены.


1-62 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Граничные условия

Кадры с элементами управляющих структур не


могут быть пропущены. Метки в таких кадрах не
разрешены.

Управляющие структуры обрабатываются


интерпретатором. При обнаружении конца цикла
начинается поиск начала цикла с учетом
найденных при этом управляющих структур.
Поэтому в режиме интерпретатора блочная
структура программы проверяется не полностью.
Рекомендуется не использовать управляющие
структуры и переходы в программе совместно.
При предварительной обработке циклов может
быть проверена правильность вложенности
управляющих структур.

Управляющие структуры возможны только внутри


командной части программы. Определения в
оглавлении программы не могут выполняться в
зависимости от условий или повторно.

Кодовые слова для управляющих структур, как и


цели перехода, не могут перекрываться
макросами. Проверка для макроопределения не
осуществляется.

Пример программирования
1. Бесконечная программа

%_N_LOOP_MPF
LOOP
IF NOT $P_SEARCH ;нет поиска кадра
G01 G90 X0 Z10 F1000
WHILE $AA_IM[X] <= 100
G1 G91 X10 F500 ;изображение сверления
Z–5 F100
Z5
ENDWHILE

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-63
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Z10
ELSE ;поиск кадра
MSG("Im Suchlauf wird nicht gebohrt")
ENDIF
$A_OUT[1] = 1 ;следующая плита
G4 F2
ENDLOOP
M30

2. Изготовление фиксированного количества


деталей

%_N_STUECKZAHL_MPF

DEF INT STUECKZAHL


FOR STUECKZAHL = 0 TO 100
G01 …
ENDFOR
M30

 ООО Siemens 2001 Все права защищены.


1-64 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.13 Координация программы

Каналы

Канал может обрабатывать свою


собственную программу, независимо от
других каналов. Таким образом,
периодически подчиняемые ему оси и
шпиндели могут управляться через
программу.
При вводе в эксплуатацию для СЧПУ могут
быть установлены два или более каналов.

Координация программы

Если в изготовлении детали участвуют


несколько каналов, то может быть
необходима синхронизация программных
процессов.
Для данной координации программы
имеются специальные операторы (команды).
Каждая из них находится в отдельном кадре.

Указание
От ПО 5.3 координация программы
возможна на своем канале.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-65
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Операторы для координации программы

• Задание с абсолютным указанием


пути Здесь абсолютный путь формируется по
следующим правилам:
• aktuelles Directory/_N_name_MPF
INIT (n,"/_HUGO_DIR/_N_name_MPF" ) или "актуальная директория" означает
выбранную директорию детали или
INIT (n,"/_N_MPF_DIR/_N_name_MPF" ) стандартную директорию /_N_MPF_DIR.
• выбор определенной программы для
обработки на определенном канале:
n: номер канала, величина в
зависимости от конфигурации СЧПУ
• полное имя программы
до ПО 3:
Пример:
Между init-командой (без синхронизации) и
INIT(2,"/_N_WKS_DIR/_ABRICHT_MPF")
NC-Start должен находится минимум один
G01 F0.1
START исполнимый кадр.
При вызове подпрограмм необходимо
INIT (2,“/_N_WKS_DIR/_N_UNTER_1_SPF“) добавить "_SPF“ в указание пути.
• Задание с относительным указанием
пути Для относительного указания пути
Пример: действуют те же правила, что и для
INIT(2,"ABRICHT") вызовов подпрограммы.

INIT(3,“UNTER_1_SPF“) При вызове подпрограмм необходимо


добавит "_SPF“ в имена программы.
START (n,n) Запуск выбранных программ на других
каналах.
n,n: перечисление номеров каналов:
величины в зависимости от конфигурации
СЧПУ
WAITM (маркер-Nr.,n,n,...) Установить маркер "Marker-Nr." в своем
канале. Завершить предыдущий кадр
точным остановом. Ожидать маркеры с тем
же "Marker-Nr." в указанных каналах "n"
(свой канал не должен указываться).
Маркер стирается после синхронизации.
Одновременно может быть установлено
макс. 10 маркеров на канал.

 ООО Siemens 2001 Все права защищены.


1-66 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

WAITMC(Marker-Nr., n, n, …) Установка маркера "Marker-Nr." в своем


канале. Точный останов запускается только
в том случае, если другие каналы еще не
достигли маркера. Ожидать маркера с тем
же "Marker-Nr." в указанных каналах "n"
(свой канал не должен быть указан). Как
только маркер "Marker-Nr." в указанных
каналах достигнут, продолжить обработку
без завершения точного останова.
WAITE (n,n) Ожидать конца программы указанных
каналов (не указывать свой канал).
SETM(Marker-Nr., Marker-Nr., …) Установить маркер "Marker-Nr." в своем
канале, не влияя на текущую обработку.
SETM() сохраняет значимость через
RESET и NC-START. SETM() может
программироваться и из синхронной
операции.

CLEARM(Marker-Nr., Marker-Nr., …) Стереть маркер "Marker-Nr." в своем


канале, не влияя на текущую обработку.
Все маркеры в канале могут быть стерты с
помощью CLEARM(). CLEARM (0) стирает
маркер „0“. CLEARM() сохраняет
значимость через RESET и NC-START.
CLEARM() может программироваться и из
синхронной операции.
Указание
Все вышеперечисленные команды должны
находится в самостоятельных кадрах.
Количество маркеров зависит от
установленного CPU.

Имена каналов

Имена каналов через переменные (см. главу


10 «Переменная и R-параметры» должны
быть преобразованы в номера.

Защитить распределение номеров от


возможности легкого изменения.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-67
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Пример:
Канал с именем ”MASCHINE” должен
получить номер канала 1,
канал с именем ”LADER” должен получить
номер канала 2:
DEF INT MASCHINE=1, LADER=2
Переменные получают то же имя, что и
каналы.
Таким образом, оператор START выглядит, к
примеру:
START(MASCHINE)

Пример координации программы

Канал 1:
%_N_MPF100_MPF
N10 INIT(2,"MPF200")
N11 START(2) Обработать в канале 2
.
N80 WAITM(1,1,2) Ожидать WAIT-метки 1 в канале 1 и в канале 2
. дальнейшая обработка в канале 1
N180 WAITM(2,1,2) Ожидать WAIT-метки 2 в канале 1 и в канале 2
. дальнейшая обработка в канале 1
N200 WAITE(2) Ожидать конца программы канала 2
N201 M30 Конец программы канала 1, общее
… завершение

Канал 2:
%_N_MPF200_MPF
;$PATH=/_N_MPF_DIR
Обработать в канале 2
N70 WAITM(1,1,2) Ожидать WAIT-метки 1 в канале 1 и в канале 2
. дальнейшая обработка в канале 1
N270 WAITM(2,1,2) Ожидать WAIT-метки 2 в канале 1 и в канале 2
. дальнейшая обработка в канале 2
N400 M30 Конец программы канала 2

 ООО Siemens 2001 Все права защищены.


1-68 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Пример для программы из детали

N10 INIT(2,"/_N_WKS_DIR/_N_WELLE1_WPD/_N_ABSPAN1_MPF")

Пример для Init-команды с относительным указанием пути

;в канале 1 выбрана программа /_N_MPF_DIR/_N_MAIN_MPF


N10 INIT(2,"MYPROG") ; выбрать программу /_N_MPF_DIR/_N_MYPROG_MPF в
канале 2.

Прочие указания

Для обмена данными между программами могут


использоваться переменные, общие для каналов
(NCK-специфические глобальные переменные).
В ином случае разработка программы
осуществляется для каждого канала отдельно.

до ПО 3:
После команды старт нельзя сразу
запрашивать WAITE, иначе будет
зафиксирован конец программы до ее старта.
Помощь: Программирование времени ожидания результатов.
Пример:
N30 START(2)
N31 G4 F0.01
N40 WAITE(2)

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-69
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.14 Обработчик прерываний


Программирование
SETINT(3) PRIO=1 NAME
SETINT(3) PRIO=1 LIFTFAST
SETINT(3) PRIO=1 NAME LIFTFAST
G… X… Y… ALF=…
DISABLE(3)
ENABLE(3)
CLRINT(3)

Объяснение команд

SETINT(n) Запустить обработчик прерываний при включении входа n, n (1…8)


обозначает номер входа
PRIO=1 Определение приоритета 1 до 128 (1 имеет максимальный приоритет)
LIFTFAST Быстрый отвод от контура
NAME Здесь стоит имя подпрограммы, которая должна быть обработана
ALF=… Программируемое направление перемещения (находится в кадре
движения)
DISABLE(n) Выключить обработчик прерываний номер n
ENABLE(n) Снова включить обработчик прерываний номер n
CLRINT(n) Стереть подчинения прерываний с обработчика прерываний номер n

Функция
Пример: При обработке ломается инструмент.
Это включает сигнал, который останавливает
текущий процесс обработки и одновременно
запускает подпрограмму – так называемый
обработчик прерываний. В этой подпрограмме
находятся все операторы, которые должны быть
выполнены в таком случае.
Если подпрограмма выполнена (и тем самым
восстановлена готовность к работе), то СЧПУ
возвращается в главную программу и
продолжает обработку – в зависимости от
команды REPOS – в месте прерывания.
Подробная информация о REPOS в главе 9
Траектория возврата, повторная установка на
контур.

 ООО Siemens 2001 Все права защищены.


1-70 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Выполнение
Составление обработчика прерываний как
подпрограммы
При определении обработчик прерываний
обозначается как подпрограмма.
Пример:
PROC ABHEB_Z
N10…
N50 M17
Имя программы ABHEB_Z, после следуют NC-
кадры, в завершении M17 конец программы и
возвращение в главную программу.
Указание:
Внутри обработчика прерываний могут быть
запрограммированы операторы SETINT,
благодаря чему осуществляется включение
других обработчиков прерываний. Включение
сначала осуществляется через вход.
Прочая информация по составлению
подпрограмм см. главу 2.
Сохранение позиции прерывания, SAVE
Обработчик прерываний при определении может
быть обозначен SAVE.

Пример:
PROC ABHEB_Z SAVE
N10…
N50 M17

Благодаря атрибуту SAVE модальные G-функции


после окончания обработчика прерываний
устанавливаются на величину, которую они
имели при запуске обработчика прерываний. В
дополнение к устанавливаемому смещению
нулевой точки (модальная G-функциональная
группа 8) восстанавливается программируемое
смещение нулевой точки и базовое смещение.
Если получается изменение G-функциональной
группы 15 (тип смещения), к примеру, с G94 на
G95, то восстанавливается и соответствующая F-
величина.
Благодаря этому обработка может быть позднее
возобновлена в месте прерывания.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-71
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Подчинение и запуск обработчика


прерываний, SETINT
СЧПУ имеет сигналы (вход 1…8), которые могут
прерывать текущую программу и запускать
соответствующий обработчик прерываний.
Подчинение, какой вход запускает какую
программу, осуществляется в управляющей
программе.
Пример:
N10 SETINT(3) PRIO=1 ABHEB_Z
При включении входа 3 сразу же запускается
стандартная программа ABHEB_Z.

Запуск нескольких обработчиков


прерываний, определение очередности,
PRIO=
Если в NC-программе имеется несколько
операторов SETINT, из-за чего могут поступать
несколько сигналов одновременно, то
необходимо определить очередность
обработчиков прерываний, в соответствии с
которой должна осуществляться обработка: PRIO
1 до 128, 1 имеет максимальный приоритет.
Пример:
N10 SETINT(3) PRIO=1 ABHEB_Z
N20 SETINT(2) PRIO=2 ABHEB_X
При нескольких одновременных входах процессы
обрабатываются последовательно в
соответствии с очередностью. Сначала
SETINT(3), после SETINT(2).
Если при обработке прерываний поступают
новые сигналы, то процессы более высокого
приоритета прерывают актуальный обработчик
прерываний.

Выключение/повторное включение
обработчика прерываний,
DISABLE, ENABLE
Вы можете выключать обработчики прерываний в
NC-программе с помощью DISABLE(n) и снова
включать с помощью ENABLE(n) (n обозначает
номер входа).

 ООО Siemens 2001 Все права защищены.


1-72 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Подчинение вход/процесс сохраняется при


DISABLE и снова активизируется при ENABLE.

Новое подчинение обработчиков прерываний


Если занятому входу подчиняется новый
процесс, то старое подчинение автоматически
становится недействительным.
Пример:
N20 SETINT(3) PRIO=2 ABHEB_Z


N120 SETINT(3) PRIO=1 ABHEB_X

Стирание подчинения, CLRINT


С помощью CLRINT(n) можно стирать
подчинения.
Пример:
N20 SETINT(3) PRIO=2 ABHEB_Z
N50 CLRINT(3)
Подчинение между входом 3 и процессом
ABHEB_Z стерто.

Быстрый отвод от контура, LIFTFAST


С помощью LIFTFAST при включении входа
инструменты быстро отводится от контура
детали.
Если оператор SETINT наряду с LIFTFAST имеет
и обработчик прерываний, то быстрый отвод
выполняется обработчиком прерываний.
Пример:
N10 SETINT(2) PRIO=1 LIFTFAST
или
N30 SETINT(2) PRIO=1 ABHEB_Z LIFTFAST

В обоих случаях при включении входа 2 с


высшим приоритетом исполняется быстрый
отвод.
• При N10 обработка останавливается ошибкой

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-73
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

16010 (так как не была указана асинхронная


подпрограмма, ASUP).
• При N30 выполняется ASUP "ABHEB-Z".

При определении направления отвода


проверяется, активен ли какой-либо фрейм с
отражением. В этом случае для направления
отвода относительно направления касательных
меняются местами левая и правая сторона.
Части направления в сторону инструмента не
отражаются. Этот режим активизируется с
помощью MD
$MC_LIFTFAST_WITH_MIRROR=TRUE

Ход движения при быстром отводе


Величина, на которую геометрические оси при
быстром отводе удаляются от контура, может
быть установлена в машинных данных.

Программируемое направление перемещения,


ALF=…
Направление, в котором должен двигаться
инструмент при быстром отводе, задается в NC-
программе.

Возможные направления перемещения


сохранены в СЧПУ под специальными кодовыми
номерами и могут вызываться по этим номерам.
Пример:
N10 SETINT(2) PRIO=1 ABHEB_Z LIFTFAST
ALF=7

Инструмент перемещается – с включенным G41


(направление обработки слева от контура) – при
виде сверху вертикально от контура.

 ООО Siemens 2001 Все права защищены.


1-74 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Базовая плоскость для описания


направлений перемещения
В точке воздействия инструмента на
запрограммированном контуре устанавливается
рабочая плоскость, служащая исходной точкой
для указания движения отвода с
соответствующим кодовым номером.

Базовая плоскость устанавливается между


продольной осью инструмента (направление
подачи) и вектором, находящимся вертикально к
касательной в точке воздействия инструмента на
контуре.

Обзор кодовых номеров с направлениями


перемещения
Исходя из базовой плоскости на находящемся
справа рисунке изображены кодовые номера с
направлениями перемещения.

С помощью ALF=0 функция быстрого отвода


выключается.

Обратить внимание:
При включенной коррекции радиуса
инструмента не должны использоваться
кодировки 2, 3, 4 для G41 и 6, 7, 8 для G42.

В этих случаях инструмент подводится к контуру


и может столкнуться с деталью.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-75
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Движение обратного хода от ПО 4.3


Направление движения обратного хода программируется
через G-код LFTXT или LFWP с помощью переменных ALF.
• LFTXT
Плоскость движения обратного хода определяется
касательной к траектории и направлением инструмента.
С помощью этого G-кода (стандартная установка)
программируется прежний режим работы для быстрого
отвода.
• LFWP
Плоскостью движения обратного хода является активная
рабочая плоскость, выбираемая с помощью G-кодов
G17, G18 или G19. Направление движения обратного
хода не зависит от касательной к траектории. Тем самым
может программироваться быстрый отвод,
параллельный оси.

На плоскости движения обратного хода программируется как и


прежде с помощью ALF направление с дискретными шагами в
45 градусов. При LFTXT для ALF=1 определен обратный ход в
направлении инструмента.
При LFWP направление в рабочей плоскости получается по
следующему распределению:
• G17: X/Y-плоскость ALF=1 обратный ход в X-направлении
ALF=3 обратный ход в Y- направлении
• G18: Z/X-плоскость ALF=1 обратный ход в Z- направлении
ALF=3 обратный ход в X- направлении
• G19: Y/Z-плоскость ALF=1 обратный ход в Y- направлении
ALF=3 обратный ход в Z- направлении

 ООО Siemens 2001 Все права защищены.


1-76 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Пример программирования
В этом примере сломанный инструмент должен
быть автоматически заменен однотипным
инструментом. Обработка продолжится новым
инструментом.

Главная программа

N10 SETINT(1) PRIO=1 W_WECHS -> При включении входа 1 инструмент на


-> LIFTFAST быстром отводе (код Nr. 7 для коррекции
радиуса инструмента G41) отводится от
контура. После этого запускается
обработчик прерываний W_WECHS.
N20 G0 Z100 G17 T1 ALF=7 D1
N30 G0 X-5 Y-22 Z2 M3 S300
N40 Z-7
N50 G41 G1 X16 Y16 F200
N60 Y35
N70 X53 Y65
N90 X71.5 Y16
N100 X16
N110 G40 G0 Z100 M30

Подпрограмма

PROC W_WECHS SAVE Подпрограмма с сохранением


актуального рабочего режима
N10 G0 Z100 M5 Позиция замены инструмента,
остановка шпинделя
N20 T11 M6 D1 G41 Замена инструмента
N30 REPOSL RMB M3 Подвод к контуру и возврат в главную
программу

-> программируется в одном кадре.

Если в подпрограмме не запрограммировано ни


одной команды REPOS, то позиционирование
осуществляется в конечной точке кадра,
следующего за прерванным кадром.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-77
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.15 Переход оси, переход шпинделя


Объяснение команд

RELEASE(имя оси, имя оси, …) Освобождение оси


GET( имя оси, имя оси, …) Прием оси
GETD (имя оси, имя оси, …) Прямой прием оси
имя оси Подчинение оси в системе: AX1, AX2, … или
указание машинного имени оси
RELEASE(S1) Освобождение шпинделей S1, S2, …
GET(S2) Прием шпинделей S1, S2, …
GETD(S3) Прямой прием шпинделей S1, S2, …

Функций

Одна или несколько осей или шпинделей всегда могут


использоваться только в одном канале. Если одна ось
должна попеременно работать в двух различных
каналах, то она должна быть сначала освобождена в
актуальном канале и потом быть принята в другой
канал: ось переходит между каналами.

Выполнение

Условия перехода
• Ось через машинные данные должна быть
определена во всех каналах.
• Через осевые специфические машинные данные
должно быть определено подчинение оси каналу
после POWER ON.
Освобождение оси: RELEASE
Обратить внимание при освобождении оси:
1. Ось не должна участвовать ни в каких
трансформациях.
2. При соединении осей (тангенциальное управление)
должны быть освобождены все связанные оси.
3. Конкурирующая позиционирующая ось не может
обмениваться.
4. В случае Gantry-оси-мастера переходят и все
подчиненные оси.
5. У соединений осей (буксировка , соединение по
ведущему значению, электронный редуктор) может
быть освобождена только ведущая ось соединения.

 ООО Siemens 2001 Все права защищены.


1-78 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Прием оси: GET


С помощью этой команды осуществляется фактический
переход осей. Ответственность за ось полностью несет
канал, где была запрограммирована команда.

Последствия GET:
Переход с синхронизаций:
Ось всегда должна синхронизироваться в том случае,
когда было осуществлено ее подчинение в другом
канале или PLC, а перед GET не была осуществлена
синхронизация через "WAITP", G74 или стирание
остаточного пути.
• Осуществляется остановка подвода (как у STOPRE)
• Обработка прерывается до тех пор, пока
полностью не будет осуществлен переход.

Переход без синхронизации:


Если ось не должна синхронизироваться, то GET не
осуществляет остановку подвода.

Пример:
N01 G0 X0
N02 RELEASE(AX5)
N03 G64 X10
N04 X20
N05 GET(AX5) Если синхронизация не нужна,
то это будет неисполнимый
кадр.
N06 G01 F5000 Неисполнимый кадр.
N07 X20 Неисполнимый кадр, так как X-
позиция как в N04.
N08 X30 Первый исполнимый кадр после
N05.
N09 …
Автоматический "GET"
Если ось принципиально имеется в канале, но в
настоящее время недоступна в качестве «оси канала»,
то автоматически осуществляется GET. Если ось(и)
уже синхронизирована(ы), то остановка подвода не
осуществляется.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-79
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Принятая с помощью GET ось остается


подчиненной этому каналу и после ручного или
программного сброса. Если после нового
запуска программы ось необходима в ее
основном канале, то подчинение обмененных
осей или шпинделей должно осуществляться на
программно-техническом уровне.
При POWER ON она подчиняется каналу,
зафиксированному в машинных данных.

Прямой переход оси: GETD


С помощью GETD (GET Directly) ось напрямую
забирается из другого канала. Это означает, что
для этого GETD в другом канале не должен быть
спрограммирован подходящий RELEASE. Это
также означает, что теперь должна быть создана
другая связь каналов (к примеру, Wait-метки).

 ООО Siemens 2001 Все права защищены.


1-80 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Пример программирования

Из 6 осей в канале 1 для обработки


используются 1, 2, 3 и 4-ая оси.
5-ая и 6-ая оси используются в канале 2 для
замены детали.

Ось 2 должна переходить между обоими


каналами и после POWER ON быть подчинена
каналу 1.

Программа „MAIN“ в канале 1

%_N_MAIN_MPF
INIT (2,"TAUSCH2") Выбрать программу TAUSCH2 в канале 2
N… START (2) Запустить программу в канале 2
N… GET (AX2) Принять ось AX2


N… RELEASE (AX2) Освободить ось AX2
N… WAITM (1,1,2) Ожидать Wait-метку в канале 1 и 2 для
синхронизации в обоих каналах
N… Дальнейший процесс после перехода
N… M30

Программа „Tausch2“ в канале 2

%_N_TAUSCH2_MPF
N… RELEASE (AX2)
N160 WAITM (1,1,2) Ожидать Wait-метку в канале 1 и 2 для
синхронизации в обоих каналах
N150 GET (AX2) Принять ось AX2
N… Дальнейший процесс после перехода
N…M30

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-81
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.16 NEWCONF: активизация машинных данных (от ПО 4.3)

Функций
С помощью языковой команды NEWCONF
активизируются все машинный данные уровня
„NEW_CONFIG“. Функция соответствует нажатию
функциональной клавиши „Активизировать MD“.
При исполнении функции NEWCONF
осуществляется неявная остановка подвода, т.е.
движение траектории прерывается.

Объяснение

NEWCONF Все машинные данные уровня „NEW_CONFIG“ активизируются.

Пример программирования
Фрезерная обработка: обработка позиции
сверления с помощью различных технологий

N10 $MA_CONTOUR_TOL[AX]=1.0 ; изменить машинную дату


N20 NEWCONF ; активизировать машинные данные

 ООО Siemens 2001 Все права защищены.


1-82 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

1.17 WRITE: запись файла (от ПО 4.3)


Программирование

WRITE(var int error, char[160] filename, char[200] string)

Команда WRITE приписывает кадр в конце указанного файла.

Объяснение параметров

error Переменная ошибки для возврата


0 нет ошибок
1 путь не разрешен
2 путь не найден
3 файл не найден
4 неправильный тип файла
10 файл заполнен
11 файл используется
12 нет свободных ресурсов
13 нет прав доступа
20 прочие ошибки
filename Имя файла, в который должна быть записана строка.
Имя файла может быть указано вместе с путем и идентификацией
файла. Имена пути должны быть абсолютными, т.е. они
начинаются с "/". Если имя файла не содержит идентификации
домена (_N_), то оно соответственно дополняется. Если
идентификация не указана (_MPF, _SPF), то автоматически
добавляется _MPF. Если указание осуществляется без пути, то
файл сохраняется в актуальной директории (=директория
выбранной программы). Длина имени файла может составлять
макс. 32 байта, длина информации пути макс. 128 байт.
Пример: PROTFILE
_N_PROTFILE
_N_PROTFILE_MPF
/_N_MPF_DIR_/_N_PROTFILE_MPF/

string Записываемый текст. Внутри приписывается LF, т.е. текст


становится длиннее на 1 символ.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-83
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Функция
С помощью команды WRITE данные (к примеру,
результаты измерения в циклах измерения) могут
присоединяться в конце указанного файла.
Через MD 11420 LEN_PROTOCOL_FILE
устанавливается максимальная длина файлов
протокола в Кбайтах. Эта длина действует для
всех файлов, создаваемых командой WRITE.

При достижении файлом указанной длины


выдается сообщение об ошибке, строка не
сохраняется. Если объема памяти достаточно, то
может быть установлен новый файл.
Установленные файлы могут
• считываться, изменяться и стираться всеми
пользователями,
• быть записанными в работающую программу
обработки деталей.
Кадры вставляются в конце файла, т.е. после
M30.

Пример программирования

N10 DEF INT ERROR ;


N20 WRITE(ERROR,“TEST1“,“PROTOKOLL VOM ; записать текст из протокола PROTOKOLL
7.2.97“) VOM 7.2.97 в файл TEST1
N30 IF ERROR ;
N40 MSG ("Ошибка команды WRITE:" ;
<<ERROR)
N50 M0 ;
N60 ENDIF ;
...
WRITE(ERROR, ; абсолютное указание пути
"/_N_WKS_DIR/_N_PROT_WPD/_N_PROT_MPF",
"PROTOKOLL VOM 7.2.97")

Прочие указания

• Описываемый через команду WRITE файл


создается заново, если он не существует в
NC.

 ООО Siemens 2001 Все права защищены.


1-84 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

• Если файл с таким же именем существует на


жестком диске, то он переписывается после
закрытия файла (в NC).
Помощь: Через диапазон управления
«Службы» с помощью функциональной
клавиши „Свойства“ изменить имя в NC.

Изготовитель станка
С помощью команды WRITE кадры из программы
обработки детали могут сохраняться в файле.
Размер файла для файлов протокола (Кбайт)
определяется в машинных данных.

1.18 DELETE: стирание файла (от ПО 4.3)


Программирование

DELETE(var int error, char[160] filename)

Команда DELETE стирает указанный файл.

Объяснение параметров

error Переменная ошибки для возврата


0 нет ошибок
1 путь не разрешен
2 путь не найден
3 файл не найден
4 неправильный тип файла
11 файл используется
12 нет свободных ресурсов
20 прочая ошибка
filename Имя файла, который должен быть стерт.
Имя файла может быть указано вместе с путем и идентификацией
файла. Имена пути должны быть абсолютными, т.е. они
начинаются с "/". Если имя файла не содержит идентификации
домена (_N_), то оно соответственно дополняется. Идентификация
файла ("-" плюс 3 символа), к примеру, _SPF) является опционной.
Если идентификация отсутствует, то к имени файла автоматически
добавляется _MPF. Если указание осуществляется без пути, то
файл удаляется в актуальной директории (=директория выбранной
программы). Длина имени файла может составлять макс. 32 байта,

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-85
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

длина информации пути макс. 128 байт.


Пример: PROTFILE
_N_PROTFILE
_N_PROTFILE_MPF
/_N_MPF_DIR_/_N_PROTFILE_MPF/

Функция
С помощью команды DELETE могут стираться
все файлы, независимо от того, возникли ли они
через команду WRITE или нет. Файла, созданные
на высоком уровне доступа, также могут
стираться с помощью DELETE.

Пример программирования

N10 DEF INT ERROR ;


N20 DELETE(ERROR,“TEST1“) ; стереть файл TEST1
N30 IF ERROR ;
N40 MSG ("Ошибка команды DELETE:" ;
<<ERROR)
N50 M0 ;
N60 ENDIF ;
...

1.19 READ: чтение строк в файле (от ПО 5.2)


Программирование

READ(var int error, string[160] file, int line, int number, var
string[255] result[])

Команда READ считывает одну или несколько строк в указанном файле и фиксирует
считанную информацию в поле типа STRING. Каждая считанная строка занимает в этом
поле один элемент поля.

 ООО Siemens 2001 Все права защищены.


1-86 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Объяснение параметров

error Переменная ошибки для возврата (параметр Call-By-Reference, тип INT)


0 нет ошибок
1 путь не разрешен
2 путь не найден
3 файл не найден
4 неправильный тип файла
13 недостаточные права доступа
21 строка отсутствует (параметр "line" или "number" больше
количества строк файла)
22 слишком маленькая длина поля переменной результата "result"
23 слишком большой диапазон строк (параметр "number" выбран
таким большим, что выходит за конец файла)
file Имя/путь считываемого файла (Call-By-Value-параметр типа STRING с
макс. длиной в 160 байт). Файл должен находиться в памяти
пользователя NCK (пассивная файловая система). Перед именем файла
может быть поставлена идентификация домена _N_ . При отсутствии
идентификации домена она соответственно дополняется.
Идентификация файла ("_" плюс три символа, к примеру, _SPF) является
опционной. Если идентификация отсутствует, то к имени файла
автоматически добавляется _MPF.
Если в "file" отсутствует указание пути, то поиск файла осуществляется в
актуальной директории (=директория выбранной программы). Имеющие
указания пути в "file" должны начинаться с "/" (абсолютное указание пути).
line Указание позиции считываемого диапазона строк (Call-By-Value-параметр
типа INT).
0 Считывается указанное с помощью параметры "number"
количество строк перед концом файла.
1 до n Номер первой считываемой строки.

number Количество считываемых строк (Call-By-Value-параметр типа INT).

result Поле типа STRING, в котором сохраняется считанный текст.


(Call-By-Reference-параметр с длиной в 255).

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-87
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Функция
С помощью команды READ можно считать одну
или несколько строк из файла. Считанные строки
сохраняются в элементе поля одного из полей.
Информация доступна как STRING.

Прочие указания
• Двоичные файлы не могут считываться.
Выводится ошибка error=4:неправильный тип
файла. Следующие типы файлов не читаются:
_BIN, _EXE, _OBJ, _LIB, _BOT, _TRC, _ACC,
_CYC, _NCK.
• Актуально установленный уровень защиты
должен быть равен или быть большим READ-
права файла. Если этого нет, то обращение
отклоняется с error=13.
• Если в параметре "number" указано меньше
строк, чем составляет длина поля "result", то
оставшиеся элементы поля не изменяются.
• Окончание строки с помощью символов
управления "LF" (Line Feed) или "CR LF"
(Carrige Return Line Feed) не сохраняется в
выходной переменной "result". Считанные
строки обрезаются, если строка длиннее чем
длина строки выходной переменной "result".
Сигнализация ошибки не осуществляется.

Пример программирования

N10 DEF INT ERROR ; переменная ошибки


N20 STRING[255] RESULT[5] ; переменная результата
...
N30 READ(ERROR, "TESTFILE", 1, 5, ; имя файла без идентификации домена и
RESULT) файла
...
N30 READ (ERROR, "TESTFILE_MPF", 1, 5, ; имя файла без идентификации домена и
RESULT) с идентификацией файла
...
N30 READ(ERROR,"_N_TESTFILE_MPF",1,5, ; имя файла с идентификацией домена и
RESULT) файла
...
N30 READ(ERROR,"/_N_CST_DIR/N_TESTFILE ; имя файла с идентификацией домена и

 ООО Siemens 2001 Все права защищены.


1-88 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

_MPF", 1, 5 RESULT) файла и указанием пути


^...
N40 IF ERROR <>0 ; обработка ошибок
N50 MSG("FEHLER "<<ERROR<<" BEI READ-BEFEHL")
N60 M0
N70 ENDIF
...

1.20 ISFILE: файл имеется в памяти пользователя NCK (от ПО 5.2)


Программирование

result=isfile(string[160]file)

С помощью команды ISFILE проверяется, существует ли файл в памяти пользователя NCK


(пассивная файловая система). В качестве результата выводится TRUE (файл имеется)
или False (файл отсутствует).

Объяснение параметров

file Имя/путь считываемого файла (Call-By-Value-параметр типа


STRING с макс. длиной в 160 байт). Файл должен находиться в
памяти пользователя NCK (пассивная файловая система). Перед
именем файла может быть поставлена идентификация домена _N_
. При отсутствии идентификации домена она соответственно
дополняется.
Идентификация файла ("_" плюс три символа, к примеру, _SPF)
является опционной. Если идентификация отсутствует, то к имени
файла автоматически добавляется _MPF.
Ist in "file" keine Pfadangabe vorhanden, wird die Datei im aktuellen
Если в "file" отсутствует указание пути, то поиск файла
осуществляется в актуальной директории (=директория выбранной
программы). Имеющие указания пути в "file" должны начинаться с
"/" (абсолютное указание пути).
result Переменная для записи результатов типа BOOL (TRUE или FALSE)

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-89
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Пример программирования

N10 DEF BOOL RESULT


N20 RESULT=ISFILE("TESTFILE")
N30 IF(RESULT==FALSE)
N40 MSG("ФАЙЛ ОТСУТСТВУЕТ")
N50 M0
N60 ENDIF
...
oder:
N30 IF(NOT ISFILE("TESTFILE"))
N40 MSG("ФАЙЛ ОТСУТСТВУЕТ ")
N50 M0
N60 ENDIF
...

1.21 CHECKSUM: образование контрольных сумм через поле (от ПО 5.2)


Программирование

error=CHECKSUM(var string[16] chksum,string[32]array, int first, int


last)

Функция CHECKSUM образует контрольную сумму через поле.

Объяснение параметров

error Переменная ошибки для возврата Представление


0 нет ошибок
1 символ не найден
2 нет поля
3 индекс 1 слишком большой
4 индекс 2 слишком большой
5 недействительный тип данных
10 переполнение контрольной суммы
chksum Контрольная сумма через поле как строка (Call-By-Reference-
параметр типа String, с фиксированной длиной в 16).
Контрольная сумма представляется как строка символов в 16
шестнадцатеричных цифр. Но при этом не указываются символы
формата.
Пример: "A6FC3404E534047C"

 ООО Siemens 2001 Все права защищены.


1-90 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
1 1
09.01 Гибкое NC-программирование

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

array Имя поля, через которое должна быть создана контрольная сумма
(Call-By-Value-параметр типа String с макс. длиной в 32).
Допустимые поля: 1- или 2-х размерные поля типа
BOOL, CHAR, INT, REAL, STRING
Поля машинных данных не допускаются.
first Номера столбцов граф начального столбца (опция)
last Номера столбцов конечного столбца (опция)

Функция
C помощью CHECKSUM создается контрольная
сумма через поле.
Использование обработки резанием:
Проверка, изменился ли входной контур.

Прочие указания
Параметры first и last являются опционными.
Если не указан индекс граф, то контрольная
сумма образуется через все поле.

Результат контрольной суммы всегда является


однозначным. При изменениях элемента поля
получается другая строка результата.

Пример программирования

N10 DEF INT ERROR


N20 DEF STRING[16] MY_CHECKSUM
N30 DEF INT MY_VAR[4,4]
N40 MY_VAR=...
N50 ERROR=CHECKSUM
(CHECKSUM;"MY_VAR", 0, 2)
...

подает в MY_CHECKSUM величину


"A6FC3404E534047C"

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 1-91
1 1
Гибкое NC-программирование 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Для заметок

 ООО Siemens 2001 Все права защищены.


1-92 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
2 2
09.01 Техника использования подпрограмм, техника макросов

Техника использования подпрограмм, техника макросов

2.1 Использование подпрограмм ............................................................................... 2-94

2.2 Подпрограмма с механизмом SAVE .................................................................... 2-96

2.3 Подпрограммы с передачей параметров ............................................................ 2-97

2.4 Вызов подпрограмм: L или EXTERN .................................................................... 2-101

2.5 Подпрограмма с повторением программы: P ...................................................... 2-105

2.6 Модальная подпрограмма: MCALL ...................................................................... 2-106

2.7 Косвенный вызов подпрограммы: CALL .............................................................. 2-107

2.8 Вызов подпрограммы с указанием пути и параметрами: PCALL ....................... 2-108

2.9 Подавление актуальной индикации кадра: DISPLOF ......................................... 2-109

2.10 Подавление отдельного кадра: SBLOF, SBLON (от ПО 4.3) ............................ 2-110

2.11 Выполнение внешней подпрограммы: EXTCALL (от ПО 4.2) .......................... 2-113

2.12 Вызов подпрограммы с помощью M-/T-функции .............................................. 2-115

2.13 Циклы: параметрирование циклов пользователя ............................................. 2-117

2.14 Техника макросов. DEFINE...AS ......................................................................... 2-121

 ООО Siemens 2001. Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 2-93
2 2
Техника использования подпрограмм, техника макросов 09.01

2.1 Использование подпрограмм


Что такое подпрограмма?
В принципе подпрограмма имеет то же строение,
что и программа обработки деталей. Она состоит
из NC-кадров с командами перемещения и
включения.

В принципе, различия между главной программой


и подпрограммой отсутствуют. Подпрограмма
содержит либо технологические циклы, либо
этапы работы, которые должны повторяться
несколько раз.

Использование подпрограмм
Повторяющиеся последовательности обработки
программируются только один раз в
подпрограмме. К примеру, постоянно
повторяющиеся формы контура или циклы
обработки.

Эта подпрограмма после может быть вызвана и


обрабатываться в любой главной программе.

Структура подпрограммы
Структура подпрограммы идентична структуре
главной программы.

Дополнительно в подпрограмме может быть


спрограммирован заголовок программы с
определением параметров.

 ООО Siemens 2001. Все права защищены.


2-94 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
2 2
09.01 Техника использования подпрограмм, техника макросов

Глубина вложенности
Вложенность подпрограмм
В подпрограмме в свою очередь может
находиться вызов подпрограммы. В этой
подпрограмме также находится вызов
подпрограммы и т.д..
Максимальное количество программных уровней
или глубина вложенности составляет 12.

Это означает:
Из главной программы могут вызываться 11
вложенных подпрограмм.

Ограничения
Подпрограммы могут вызываться и в
обработчиках прерываний. Для работы с
обработчиками прерываний необходимо иметь 4
свободных уровня или только 7 вложенных
подпрограмм.

Для циклов обработки и измерения SIEMENS


необходимо 3 уровня. Если один из циклов
вызывается подпрограммой, то это может
осуществляться максимум на 5 уровне (если 4
уровня остаются зарезервированными для
обработчиков прерываний).

 ООО Siemens 2001. Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 2-95
2 2
Техника использования подпрограмм, техника макросов 09.01

2.2 Подпрограмма с механизмом SAVE


Функций
Здесь для оператора определения с помощью PROC
дополнительно указывается команда SAVE.
Благодаря атрибуту SAVE модальные G –функции по
окончании подпрограммы устанавливаются на
величину, которую они имели при старте подпрограмм.
Если из-за этого происходит изменение G –
функциональной группы 8 (устанавливаемое смещение
нулевой точки), G - функциональной группы 52 (поворот
фрейма вращающейся детали) или G –
функциональной группы 53 (поворот фрейма в
направлении инструмента), то соответствующие
фреймы восстанавливаются.
• Активный базовый фрейм не изменяется при
выходе из подпрограммы.
• Программируемое смещение нулевой точки
восстанавливается.
От ПО 6.1 может изменяться характеристика
устанавливаемого смещения нулевой точки и базового
фрейма через дату машины MD 10617:
FRAME_SAVE_MASK.
Прочую информацию по этой теме см. /FB/ K1, Общие
машинные данные

Пример:
Определение подпрограммы
PROC KONTUR (REAL WERT1) SAVE
N10 G91 …
N100 M17
Главная программа
%123
N10 G0 X… Y… G90
N20…
N50 KONTUR (12.4)
N60 X… Y…

В подпрограмме KONTUR действует G91 составной


размер. После возвращения в главную программу
снова действует абсолютный размер, так как
модальные функции главной программы были
сохранены с помощью SAVE .

 ООО Siemens 2001. Все права защищены.


2-96 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
2 2
09.01 Техника использования подпрограмм, техника макросов

2.3 Подпрограммы с передачей параметров


Начало программы, PROC
Подпрограмма, которая при выполнении
программы должна взять параметры из
вызывающей программы, обозначается кодовым
словом PROC.

Конец программы M17, RET


С помощью команды M17 обозначается конец
подпрограммы с одновременным оператором
возврата в вызывающую главную программу.
Альтернатива для M17: Кодовое слово RET
обозначает конец подпрограммы без прерывания
режима контурного управления и без вывода
функции на PLC.

RET должен программироваться в своем NC-


кадре.

Пример:
PROC KONTUR
N10…

N100 M17
Передача параметров между главной и
подпрограммой
Если осуществляется работа с параметрами в
главной программе, то соответствующие
вычисленные или присвоенные величины могут
использоваться и в подпрограмме.
Для этого величины актуальных параметров
главной программы при вызове подпрограммы
передаются на формальные параметры
подпрограммы и обрабатываются при
выполнении подпрограммы.

 ООО Siemens 2001. Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 2-97
2 2
Техника использования подпрограмм, техника макросов 09.01

Пример:
N10 DEF REAL LAENGE,BREITE
N20 LAENGE=12 BREITE=10
N30 RAHMEN(LAENGE,BREITE)

Присвоенные в главной программе в N20


величины при вызове подпрограммы передаются
в N30.
Передача параметров осуществляется в
указанной последовательности.
Имена параметров не должны совпадать в
главной и подпрограмме.

2 Возможности для передачи параметров

Величины только передаются (Call-by-value)


Если передаваемые параметры изменяются при
выполнении подпрограммы, то это не влияет на
главную программу. Здесь параметры не
изменяются (см. рис.).

Передача параметров с обменом данными


(Call-by-reference)
Любое изменение параметров в подпрограмме
вызывает одновременное изменение параметра
в главной программе (см. рис.).

 ООО Siemens 2001. Все права защищены.


2-98 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
2 2
09.01 Техника использования подпрограмм, техника макросов

Программирование
Параметры, относящиеся к передаче параметров,
должны быть указаны в начале программы
подпрограммы с типом и именем.

Передача параметров Call-by-value


PROC PROGRAMMNAME(VARIABLENTYP1 VARIABLE1,VARIABLENTYP2 VARIABLE2,…)

Пример:
PROC KONTUR(REAL LAENGE, REAL BREITE)

Передача параметров Call-by-reference,


Обозначение с помощью кодового слова VAR
PROC PROGRAMMNAME(VAR VARIABLENTYP1 VARIABLE1,VAR VARIABLENTYP2 …,)

Пример:
PROC KONTUR(VAR REAL LAENGE, VAR REAL BREITE)

Передача полей Call-by-reference,


Обозначение с помощью кодового слова VAR
PROC PROGRAMMNAME(VAR VARIABLENTYP1 FELDNAME1[размер поля],
VAR VARIABLENTYP2 FELDNAME2[размер поля], VAR VARIABLENTYP3
FELDNAME3[размер поля 1, размер поля 2], VAR VARIABLENTYP4 FELDNAME4[
],VAR VARIABLENTYP5 FELDNAME5 [,размер поля])

Пример:
PROC PALETTE(VAR INT FELD[,10])

Прочие указания
Оператор определения с PROC должен
программироваться в своем NC-кадре. Для
передачи параметров может быть согласовано
максимум 127 параметров.

 ООО Siemens 2001. Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 2-99
2 2
Техника использования подпрограмм, техника макросов 09.01

Определение поля
Это действует для определения формальных параметров:
Для двухразмерных полей не нужно указывать количество
полей первой размерности, но должна записываться
запятая.
Пример:
VAR REAL FELD[,5]
С помощью неопределенных длин поля подпрограммы могут
обрабатывать поля переменной длины. Но при определении
переменных должно быть установлено, сколько элементов
должно быть записано.
Объяснения по определению поля можно найти в
руководстве по программированию «Расширенное
программирование».

Пример программирования

Программирование с переменными длинами


поля
%_N_BOHRPLATTE_MPF главная программа
DEF REAL TABELLE[100,2] определение таблицы позиций
EXTERN BOHRBILD (VAR REAL[,2],INT)
TABELLE[0,0]=-17.5 определение позиций

TABELLE[99,1]=45
BOHRBILD(TABELLE,100) вызов подпрограммы
M30
Создание изображения сверления на основе переданной таблицы позиций перемененной
длины
%_N_BOHRBILD_SPF подпрограмма
PROC BOHRBILD(VAR REAL FELD[,2],-> передача параметров
-> INT ANZAHL)
DEF INT ZAEHLER
STEP: G1 X=FELD[ZAEHLER,0]-> последовательность обработки
-> Y=FELD[ZAEHLER,1] F100
Z=IC(-5)
Z=IC(5)
ZAEHLER=ZAEHLER+1
IF ZAEHLER<ANZAHL GOTOB STEP
RET конец подпрограммы

 ООО Siemens 2001. Все права защищены.


2-100 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
2 2
09.01 Техника использования подпрограмм, техника макросов

2.4 Вызов подпрограмм: L или EXTERN


Вызов подпрограммы без передачи
параметров
В главной программе вызов подпрограммы
осуществляется либо с помощью адреса L и
номера подпрограммы или через указание имени
программы.

Пример:
N10 L47 или
N10 ZAPFEN_2

Подпрограмма с передачей параметров,


объяснение с помощью EXTERN
Подпрограммы с передачей параметров должны
перед вызовом быть указаны в главной
программе с помощью EXTERN, к примеру, в
начале программы.
Указываются имя подпрограммы и типы
переменных в последовательности передачи.

EXTERN должно быть указано только в том


случае, если подпрограмма находится в детали
или в глобальной подпрограммной директории.
Циклы не должны описываться как EXTERN.

EXTERN-оператор
EXTERN NAME(TYP1, TYP2, TYP3, …) или
EXTERN NAME(VAR TYP1, VAR TYP2, …)

Пример:
N10 EXTERN RAHMEN(REAL, REAL, REAL)

N40 RAHMEN(15.3,20.2,5)

N10 указание подпрограммы, N40 вызов


подпрограммы с передачей параметров.

 ООО Siemens 2001. Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 2-101
2 2
Техника использования подпрограмм, техника макросов 09.01

Вызов подпрограммы с передачей


параметров
В главной программе вызывается подпрограмма
посредством указания имени программы и
передачи параметров. При передаче параметров
переменные или величины могут передаваться
напрямую (не для VAR-параметров).

Пример:
N10 DEF REAL LAENGE,BREITE,TIEFE
N20 …
N30 LAENGE=15.3 BREITE=20.2 TIEFE=5
N40 RAHMEN(LAENGE,BREITE,TIEFE)
или
N40 RAHMEN(15.3,20.2,5)

Определение подпрограммы соответствует


вызову подпрограммы
Как типы переменных, так и
последовательность передачи, должны
совпадать с определениями, согласованными в
именах подпрограмм в PROC. Имена
параметров могут быть различными в главной
и подпрограммах.

Пример:
Определение в подпрограмме:

PROC RAHMEN(REAL LAENGE, REAL BREITE, REAL TIEFE)

Вызов в главной программе:

N30 RAHMEN(LAENGE, BREITE, TIEFE)

 ООО Siemens 2001. Все права защищены.


2-102 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
2 2
09.01 Техника использования подпрограмм, техника макросов

Неполная передача параметров


При вызове подпрограммы предварительно
предписанные величины или параметры могут
быть пропущены. В этом случае
соответствующему параметру в подпрограмме
присваивается ноль.

Для указания последовательности должна быть


записана запятая. Если параметры стоят в конце
последовательности, то запятая также может
быть пропущена.

Назад к последнему примеру:


N40 RAHMEN(15.3, ,5)

Средняя величина 20.2 здесь была пропущена.

Указание
Актуальные параметры типа AXIS не могут
быть пропущены.
VAR-параметры должны передаваться
полностью.

От ПО 4.4:
При неполной передаче параметров через системную
переменную $P_SUBPAR[i] можно определить, был
ли действительно спрограммирован параметр
передачи для подпрограмм или нет.
Системная переменная получает в качестве
аргумента (i) номер параметра передачи.
Системная переменная $P_SUBPAR выдает
• TRUE, если параметр передачи был
спрограммирован
• FALSE, если ни одно значение не было
использовано как параметр передачи.
Если был указан недопустимый номер параметра, то
выполнение программы обработки деталей
прерывается тревогой.

Пример:
Подпрограмма

 ООО Siemens 2001. Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 2-103
2 2
Техника использования подпрограмм, техника макросов 09.01

PROC SUB1 (INT VAR1, DOUBLE VAR2)

IF $P_SUBPAR[1]==TRUE
;Параметр VAR1 был
;спрограммирован в вызове подпрограммы
ELSE
;параметр VAR1 не был
;спрограммирован в вызове подпрограммы
;и ему присвоено системой значение
;по умолчанию 0
ENDIF
IF $P_SUBPAR[2]==TRUE
;Параметр VAR2 был
; спрограммирован в вызове подпрограммы
ELSE
;Параметр VAR2 не был
; спрограммирован в вызове подпрограммы
; и ему присвоено системой значение
; по умолчанию 0.0
ENDIF
;параметр 3 не определен
IF $P_SUBPAR[3]==TRUE -> тревога 17020
M17

Вызов главной программы как подпрограммы


Главная программа также может быть вызвана как
подпрограмма. Установленный в главной программе
конец программы M2 или M30 в этом случае
оценивается как M17 (конец программы с возвратом в
вызывающую программу).

Вызов программируется через указание имени


программы.

Пример:
N10 MPF739 или
N10 WELLE3

Соответственно подпрограмма может запускаться как


главная программа.

 ООО Siemens 2001. Все права защищены.


2-104 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
2 2
09.01 Техника использования подпрограмм, техника макросов

2.5 Подпрограмма с повторением программы: P


Повторение программы, P
Если подпрограмма должна быть выполнена
последовательно несколько раз, то в кадре с
вызовом подпрограммы по адресу P можно
спрограммировать желаемое количество
повторений программы.

Пример:
N40 RAHMEN P3

Подпрограмма Rahmen должна быть выполнена


последовательно 3 раза.

Диапазон значений
P: 1…9999

Относится к каждому вызову подпрограммы:


Вызов подпрограммы всегда должен
программироваться в своем NC-кадре.

Вызов подпрограммы с повторением


программы и передачей параметров
Передача параметров осуществляется только
при вызове или первом выполнении программы.
Для последующих повторений параметры не
изменяются.

Если необходимо изменить параметры при


повторениях программы, то нужно задать в
подпрограмме соответствующие описания.

 ООО Siemens 2001. Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 2-105
2 2
Техника использования подпрограмм, техника макросов 09.01

2.6 Модальная подпрограмма: MCALL


Действующий модально вызов подпрограммы, MCALL
С помощью этой функции подпрограмма автоматически
вызывается и выполняется после каждого кадра с
движением траектории.
Благодаря этому осуществляется автоматизация вызова
подпрограмм, которые должны выполняться на различных
позициях детали. К примеру, для создания изображений
сверления.

Примеры:
N10 G0 X0 Y0
N20 MCALL L70
N30 X10 Y10
N40 X50 Y50

В кадрах N30 и N40 осуществляется подвод к


спрограммированной позиции и после этого выполняется
подпрограмма L70.

N10 G0 X0 Y0
N20 MCALL L70
N30 L80

В этом примере последующие NC-кадры с


спрограммированными осями траекторий находятся в
подпрограмме L80. L70 вызывается через L80.

При выполнении программы может действовать только


один MCALL-вызов одновременно. Параметры
передаются единожды при MCALL-вызове.
Модальная подпрограмма в следующих ситуациях
вызывается и без программирования движения:
При программировании адресов S и F, если G0 или G1
активен.
Если в кадре был спрограммирован только G0/G1 или с
другими G-кодами.

Выключение модального вызова подпрограммы


С помощью MCALL oбез вызова подпрограммы или через
программирование нового модального вызова
подпрограммы для новой подпрограммы.

 ООО Siemens 2001. Все права защищены.


2-106 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
2 2
09.01 Техника использования подпрограмм, техника макросов

2.7 Косвенный вызов подпрограммы: CALL


Косвенный вызов подпрограммы, CALL
В зависимости от имеющихся условий в одном
месте могут быть вызваны различные
подпрограммы.

Для этого имя подпрограммы сохраняется в


переменной типа STRING. Вызов подпрограммы
осуществляется с помощью CALL и имени
переменной.

Косвенный вызов подпрограммы возможен


только для подпрограмм без передачи
параметров.

Для прямого вызова подпрограммы сохранить


имя в постоянной строки.

Пример:
Прямой вызов с помощью постоянной
строки:

CALL "/_N_WKS_DIR/_N_SUBPROG_WPD/_N_TEIL1_SPF"

Косвенный вызов через переменную:


DEF STRING[100] PROGNAME
PROGNAME="/_N_WKS_DIR/_N_SUBPROG_WPD/_N_TEIL1_SPF"
CALL PROGNAME

Подпрограмма TEIL1 подчинена переменным


PROGNAME. С помощью CALL и указания пути
осуществляется косвенный вызов подпрограммы.

 ООО Siemens 2001. Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 2-107
2 2
Техника использования подпрограмм, техника макросов 09.01

2.8 Вызов подпрограммы с помощью указания пути и параметров: PCALL

С помощью PCALL подпрограммы могут


вызываться с помощью абсолютного указания
пути и передачей параметров:
PCALL Pfad/Programmname(Parameter 1, …, Parameter n)

Объяснение

_ Pfadname Абсолютное указание пути,


начинающееся с "/", включая имена
подпрограмм.
Если абсолютный путь не указан, то
PCALL действует как стандартный
вызов подпрограммы с
идентификатором программы.
Идентификатор программы
указывается без начального _N_ и без
расширения.
Если имя программы должно быть
спрограммирована с вступлением и
расширением, то оно должно быть
явно описано с помощью вступления и
расширения как внешнее.
Parameter 1 до n Актуальные параметры в соответствии
с PROC-оператором подпрограммы.

Пример:
PCALL/_N_WKS_DIR/_N_WELLE_WPD/WELLE(parameter1, parameter2, …)

 ООО Siemens 2001. Все права защищены.


2-108 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
2 2
09.01 Техника использования подпрограмм, техника макросов

2.9 Подавление актуальной индикации кадра: DISPLOF


Программирование
PROC … DISPLOF

Функций
С помощью DISPLOF подавляется актуальная
индикация кадра для подпрограммы. DISPLOF
стоит в конце PROC-оператора.
На месте актуальног7о кадра индицируется
вызов цикла или подпрограммы.

Стандартно индикация кадра включена.


Выключение индикации кадра с помощью
DISPLOF действует до выхода из подпрограммы
или до конца программы. Если из подпрограммы
с атрибутом DISPLOF вызываются другие
подпрограммы, то и в них подавляется
актуальная индикация кадра. Если подпрограмма
с подавленной индикацией кадра прерывается
асинхронной подпрограммой, то индицируются
кадры актуальной подпрограммы.

Пример программирования
Циклическое подавление актуальной
индикации кадра

%_N_CYCLE_SPF
;$PATH=/_N_CUS_DIR
PROC CYCLE (AXIS TOMOV, REAL POSITION) SAVE DISPLOF
;подавление актуальной индикации кадра
;теперь в качестве актуального кадра
индицируется вызов цикла
;к примеру: CYCLE(X, 100.0)
DEF REAL DIFF ;содержание циклов

G01 … ;

RET ;возврат в подпрограмму, снова индицируется
следующий кадр вызывающей программы

 ООО Siemens 2001. Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 2-109
2 2
Техника использования подпрограмм, техника макросов 09.01

2.10 Подавление отдельного кадра: SBLOF, SBLON (от ПО 4.3)


Программирование
PROC ... SBLOF ; команда может находиться в PROC-кадре или одна в кадре
SBLON ; команда должна находиться в своем кадре
Объяснение

SBLOF выключение отдельного кадра


SBLON повторное включение отдельного кадра

Функция
Специфическое программное подавление
отдельного кадра
Обозначенный SBLOF программы выполняются
для каждого типа отдельного кадра как
комплексный кадр. SBLOF находится в PROC-
строке и действует до конца или прерывания
подпрограммы.

SBLOF действует и в вызванных подпрограммах.

Пример:
PROC BEISPIEL SBLOF
G1 X10
RET
Подавление отдельного кадра в программе
SBLOF может быть одним в кадре. От этого
кадра отдельный кадр отключается до
• следующего SBLON или
• конца активного уровня подпрограммы.

Пример:
N10 G1 X100 F1000
N20 SBLOF выключение отдельного кадра
N30 Y20
N40 M100
N50 R10=90
N60 SBLON повторное включение отдельного
N70 M110 кадра
N80 ...

 ООО Siemens 2001. Все права защищены.


2-110 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
2 2
09.01 Техника использования подпрограмм, техника макросов

Диапазон между N20 и N60 в режиме отдельного


кадра обрабатывается как один шаг.

Блокировка отдельного кадра для


асинхронных подпрограмм
Внутренние системные запускаемые в Repos
асинхронные подпрограммы ASUP1.SYF и
ASUP2.SYF должны выполняться пошагово. От
ПО 4.3 через программирование SBLOF
системный ASUP может быть выполнен за один
шаг.

Пример:
N10 SBLOF
N20 IF $AC_ASUP==’H200’
N30 RET нет Repos при BA-смене
N40 ELSE
N50 REPOSA Repos во всех прочих случаях
N60 ENDIF
N70 RET

Граничные условия
• Актуальная индикация кадра может
циклически подавляться с помощью DISPLOF.
• Если DISPLOF программируется вместе с
SBLOF, то при останове отдельного кадра
внутри цикла как и прежде индицируется
вызов циклов.
• Если останов отдельного кадра в системном
ASUP или пользовательском ASUP был
подавлен с помощью бит0 = 1 или бит1 = 1 из
MD 10702: IGNORE_SINGLEBLOCK_MASK, то
через программирование SBLON в ASUP
останов отдельного кадра снова может быть
активизирован.
• Останов отдельного кадра в
пользовательском Asup подавляется с
помощью MD 20117:
IGNORE_SINGLEBLOCK_ASUP и может более
не активизироваться через программирование
SBLON.
• Через выбор SBL3 подавляется команда
SBLOF.

 ООО Siemens 2001. Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 2-111
2 2
Техника использования подпрограмм, техника макросов 09.01

Пример программирования 1
Цикл для программиста должен действовать как команда
Главная программа
N10 G1 X10 G90 F200
N20 X-4 Y6
N30 CYCLE1
N40 G1 X0
N50 M30

Программа cycle:1
N100 PROC CYCLE1 DISPLOF SBLOF подавление отдельного кадра
N110 R10=3*SIN(R20)+5
N120 IF (R11 <= 0)
N130 SETAL(61000)
N140 ENDIF
N150 G1 G91 Z=R10 F=R11
N160 RET

Цикл CYCLE1 при активном отдельном кадре


выполняется как один шаг.

Пример программирования 2
Запущенный PLC ASUP для активизации измененного смещения нулевой точки и коррекций
инструмента не должен быть видимым.
N100 PROC NV SBLOF DISPLOF
N110 CASE $P_UIFRNUM OF 0 GOTOF _G500
-->1 GOTOF _G54 2 GOTOF _G55 3
-->GOTOF _G56 4 GOTOF _G57
-->DEFAULT GOTOF END
N120 _G54: G54 D=$P_TOOL T=$P_TOOLNO
N130 RET
N140 _G54: G55 D=$P_TOOL T=$P_TOOLNO
N150 RET
N160 _G56: G56 D=$P_TOOL T=$P_TOOLNO
N170 RET
N180 _G57: G57 D=$P_TOOL T=$P_TOOLNO
N190 RET
N200 END: D=$P_TOOL T=$P_TOOLNO
N210 RET

 ООО Siemens 2001. Все права защищены.


2-112 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
2 2
09.01 Техника использования подпрограмм, техника макросов

2.11 Выполнение внешней подпрограммы: EXTCALL (от ПО 4.2)

Эта функция относится только к MMC 102/103.

С помощью EXTCALL можно догрузить


программу из MMC 102/103 в режиме
”Выполнение из вне”.

EXTCALL Pfad/Programmname

Объяснение

EXTCALL кодовое слово для вызова подпрограммы


Pfadname опция, не нужно
постоянная/переменна типа STRING.
Абсолютная задача пути, начинающаяся с "/",
Programmname Идентификатор программы указывается с/без
начального _N_ и без расширения.
Расширение может быть вставлено с
помощью символа <”> в имя программы.
Пример:
EXTCALL ”WELLE” или
EXTCALL”/_N_WKS_DIR/_N_WELLE_WPD/_N_WELLE_SPF”

Функция
При обработке комплексных деталей для
отдельных шагов обработки могут возникать
программные последовательности, которые из-
за их требований к памяти не могут более
напрямую сохраняться в операционную память.
С помощью EXTCALL можно догрузить
программу из MMC 102/103 в режиме
”Выполнение из вне”.
Все программа, доступные через структуру
директорий MMC102, могут быть догружены.

SD 42700 EXT_PROG_PATH
Гибкая возможность установки пути вызова
разрешает специфическую канальную
установочную дату SD 42700 EXT_PROG_PATH.

 ООО Siemens 2001. Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 2-113
2 2
Техника использования подпрограмм, техника макросов 09.01

SD 42700 содержит указание пути, которое


вместе с спрограммированным идентификатором
подпрограммы образует абсолютное имя пути
вызываемой программы.
Если внешняя подпрограмма вызывается без
абсолютного указания пути, то на MMC
выполняется тот же путь поиска как и при вызове
подпрограммы из оперативной памяти.
Устанавливаемая память дозагрузки (FIFO-
Buffer)
Для обработки программы в режиме
”Выполнение из вне” (главная или подпрограмм)
в NCK необходима память дозагрузки. Размер
памяти дозагрузки предварительно установлен
на 30Kбайт.
Через MD 18360 EXT_PROG_BUFFER_SIZE
может устанавливаться размер памяти.
POWER ON, RESET
Через Reset и POWER ON внешние вызовы
подпрограммы прерываются и стирается
соответствующая память дозагрузки.

Прочие указания
Внешние подпрограммы не могут включать в
себя такие операторы перехода как GOTOF,
GOTOB, CASE, IF - ELSE, FOR, LOOP, WHILE
или REPEAT.
Вызовы подпрограммы возможны.

Пример программирования
В установочной дате $SC_EXT_PROG_PATH
зафиксирован следующий путь:
”_N_WKS_DIR/_N_WST1”.
Главная программа _N_MAIN_MPF находится в
операционной памяти и выбрана.
%_N_MASCHINE1_MPF
N10 PROC MAIN
N20 ...
N30 EXTCALL SCHRUPPEN_SPF ; вызов внешней подпрограммы
SCHRUPPEN_SPF
N40 ...
N50 M30

 ООО Siemens 2001. Все права защищены.


2-114 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
2 2
09.01 Техника использования подпрограмм, техника макросов

Подпрограмма SCHRUPPEN_SPF (находится в


структуре директории MMC в деталях ->WST1):
N10 PROC SCHRUPPEN
N20 G1 F1000
N30 X=... Y=... Z=...
N40 ...
N90 M17

2.12 Вызов подпрограммы с помощью M-/T-функции


Функция
Через машинную дату может быть установлена
замена T- или M-функции на вызов
подпрограммы.
Это может быть использовано, к примеру, для
вызова процесса замены инструмента.
При поиске кадра вызовы подпрограмм с М-/Т-
функциями ведут себя как стандартные вызовы
подпрограмм.
Прочие указания
Более подробную информацию см.
/FBFA/ функциональное описание ISO-диалекта
для SINUMERIK

Пример1: Смена инструмента с M6


M-функция M6 заменяется на процесс замены инструмента WZW_UP_M6.
N10 PROC SCHRUPPEN3
N20 G1 F1000
N30 X=... Y=... Z=...
N40 T1234 M6 ; вызов WZW_UP_M6
M30

Соответствующая подпрограмма WZW_UP_M6:


N110 PROC WZW_UP_M6
...
N130 G53 D0 G0 X=... Y=... Z=... ; Подвод к точке замены инструмента
N140 M6 ; Осуществление замены инструмента
...
N190 M17

 ООО Siemens 2001. Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 2-115
2 2
Техника использования подпрограмм, техника макросов 09.01

Пример2: Смена инструмента с программированием T-функции


T-функция заменяется на процесс замены инструмента WZW_UP_T
N10 PROC SCHRUPPEN4
N20 G1 F1000
N30 X=... Y=... Z=...
N40 T1234 ; вызов WZW_UP_T
M30

Zugehöriges Unterprogramm WZW_UP_T:


N310 PROC WZW_UP_T
...
N330 IF $C_T_PROG == 1
N340 G53 D0 G0 X=... Y=... Z=... ; Подвод к точке замены инструмента
N350 T=$C_T ; Осуществление замены инструмента
N360 ENDIF
...
N390 M17

 ООО Siemens 2001. Все права защищены.


2-116 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
2 2
09.01 Техника использования подпрограмм, техника макросов

2.13 Циклы: параметрирование циклов пользователя


Файлы и пути

Объяснение

cov.com Обзор циклов


uc.com Описание вызова циклов

Функция
С помощью этих файлов могут быть
спараметрированы свои циклы.

Выполнение
Файл cov.com поставляется со стандартными
циклами и нуждается в соответствующем
расширении. Файл uc.com создается
пользователем.

Оба файла загружаются в пассивной файловой


системе в директорию "Циклы пользователя"
(или дополнить в программе соответствующим
указанием пути:
;$PATH=/_N_CUS_DIR.

Согласование cov.com – обзор циклов


Поставляемый со стандартными циклами файл
cov.com имеет следующую структуру:
%_N_COV_COM имя файла
;$PATH=/_N_CST_DIR указание пути
;Vxxx 11.12.95 Sca Zyklenuebersicht строка комментария
C1(CYCLE81) Bohren, Zentrieren вызов для первого цикла
C2(CYCLE82) Bohren, Plansenken вызов второго цикла
...
C24(CYCLE98) Ketten von Gewinden вызов для последнего цикла
M17 конец файла

 ООО Siemens 2001. Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 2-117
2 2
Техника использования подпрограмм, техника макросов 09.01

Для каждого нового добавляемого цикла


вставить строку в следующий синтаксис:

C<Nummer> (<Zyklusname>) Kommentartext


Номер: любое целое число, до этого оно не
должно было использоваться в файле;
Имя цикла: имя программы высвечиваемого
цикла
Текст комментария: текст комментария к циклу
по-выбору
Пример:
C25 (MEIN_ZYKLUS_1) Anwenderzyklus_1
C26 (SPEZIALZYKLUS)

Пример для файла uc.com -


описание циклов пользователя
Объяснение осуществляется на основе
продолжения примера:
Для следующих двух циклов должно быть заново
создано параметрирование циклов:
PROC MEIN_ZYKLUS_1 (REAL PAR1, INT PAR2, CHAR PAR3, STRING[10] PAR4)
;Цикл имеет следующие параметры передачи:
;
;PAR1: реальная величина в диапазоне от -1000.001 <= PAR2 <= 123.456,
предварительно установлено 100
;PAR2: положительная целая величины между 0 <= PAR3 <= 999999,
предварительно установлено 0
;PAR3: 1 ASCII-символ
;PAR4: строка длиной 10 для имени подпрограммы
;
...
M17
PROC SPEZIALZYKLUS (REAL WERT1, INT WERT2)
;Der Zyklus hat folgende Übergabeparameter:
;
;WERT1: реальная величина без ограничения диапазона значений и
предварительной установки
;WERT2: целая величина без ограничения диапазона значений и
предварительной установки
...
M17

 ООО Siemens 2001. Все права защищены.


2-118 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
2 2
09.01 Техника использования подпрограмм, техника макросов

Соответствующий файл uc.com

%_N_UC_COM
;$PATH=/_N_CUS_DIR
//C25(MEIN_ZYKLUS_1) цикл пользователя_1
(R/-1000.001 123.456 / 100 /параметр_2 цикла)
(I/0 999999 / 1 / целая величина)
(C//"A" / параметры символа)
(S///имя подпрограммы)

//C26(СПЕЦИАЛЬНЫЙ ЦИКЛ)
(R///общая длина)
(I/*123456/3/вид обработки)
M17

Описание синтаксиса для файла uc.com -


описание циклов пользователя

Заглавная строка на цикл:


как в файле cov.com с предустановленным "//"

//C <Nummer> (<Zyklusname>) Kommentartext

Пример:
//C25 (MEIN_ZYKLUS_1) Anwenderzyklus_

 ООО Siemens 2001. Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 2-119
2 2
Техника использования подпрограмм, техника макросов 09.01

Строка для описание на параметр:

(<Datentypkennung> / <Minimalwert> <Maximalwert> / <VorbelegungПОert> /


<Kommentar>)

Идентификация типа данных:


R для Real
I для Integer
C для Charakter (1 символ)
S для String

Минимальная величина, максимальная


величина (может отсутствовать)
Границы задаваемой величины, проверяемые
при вводе; величины, выходящие за этот
диапазон, не могут задаваться.

Могут быть указаны величины перечисления,


которые могут управляться клавишей Toggle; они
перечисляются начиная с "*", другие величины в
этом случае не допускаются.

Пример:
(I/*123456/1/вид обработки)
для типов String и Charakter границы отсутствуют;

Величина предварительной загрузки (может


отсутствовать)
Величина, установленная по умолчанию при
вызове цикла в соответствующем шаблоне; она
может изменяться через управление.

Комментарий
Текст, максимум 50 знаков, индицируемый в
шаблоне вызова для цикла перед полем ввода
для параметра.

 ООО Siemens 2001. Все права защищены.


2-120 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
2 2
09.01 Техника использования подпрограмм, техника макросов

Пример индикации для обоих циклов

Шаблон индикации для цикла MEIN_ZYKLUS_1

Шаблон индикации для цикла SPEZIALZYKLUS

2.14 Техника макросов. DEFINE...AS


Что такое макрос?
Макросом называют соединение отдельных операторов
в новый общий оператор с собственным именем. Также
и G-, M- и H-функции или L-имена подпрограмм могут
быть установлены как макросы.
При вызове макроса при выполнении программы
последовательно выполняются спрограммированные
под именем макроса операторы.

Использование макросов
Повторяющиеся последовательности операторов
программируются только один раз как макрос в своем
блоке макроса или единожды в начале программы.
После этого макрос может вызываться и выполняться в
любой главной или подпрограмме.

 ООО Siemens 2001. Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 2-121
2 2
Техника использования подпрограмм, техника макросов 09.01

Программирование
Макросы обозначаются кодовым словом DEFINE…AS.
Макроопределение звучит:
DEFINE NAME AS <Anweisung>
Пример:
Макроопределение:
DEFINE LINIE AS G1 G94 F300
Вызов в NC-программе:
N20 LINIE X10 Y20

Активизация макроса
• до ПО 4
После POWER ON СЧПУ макрос активен.
• от ПО 5
Если макрос загружается в NC (функциональная
клавиша "Загрузка"), то он активен.

Трехпозиционная M-/G-функций (от ПО 5)


• до ПО 4
После программирования трехпозиционной M-
функции выдается тревога 12530.
• от ПО 5
Трехпозиционные M- и G-функции могут
программироваться.
Пример:
N20 DEFINE M100 AS M6
N80 DEFINE M999 AS M6

Прочие указания
Вложение макросов невозможно.
H- и L-функции могут программироваться с двумя
позициями.

 ООО Siemens 2001. Все права защищены.


2-122 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
2 2
09.01 Техника использования подпрограмм, техника макросов

Пример программирования

DEFINE M6 AS L6 При замене инструмента вызывается подпрограмма,


которая берет на себя необходимую передачу данных. В
подпрограмме выводится сама М-функция замены
инструмента (к примеру, M106).
DEFINE G81 AS DRILL(81) Имитация DIN-G-функции
DEFINE G33 AS M333 G333 Для нарезания резьбы требуется синхронизация с PLC.
Первоначальная G-Funktion G33 через MD была
переименована в G333, программирование для
пользователя остается тем же.

Пример для глобального макрофайла:


После копирования макрофайла в СЧПУ макрос
активизируется (см. выше). Макросы могут
использоваться только в программе обработки
деталей.
%_N_UMAC_DEF
;$PATH=/_N_DEF_DIR;специфические пользовательские макросы
DEFINE PI AS 3.14
DEFINE TC1 AS M3 S1000
DEFINE M13 AS M3 M7 ;шпиндель справа, охлаждающая жидкость включена
DEFINE M14 AS M4 M7 ;шпиндель слева, охлаждающая жидкость включена
DEFINE M15 AS M5 M9 ;останов шпинделя, охлаждающая жидкость выключена
DEFINE M6 AS L6 ;вызов программы замены инструмента
DEFINE G80 AS MCALL ;отмена коррекции цикла сверления
M30 ;
• Кодовые слова и зарезервированные имена не могут переопределяться
макросом.
• Техника макросов может сильно изменить язык программирования
СЧПУ!
Поэтому использование техники макросов требует особой точности!
• Макросы могут быть согласованы и в NC-программе. В качестве
имени макроса допускаются только идентификаторы. Макросы G-
функции могут согласовываться только на глобальном уровне
управления в блоке макросов.
• С помощью техники макросов могут определяться любые
идентификаторы, G-, M-, H-функции и L-имена программ.
• Допускаются макроидентификаторы с 1 буквой и 1 цифрой (только
FM-NC).

 ООО Siemens 2001. Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 2-123
2 2
Техника использования подпрограмм, техника макросов 09.01

Для заметок

 ООО Siemens 2001. Все права защищены.


2-124 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
3 3
09.01 Управление файлами и программами

Управление файлами и программами

3.1 Обзор ............................................................................................................................ 3-126

3.2 Программная память................................................................................................... 3-127

3.3 Оперативная память ................................................................................................... 3-132

3.4 Определение данных пользователя .......................................................................... 3-135

3.5 Определение степеней защиты для данных пользователя (GUD) ......................... 3-139

3.6 Автоматическая активизация GUD и MAC (от ПО 4.4)............................................. 3-141

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 3-125
3 3
Управление файлами и программами 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

3.1 Обзор
Структура памяти

В распоряжении пользователя имеется структура


памяти, разделенная на два диапазона.

1. Оперативная память
Оперативная память содержит актуальные
системные данные и данные пользователя, с
помощью которых осуществляется работа СЧПУ
(активная файловая система).
Пример:
активные машинные данные, данные коррекции
инструмента, смещения нулевой точки.

2. Программная память

В программную память записываются файлы и


программы, сохраняясь тем самым на
продолжительное время (пассивная файловая
система).
Пример:
главные и подпрограммы, макроопределения.

 ООО Siemens 2001 Все права защищены.


3-126 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
3 3
09.01 Управление файлами и программами

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

3.2 Программная память


Обзор

Главные и подпрограммы сохраняются в


программной памяти. Кроме этого имеется
определенное количество типов файлов, которые
могут буферизироваться и при необходимости (к
примеру, при обработке определенной детали)
передаваться в оперативную память (к примеру,
цели инициализации).

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 3-127
3 3
Управление файлами и программами 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Директории

Следующие директории стандартно доступны при


подсоединении блока индикации и управления:

1. _N_DEF_DIR блоки данных и блоки макросов (загрузка при вводе в


эксплуатацию)
2. _N_CST_DIR стандартные циклы (загрузка при вводе в эксплуатацию)
3. _N_CUS_DIR циклы пользователя (загрузка при вводе в эксплуатацию)
4. _N_WKS_DIR детали
5. _N_SPF_DIR глобальные подпрограммы
6. _N_MPF_DIR стандартная директория для главных программ
7. _N_COM_DIR стандартная директория для комментариев

Типы файлов

В программной памяти могут размещаться


следующие типы файлов:

name_MPF главная программа


name_SPF подпрограмма

name_TEA машинные данные


name_SEA установочные данные
name_TOA коррекции инструмента
name_UFR смещения нулевой точки/фреймы
name_INI файл инициализации
name_GUD глобальные данные пользователя
name_RPA R-параметры
name_COM комментарии
name_DEF определения для глобальных данных пользователя и макросов

 ООО Siemens 2001 Все права защищены.


3-128 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
3 3
09.01 Управление файлами и программами

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Директория деталей, _N_WKS_DIR


Директория деталей стандартно располагается в
программной памяти под именем _N_WKS_DIR.

Директория деталей включает в себя в свою


очередь соответствующие каталоги деталей для
всех деталей, которые были спрограммированы.

Каталоги деталей, идентификатор WPD


Для гибкого управления данными и программами
определенные данные и программы связанно
или по-отдельности могут сохраняться в
каталогах деталей.
Один каталог деталей содержит все файлы,
необходимые для обработки одной детали.

Это могут быть главные программы,


подпрограммы, любые программы
инициализации и файлы комментариев.

Пример:
Каталог деталей _N_WELLE_WPD, созданный для
детали WELLE, включает следующие файлы:

_N_WELLE_MPF главная программа


_N_PART2_MPF главная программа
_N_PART1_SPF подпрограмма
_N_PART2_SPF подпрограмма
_N_WELLE_INI общая программа инициализации данных для детали
_N_WELLE_SEA программа инициализации установочных данных
_N_PART2_INI общая программа инициализации данных для программы Part 2
_N_PART2_UFR программа инициализации для данных фреймов для программы
Part 2
_N_WELLE_COM файл комментариев

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 3-129
3 3
Управление файлами и программами 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Установка каталогов деталей на внешнем PC


Описанные ниже действия осуществляются на
внешнем терминале.

Информация для управления файлами и


программами (от РС к СЧПУ), непосредственно
на СЧПУ, находится в их руководстве по
эксплуатации.

;$PATH-оператор
Во второй строке файла указывается конечный
путь с помощью $PATH=….

Пример:
;$PATH=/_N_WKS_DIR/_N_WELLE_WPD

Файл устанавливается по указанному пути.

Важно
Если указание пути отсутствует, то файлы типа
SPF устанавливаются в /_N_SPF_DIR, файлы с
окончанием _INI – в оперативную память, а все
прочие файлы в /_N_MPF_DIR.

Пример с указанием пути для предыдущего


примера WELLE:

%_N_WELLE_MPF
;$PATH=/_N_WKS_DIR/_N_WELLE_WPD
N10 G0 X… Z…

M2



%_N_WELLE_SPF

 ООО Siemens 2001 Все права защищены.


3-130 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
3 3
09.01 Управление файлами и программами

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Выбор детали для обработки


Каталог деталей может быть выбран для
обработки в одном из каналов.
Если в этом каталоге находится главная
программа с тем же именем, то она
автоматически выбирается для обработки.

Пример:
Каталог деталей
/_N_WKS_DIR/_N_WELLE_WPD содержит файлы
_N_WELLE_SPF и _N_WELLE_MPF.

От ПО 5 (только MMC102/103):
См. “Руководство оператора“ /BA/ глава “Список
заданий“, а также “Выбор программы для
обработки“.

Маршруты поиска при вызове подпрограммы


Если путь вызова явно не указывается в
программе обработки деталей при вызове
подпрограммы (или файла инициализации), то
поиск вызванной программы осуществляется по
фиксированному маршруту поиска.

Пример для вызова подпрограммы с абсолютным


указанием пути:
CALL"/_N_CST_DIR/_N_CYCLE1_SPF"

Как правило, программы вызываются без


указания пути:

Пример:
CYCLE1
Последовательность маршрута поиска
1. актуальная директория / name директория деталей или стандартная
директория _N_MPF_DIR
2. актуальная директория / name_SPF
3. актуальная директория / name_MPF
4. /_N_SPF_DIR / name_SPF глобальные подпрограммы
5. /_N_CUS_DIR / name_SPF циклы пользователя
6. /_N_CST_DIR / name_SPF стандартные циклы

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 3-131
3 3
Управление файлами и программами 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

3.3 Оперативная память


Программы инициализации

Здесь речь идет о программах, с помощью


которых инициализируются данные оперативной
памяти.

Для этого могут использоваться следующие типы


файлов:

name_TEA машинные данные


name_SEA установочные данные
name_TOA коррекции инструмента
name_UFR смещения нулевой точки/фреймы
name_INI файл инициализации
name_GUD глобальные данные пользователя
name_RPA R-параметры

Области данных
Данные могут подразделяться на различные
области, в которых они должны являться
значимыми. К примеру, СЧПУ может иметь
несколько каналов (не для 810D CCU1, 840D
NCU 571) или обычно и несколько осей. Имеется:

Идентификатор Области данных


NCK NCK-специфические данные
CH<n> специфические данные канала
(n указывает номер канала)
AX<n> специфические данные осей (n
указывает номер машинной оси)
TO данные инструмента
COMPLETE все данные

 ООО Siemens 2001 Все права защищены.


3-132 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
3 3
09.01 Управление файлами и программами

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Создание программы инициализации на


внешнем PC
С помощью идентификации области данных и
идентификации типов данных могут
определяться области, которые будут
рассматриваться при сохранении данных как
единица.

Пример:
_N_AX5_TEA_INI машинные данные для оси 5
_N_CH2_UFR_INI фреймы канала 2
_N_COMPLETE_TEA_INI все машинные данные

После ввода в эксплуатацию СЧПУ в


оперативной памяти находится блок данных,
отвечающий за правильную работу СЧПУ.

Сохранение программ инициализации


Файлы оперативной памяти могут сохраняться на
внешнем РС и снова считываться оттуда.

• Файлы сохраняются с помощью COMPLETE.


• С помощью INITIAL через все области
создается файл INI: _N_INITIAL_INI.

Загрузка программ инициализации


Программы INI могут выбираться и вызываться в
качестве программ обработки деталей, если они
используют только данные одного канала. Таким
образом имеется возможность инициализации
данных, управляемых программой.

Информацию по всем типам файлов можно


найти в руководстве по эксплуатации.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 3-133
3 3
Управление файлами и программами 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Способ действия в случае многоканальных


СЧПУ

CHANDATA (номер канала) для нескольких


каналов допускается только в файле
N_INITIAL_INI.
N_INITIAL_INI это файл ввода в
эксплуатацию, с помощью которого
инициализируются все данные СЧПУ.

Пример:
%_N_INITIAL_INI
CHANDATA(1)
;Maschinenachszuordnung Kanal 1
$MC_AXCONF_MACHAX_USED[0]=1
$MC_AXCONF_MACHAX_USED[1]=2
$MC_AXCONF_MACHAX_USED[2]=3
CHANDATA(2)
;Maschinenachszuordnung Kanal 2
$MC_AXCONF_MACHAX_USED[0]=4
$MC_AXCONF_MACHAX_USED[1]=5
CHANDATA(1)
;axiale Maschinendaten
;Genauhaltfenster grob:
$MA_STOP_LIMIT_COARSE[AX1]=0.2 ;Achse 1
$MA_STOP_LIMIT_COARSE[AX2]=0.2 ;Achse 2
Genauhaltfenster fein:
$MA_STOP_LIMIT_COARSE[AX1]=0.01 ;Achse 1
$MA_STOP_LIMIT_COARSE[AX1]=0.01 ;Achse 2

В программе обработки деталей оператор


CHANDATA может быть установлен только для
канала, на котором выполняется NC-программа; т.е.
оператор может использоваться для
предотвращения исполнения NC-программ на не
предусмотренном канале.
В случае ошибки выполнение программы
прерывается.
Указание
INI-файлы в списках заданий не содержат CHANDATA-
операторов.

 ООО Siemens 2001 Все права защищены.


3-134 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
3 3
09.01 Управление файлами и программами

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

3.4 Определение данных пользователя


Функция

Определение данных пользователя (GUD)


осуществляется в момент ввода в
эксплуатацию.
Необходимые машинные данные должны быть
соответственно установлены.
Память пользователя должна быть
сконфигурирована, необходимая конфигурация
памяти должна находиться в файле
%_N_INITIAL_INI, который загружается после
файла определения. Все релевантные
машинные данные включают в имя GUD.

• От ПО 5 (01.99):
Определение данных пользователя (GUD)
может создаваться в области управления
Службы, т.е. занимающий время процесс
сохранения данных (%_N_INITIAL_INI)
пропускается.
При этом:
• файлы определения, находящиеся на
жестком диске, не активны
• файлы определения, находящиеся на NC,
всегда активны

Зарезервированные имена блоков


В каталоге /_N_DEF_DIR могут находится
следующие блоки:

_N_SMAC_DEF содержит макроопределения (Siemens, уровень защиты 0)


_N_MMAC_DEF содержит макроопределения (изготовитель станка, уровень защиты
2)
_N_UMAC_DEF содержит макроопределения (пользователь, уровень защиты 3)
_N_SGUD_DEF содержит определения для глобальных данных (Siemens, уровень
защиты 0)
_N_MGUD_DEF содержит определения для глобальных данных (изготовитель
станка, уровень защиты 2)
_N_UGUD_DEF содержит определения для глобальных данных (пользователь,
уровень защиты 3)

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 3-135
3 3
Управление файлами и программами 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

_N_GUD4_DEF свободно определяемый


_N_GUD5_DEF содержит определения для циклов измерения (Siemens, уровень
защиты 0)
_N_GUD6_DEF содержит определения для циклов измерения (Siemens, уровень
защиты 0)
_N_GUD7_DEF содержит определения для стандартных циклов (Siemens, уровень
защиты 0) или без стандартных циклов свободно определяемый
_N_GUD8_DEF свободно определяемый
_N_GUD9_DEF свободно определяемый
Право доступа задается в файле определения командой
APR или APW.
При первой активизации файла определения GUD
возможно содержащееся в нем определенное право
доступа обрабатывается и автоматически переносится на
права записи и чтения самого файла определения GUD.

Указание
Записи права доступа в файле определения GUD могут
ограничивать, но не расширять, право доступа к самому
файлу определения GUD.

Пример
В файле определения _N_GUD7_DEF записано: APW2
a) Файл _N_GUD7_DEF имеет значение защиты записи 3.
Значение 3 переписывается значением 2.
b) Файл _N_GUD7_DEF имеет значение защиты записи 0.
Изменение не осуществляется.

Оператор APW имеет двухстороннее действие на право


записи файла.
Оператор APR имеет двухстороннее влияние на право
чтения самого файла.

Указание
Если по ошибке в файл определения GUD вводится более
высокое право, чем имеет сам вводящий, то архивный файл
должен быть записан заново.

 ООО Siemens 2001 Все права защищены.


3-136 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
3 3
09.01 Управление файлами и программами

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Определение данных пользователя (GUD)

1. Сохранить блок _N_INITIAL_INI.


2. Создать файл определения для данных
пользователя
• на внешнем PC (до ПО 4)
• в области управления «Службы» (от
ПО 5)
Существуют предопределенные имена
файлов (см. предыдущую стр.):
_N_SGUD_DEF
_N_MGUD_DEF
_N_UGUD_DEF
_N_GUD4_DEF … _N_GUD9_DEF
Файлы с этими именами могут содержать
определения для GUD-переменной.
Дополнительно необходим атрибут,
обозначающий переменную как GUD-
переменную и устанавливающий диапазон, на
котором определение должно быть
действительным:
NCK, CHAN
Дополнительно может быть установлена не
явная остановка подвода при последующем
чтении и/или записи переменной:
SYNR: остановка подвода при чтении
SYNRW: остановка подвода при
чтении/записи
3. Загрузить файл определения в программную
память СЧПУ.

СЧПУ всегда по умолчанию создает каталог


_N_DEF_DIR.
Это имя заносится как путь в заголовок GUD-
файла определения и обрабатывается при
считывании через V.24-интерфейс.
Пример для файла определения, глобальные данные (Siemens):
%_N_SGUD_DEF
;$PATH=/_N_DEF_DIR
DEF NCK REAL RTP ;предыдущий уровень
DEF CHAN INT SDIS ;защищенный интервал
M30

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 3-137
3 3
Управление файлами и программами 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

4. Активизация файлов определения


• до ПО 4
Файл определения активизируется только после записи файла
_N_INITIAL_INI.
• от ПО 5
При загрузке файла определения GUD в NC (функциональная клавиша
"Загрузка"), он становится активным.

Перед записью _N_INITIAL_INI сохранить все программы, фреймы и


машинные данные, так как статическая память форматируется.

5. Сохранение данных
При архивации файла _N_COMPLETE_GUD из оперативной памяти
сохраняются только содержания данных. Созданные файлы определения для
глобальных переменных пользователя должны архивироваться отдельно.

Присвоение переменных глобальным данным пользователя сохраняются и в


_N_INITIAL_INI, имена должны совпадать с именами в файлах
определения.

Пример для файла определения для глобальных данных (изготовитель


станка:

%_N_MGUD_DEF
;$PATH=/_N_DEF_DIR
;глобальные определения данных изготовителя станка
DEF NCK SYNRW INT ;не явная остановка подвода при чтении/записи
STUECKZAHL ;имеется спец. данное в СЧПУ
;доступ всех каналов
DEF CHAN INT ;отображение таблицы инструмента, специфическое для
WERKZEUGTABELLE[100] канала
;номер инструмента в магазине инструментов
M30 ;устанавливать таблицу отдельно для каждого канала

 ООО Siemens 2001 Все права защищены.


3-138 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
3 3
09.01 Управление файлами и программами

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

3.5 Определение степеней защиты для данных пользователя (GUD)


Объяснение

APW n Защита доступа для записи


n Степень защиты n от 0/10 (высшая
степень) до 7/17 (низшая степень)

APW 0-7,
Переменные блока не могут записываться через
NC-программу и в MDA-режиме.

APW 10-17, APR 10-17:


Переменные блока могут записываться через
NC-программу и в MDA-режиме.

Степени защиты
0/10 = SIEMENS
1/11 = OEM_HIGH
2/12 = OEM_LOW
3/13 = конечный пользователь
4/14 до 7/17 = позиция кодового переключателя 3
до 0

Указание
Последовательность ввода команды:
APW..
в ином случае возникают синтаксические ошибки.
Если защищается целый файл, то команды
должны стоять в первой строке файла!

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 3-139
3 3
Управление файлами и программами 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Функция
Благодаря определению критериев допуска
осуществляется защита GUD-блоков от
манипулирования. В циклах могут опрашиваться
GUD-переменные, которые таким образом
защищены от изменений через HMI или из
программы.
Защита доступа распространяется на все
переменные, определенные в этом блоке.
При не разрешенном доступе СЧПУ
сигнализирует соответствующую тревогу.

Выполнение
Защита доступа программируется в самом блоке
перед первым определением переменной с
желаемой степенью защиты.
Кодовые слова должны находится в своем кадре.

Пример для файла определения с защитой


доступа записи (изготовитель станка):

%_N_GUD6_DEF
;$PATH=/_N_DEF_DIR
DEF CHAN REAL_CORRVAL

M30 ;

 ООО Siemens 2001 Все права защищены.


3-140 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
3 3
09.01 Управление файлами и программами

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

3.6 Автоматическая активизация GUD и MAC (от ПО 4.4)


Функция
Файлы определения для GUD- и
макроопределений редактируются
• для MMC 102/103 в области управления
«Службы».

Если файл определения редактируется в NC, то


при выходе из редактора появляется вопрос,
должно ли определение быть активизировано.
Пример:
"Активизировать определения из файла
GUD7.DEF?"
"OK" Появляется вопрос, должны ли быть
сохранены активные в данный момент
данные.
"Должны ли быть сохранены прежние
данные определений?"
"OK" GUD-блоки обрабатываемого
файла определения сохраняются,
новые определения
активизируются и сохраненные
данные снова запускаются.
"Отмена" Новые определения
активизируются, старые
данные утеряны.
„Отмена“ Изменения в файле
определения отклоняются,
соответствующий блок
данных не изменяется.
Выгрузка
Если файл определения выгружается, то
соответствующий блок данных, после затухания
вопроса, стирается.

Загрузка
При загрузке файла определения появляется
вопрос, должен ли быть файл активизирован или
должны ли быть сохранены данные. Если
отклонить активизацию, то файл не загружается.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 3-141
3 3
Управление файлами и программами 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Если курсор находится на файле определения,


то надпись на функциональной клавише
изменяется с „Загрузка“ на „Активизация“ для
активизации определений. Если выбрать
„Активизировать“, то снова появляется вопрос,
должны ли данные быть сохранены.

Сохранение данных осуществляется только для


файлов определения переменных, не для
макросов.

Прочие указания (MMC 103)


Если недостаточно память для активизации
файла определения, то после изменения
размера памяти необходимо загрузить файл из
NC в MMC и обратно в NC для его активизации.

 ООО Siemens 2001 Все права защищены.


3-142 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
4 4
09.01 Защищенные области

Защищенные области

4.1 Определение защищенных областей CPROTDEF, NPROTDEF ............................. 4-144

4.2 Активизация, деактивизация защищенных областей: CPROT, NPROT ................. 4-148

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 4-143
4 4
Защищенные области 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

4.1 Определение защищенных областей CPROTDEF, NPROTDEF


Программирование

DEF INT NOT_USED


CPROTDEF(n,t,applim,applus,appminus)
NPROTDEF(n,t,applim,applus,appminus)
EXECUTE (NOT_USED)

Объяснение команд

DEF INT NOT_USED локальная переменная, определение типа данных INT (см. главу 10)
CPROTDEF Определение защищенных областей (только для NCU 572/573),
специфических для каналов
NPROTDEF Определение защищенных областей, специфических для станка
EXECUTE завершение определения

Объяснение параметров

n номер определенной защищенной области


t TRUE = защищенная область инструмента
FALSE = защищенная область детали
applim Вид ограничения в третьей размерности
0 = нет ограничений
1 = ограничение в плюсовом направлении
2 = ограничение в минусовом направлении
3 = ограничение в плюсовом и минусовом направлении
applus величина ограничения в плюсовом направлении третьей
размерности
appminus величина ограничения в минусовом направлении третьей
размерности
NOT_USED Переменная ошибки не действует для защищенных областей с
EXECUTE

 ООО Siemens 2001 Все права защищены..


4-144 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
4 4
09.01 Защищенные области

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Функция
С помощью защищенных областей различные
элементы на станке, оборудование и деталь
могут быть защищены от неправильных
движений.

Защищенные области инструмента:


Для частей, относящихся к инструменту (к
примеру, инструмент, держатель инструмента).
Защищенные области детали:
Для частей, относящихся к детали
(к примеру, части детали, рабочий стол,
зажимные лапы, патрон шпинделя, задняя
бабка).

Выполнение
Определение защищенных областей
К определению защищенных областей относятся:
• CPROTDEF для защищенных областей,
специфических для канала
• NPROTDEF для защищенных областей,
специфических для станка
• описание контура защищенной области
• завершение определения с помощью
EXECUTE

При активизации защищенной области в NC-


программе обработки деталей можно
осуществлять относительное смещение опорной
точки защищенной области.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 4-145
4 4
Защищенные области 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Опорная точка описания контура


Защищенные области инструмента определяются
в системе базовых координат. Защищенные
области инструмента указываются относительно
опорной точки держателя инструмента F.

Описание контура защищенных областей


Контур защищенной области указывается с
помощью максимум 11 движений перемещения на
выбранном уровне. При этом первым движением
перемещения является движение к контуру.
Защищенной областью при этом является область
слева от контура. Находящиеся между CPROTDEF
или NPROTDEF и EXECUTE движения
перемещения не исполняются, а определяют
защищенную область.

Рабочая плоскость
Желаемая плоскость выбирается перед
CPROTDEF или NPROTDEF с помощью G17, G18,
G19 и не может изменяться до EXECUTE.
Программирование аппликата между CPROTDEF
или NPROTDEF и EXECUTE не допускается.

Элементы контура
Допускаются:
• G0, G1 для прямых элементов контура
• G2 для круговых сегментов по часовой стрелке
(только для защищенных областей детали)
• G3 для круговых сегментов против часовой
стрелке

У SINUMERIK FM-NC имеется максимум 4


элемента контура для определения
соответственно одной защищенной области (макс.
4 защищенные области).
У 810D имеется максимум 4 элемента контура для
определения соответственно одной защищенной
области (макс. 4 специфические для канала и 4
NCK-специфические защищенные области).

 ООО Siemens 2001 Все права защищены..


4-146 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
4 4
09.01 Защищенные области

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Если полный круг описывает область, то он


должен быть разделен на две начальные
окружности. Последовательность G2, G3 или G3,
G2 не допускается. Вписать здесь при
необходимости короткий G1-кадр.

Последняя точка описания контура должна


совпадать с первой точкой.

Внешние защищенные области (возможно


только для защищенных областей детали)
определяются по часовой стрелке.

Для вращательно-симметричных защищенных


областей (к примеру, зажимной патрон
шпинделя) необходимо описать общий контур
(не только до центра вращения!).

Защищенные области инструмента всегда


должны быть выпуклыми. Если необходима
вогнутая защищенная область, то она должна
быть поделена на несколько выпуклых
защищенных областей.

При определении защищенных областей не


должны быть активными
• коррекция радиуса фрезы или резца,
• трансформация,
• фрейм.
Не могут программироваться движение к
референтной точке (G74), движение к
фиксированной точке (G75), остановка
покадровой обработки или конец программы.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 4-147
4 4
Защищенные области 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

4.2 Активизация, деактивизация защищенных областей: CPROT, NPROT


Программирование
CPROT n,state,xMov,yMov,zMov)
NPROT (n,state,xMov,yMov,zMov)

Объяснение команд и параметров

CPROT Вызов специфической для канала защищенной области (только для


NCU 572/573)
NPROT Вызов специфической для станка защищенной области
n Номер защищенной области
state Указание состояния
0 = деактивизировать защищенную область
1 = предварительно активизировать защищенную область
2 = активизировать защищенную область
xMov,yMov,zMov Смещение уже определенной защищенной области в
геометрических осях

Функция
Активизация заранее определенных защищенных
областей для контроля столкновений или
деактивизация активных защищенных областей.

Максимальное количество одновременно


активных в одном канале защищенных областей
определяется через машинную дату.

Если нет активных защищенных областей


инструмента, то траектория инструмента
контролируется по отношению к защищенным
областям детали.

Если нет активных защищенных областей


детали, то контроль защищенных областей не
осуществляется.

 ООО Siemens 2001 Все права защищены..


4-148 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
4 4
09.01 Защищенные области

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Выполнение
Состояние активизации
Общая активизация защищенной области
осуществляется в программе обработки деталей
с состоянием = 2.

Состояние всегда является специфическим для


канала, и у защищенных областей, относящихся
к станку.

Если через PLC-программу пользователя


предусмотрена активизация защищенной
области через PLC-программу пользователя, то
необходимая для этого предварительная
активизация осуществляется через состояние =
1.

Деактивизация и выключение защищенных


областей осуществляется через состояние = 0.
Смещение при этом не требуется.

Смещение защищенных областей при


(предварительной) активизации
Смещение может осуществляться в 1, 2 или 3
размерностях.
Указание смещения относится к:
• нулевой точке станка для специфических для
детали защищенных областей,
• опорной точке держателя инструмента F для
специфических для инструмента защищенных
областей.

Прочие указания
Защищенные области могут активизироваться уже после пуска и
последующего движения к референтной точке. Для этого должна
быть установлена системная переменная $SN_PA_ACTIV_IMMED
[n] или $SN_PA_ACTIV_IMMED[n] = TRUE. Они всегда
активизируются с помощью состояния = 2 и не имеют смещения.

Многократная активизаций защищенных областей

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 4-149
4 4
Защищенные области 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Защищенная область может быть одновременно


активной и в нескольких каналах (к примеру, пиноль у
двух расположенных друг на против друга суппортов).
Контроль защищенных областей осуществляется только
тогда, когда все геометрические оси реферированы. При
этом:
• Защищенная область не может быть активизирована
в одном канале многократно с различными
смещениями.
• Относящиеся к станку защищенные области должны
иметь на обоих каналах одну и ту же ориентацию.

Пример программирования
Для фрезерного станка необходим контроль
возможного столкновения фрезы с
измерительным щупом. Позиция измерительного
щупа должна быть указана при активизации
через смещение.
Для этого определяются следующие
защищенные области:
• соответственно одна специфическая для
станка и относящаяся к детали защищенная
область для держателя измерительного щупа
(n-SB1) и самого измерительного щупа (n-
SB2).
• соответственно одна специфическая для
канала и относящаяся к инструменту
защищенная область для держателя фрезы
(c-SB1), хвостовика фрезы (c-SB2) и для
самой фрезы (c-SB3).
Ориентация всех защищенных областей
находится в Z-направлении.
Позиция опорной точки измерительного щупа при
активизации должна находится в X = –120, Y = 60
и Z = 80.

 ООО Siemens 2001 Все права защищены..


4-150 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
4 4
09.01 Защищенные области

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

DEF INT SCHUTZB Определение вспомогательной переменной

Определение защищенных Установка ориентации


областей
G17
NPROTDEF(1,FALSE,3,10,–10) Защищенная область n–SB1
G01 X0 Y–10
X40
Y10
X0
Y–10
EXECUTE(SCHUTZB)

NPROTDEF(2,FALSE,3,5,–5) Защищенная область n–SB2


G01 X40 Y–5
X70
Y5
X40
Y–5
EXECUTE(SCHUTZB)

CPROTDEF(1,TRUE,3,0,–100) Защищенная область c–SB1


G01 X–20 Y–20
X20
Y20
X–20
Y–20
EXECUTE(SCHUTZB)

CPROTDEF(2,TRUE,3,–100,– Защищенная область c–SB2


150)
G01 X0 Y–10
G03 X0 Y10 J10
X0 Y–10 J–10
EXECUTE(SCHUTZB)

CPROTDEF(3,TRUE,3,–150,– Защищенная область c–SB3


170)
G01 X0 Y–27,5
G03 X0 Y27,5 J27,5
X0 Y27,5 J–27,5
EXECUTE(SCHUTZB)

Активизация защищенных областей:


NPROT(1,2,–120,60,80) Защищенная область n–SB1 актив. со смещением
NPROT(2,2,–120,60,80) Защищенная область n–SB2 актив. со смещением
CPROT(1,2,0,0,0) Защищенная область c–SB1 актив. со смещением
CPROT(2,2,0,0,0) Защищенная область c–SB2 актив. со смещением
CPROT(3,2,0,0,0) Защищенная область c–SB3 актив. со смещением

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 4-151
4 4
Защищенные области 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Для заметок

 ООО Siemens 2001 Все права защищены..


4-152 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

Специальные команды перемещения

5.1 Перемещение к кодированным позициям, CAC, CIC, CDC, CACP, CACN ............. 5-154

5.2 Сплайн-интерполяция ................................................................................................. 5-155

5.3 Компрессор COMPON/COMPCURV/COMPCAD (ПО 6.2)......................................... 5-164

5.4 Полиномиальная интерполяция– POLY, POLYPATH (от ПО 5) .............................. 5-172

5.5 Устанавливаемое соотношение траекторий, SPATH, UPATH (от ПО 4.3) ............. 5-179

5.6 Измерение с контактным щупом, MEAS, MEAW ....................................................... 5-183

5.7 Расширенная функций измерения MEASA, MEAWA, MEAC (от ПО 4, опция)....... 5-186

5.8 Специальные функции для OEM-пользователя ....................................................... 5-196

5.9 Программируемый критерий окончания движения (от ПО 5.1) ............................... 5-197

5.10 Программируемый блок сервопараметров (от ПО 5.1) ............................................ 5-198

 ООО Siemens 2001. Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 5-153
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

5.1 Перемещение к кодированным позициям, CAC, CIC, CDC, CACP, CACN


Объяснение команд

CAC(n) абсолютное перемещение к кодированной позиции


CIC(n) инкрементное перемещение к кодированной позиции на n-
количество позиций вперед (+) или назад (–)
CDC(n) перемещение к кодированной позиции по кратчайшему пути (только
для круговых осей)
CACP(n) кодированная позиция абсолютно в положительном направлении
(только для круговых осей)
CACN(n) кодированная позиция абсолютно в отрицательном направлении
(только для круговых осей)
(n) номер позиции 1, 2, … макс. 60 позиций на ось

Выполнение
Через машинные данные можно задать для 2-х
осей соответственно максимум 60 (0 до 59)
позиций в таблице позиций.

Пример возможной таблицы позиций – см. рис.

Прочие указания
Если ось находится между двух позиций, то при
инкрементной задаче с помощью CIC(…)
перемещение не осуществляется.
Рекомендуется всегда программировать первую
команду перемещения с абсолютным указанием
позиции.

Пример программирования

N10 FA[B]= 300 подача для позиционирующей оси B


N20 POS[B]= CAC (10) перемещение к кодированной позиции
10 (абсолютное)
N30 POS[B]= CIC (-4) перемещение с актуальной позиции на
4 позиции назад

 ООО Siemens 2001. Все права защищены.


5-154 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

5.2 Сплайн-интерполяция
Введение
С помощью сплайн-интерполяции
последовательности точек могут соединяться
гладкими кривыми. Сплайны могут
использоваться, к примеру, для соединения
оцифрованных точек в кривые.

Имеются различные типы сплайнов с


различными свойствами, которые приводят к
различным результатам. Наряду с выбором
типов сплайна пользователь также влияет на ряд
параметров. Часто требуется несколько попыток
для получения желаемого изображения.

Программирование
ASPLINEX Y Z A B C
или
BSPLINE X Y Z A B C
или
CSPLINE X Y Z A B C

Функция
Сплайн программируется для соединения с
помощью кривой последовательности точек.

Возможны три вида сплайн:


− A-сплайн (Akima-сплайн)
− B-сплайн (не нормированный, рациональный
базовый сплайн, NURBS)
− C-сплайн (кубический сплайн)

 ООО Siemens 2001. Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 5-155
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Прочие указания
A-, B- и C-сплайны действуют модально и
относятся к группе команд перемещения. Может
использоваться коррекция радиуса инструмента.
Контроль столкновения осуществляется в
проекции на плоскость.

Интерполируемые в сплайн-соединение оси


выбираются командой SPLINEPATH (более
подробная информация на следующих
страницах).

Выполнение
A-СПЛАЙН
A-сплайн (Akima-сплайн) проходит точно через
опорные точки. Он не вызывает нежелательных
колебаний, но не является устойчивым к
кривизне в опорных точках.

Akima-сплайн является локальным, т.е.


изменение одной из опорных точек сказывается
только на макс. шести соседних точках.

Прежде всего он подходит для интерполяции


оцифрованных точек. Для сплайна могут быть
спрограммированы граничные условия (более
подробная информация на следующих
страницах). Для интерполяции используется
полином третьего порядка.

 ООО Siemens 2001. Все права защищены.


5-156 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

B-СПЛАЙН
У B-сплайна спрограммированные позиции
являются не опорными точками, а лишь
контрольными точками сплайна. Т.е., кривая
проходит не прямо через эти точки, а
«притягивается» ими.

Соединение точек прямыми образует


контрольный полигон сплайна. B-сплайн
является оптимальным для описания путей
инструмента на плоскостях свободной формы.
Изначально он задумывался в качестве
интерфейса к CAD-системам. B-сплайн третьего
порядка не вызывает колебаний несмотря на
устойчивые к кривизне переходы.

Программируемые граничные условия (более


подробная информация на следующих
страницах) не влияют на В-сплайн. В стартовой и
конечной точке B-сплайн всегда является
тангенциальным к контрольному полигону.

Вес точки:
Для каждой опорной точки можно указать вес.
Программирование:
PW = n
Диапазон значений:
0 <= n <= 3; с шагами в 0.0001
Действие:
n > 1 Кривая сильнее притягивается контроль-
ной точкой
n < 1 Кривая слабее притягивается кон-
трольной точкой

Порядок сплайна:
Стандартно используется полигон третьего порядка.
Можно использовать и полигон второго порядка.

Программирование:
SD = 2

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-157
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Расстояние между узловыми точками :


Осуществляется внутреннее подходящее
вычисление расстояний между узловыми
точками. Но СЧПУ может работать и с
заданными расстояниями между опорными
точками.

Программирование:
PL = диапазон значений как размер пути

Пример для B-сплайна:

все веса 1 различные веса контрольный полигон


N10 G1 X0 Y0 F300 G64 N10 G1 X0 Y0 F300 G64 N10 G1 X0 Y0 F300 G64
N20 BSPLINE N20 BSPLINE N20 ;entfällt
N30 X10 Y20 N30 X10 Y20 PW=2 N30 X10 Y20
N40 X20 Y40 N40 X20 Y40 N40 X20 Y40
N50 X30 Y30 N50 X30 Y30 PW=0.5 N50 X30 Y30
N60 X40 Y45 N60 X40 Y45 N60 X40 Y45
N70 X50 Y0 N70 X50 Y0 N70 X50 Y0

C-СПЛАЙН
В отличие от Akima-сплайна кубический сплайн
(C-сплайн) в опорных точках является
устойчивым к кривизне. Но он имеет склонность к
неожиданным колебаниям. Он может
использоваться в тех случаях, когда точки
располагаются на аналитически известной
кривой. C-сплайн использует полином третьего
порядка.

Сплайн не является локальным, т.е. изменение


одной опорной точки может сказываться во
многих кадрах (ослабевая).

 ООО Siemens 2001. Все права защищены.


5-158 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Граничные условия
Граничные условия относятся только к Akima- и
кубическому сплайну (A-сплайн, C-сплайн).

С помощью двух групп операторов по три


команды в каждом может быть установлена
характеристика перехода (начало или конец) этих
сплайн-кривых.

Объяснение команд

Начало сплайн-кривой:
BAUTO нет задачи; начало получается из позиции первой точки
BNAT кривизна ноль
BTAN тангенциальный переход к предыдущему кадру (позиция стирания)

Конец сплайн-кривой:
EAUTO нет задачи; начало получается из позиции последней точки
ENAT кривизна ноль
ETAN тангенциальный переход к следующему кадру (позиция стирания)

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-159
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Пример
C-сплайн, кривизна в начале и в конце ноль
Y

50

40

30

20

10
X

10 20 30 40 50 60 70 80 90

N10 G1 X0 Y0 F300
N15 X10
N20 BNAT ENAT C-сплайн, кривизна в начале и в конце
ноль
N30 CSPLINE X20 Y10
N40 X30
N50 X40 Y5
N60 X50 Y15
N70 X55 Y7
N80 X60 Y20
N90 X65 Y20
N100 X70 Y0
N110 X80 Y10
N120 X90 Y0
N130 M30

 ООО Siemens 2001. Все права защищены.


5-160 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Задачи каждого из сплайнов?

Сравнение трех типов сплайнов с одинаковыми


опорными точками:

A-сплайн (Akima- сплайн)


B- сплайн (сплайн Безье)
C- сплайн (кубический сплайн)

Соединение сплайнов
При сплайн-интерполяции возможно до восьми
осей траекторий. С помощью оператора
SPLINEPATH определяются участвующие в
сплайне оси. Определение осуществляется в
особом кадре. Если SPLINEPATH
программируется не явно, то первые три оси
канала перемещаются как сплайн-соединение.

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-161
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Программирование
SPLINEPATH(n,X,Y,Z,…)

Объяснение

SPLINEPATH(n,X,Y,Z,…) n = 1, фиксированная величина


X,Y,Z,… указания осей траекторий

Пример
Z
Сплайн-соединение с тремя осями траекторий
SPLINEPATH (1,X,Y,Z)

N10 G1 X10 Y20 Z30 A40 B50 F350


N11 SPLINEPATH(1,X,Y,Z) сплайн-соединение
N13 CSPLINE BAUTO EAUTO X20 Y30 Z40 A50 B60 C-сплайн
N14 X30 Y40 Z50 A60 B70 опорные точки

N100 G1 X… Y… отмена коррекции сплайн-
интерполяции

 ООО Siemens 2001. Все права защищены.


5-162 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Установки для сплайнов


G-коды ASPLINE, BSPLINE и CSPLINE связывают
конечные точки кадра со сплайнами.

Для этого при пуске необходимо вычислить ряд


кадров (конечных пунктов) одновременно.

Размер буфера для вычисления составляет


стандартно 10 кадров.

Не каждая информация кадра является конечной


точкой сплайна. Но для СЧПУ из 10 кадров
необходимо определенное количество кадров-
конечных точек сплайна.

Для:

A- Из каждых 10 кадров минимум 4 должны быть сплайн-кадрами. Кадры


сплайна: комментариев и вычисления параметров не учитываются.
B- Из каждых 10 кадров минимум 6 должны быть сплайн-кадрами. Кадры
сплайна: комментариев и вычисления параметров не учитываются.
C- Из каждых 10 кадров сплайн-кадрами должны быть минимум содержание
сплайна: машинного данного $MC_CUBIC_SPLINE_BLOCKS+1 (таким образом, в
стандартном случае 9)
В машинное данное $MC_CUBIC_SPLINE_BLOCKS (стандартное значение 8)
заносится количество точек, через которые вычисляется сплайновый участок.

При превышении устанавливаемой величины


допуска выдается тревога, как и в случае, если
участвующая в сплайне ось программируется как
позиционирующая ось.

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-163
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

5.3 Компрессор COMPON/COMPCURV/COMPCAD (ПО 6.2)


CAD/CAM-системы как правило выдают
линейные кадры, которые выдерживают
спараметрированную точность.
В случае комплексных контуров это приводит к
значительному объему данных и возможно
коротким участкам траектории. Эти короткие
участки траектории ограничивают скорость
обработки.
Компрессор может объединять определенное
количество (макс. 10) этих коротких участков
траектории в один участок траектории.

С помощью модального G-кода COMPON или


COMPCURV может быть включен “Компрессор
NC-кадра”.
Эта функция собирает в линейных
интерполяциях ряд кадров прямых (количество
ограничено 10) и сближает их в рамках
задаваемой через машинное данное допустимой
погрешности с помощью полином третьего
порядка (COMPON) или пятого порядка
(COMPCURV). Вместо нескольких маленьких NC
обрабатывает один большой один большой кадр
движения.

Условия использования:
Этот процесс сжатия осуществляется только для
линейных кадров (G1). Он прерывается любым
другим NC-оператором, к примеру, выводом
вспомогательной функции, но не вычислением
параметров.
Сжимаются только кадры, не содержащие
ничего, кроме номера кадра, G1, адресов осей,
подачи и комментария. Все другие кадры
обрабатываются без изменений (без
компрессии). Использование переменных не
допускается.

 ООО Siemens 2001. Все права защищены.


5-164 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840 D 840 D 810D 840Di


NCU 571 NCU 572
NCU 573

С помощью G-кода COMPON переходы кадра


являются только постоянными по скорости, в то
время как ускорение участвующих осей может
вызывать скачки на переходах кадра. Это может
привести к возникновению вибраций станка.

Дополнительно от ПО 6.2
С помощью G-кода COMPCAD может быть
выбрана следующая компрессия,
оптимизированная в отношении качества
поверхностей и скорости, при этом точность
интерполяции так же может устанавливаться
через машинные данные. COMPCAD требует
значительного времени вычисления и памяти. Он
должен использоваться только тогда, когда
невозможно заранее использовать меры по
улучшению поверхностей программы CAD/CAM.
Признаки:
• COMPCAD производит стабильные по
ускорению преходящие друг в друга
полиномные кадры.
• у соседних траекторий отклонения ведут
соответственно в одно и то же направление.
• с помощью установочных данных
$SC_CRIT_SPLINE_ANGLE может быть
определен предельный угол, начиная с
которого COMPCAD оставляет кромки.
• количество сжимаемых кадров не ограничено
10.
• COMPCAD исправляет
неудовлетворительные переходы плоскостей.
При этом выдерживаются допуски, но не
учитывается предельный угол кромок.
• дополнительно может использоваться
функция перешлифовки G642.

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-165
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Дополнительно от ПО6.3
Компрессоры COMPON, COMPCURV и
COMPCAD расширены таким образом, что и NC–
программы, в которых ориентация
спрограммирована с помощью векторов
направления, могут сжиматься с сохранения
задаваемого допуска.
Функция “Компрессор для ориентаций” имеется
только при наличии опции «Трансформация
ориентации».
Названные выше в "Условиях использования"
ограничения ослаблены в том отношении, что
теперь значения позиций могут осуществляться
через присвоение параметров.

Программирование
Позиции оси как выражения
N10 G1 X=<...> Y=<...> Z=<...> A=<...>
параметров с < ... > выражение
B=<...> F=<...> ; Kommentar
параметра, к примеру X=R1*(R2+R3)
При активной трансформации ориентации
(TRAORI) для станков с 5-ю осями возможны
следующие независимые от кинематики
программирования направления инструмента:
1. Программирование вектора направления
через:
A3=< ...> B3=< ... > C3=< ... >
2. Программирование углов Эйлера или RPY-
углов через:
A2=< ...> B2=< ... > C2=< ... >
Движение ориентации сжимается только тогда,
когда активная большая круговая интерполяция,
т.е. изменение ориентации инструмента
осуществляется на плоскости, образующейся
начальной и конечной ориентацией.
Большая круговая интерполяция осуществляется
при следующих условиях:
1. Для MD 21104: ORI_IPO_WITH_G_CODE =
FALSE, если ORIWKS активна, и ориентация
спрограммирована как вектор
(с A3, B3, C3 или A2, B2, C2).
2. Для MD 21104: ORI_IPO_WITH_G_CODE =
TRUE, если ORIVECT или ORIPLANE
активна. Ориентация инструмента может

 ООО Siemens 2001. Все права защищены.


5-166 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840 D 840 D 810D 840Di


NCU 571 NCU 572
NCU 573

программироваться либо как вектор


направления, либо с помощью позиций
круговой оси. Если активен один из G–кодов
ORICONxx или ORICURVE или
спрограммированы полиномы для угла
ориентации
(PO[PHI] и PO[PSI]), то большая круговая
интерполяция не осуществляется, т.е. такие
кадры не сжимаются.

Для станков с 6-ю осями в дополнение к


ориентации инструмента может быть
спрограммировано и поворот инструмента.
Программирование угла поворота
осуществляется с помощью идентификатора
THETA (THETA=<...>).
NC–кадры, в которых дополнительно
спрограммирован поворот, могут сжиматься
только тогда, когда угол поворота изменяется
линейно. Т.е., для угла поворота не должен быть
спрограммирован полином с PO[THT]=(...).
Общая форма NC-кадра:
N... X=<...> Y=<...> Z=<...> A3=<...>
B3=<...> C3=<...> THETA=<...> F=<...>
или
N... X=<...> Y=<...> Z=<...> A2=<...>
B2=<...> C2=<...> THETA=<...> F=<...>

Если ориентация инструмента указывается через


позиции круговой оси, к примеру, в форме:
N... X=<...> Y=<...> Z=<...> A=<...>
B=<...> THETA=<...> F=<...>
то сжатие осуществляется двумя различными
способами, в зависимости от того,
осуществляется ли большая круговая
интерполяция или нет. В случае, если большая
круговая интерполяция не осуществляется, то
сжатое изменение ориентации представляется
осевым полиномом для круговых осей.

Точность
NC–кадры могут сжиматься только в том случае, если допускаются
отклонения контура от спрограммированного контура. Максимальное
отклонение задается в установочных данных как допуск

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-167
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

компрессора. Чем больше разрешенный допуск, тем на большее


количество кадров может осуществляться сжатие.
Точность оси
Компрессор создает для каждой оси сплайн-кривую, которая
отклоняется от спрограммированных конечных точек каждой оси
максимум на величину допуска, установленную с помощью осевых
машинных данных.

Точность контура
Контролируются максимальные геометрические отклонения контура
(геометрические оси) и ориентации инструмента. Это
осуществляется с помощью установочных данных для:
1. максимального допуска для контура.
2. максимальной угловой погрешности для ориентации
инструмента.
3. максимальной угловой погрешности для угла поворота
инструмента (имеется только у станков с 6-ю осями).
С помощью специфических для канала машинных данных MD 20482
COMPRESSOR_MODE могут устанавливаться заданные величины
допуска:
0: Точность оси: осевые допуски для всех осей
(геометрические оси и оси ориентации).
1: Точность контура: задача допуска контура (1.), допуск
для ориентации через осевые допуски (a.).
2: Задача максимальной угловой погрешности для
ориентации инструмента (2.), допуск для контура
через осевые допуски (a.).
3: Задача допуска контура с помощью (1.) и задача
максимальной угловой погрешности для ориентации
инструмента с помощью (2.).
Задача максимальной угловой погрешности ориентации инструмента
возможна только тогда, когда активна трансформация ориентации
(TRAORI).
Активизация
Активизация "Компрессора для ориентаций" осуществляется с
помощью одного из операторов:
COMPON, COMPCURV (COMPCAD не возможен).
Литература: /FB3/, F2: "3-х – 5-ти осная трансформация"

 ООО Siemens 2001. Все права защищены.


5-168 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840 D 840 D 810D 840Di


NCU 571 NCU 572
NCU 573

Программирование
компрессор включен
COMPON/COMPCURV/COMPCAD
компрессор выключен
COMPOF

Изготовитель станка

Для функции компрессора имеется три


машинных данных:
• $MC_COMPRESS_BLOCK_PATH_LIMIT
Устанавливается максимальная длина
перемещения, до которой кадры считаются
способными к сжатию.
Более длинные кадры не сжимаются.
• $MA_COMPRESS_POS_TOL
Для каждой оси может быть установлен
допуск. Созданная сплайн-кривая отклоняется
от спрограммированных конечных точек
максимум на эту величину. Чем больше эти
величины, тем больше кадров может быть
сжато.
• $MC_COMPRESS_VELO_TOL
Может быть задано максимально допустимое
отклонение подачи траектории при активном
компрессоре вместе с FLIN и FCUB.
Особенности у COMPCAD:
• $MN_MM_EXT_PROG_BUFFER_SIZE должна
быть выбрана большой, к примеру 100 (kB).
• $MC_COMPRESS_BLOCK_PATH_LIMIT
должна быть указана значительно большей, к
примеру 50 (mm).
• $MC_MM_NUM_BLOCKS_IN_PREP должна
быть установлена на >= 60 для возможности
обработки значительно большего количества,
чем 10 точек.
• FLIN и FCUB не могут использоваться.
Рекомендуется для больших длин кадров и
оптимальной скорости:
• $MC_MM_MAX_AXISPOLY_PER_BLOCK = 5
$MC_MM_PATH_VELO_SEGMENTS = 5
$MC_MM_ARCLENGTH_SEGMENTS = 10.

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-169
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Пример COMPON

N10 COMPON или COMPCURV, компрессор включен


N11 G1 X0.37 Y2.9 F600 G1 должна находится перед конечной
точкой и подачей
N12 X16.87 Y–4.698
N13 X16.865 Y–4.72
N14 X16.91 Y–4.799

N1037 COMPOF компрессор выключен

Сжимаются все кадры, для которых достаточно
простого синтаксиса, к примеру
N19 X0.103 Y0. Z0.
N20 X0.102 Y-0.018
N21 X0.097 Y-0.036
N22 X0.089 Y-0.052
N23 X0.078 Y-0.067
Не сжимаются, к примеру, расширенные адреса,
как C=100 или A=AC(100).
От NC-ПО 6.3: Кадры движения с расширенными
адресами теперь также сжимаются.

Пример COMPCAD

G00 X30 Y6 Z40


G1 F10000 G642
SOFT
COMPCAD компрессор оптимизации
поверхностей включен
STOPFIFO
N24050 Z32.499
N24051 X41.365 Z32.500
N24052 X43.115 Z32.497
N24053 X43.365 Z32.477
N24054 X43.556 Z32.449
N24055 X43.818 Z32.387
N24056 X44.076 Z32.300
...
COMPOF компрессор выключен
G00 Z50
M30

 ООО Siemens 2001. Все права защищены.


5-170 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840 D 840 D 810D 840Di


NCU 571 NCU 572
NCU 573

Пример “Компрессор для ориентаций” В следующем примере


программирования сжимается контур,
аппроксимированный полигоном.
При этом ориентация инструмента
движется синхронно на боковой
поверхности конуса. Хотя
последовательно осуществляемые
изменения ориентации являются
прерывными, компрессор генерирует
ровный ход ориентации.
DEF INT ANZAHL = 60
DEF REAL RADIUS = 20
DEF INT COUNTER
DEF REAL WINKEL
N10 G1 X0 Y0 F5000 G64
$SC_COMPRESS_CONTUR_TOL = 0.05 максимальное отклонение контура
0.05 mm
$SC_COMPRESS_ORI_TOL = 5 максимальная погрешность
ориентации
5 Grad
TRAORI
COMPCURV
N100 X0 Y0 A3=0 B3=–1 C3=1 Осуществляется перемещение по
N110 FOR COUNTER = 0 TO ANZAHL контуру, образованному из полигонов.
N120 WINKEL= 360 * COUNTER /ANZAHL
Ориентация при этом движется на
N130 X=RADIUS*COS(WINKEL)Y=RADIUS*
конусе вокруг Z–с оси с аппретурным
SIN(WINKEL) A3=SIN(WINKEL)
углом в 45 Grad.
B3=–COS(WINKEL) C3=1
N140 ENDFOR
...

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-171
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

5.4 Полиномиальная интерполяций – POLY, POLYPATH (ab ПО 5)


СЧПУ может обеспечивать перемещение по кривым
(траекториям), у которых каждая выбранная ось траектории
следует функции, до ПО-версии 5 (полином, макс. третий
порядок),
от ПО-версии 6 (полином, макс. пятый порядок).

Общая форма полиномиальной функции выглядит следующим


образом:
2 3
f(p)= a0 + a1p + a2p + a3p (до ПО 5) или
2 3 4 5
f(p)= a0 + a1p + a2p + a3p + a4p + a5p (от ПО 6)
где:
an: постоянные коэффициенты
p: параметры

Посредством присвоения конкретных значений коэффициентам


могут воспроизводится различные характеристики кривой, как то
прямая, параболическая или степенная функций.

При установке коэффициентов a2 = a3 = 0 (до ПО 5) или a2 = a3


= a4 = a5 = 0 (от ПО 6)
получается, к примеру, прямая с:
f(p) = a0 + a1p

где:
a0 = позиция оси на конце предыдущего кадра
a1 = разница между позицией оси на конце области
определения (PL) и стартовой позицией.

Определение

В прямом смысле в случае полиномиальной интерполяции


(POLY) речь не идет не о виде сплайн-интерполяции. В первую
очередь она задумана как интерфейс для программирования
созданных внешне сплайн-кривых. При этом может
осуществляться прямое программирование отрезков сплайна.

Этот вид интерполяции снимает с NC нагрузку по вычислению


коэффициентов полиномов. Оптимальным случаем ее
использования является поступление коэффициентов
непосредственно из CAD-системы или с постпроцессора.

 ООО Siemens 2001. Все права защищены.


5-172 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Полиномиальная интерполяция вместе с G0, G1, G2, G3, A-


сплайном, B- сплайном м C- сплайном в первой G-группе. Если
она активна, то не нужно программировать синтаксис полинома:
оси, спрограммированные только с помощью их имени и
конечной точки, линейно перемещаются к их конечной точке.
Если все оси спрограммированы таким образом, то СЧПУ ведет
себя как при G1.

Полиномиальная интерполяция выключается другой командой


G-группы (к примеру, G0, G1).

От ПО 5
Вызов подпрограммы POLYPATH:
С помощью POLYPATH полиномиальная интерполяция может
указываться выборочно для следующих групп осей:
• POLYPATH ("AXES")
Все оси траектории и дополнительные оси.
• POLYPATH ("VECT") Оси ориентации
(при трансформации ориентации) .
Стандартно для обеих групп спрограммированные полиномы
также интерполируются как полином.

Примеры:
POLYPATH ("VECT")
Для полиномиальной интерполяции выбираются только оси
ориентации, все остальные оси перемещаются линейно.

POLPATH ( )
Деактивизирует полиномиальную интерполяцию для всех осей.

Коэффициент полинома

Величина PO (PO[]=) или ...=PO(...)задает все


коэффициенты полинома для одной оси. В соответствии с
порядком полинома несколько значений указывается раздельно
через запятые. Внутри одного кадра возможны различные
порядки полинома для различных осей.

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-173
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Граничные условия

До ПО 5
• Полиномы для
геометрических осей или дополнительных осей
траектории могут программироваться, только если
активен G0/G1 или POLY. Т.е., при круговой
интерполяции невозможно перемещать
дополнительные оси с помощью полинома.
Стандартно полиномы с PO[...] могут
программироваться только в том случае, когда G-код
POLY активен.

От ПО 5
• Возможно программировать полиномы без активного
G-кода POLY. Но в этом случае интерполируются не
спрограммированные полиномы, а осуществляется
линейный подвод к соответствующей
спрограммированной конечной точке каждой оси (G1).
Посредством программирования POLY активизируется
полиномиальная интерполяция.
• Кроме этого, при активном G-коде POLY с помощью
заранее определенной подпрограммы
POLYPATH (...) можно выбирать, какие оси должны
интерполироваться с помощью полинома.

От ПО 6
• Коэффициенты a4 и a5 возможно только от ПО 6.
• Новый синтаксис полинома с PO
Предыдущий синтаксис действует дальше

Пример правильного синтаксиса


полинома с PO
Bisherige Polynomsyntax bleibt gültig Neue Polynomsyntax (ab ПО 6)
PO[Achsbezeichner]=(.. , ..) Achsbezeichner=PO(.. , ..)
PO[PHI]=(.. , ..) PHI=PO(.. , ..)
PO[PSI]=(.. , ..) PSI=PO(.. , ..)
PO[THT]=(.. , ..) THT=PO(.. , ..)
PO[]=(.. , ..) PO(.. , ..)
PO[variable]=IC(.. , ..) variable=PO IC(.. , ..)

 ООО Siemens 2001. Все права защищены.


5-174 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Программирование
POLY PO[X]=(xe,a2,a3) PO[Y]=(ye,b2,b3) PO[Z]=(ze,c2,c3) PL=n (bis ПО 5)
POLYPATH ("AXES", "VECT")(ab ПО 5)
Erweiterung auf Polynome 5.Grades und neuer Polynomsyntax (ab ПО 6)
POLY X=PO(xe,a2,a3,a4,a5) Y=PO(ye,b2,b3,b4,b5) Z=PO(ze,c2,c3,c4,c5) PL=n

Объяснение

POLY Включение полиномиальной интерполяции с помощью


кадра с POLY.
POLYPATH Полиномиальная интерполяция может выбираться для
обеих групп осей AXIS или VECT
PO[achsbezeichner/variabl Конечные точки и коэффициенты полинома
e]=(…,…,…)
X, Y, Z Идентификатор оси
xe, ye, ze Указание конечной позиции для соответствующей оси;
диапазон значений как размер перемещения
a2, a3, a4, a5 Коэффициенты a2, a3, a4, и a5 записываются с их
значением; диапазон значений как размер перемещения.
Соответственно последний коэффициент может
пропускаться, если он имеет значение ноль.
PL Длина интервала параметры, на котором определены
полиномы (область определения функции f(p)). Интервал
всегда начинается с 0. p может принимать значения от 0
до PL. Теоретический диапазон значений для PL равен:
0,0001 … 99 999,9999. Значение PL относится к кадру, в
котором оно находится. Если PL не спрограммирован, то
действует PL=1.
Пример

N10 G1 X… Y… Z… F600
N11 POLY PO[X]=(1,2.5,0.7) -> полиномиальная интерполяция включена
-> PO[Y]=(0.3,1,3.2) PL=1.5
N12 PO[X]=(0,2.5,1.7)
PO[Y]=(2.3,1.7) PL=3

N20 M8 H126 …
N25 X70 PO[Y]=(9.3,1,7.67) PL=5 смешанные указания для осей
N27 PO[X]=(10,2.5) PO[Y]=(2.3) PL не спрограммирован; действует PL=1
N30 G1 X… Y… Z. полиномиальная интерполяция выключена

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-175
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Пример кривой в X/Y-плоскости

N9 X0 Y0 G90 F100
N10 POLY PO[Y]=(2) PO[X]=(4,0.25) PL=4

 ООО Siemens 2001. Все права защищены.


5-176 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Особенности полинома-знаменателя
Для геометрических осей с помощь PO[]=(…)
без указания имени оси также можно
спрограммировать общий полином-знаменатель,
т.е. движение геометрических осей
интерполируется как частное двух полиномов.

Таким образом могут быть точно представлены, к


примеру, конические сечения (круг, эллипс,
парабола, гипербола).

Пример

POLY G90 X10 Y0 F100 Геометрические оси перемещаются


линейно к позиции X10, Y0
PO[X]=(0,–10) PO[Y]=(10) PO[]=(2,1) Геометрические оси перемещаются в
одной четвертой круга к X0, Y10

Постоянный коэффициент (a0) полинома- Y


знаменателя всегда принимается за 1, указанная
конечная точка не зависит от G90/G91.

Из вышеуказанного примера получается


10
следующий результат:

X(p)=10(1–p2)/(1+p2) и Y(p)=20p/(1+p2)
с 0<=p<=1

На основе спрограммированных начальных


точек, конечных точек, коэффициента a2 и PL=1
X
получаются следующие промежуточные
значения:

Числитель (X)=10+0*p–10p2
Числитель (Y)=0+20*p+0*p2
Знаменатель = 1+2*p+1*p2

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-177
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

При включенной полиномиальной интерполяции


программирование полинома-знаменателя с
нулевыми точками внутри интервала [0,PL]
отклоняется с подачей тревоги. На движение
дополнительных осей полином-знаменатель не
влияет.

Прочие указания
Коррекция радиуса инструмента у
полиномиальной интерполяции может
включаться с помощью G41, G42 и может
использоваться для линейной или круговой
интерполяции.

 ООО Siemens 2001. Все права защищены.


5-178 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

5.5 Устанавливаемое соотношение траекторий, SPATH, UPATH (ab ПО 4.3)

Программирование
SPATH Соотношение траекторий для FGROUP-осей является длиной дуги
UPATH Соотношение траекторий для FGROUP-осей является параметром кривой

Введение
При полиномиальной интерполяции пользователю
могут быть необходимы два различных
соотношения между определяющими скорость
FGROUP-осями и прочими осями траектории:
Последние должны управляться

• либо синхронно к перемещению траектории


FGROUP-осей

• или синхронно к параметрам кривой.

До этого был реализован лишь первый вариант


управления движением, начиная с версии ПО 4.3
через G-код (SPATH, UPATH) может выбираться и
программироваться желаемая характеристика.

Функция
При полиномиальной интерполяции – в дальнейшем под этим
понимается полиномиальная интерполяция узком смысле
этого слова (POLY), все виды сплайн-интерполяций (ASPLINE,
BSPLINE, CSPLINE) и линейные интерполяции с компрессором
(COMPON, COMPCURV) – позиции осей траектории i
задаются через полиномы pi(U). Параметр кривой U при этом
двигается внутри NC-кадра с 0 до 1, являясь таким образом
нормированным.

С помощью языковой команды FGROUP внутри осей


траектории могут быть выбраны те оси, к которым должно
относится спрограммированное смещение траектории.
Интерполяция с постоянной скоростью на перемещении S этих
осей означает при полиномиальной интерполяции, как
правило, не постоянное изменение параметра кривой U.

Для отсутствующих в FGROUP осей существует две

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-179
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

возможности следовать за траекторией:

1. либо они являются синхронными к перемещению S


(SPATH)

2. либо синхронными к параметру кривой U FGROUP-осей


(UPATH).

Оба вида траекторной интерполяции необходимы в


различных приложениях и могут переключаться через G-коды
SPATH и UPATH.

UPATH и SPATH также определяют связь полинома F-слова


(FPOLY, FCUB, FLIN) с движением по траектории.

Пример

В следующем примере квадрат с длиной кромок


20 mm перешлифовывается с помощью G643.
Максимальные отклонения от точного контура
при этом определяются через машинные данные
MD 33100: COMPRESS_POS_TOL[...]
для каждой оси.
N10 G1 X… Y… Z… F500
N20 G643 внутренняя кадровая перешлифовка с
помощью G643
N30 XO Y0
N40 X20 Y0 20mm длины кромок для осей
N50 X20 Y20
N60 X0 Y20
N70 X0 Y0
N100 M30

Граничные условия
Установленное соотношение траекторий не имеет
значения при

• линейной и круговой интерполяции,

• в кадрах резьбы и

• в том случае, когда все оси траектории входят в


FGROUP.

 ООО Siemens 2001. Все права защищены.


5-180 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Активизация
Соотношение траекторий для не входящих в
FGROUP осей устанавливается через две
содержащихся в 45-ой группе G-кода языковые
команды SPATH и UPATH. Команды действуют
модально. При активном SPATH оси управляются
синхронно к перемещению, при активном UPATH –
синхронно к параметру кривой.

Пример программирования
Следующий пример программирования
иллюстрирует различие между двумя видами
управления движением. В обоих случаях активна
предварительная установка FGROUP(X,Y,Z).

N10 G1 X0 A0 F1000 SPATH


N20 POLY PO[X]=(10, 10) A10
bzw.
N10 G1 X0 F1000 UPATH
N20 POLY PO[X]=(10, 10) A10

В кадре N20 перемещение S FGROUP-осей


зависит от квадрата параметра кривой U. Из
этого получаются различные позиции синхронной
оси А вдоль перемещения Х, в зависимости от
того, активен ли SPATH или UPATH:

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-181
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Характеристика СЧПУ при Power On, смене


режимов работы, Reset, поиска кадра, Re-
pos

Машинные/опционные данные
Активная после Reset величина группы G-кода
определяется через машинные данные MD 20150:
GCODE_RESET_VALUES [44].
Для сохранения совместимости с существующими
установками здесь в качестве стандартной
величины предварительно установлено SPATH.

Величина исходной позиции для вида


перешлифовки определяется с помощью
машинных данных MD 20150:
GCODE_RESET_VALUES [9] (10-ая группа G-кода).

Осевые машинные данные MD 33100:


COMPRESS_POS_TOL имеют начиная с ПО 4.3
расширенное значение: они включают допуски для
функции компрессора и для перешлифовки с
помощью G642.

 ООО Siemens 2001. Все права защищены.


5-182 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840D 840D 810D 840Di


NCU 571 NCU 572 CCU 2
NCU 573

5.6 Измерение с помощью контактного щупа, MEAS, MEAW


Программирование

MEAS=±1 G… X… Y… Z… (+1/+2 измерение со стиранием


остатка пути и передним фронтом)
MEAS=±2 G… X… Y… Z… (–1/–2 измерение со стиранием
остатка пути и задним фронтом)
MEAW=±1 G… X… Y… Z… (+1/+2 измерение без стирания остатка
пути и передним фронтом)
MEAW=±2 G… X… Y… Z… (–1/–2 измерение без стирания остатка
пути и задним фронтом)

Объяснение команд

MEAS=±1 измерение щупом 1 на измерительном входе 1


MEAS=±2* измерение щупом 2 на измерительном входе 2
MEAW=±1 измерение щупом 1 на измерительном входе 1
MEAW=±2* измерение щупом 2 на измерительном входе 2
*в зависимости от расширения макс. 2 входа

Выполнение
X
Для всех спрограммированных в NC-кадре осей
фиксируются позиции на контактном фронте
измерительного щупа и записываются для каждой оси
в соответствующую ячейку памяти. Существует макс.
2 измерительных щупа.

Результат измерения
Результат измерения для этих осей находится в
Z
следующих переменных:

• в системе координат станка в $AA_MM[Achse]


• в системе координат детали в $AA_MW[Achse]

При чтении этих переменных внутренняя остановка


подачи не осуществляется.
С помощью STOPRE в NC-программе в подходящем
месте должен быть спрограммирована остановка
подачи. Иначе считываются неправильные величины.

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-183
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572 CCU 2
NCU 573

Состояние задания измерения


Если необходим программный анализ того,
контактировал ли измерительный щуп или нет, то
может быть опрошена переменная состояния
$AC_MEA[n] (n= номер измерительного щупа):
0 задание измерения не выполнено
1 задание измерения успешно завершено
(контакт измерительного щупа)

Если измерительный щуп в программе


отклоняется, то переменная устанавливается на
1. При старте измерительного кадра переменная
автоматически устанавливается на исходное
состояние щупа.

Программирование измерительных кадров,


MEAS, MEAW
С помощью команды MEAS и запуска
интерполяции осуществляется подвод к
фактическим позициям на детали с приемом
измеряемых величин. Остаточный путь между
фактической и заданной позицией стирается.

Для специальных задач измерения, при которых


в любом случае должен быть осуществлен
подвод к спрограммированной позиции,
используется функций MEAW.

MEAS и MEAW программируются в кадре с


операторами движения. Подачи и виды
интерполяции (G0, G1, …) должны быть
согласованы с соответствующей задачей
измерения; также и количество осей.

Пример:
N10 MEAS=1 G1 F1000 X100 Y730 Z40

Измерительный кадр с измерительным щупом


первого измерительного входа и линейная
интерполяция. Остановка подачи создается
автоматически.

 ООО Siemens 2001. Все права защищены.


5-184 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840D 840D 810D 840Di


NCU 571 NCU 572 CCU 2
NCU 573

Запись измеряемой величины


Регистрируются позиции всех перемещаемых
траекторных и позиционирующих осей кадра
(макс. количество осей в зависимости от
конфигурации СЧПУ).
Для MEAS движение после включения
измерительного щупа определенно
притормаживается.

Примечание
Если в одном из измерительных кадров
спрограммирована GEO-ось, то сохраняются
измеряемые величины для всех актуальных
GEO-осей.
Если в одном из измерительных кадров
спрограммирована участвующая в
трансформации ось, то сохраняются измеряемые
величины всех участвующих в этой
трансформации осей.

Прочие указания
Функции MEAS и MEAW имеют покадровое
действие.

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-185
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572 CCU 2
NCU 573

5.7 Расширенные функции измерения MEASA, MEAWA, MEAC (от ПО 4, опция)


Программирование

MEASA[Achse]=(Modus, TE1,…, TE 4)
измерение со стиранием остатка пути

MEAWA[Achse]=(Modus, TE 1,…, TE 4)
измерение без стирания остатка пути

MEAC[Achse]=(Modus, Meßspeicher, TE непрерывное измерение без стирания


1,...TE4) остатка пути

Объяснение

Ось Имя используемой для измерения оси канала


Режим Двухпозиционное указание режима работы; состоит из
Режим измерения (единичная декада) и
0 прерывание задания измерения
1 режим 1: до 4-х различных одновременно активируемых
триггерных событий
2 режим 2: до 4-х последовательно активируемых
триггерных событий
3 режим 3: последовательно активируемых триггерных
событий, но нет контроля триггерного события 1 при
START (тревоги 21700/21703 подавляются)
Указание: режим для 3 для MEAC не возможен

Система измерения (десятичная декада)


0 или не указано: активная система измерения
1 система измерения 1
2 система измерения 2
3 обе системы измерения
TE 1…4 Триггерное событие
1 передний фронт, измерительный щуп 1
-1 задний фронт, измерительный щуп 1
2 передний фронт, измерительный щуп 2
-2 задний фронт, измерительный щуп 2
Измерительная Номер FIFO (динамической памяти)
память

 ООО Siemens 2001. Все права защищены.


5-186 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840D 840D 810D 840Di


NCU 571 NCU 572 CCU 2
NCU 573

Функция

От ПО 4 доступно осевое измерение.


При этих измерениях измерение может
осуществляться по оси с несколькими
измерительными щупами и несколькими
измерительными системами.

Для MEASA, MEAWA для соответственно


спрограммированной оси регистрируются до
четырех измеряемых величин на измерение и
сохраняются в соответствии с триггерным событием
в системных переменных.
MEASA и MEAWA имеют покадровое действие.

Непрерывные задания измерения могут


осуществляться с помощью MEAC. В этом случае
результаты измерения сохраняются в FIFO-
переменных. Также и для MEAC возможно
максимум четыре измеряемые величины на
измерение.

Выполнение
Программирование может осуществляться в программе
обработки детали или из синхронного действия (глава 10).
При этом на ось в один и тот же момент времени может
быть активно только одно задание измерения.

Прочие указания
• подача должна быть согласована с соответствующей задачей
измерения.
• для MEASA и MEAWA корректные результаты могут быть обеспечены
только для подач, при которых происходит не более одного подобного
и не более четырех различных триггерных событий на такт
позиционного регулятора.
• при непрерывном измерении с помощью MEAC соотношение
между тактом интерполяции и тактом позиционного регулятора не
должно быть большим чем 8 : 1.

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-187
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572 CCU 2
NCU 573

Триггерные события

Для каждого измерения может быть обработано


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

Одинаковое триггерное событие может быть


спрограммировано только один раз в одном
задании измерения (относится только к режиму
1)!

Режим работы
С помощью первой цифры режима выбирается желаемая
измерительная система. Если имеется только одна измерительная
система, но спрограммирована вторая, то автоматически
используется имеющая.

С помощью второй цифры, режима измерения, процесс


измерения согласуется с возможностями соответствующей СЧПУ:
• режим 1: Обработка триггерных событий осуществляется во
временной последовательности их появления.
В этом режиме при использовании шестиосных модулей может
быть спрограммировано только одно триггерное событие или
,при указании нескольких триггерных событий, осуществляется
автоматический переход в режим 2 (без сообщения).
• режим 2: Обработка триггерных событий осуществляется в
спрограммированной последовательности.
• режим 3: Обработка триггерных событий осуществляется в
спрограммированной последовательности, но нет контроля
треггерного события 1 при START.

Прочие указания
При использовании 2-х измерительных систем могут быть
спрограммированы только два триггерных события.

 ООО Siemens 2001. Все права защищены.


5-188 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840D 840D 810D 840Di


NCU 571 NCU 572 CCU 2
NCU 573

Измерение с и без стирания остатка пути

При программировании MEASA стирание остатка


пути осуществляется только после регистрации
всех требуемых измеряемых величин.

Для специальных задач измерения, при которых


в любом случае должен быть осуществлен
подвод к спрограммированной позиции,
используется MEAWA.

MEASA и MEAWA могут быть спрограммированы


в одном кадре.

Если MEASA/MEAWA программируется с


MEAS/MEAW в одном кадре, то осуществляется
сигнализация ошибки.

• MEASA не может программироваться в синхронных действиях.


Вместо этого MEAWA плюс стирание остатка пути могут быть
спрограммированы как синхронное действие.
• Если задание измерения запускается с помощью MEAWA из
синхронных действий, то измеряемые величины доступны только
в системе координат станка.

Результаты измерения для MEASA, MEAWA


Результаты измерения находятся в следующих системных переменных:

• В системе координат станка:


$AA_MM1[Achse] Измеряемая величина спрограммированной измерительной
системы при триггерном событии 1
… ...
$AA_MM4[Achse] Измеряемая величина спрограммированной измерительной
системы при триггерном событии 4

• В системе координат детали:


$AA_WM1[Achse] Измеряемая величина спрограммированной измерительной
системы при триггерном событии 1
… ...
$AA_WM4[Achse] Измеряемая величина спрограммированной измерительной
системы при триггерном событии 4

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-189
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572 CCU 2
NCU 573

Прочие указания
При чтении этих переменных внутренняя остановка
подачи не осуществляется.
С помощью STOPRE (глава 15.1) в подходящем
месте должна быть спрограммирована остановка
подачи. Иначе считываются неправильные
величины.

Если запущено осевое измерение для


геометрической оси, то это же задание измерения
должно быть явно спрограммировано для всех
оставшихся геометрических осей.
Это же относится и к осям, которые участвуют в
трансформации.
Пример:
N10 MEASA[Z]=(1,1) MEASA[Y]=(1,1)
MEASA[X]=(1,1) G0 Z100;
Или
N10 MEASA[Z]=(1,1) POS[Z]=100
Задание измерения с 2 измерительными
системами
Если осуществляется задание измерения с двумя
измерительными системами, то каждое из обеих
возможных триггерных событий регистрируется
обеими измерительными системами
соответствующей оси. При этом задается загрузка
зарезервированных переменных:

$AA_MM1[ось] или $AA_MW1[ось] измеряемая величина измерительной


системы 1 при триггерном событии 1
$AA_MM2[ось] или $AA_MW2[ось] измеряемая величина измерительной
системы 2 при триггерном событии 1
$AA_MM3[ось] или $AA_MW3[ось] измеряемая величина измерительной
системы 1 при триггерном событии 2
$AA_MM4[ось] или $AA_MW4[ось] измеряемая величина измерительной
системы 2 при триггерном событии 2

Состояние измерительного щупа может


считываться через $A_PROBE[n]
n=измерительный щуп
1==измерительный щуп отклонен
0==измерительный щуп не отклонен

 ООО Siemens 2001. Все права защищены.


5-190 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840D 840D 810D 840Di


NCU 571 NCU 572 CCU 2
NCU 573

Состояние задания измерения при MEASA, MEAWA


Если в программе необходима обработка, то состояние задания
измерения может быть запрошено через $AC_MEA[n], где n =
номер измерительного щупа.
Как только осуществлены все спрограммированные в одном кадре
триггерные события измерительного щупа "n", эта переменная выдает
значение 1. В иных случаях значение 0.

Если измерение запускается из синхронных действий, то $AC_MEA


более не актуализируется. В этом случае опрашиваются новые
PLC-сигналы состояния DB(31-48) DBB62 Bit 3 или равнозначная
переменная $AA_MEAACT[”ось”].
Значение: $AA_MEAACT==1: измерение активно
$AA_MEAACT==0: измерение не активно
Литература: /FB/ M5, измерение

Непрерывное измерение MEAC


Измеряемые величины для MEAC находятся в системе координат
станка и сохраняются в указанной FIFO[n]-памяти (динамическая
память). Если для измерения спроектировано два измерительных
щупа, то измеряемые величины второго измерительного щупа
сохраняются отдельно в дополнительно спроектированной для
этого (устанавливается через машинные данные) FIFO[n+1]-
памяти.
FIFO-память является динамической памятью, в которой
измеряемые величины по динамическому принципу заносятся в
$AC_FIFO-переменные.
Литература: /PGA/ глава 10, синхронные действия

Прочие указания
• Содержание FIFO может быть лишь единожды считано из
динамической памяти. Для многократного использования
данных измерения они должны быть буферизированы в данных
пользователя.
• Если число измеряемых величин для FIFO-памяти превышает
максимальное количество, определенное в машинных данных, то
измерение автоматически прекращается.
• Бесконечное измерение может быть реализовано через
циклическое считывание измеряемых величин. Считывание должно
осуществляться с той же частотой, что и поступление новых
измеряемых величин.

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-191
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572 CCU 2
NCU 573

Пример программирования

(обработка во временной последовательности)


a) с 1 измерительной системой

...
N100 MEASA[X] = (1,1,-1) G01 X100 F100 Измерение в режиме 1 с активной
измерительной системой. Ожидание
сигнала измерения с передним/задним
фронтом от измерительного щупа 1 на
пути перемещения к X = 100.
N110 STOPRE Остановка подачи
N120 IF $AC_MEA[1] == FALSE gotof ENDE Контроль успешности измерения.
N130 R10 = $AA_MM1[X] Сохранение относящейся к первому
спрограммированному триггерному
событию (передний фронт) измеряемой
величины.
N140 R11 = $AA_MM2[X] Сохранение относящейся ко второму
спрограммированному триггерному
событию (задний фронт) измеряемой
величины.
N150 ENDE:
Пример программирования

b) с 2 измерительными системами
...
N200 MEASA[X] = (31,1-1) G01 X100 F100 Измерение в режиме 1 с обеими
измерительными системами. Ожидание
сигнала измерения с передним/задним
фронтом от измерительного щупа 1 на
пути перемещения к X = 100.
N210 STOPRE Остановка подачи
N220 IF $AC_MEA[1] == FALSE gotof ENDE Контроль успешности измерения.
N230 R10 = $AA_MM1[X] Сохранение измеряемой величины
измерительной системы 1 при переднем
фронте.
N240 R11 = $AA_MM2[X] Сохранение измеряемой величины
измерительной системы 2 при переднем
фронте.
N250 R12 = $AA_MM3[X] Сохранение измеряемой величины
измерительной системы 1 при заднем
фронте.
N260 R13 = $AA_MM4[X] Сохранение измеряемой величины
измерительной системы 2 при заднем

 ООО Siemens 2001. Все права защищены.


5-192 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840D 840D 810D 840Di


NCU 571 NCU 572 CCU 2
NCU 573

фронте.
N270 ENDE:
Измерение со стиранием остатка пути в режиме
2
(обработка в спрограммированной
последовательности)

...
N100 MEASA[X] = (2,1,-1,2,-2) G01 X100 F100 Измерение в режиме 2 с активной
измерительной системой. Ожидание
сигнала измерения с
последовательностью: передний фронт
измерительного щупа 1, задний фронт
измерительного щупа 1, передний фронт
измерительного щупа 2, задний фронт
измерительного щупа 2 на пути
перемещения к X = 100.
N110 STOPRE Остановка подачи
N120 IF $AC_MEA[1] == FALSE gotof Контроль успешности измерения с
измерительным щупом 1.
MESSTASTER2
N130 R10 = $AA_MM1[X] Сохранение относящейся к первому
спрограммированному триггерному
событию (передний фронт измерительного
щупа 1) измеряемой величины.
N140 R11 = $AA_MM2[X] Сохранение относящейся к второму
спрограммированному триггерному
событию (передний фронт измерительного
щупа 1) измеряемой величины.
N150 MESSTASTER2:
N160 IF $AC_MEA[2] == FALSE gotof ENDE Контроль успешности измерения с
измерительным щупом 2.
N170 R12 = $AA_MM3[X] Сохранение относящейся к третьему
спрограммированному триггерному
событию (передний фронт измерительного
щупа 2) измеряемой величины.
N180 R13 = $AA_MM4[X] Сохранение относящейся к третьему
спрограммированному триггерному
событию (передний фронт измерительного
щупа 2) измеряемой величины.
N190 ENDE:

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-193
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572 CCU 2
NCU 573

Пример программирования

Непрерывное измерение в режиме 1:


(обработка во временной последовательности)
Измерение до 100 измеряемых величин
...
N110 DEF REAL MESПОERT[100]
N120 DEF INT Schleife = 0
N130 MEAC[X] = (1,1,-1) G01 X1000 F100 Измерение в режиме 1 с активной
измерительной системой, сохранение
измеряемых величин в $AC_FIFO1,
ожидание сигнала измерения с задним
фронтом от измерительного щупа 1 не
пути перемещения к X = 1000.
N135 STOPRE
N140 MEAC[X] = (0) Прервать измерение при достижении
позиции оси.
N150 R1 = $AC_FIFO1[4] Сохранение количества полученных
измеряемых величин в параметре R1.
N160 FOR Schleife = 0 TO R1-1
N170 MESПОERT[Schleife] = $AC_FIFO1[0] Считывание и сохранение измеряемых
величин из $AC_FIFO1.
N180 ENDFOR

Измерение со стиранием остатка пути после


10 измеряемых величин
...
N10 WHEN $AC_FIFO1[4]>=10 DO стирание остатка пути
MEAC[x]=(0) DELDTG(x)
N20 MEAC[x]=(1,1,1,-1) G01 X100 F500
N30 MEAC[X]=(0)
N40 R1=$AC_FIFO1[4] количество измеряемых величин
...

 ООО Siemens 2001. Все права защищены.


5-194 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840D 840D 810D 840Di


NCU 571 NCU 572 CCU 2
NCU 573

Следующие ошибочные программирования распознаются и


индицируются с ошибкой:
• MEASA/MEAWA спрограммированы вместе с MEAS/MEAW в
одном кадре
Пример:
N01 MEAS=1 MEASA[X]=(1,1) G01 F100 POS[X]=100

• MEASA/MEAWA с количеством параметров <2 или >5


Пример:
N01 MEAWA[X]=(1) G01 F100 POS[X]=100

• MEASA/MEAWA с триггерным событием неравным 1/ -1/ 2/ -2


Пример:
N01 MEASA[B]=(1,1,3) B100

• MEASA/MEAWA с ошибочным режимом


Пример:
N01 MEAWA[B]=(4,1) B100

• MEASA/MEAWA с двойным программированием триггерного


события
Пример:
N01 MEASA[B]=(1,1,-1,2,-1) B100

• MEASA/MEAWA и отсутствующая GEO-ось


Пример:
N01 MEASA[X]=(1,1) MEASA[Y]=(1,1) G01 X50 Y50 Z50 F100 GEO-Ось X/Y/Z

• Не стандартная задача измерения для GEO-осей


Пример:
N01 MEASA[X]=(1,1) MEASA[Y]=(1,1) MEASA[Z]=(1,1,2) G01
X50 Y50 Z50 F100

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-195
5 5
Специальные команды перемещения 09.01

840D 840Di
NCU 572
NCU 573

5.8 Специальные функции для OEM-пользователя


OEM-адреса
Значение OEM-адресов определяет OEM-
пользователь.
Функциональность устанавливается через
компилирующие циклы. 5 OEM-адресов
зарезервировано.
Идентификаторы адресов могут устанавливаться.
OEM-адреса допускаются в каждом кадре.

OEM-интерполяции
OEM-пользователь может определить две
дополнительные интерполяции.
Функциональность устанавливается через
компилирующие циклы.
Имена G-функций (OEMIPO1, OEMIPO2)
устанавливает OEM-пользователь.
Для OEM-интерполяции могут специально
быть использованы OEM-адреса (см. выше).

Зарезервированные G-группы G800 - 819

Для OEM-пользователя зарезервированы две G-


группы по 10 OEM-G-функций каждая.
Таким образом, установленные OEM-
пользователем функции могут быть
выведены для использования наружу.

Функции и подпрограммы
Дополнительно OEM-могут устанавливать и
предварительно определенные функции и
подпрограммы с передачей параметров.

 ООО Siemens 2001. Все права защищены.


5-196 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840D 840D 810D 840Di


NCU 571 NCU 572 CCU 2
NCU 573

5.9 Программируемый критерий окончания движения (от ПО 5.1)


Программирование

FINEA[<ось>]
COARSEA[<ось>]
IPOENDA[<ось>]

Объяснение команд

FINEA Окончание движения при достижении ”Точный останов ТОЧНЫЙ”


COARSEA Окончание движения при достижении ”Точный останов ГРУБЫЙ”
IPOENDA Окончание движения при достижении ”Остановка интерполяции”
Achse Имя оси канала (X, Y, ....)

Функция

Подобно критерию смены кадров при траекторной


интерполяции (G601, G602 und G603) в программе
обработки детали или в синхронных действиях для
командых/PLC-осей может быть спрограммирован
критерий окончания движения для интерполяции
отдельной оси.
В зависимости от установленного критерия окончания
движения существует различная скорость завершения
кадров программы обработки деталей или кадров
технологического цикла с движениями отдельной оси.
Это же относится и к PLC–операторам
позиционирования через FC15/ 16/ 18.

Системная переменная $AA_MOTEND


Установленный критерий окончания движения может
опрашиваться с помощью системной переменной
$AA_MOTEND[<ось>].
• $AA_MOTEND[<ось >] = 1 Окончание движения с ”Точный останов
точный”
• $AA_MOTEND[<ось >] = 2 Окончание движения с ”Точный останов
грубый”
• $AA_MOTEND[<ось >] = 3 Окончание движения с ”IPO–Stop”.

Прочие указания

После RESET сохраняется последняя


спрограммированная величина.
Литература: /FB1/V1 Подачи

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-197
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572 CCU 2
NCU 573

Пример программирования

...
N110 G01 POS[X]=100 FA[X]=1000 ACC[X]=90 IPOENDA[X]
Переход к позиции X100 со скоростью траектории в 1000 об/мин с величиной
ускорения в 90% и окончанием движения при достижении останова
интерполяции
...
N120 EVERY $A_IN[1] DO POS[X]=50 FA[X]=2000 ACC[X]=140 IPOENDA[X]
Переход к позиции X50, если активен вход 1, со скоростью траектории в 2000
об/мин с величиной ускорения в 140% и окончанием движения при достижении
останова интерполяции
...

5.10 Программируемый блок сервопараметров (от ПО 5.1)


Программирование

SCPARA[<Achse>]= <Wert>

Объяснение команд

SCPARA определение блока параметров


Achse имя оси канала (X, Y, ...)
Wert желаемый блок параметров (1<= Wert <=6)

Функция

С помощью SCPARA можно спрограммировать


блок параметров (состоящий из машинных
данных) в программе обработки детали в
синхронных действиях (до этого только через
PLC).
DB3n DBB9 Bit3
Для предотвращения конфликта между
желанием PLC–пользователя и желанием NC–
пользователя определяется следующий бит на
стыке PLC–>NCK:
DB3n DBB9 Bit3 ”Задача блока параметров через
SCPARA заблокирована”.

 ООО Siemens 2001. Все права защищены.


5-198 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
5 5
09.01 Специальные команды перемещения

840D 840D 810D 840Di


NCU 571 NCU 572 CCU 2
NCU 573

При заблокированной задаче блока параметров


для SCPARA сигнализация ошибки не
осуществляется, даже если она
спрограммирована.

Актуальный блок параметров может


опрашиваться с помощью системной переменной
$AA_SCPAR[<Achse>].

Прочие указания
• До ПО 5.1 блок сервопараметров может
задаваться только через PLC (DB3n DBB9
Bit0–2). Для G33, G331 bzw. G332
подходящий блок параметров выбирается
СЧПУ.
• Если блок сервопараметров попеременно
должен находится либо в программе
обработки детали или синхронном действии,
либо в PLC, то программа электроавтоматики
должна быть расширена.
• Литература: /FB1/V1 Подачи

Пример программирования

...
N110 SCPARA[X]= 3 Третий блок параметров выбирается для оси Х.
...

 Siemens AG 2001. All rights reserved.


SINUMERIK 840D/840Di/810D Programmieranl. Arbeitsvorbereitung (PGA) - Ausgabe 09.01 5-199
5 5
Специальные команды перемещения 09.01

840D 840D 810D 840Di


NCU 571 NCU 572 CCU 2
NCU 573

Для заметок

 ООО Siemens 2001. Все права защищены.


5-200 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
6 6
09.01 Фреймы

Фреймы
6.1 Трансформация координат через фрейм-переменную............................................ 6-202

6.2 Фрейм-переенные / присваивание значений фреймам ........................................... 6-207

6.3 Грубое и точное смещение ......................................................................................... 6-214

6.4 DRF-смещение............................................................................................................. 6-215

6.5 Внешнее смещение нулевой точки ............................................................................ 6-216

6.6 Программирование Preset-смещения, PRESETON .................................................. 6-217

6.7 Деактивизация фреймов ............................................................................................. 6-218

6.8 Вычисление фрейма из 3-х точек измерения в пространстве, MEAFRAME .......... 6-219

6.9 Глобальные фреймы ЧПУ (от ПО 5) .......................................................................... 6-222


6.9.1 Специфические для канала фреймы.................................................................. 6-223
6.9.2 Действующие в канале фреймы ......................................................................... 6-225

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 6-201
6 6
Фреймы 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

6.1 Трансформация координат через фрейм-переменные


Определение трансформации координат
с помощью фрейм-переменных

Наряду с уже описанными в руководстве по


программирования "Основы" возможностями
программирования возможно устанавливать
системы координат с помощью заранее
определенных фрейм-переменных.

Системы координат
Определены следующие системы координат:
MCS: система координат станка
BKS: базовая кинематическая система
BNS: базовая система нулевой точки
ENS: настраиваемая система нулевой точки
WCS: система координат детали

Что такое заранее определенная фрейм-


переменная?
Заранее определенные фрейм-переменные это
кодовые слова, которым в языковой практике
СЧПУ уже соотнесено определенное действие и
которые могут обрабатываться в NC-программе.
Возможные фрейм-переменные:
• базовый фрейм (базовое смещение)
• настраиваемые фреймы
• программируемые фреймы

 ООО Siemens 2001 Все права защищены.


6-202 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
6 6
09.01 Фреймы

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Связь фрейм-переменная/фрейм
Трансформация координат может быть
активизирована посредством присвоения
значений фрейма фрейм-переменной.

Пример: $P_PFRAME=CTRANS(X,10)

Фрейм-переменная:
$P_PFRAME означает: актуальный
программируемый фрейм.

Фрейм:
CTRANS(X,10) означает: программируемое
смещение нулевой точки X-оси на 10 мм.

Считывание фактических величин


Через заранее определенные переменные в программе
обработки детали могут считываться актуальные
фактические величины систем координат:
$AA_IM[ось] чтение фактической величины в MCS
$AA_IB[ось] чтение фактической величины в BKS
$AA_IBN[ось] чтение фактической величины в BNS
$AA_IEN[ось] чтение фактической величины в ENS
$AA_IW[ось] чтение фактической величины в WCS

Обзор заранее определенных фрейм-


переменных

Z BKS ZBNS
$P_BFRAME
Актуальная базовая фрейм-переменная,
создающая соотношение между базовой
кинематической системой (BKS) базовой
системой нулевой точки (BNS).
X BNS
$P _BF RAM E, $ P_ UBFR

Если описываемый через $P_UBFR базовый X BKS

фрейм должен сразу же становиться активным в


программе, необходимо либо
• запрограммировать G500, G54...G599 или
• описать $P_BFRAME с помощью $P_UBFR,

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 6-203
6 6
Фреймы 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

$P_IFRAME Z ENS

Актуальная, настраиваемая фрейм-переменная,


Z BNS
создающая соотношение между базовой Y
ENS
YBNS
системой нулевой точки (BNS) и настраиваемой
системой нулевой точки (ENS).
$P_IFRAME соответствует $P_UIFR[$P_IFRNUM]

$P_IFRAME включает после программирования, к X


ENS
примеру, G54 определенные через G54
трансляцию, вращение, масштабирование и
отражение. X BNS

$P_PFRAME
Актуальная, программируемая фрейм-
переменная, создающая соотношение между ,
настраиваемой системой нулевой точки (ENS) и
системой координат детали (WCS).

$P_PFRAME включает результирующий фрейм,


получаемый из программирования
TRANS/ATRANS, ROT/AROT, SCALE/ASCALE,
MIRROR/AMIRROR или из присвоения CTRANS,
CROT, CMIRROR, CSCALE программируемому
FRAME.
$P_ACTFRAME
Актуальный, результирующий общий фрейм,
получаемый посредством соединения актуальной
базовой фрейм-переменной $P_BFRAME,
актуальной настраиваемой фрейм-переменной
$P_IFRAME и актуальной программируемой
фрейм-переменной $P_PFRAME.

$P_ACTFRAME описывает актуальную


действительную нулевую точку детали.

Если изменяются $P_IFRAME, $P_BFRAME или


$P_PFRAME, то $P_ACTFRAME вычисляется
заново.

$P_ACTFRAME соответствует
$P_BFRAME:$P_IFRAME:$P_PFRAME

 ООО Siemens 2001 Все права защищены.


6-204 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
6 6
09.01 Фреймы

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Базовый фрейм и настраиваемый фрейм


действуют после Reset, если MD 20110
RESET_MODE_MASK установлен
следующим образом:
Bit0=1, Bit14=1 --> $P_UBFR (базовый
фрейм) действует
Bit0=1, Bit5=1 --> $P_UIFR [$P_UIFRNUM]
(настр. фрейм) действует

Заранее определенные настраиваемые фреймы $P_UBFR


С помощью $P_UBFR программируется базовый фрейм, но он не
становиться одновременно активным в программе обработки
деталей. Написанный с помощью $P_UBFR базовый фрейм
включается, если
• Reset был включен и биты 0 и 14 машинных данных MD
RESET_MODE_MASK установлены,
• операторы G500, G54...G599 были исполнены.

Заранее определенные настраиваемые фреймы $P_UIFR[n]


Через заранее определенную фрейм-переменную $P_UIFR[n]
настраиваемые смещения нулевой точки G54 до G599 могут
считываться или записываться из программы обработки деталей.

Эти переменные представляют собой в структуре одноразмерное


поле типа FRAME с именем $P_UIFR[n].

Подчинение G-командам
Стандартно предварительно установлено 5 настраиваемых
фрейма
$P_UIFR[0]…$P_UIFR[4] или 5 тождественных G-команд – G500
и G54 до G57, по адресам которых могут сохраняться величины.

$P_IFRAME=$P_UIFR[0] соответствует G500


$P_IFRAME=$P_UIFR[1] соответствует G54

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 6-205
6 6
Фреймы 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

$P_IFRAME=$P_UIFR[2] соответствует G55


$P_IFRAME=$P_UIFR[3] соответствует G56
$P_IFRAME=$P_UIFR[4] соответствует G57

Через машинные данные можно изменять количество фреймов:

$P_IFRAME=$P_UIFR[5] соответствует G505


………
$P_IFRAME=$P_UIFR[99] соответствует G599

Благодаря этому может быть создано всего 100 систем координат,


которые, к примеру, могут вызываться в качестве нулевой точки для
различных устройств.

Программирование фрейм-переменных и фреймов требует своего NС-


кадра в NC-программе.
Исключение: программирование настраиваемого фрейма с помощью
G54, G55, …

 ООО Siemens 2001 Все права защищены.


6-206 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
6 6
09.01 Фреймы

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

6.2 Присваивание значений фрейм-переменным/фреймам


В NC-программе может осуществляться прямое
присвоение значений, связывание фреймов или
подчинение одних фреймов другим.

Прямое присвоение значений

Программирование
$P_PFRAME=CTRANS (X, AchПОert, Y, AchПОert, Z, AchПОert, …)
$P_PFRAME=CROT (X, Winkel, Y, Winkel, Z, Winkel, …)
$P_PFRAME=CSCALE (X, Maßstab, Y, Maßstab, Z, Maßstab, …)
$P_PFRAME=CMIRROR (X, Y, Z)
Программирование $P_BFRAME осуществляется
аналогично $P_PFRAME.
Объяснение команд

CTRANS смещение в указанных осях


CROT поворот вокруг указанных осей
CSCALE изменение масштаба в указанных осях
CMIRROR отражение указанной оси

Функция
С помощью этих функций можно напрямую присваивать значения
фреймам и фрейм-переменным в NC-программе.

Выполнение
Может быть последовательно
запрограммировано несколько правил
LE

вычисления.
CA
CS

Пример:
$P_PFRAME=CTRANS(…):CROT(…):CSCALE…
CROT
A NS
CTR
Обратить внимание на то, что команды должны
быть связаны друг с другом связывающим
оператором «двоеточие» (…):(…).
Благодаря этому команды во-первых
связываются друг с другом, а во вторых
аддитивно исполняются в запрограммированной
последовательности.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 6-207
6 6
Фреймы 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Прочие указания
Запрограммированные с помощью названных
команд значений присваиваются фреймам и
сохраняются.

Значения становятся активными лишь после


присвоения фрейму активной фрейм-переменной
$P_BFRAME или $P_PFRAME.

Пример программирования Z 2

Посредством присвоения значений актуальному


программируемому фрейму активизируются Y

трансляция, поворот и отражение.


3
Y
Y

Z X X
1
Y
1 C TR A N S
2 CROT
3 C M IR R O R
X

N10 $P_PFRAME=CTRANS(X,10,Y,20,Z,5):CROT(Z,45):CMIRROR(Y)

 ООО Siemens 2001 Все права защищены.


6-208 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
6 6
09.01 Фреймы

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Чтение и изменение компонентов


фрейма
Программирование (примеры)

R10=$P_UIFR[$P_UIFRNUM, X, RT] Угол поворота RT вокруг X-оси из


актуального действующего
настраиваемого смещения нулевой
точки $P_UIFRNUM должен быть
присвоен переменной R10.

R12=$P_UIFR[25, Z, TR] Величина смещения TR в Z из блока


данных установленного фрейма
Nr. 25 должна быть присвоена
переменной R12.

R15=$P_PFRAME[Y, TR] Величина смещения TR в Y


актуального программируемого
фрейма должна быть присвоена
переменной R15.

$P_PFRAME[X, TR]=25 Величина смещения TR в X


актуального программируемого
фрейма должна быть изменена. Сразу
же действует X25.

Объяснение команд

$P_UIFRNUM С помощью этой переменной автоматически создается


отношение к актуальному действующему настраиваемому
смещению нулевой точки.
P_UIFR[n, …, …] Через указание номера фрейма n осуществляется обращение к
настраиваемому фрейму Nr. n.
Указание компонента, который должен быть считан или изменен:
TR TR Translation, FI Translation Fine, RT Rotation, SC Scale
FI изменение масштаба, MI отражение.
RT Дополнительно (см. примеры) указывается соответствующая ось.
SC
MI

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 6-209
6 6
Фреймы 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Функция
Существует возможность обращения к
отдельным данным фрейма, к примеру, к
определенной величине смещения или углу
поворота.

Эти величины могут изменяться или


присваиваться другой переменной.

Выполнение
Вызов фрейма
Через указание системных переменных
$P_UIFRNUM можно напрямую обращаться к
актуально установленному с помощью $P_UIFR
или G54, G55, … смещению нулевой точки
($P_UIFRNUM содержит номер актуального
установленного фрейма).

Все другие сохраненные настраиваемые фреймы


$P_UIFR вызываются посредством указания
соответствующего номера $P_UIFR[n].

Для заранее определенных фрейм-переменных и


определенных пользователем фреймов
указывается имя, к примеру $P_IFRAME.

Вызов данных
В квадратных скобках стоит имя оси и компонент
фрейма величины, к которой необходимо
обратиться или изменить, к примеру [X, RT]
или [Z, MI].

 ООО Siemens 2001 Все права защищены.


6-210 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
6 6
09.01 Фреймы

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Соединение целых фреймов


Целый фрейм может быть подчинен другому
фрейму.

Программирование (примеры)
DEF FRAME EINSTELLUNG1 Актуальному программируемому
EINSTELLUNG1=CTRANS(X,10) фрейму присваиваются величины
$P_PFRAME=EINSTELLUNG1 фрейма EINSTELLUNG1,
определенного пользователем.
DEF FRAME EINSTELLUNG4
EINSTELLUNG4=$P_PFRAME
Актуальный программируемый фрейм
$P_PFRAME=EINSTELLUNG4
архивируется и при необходимости
снова разархивируется.

Прочие указания
Диапазон значений для поворота RT
Поворот вокруг 1-ой геометрической оси: –180° до +180°
Поворот вокруг 2-ой геометрической оси: –89.999° до +90°
Поворот вокруг 3-ей геометрической оси: –180° до +180°

Цепочки фреймов

Программирование (примеры)
$P_IFRAME=$P_UIFR[15]:$P_UIFR[16] $P_UIFR[15] содержит, к примеру,
данные для смещений нулевой точки.
После этого – дополнительно –
обрабатываются данные из
$P_UIFR[16], к примеру, данные для
вращений.
$P_UIFR[3]=$P_UIFR[4]:$P_UIFR[5]
Настраиваемый фрейм 3 создается
связыванием настраиваемых фреймов
4 и 5.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 6-211
6 6
Фреймы 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Функция
Цепочки фреймов подходят, к примеру, для Z
Y
описания нескольких деталей, расположенных на
одной палетте, и которые должны
обрабатываться в одном технологическом G54

процессе.
X

Выполнение
Фреймы связываются друг с другом в
запрограммированной последовательности,
компоненты фрейма (смещения, повороты и т.п.)
последовательно исполняются.

Для описание задач палетт компоненты фрейма


могут содержать, к примеру, только
определенные отдельные величины, через
соединение которых создаются различные
нулевые точки детали.

Обратить внимание на то, что фреймы должны


быть соединены друг с другом связывающим
оператором «двоеточие» :.

 ООО Siemens 2001 Все права защищены.


6-212 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
6 6
09.01 Фреймы

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Определение новых фреймов

Программирование
DEF FRAME PALETTE 1

PALETTE1=CTRANS(…):CROT(…)…

Функция
Наряду с уже описанными заранее
определенными, настраиваемыми фреймами
существует возможность создавать новые
фреймы.
Здесь речь идет о переменной типа FRAME,
которая определяется присвоением любого
имени.

Выполнение
С помощью функций CTRANS, CROT, CSCALE и
CMIRROR фреймам в NC-программе можно
присваивать значения.
Более подробная информация на предыдущих
страницах.

Определение поворотов фрейма

Функция
Определение специфических пользовательских ориентаций
в пространстве осуществляется через повороты фрейма:
• ROT: одиночные повороты для всех геометрических
осей
• ROTS, AROTS, CROTS: поворот через указание
пространственного угла (максимум 2); см. описание в
/FB1/ K2: Системы координат.
• TOFRAME: поворот через фрейм "TOFRAME“, Z-ось
которого показывает в направлении инструмента.
• TOROT: поворот через фрейм "TOROT", который
переписывает только сегмент поворота уже
запрограммированных фреймов.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 6-213
6 6
Фреймы 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

6.3 Грубое и точное смещение


Функция
Точное смещение
С помощью команды CFINE(X, ..,Y, ...)
можно запрограммировать точное смещение
базового фрейма и всех настраиваемых
фреймов.

Грубое смещение
С помощью CTRANS(...) определяется грубое
смещение.

Грубое и точное смещение суммируются в общее


смещение.

Программирование
$P_UBFR=CTRANS(x, 10) : CFINE(x, 0.1) : CROT(x, 45) ;связь смещения,
точного смещения и поворота
$P_UIFR[1]=CFINE(x, 0.5, y, 1.0, z, 0.1) ;весь фрейм переписывается с
помощью CFINE вкл. грубое
смещение

Доступ к отдельным компонентам точного


смещения осуществляется через указание
компонентов FI.

Программирование
DEF REAL FINEX ;определение переменной FINEX
FINEX=$P_UIFR[$P_UIFRNUM, x, FI] ;считывание точного смещения через
переменную FINEX
FINEX=$P_UIFR[3, X, FI] ;считывание точного смещения X-оси в третьем фрейме через
переменную FINEX

Точное смещение может быть осуществлено,


только если машинные данные MD18600:
MM_FRAME_FINE_TRANS=1.
Измененное через управление точное смещение
становится активным только после активизации
соответствующего фрейма, т.е активизация
осуществляется через G500, G54...G599.
Активизированное точное смещение остается
активным, пока активен фрейм.

 ООО Siemens 2001 Все права защищены.


6-214 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
6 6
09.01 Фреймы

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Программируемый фрейм не имеет доли точного


смещения. Если программируемому фрейму
присваивается фрейм с точным смещением, то
его общее смещение образуется из суммы
грубого и точного смещения. При чтении
программируемого фрейма точное смещение
всегда равно нулю.
Изготовитель станка
От ПО 5
С помощью машинных данных MD18600
MM_FRAME_FINE_TRANS могут быть
осуществлены следующие варианты
проектирования точного смещения:
0: Точное смещение не может быть задано или
запрограммировано. G58 и G59 невозможны.
1: Точное смещение для настраиваемых
фреймов, базовых фреймов, программируемых
фреймов, G58 и G59 могут быть заданы или
запрограммированы.

6.4 DRF-смещение
Смещение с помощью маховика, DRF
В дополнение ко всем рассмотренным в этой
главе смещениям смещения нулевой точки могут
устанавливаться с помощью маховика (DRF-
смещения).

DRF-смещение действует в базовой


кинематической системе. Связи см. рисунок.

Более подробную информацию см. руководство


по эксплуатации.

Стирание DRF-смещения, DRFOF


С помощью DRFOF стирается смещение с
помощью маховика для всех подчиненных каналу
осей. DRFOF находится в своем NC-кадре.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 6-215
6 6
Фреймы 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

6.5 Внешнее смещение нулевой точки


Внешнее смещение нулевой точки
Благодаря этому имеется дополнительная
возможность смещения нулевой точки между
базовой кинематической системой и системой
координат детали.

Для внешнего смещения нулевой точки могут


быть запрограммированы только линейные
смещения.

Программирование значений смещения,


$AA_ETRANS
Программирование осуществляется через
загрузку специфических осевых системных
переменных.

Присвоение значения смещения


$AA_ETRANS[Achse]=RI

RI это R-переменная типа REAL, которая


получает новое значение.

Внешнее смещение, как правило, указывается не


в программе обработки деталей, а
устанавливается PLC.

Записанная в программе обработки деталей


величина становится активной лишь после
установления на VDI-интерфейсе (NCU-PLC-
интерфейс) соответствующего сигнала.

 ООО Siemens 2001 Все права защищены.


6-216 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
6 6
09.01 Фреймы

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

6.6 Программирование Preset-смещения, PRESETON


Программирование
PRESETON(ACHSE,WERT,…)

Объяснение команд

PRESETON установка фактической величины


Achse указание оси станка
Wert новая фактическая величина, которая должна действовать для
указанной оси

Функция
В особых случаях требуется присвоение одной
или нескольким осям в актуальной позиции (при
остановке) новой, запрограммированной
фактической величины.

Выполнение
Присвоение фактических величин
осуществляется в системе координат станка –
величины относятся к осям станка.

Пример:
N10 G0 A760
N20 PRESETON(A1,60)

Ось A движется к позиции 760. Ось станка A1


получает в позиции 760 новую фактическую
величину 60.
С этого момента позиционирование
осуществляется в новой системе фактических
величин.

С помощью функции PRESETON референтная точка становится недействительной.


Поэтому данная функция должна использоваться только для осей без обязательной
референтной точки. Для восстановления первичной системы необходимо с помощью
G74 переместиться к референтным точкам – см. главу 3.1.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 6-217
6 6
Фреймы 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

6.7 Деактивизация фреймов


Объяснение команд

DRFOF Выключение (стирание) смещений с помощью маховика (DRF)


G53 Покадровое выключение программируемых и всех настраиваемых
фреймов
G153 Покадровое выключение программируемых, базовых и всех
настраиваемых фреймов
SUPA Покадровое выключение программируемых, базовых, всех
настраиваемых фреймов и смещений с помощью маховика (DRF)

Прочие указания
Программируемые фреймы стираются
присвоением «нулевого фрейма» (без указания
оси) программируемому фрейму.
Пример:
$P_PFRAME=TRANS( )
$P_PFRAME=ROT( )
$P_PFRAME=SCALE( )
$P_PFRAME=MIRROR( )

 ООО Siemens 2001 Все права защищены.


6-218 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
6 6
09.01 Фреймы

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

6.8 Вычисление фрейма из трех точек измерения в пространстве, MEAFRAME

MEAFRAME это расширение языка 840D для


поддержки циклов измерения.
Эта функций имеется от ПО 4.3

Функций
Если деталь позиционируется для обработки, то ее
позиция и смещена, и повернута относительно
декартовой системы координат станка
относительно ее идеальной позиции.
Для точной обработки или измерения необходима
либо дорогостоящая физическая юстировка, либо
изменение движений в программе обработки
деталей.
Посредством зондирования трех точек в
пространстве может быть определен фрейм,
идеальные позиции которого известны.
Зондирование осуществляется с помощью
контактного или оптического сенсора, который
касается специальных, точно зафиксированных на
несущей плите отверстий или измерительных
шариков.
Функция MEAFRAME вычисляет фрейм из трех
идеальных и соответствующих измеренных точек.
Чтобы измеренные координаты могли быть
подчинены идеальным координатам с
комбинированным вращением/трансляцией,
образуемый точками измерения треугольник
должен быть конгруэнтен идеальному треугольнику.
Это осуществляется алгоритмом компенсации,
который минимизирует сумму квадратов
отклонений, которые преобразуют измеренный в
идеальный треугольник.
Эффективное необходимое искажение точек
измерения может служить индикатором качества
измерения и выдается как дополнительная
переменная MEAFRAME.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 6-219
6 6
Фреймы 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Программирование

MEAFRAME(IDEAL_POINT,MEAS_POINT,FIT_QUALITY)

Объяснение команд

MEAFRAME Вычисление фрейма из трех точек измерения в пространстве


IDEAL_POINT 2-х размерное Real-поле, включающее три координаты идеальных
точек
MEAS_POINT 2-х размерное Real-поле, включающее три координаты измеренных
точек
FIT_QUALITY Real-переменная, с помощью которой возвращается следующая
информация:
-1: Идеальные точки лежат практически на одной прямой: Фрейм
не может быть вычислен. Возвращаемая фрейм-переменная
содержит нейтральный фрейм.
-2: Точки измерения точки лежат практически на одной прямой:
Фрейм не может быть вычислен. Возвращаемая фрейм-
переменная содержит нейтральный фрейм.
-4: Вычисление матрицы вращения не удается по другим
причинам
положительная величина:
Сумма искажений (расстояния между точками), необходимая
для преобразования измеренного треугольника в
конгруэнтный идеальному треугольник.

Пример использования

; Программа обработки детали 1


;
DEF FRAME CORR_FRAME
;
; установка точек измерения
DEF REAL IDEAL_POINT[3,3] = SET(10.0,0.0,0.0, 0.0,10.0,0.0, 0.0,0.0,10.0)
DEF REAL MEAS_POINT[3,3] = SET(10.1,0.2,-0.2, -0.2,10.2,0.1, -0.2,0.2, 9.8); для теста
DEF REAL FIT_QUALITY = 0
;
o
DEF REAL ROT_FRAME_LIMIT = 5; разрешает поворот позиции детали макс. на 5
DEF REAL FIT_QUALITY_LIMIT = 3; разрешает макс. 3 mm смещения между идеальным ;
и измеренным треугольником
DEF REAL SHOW_MCS_POS1[3]
DEF REAL SHOW_MCS_POS2[3]
DEF REAL SHOW_MCS_POS3[3]
; =======================================================

 ООО Siemens 2001 Все права защищены.


6-220 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
6 6
09.01 Фреймы

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

;
N100 G01 G90 F5000
N110 X0 Y0 Z0
;
N200 CORR_FRAME=MEAFRAME(IDEAL_POINT,MEAS_POINT,FIT_QUALITY)
;
N230 IF FIT_QUALITY < 0
SETAL(65000)
GOTOF NO_FRAME
ENDIF
,
N240 IF FIT_QUALITY > FIT_QUALITY_LIMIT
SETAL(65010)
GOTOF NO_FRAME
ENDIF
;
N250 IF CORR_FRAME[X,RT] > ROT_FRAME_LIMIT; ограничение 1-ого RPY-угла
SETAL(65020)
GOTOF NO_FRAME
ENDIF
;
N260 IF CORR_FRAME[Y,RT] > ROT_FRAME_LIMIT; ограничение 2-ого RPY-угла
SETAL(65021)
GOTOF NO_FRAME
ENDIF
;
N270 IF CORR_FRAME[Z,RT] > ROT_FRAME_LIMIT; ограничение 3-ого RPY-угла
SETAL(65022)
GOTOF NO_FRAME
ENDIF
;
N300 $P_IFRAME=CORR_FRAME; Активизировать фрейм зондирования с помощью
устанавливаемого фрейма
;
; проверить фрейм посредством позиционирования геометрических осей на идеальные точки
;
N400 X=IDEAL_POINT[0,0] Y=IDEAL_POINT[0,1] Z=IDEAL_POINT[0,2]
N410 SHOW_MCS_POS1[0]=$AA_IM[X]
N420 SHOW_MCS_POS1[1]=$AA_IM[Y]
N430 SHOW_MCS_POS1[2]=$AA_IM[Z]
;
N500 X=IDEAL_POINT[1,0] Y=IDEAL_POINT[1,1] Z=IDEAL_POINT[1,2]
N510 SHOW_MCS_POS2[0]=$AA_IM[X]
N520 SHOW_MCS_POS2[1]=$AA_IM[Y]
N530 SHOW_MCS_POS2[2]=$AA_IM[Z]
;
N600 X=IDEAL_POINT[2,0] Y=IDEAL_POINT[2,1] Z=IDEAL_POINT[2,2]
N610 SHOW_MCS_POS3[0]=$AA_IM[X]
N620 SHOW_MCS_POS3[1]=$AA_IM[Y]

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 6-221
6 6
Фреймы 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

N630 SHOW_MCS_POS3[2]=$AA_IM[Z]
;
N700 G500; деактивизировать устанавливаемый фрейм, так как предварительно загружен
нулевой фрейм (величина не задана)
;
NO_FRAME:
M0
M30

6.9 Глобальные фреймы ЧПУ (от ПО 5)

Функция
Глобальные фреймы ЧПУ представлены в ЧПУ только
один раз для всех каналов. Глобальные фреймы ЧПУ
могут записываться и считываться из всех каналов.
Активизация глобальных фреймов ЧПУ
осуществляется в соответствующем канале.
Через глобальные фреймы могут масштабироваться
и отражаться оси каналов и оси станков со
смещениями.
Для глобальных фреймов не существует
геометрической связи между осями. Поэтому не
могут осуществляться повороты и
программирование идентификаторов
геометрических осей.

• К глобальным фреймам не могут применяться


вращения. Программирование вращения
отклоняется с тревогой: "18310 канал %1 кадр %2
фрейм: вращение не допускается".
• Связывание глобальных фреймов и
специфических фреймов для канала возможно.
Результирующий фрейм содержит все компоненты
фрейма включая вращения для всех осей.
Распределение фрейма с компонентами вращения
на глобальный фрейм отклоняется с тревогой
"Фрейм: Вращение не допускается".

Базовые глобальные фреймы ЧПУ: $P_NCBFR[n]


Может быть спроектировано до 8 базовых
глобальных фреймов ЧПУ.

 ООО Siemens 2001 Все права защищены.


6-222 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
6 6
09.01 Фреймы

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Изготовитель станка

Глобальные фреймы могут записываться и


считываться всеми каналами ЧПУ. При записи
глобальных фреймов пользователь должен
обеспечить координация канала. Это может быть
реализовано, к примеру, через Wait-метки
(WAITMC).

Глобальные настраиваемые фреймы ЧПУ:


$P_UIFR[n]
Все настраиваемые фреймы G500, G54...G599 могут
проектироваться либо глобальными для ЧПУ, либо
специфическими для канала.
Изготовитель станка
Все настраиваемые фреймы с помощью машинных
данных MD 18601
MM_NUM_GLOBAL_USER_FRAMES могут быть
перепроектированы в глобальные фреймы.
См. /FB/ K2, оси, коорд., фреймы.
В качестве идентификаторов осей для программных
команд фрейма могут использоваться
идентификаторы оси канала и идентификаторы оси
станка. Программирование идентификаторов
геометрических осей отклоняется с тревогой.

6.9.1 Фреймы, специфические для канала


Функция
Через машинные данные MD28081 MM_NUM_BASE_FRAMES
может проектироваться количество базовых фреймов в канале.
Стандартная конфигурация рассчитана таким образом, что
существует минимум один базовый фрейм на канал. Возможно
макс. 8 базовых фреймов на канал. Дополнительно к 8 базовым
фреймам в канале может быть еще 8 глобальных базовых фреймов
ЧПУ.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 6-223
6 6
Фреймы 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Настраиваемые фреймы или базовые фреймы


• через программу обработки деталей и
• через BTSS (станочный пульт)
могут считываться и записываться ЧПУ и PLC.
Точное смещение также возможно для глобальных фреймов.
Подавление глобальных фреймов осуществляется так же, как и для
специфических фреймов канала через G53, G153, SUPA и G500.

$P_CHBFR[n]
Через системную переменную $P_CHBFR[n] базовые фреймы
могут считываться и записываться. При записи базового фрейма
связанный общий базовый фрейм не активизируется, а
активизация осуществляется только при исполнении оператора
G500, G54..G599. Переменная служит прежде всего в качестве
памяти для процессов записи на базовый фрейм MMC или PLC.
Эти фрейм-переменные сохраняются через сохранение данных.

Первый базовый фрейм в канале


Запись на заранее определенную переменную $P_UBFR
активизирует базовый фрейм с индексом поля 0 не сразу же, а
активизация осуществляется лишь при выполнении одного из
операторов G500, G54..G599. Переменная может записываться и
считываться в программе.

$P_UBFR
$P_UBFR идентична $P_CHBFR[0].
Стандартно в канале всегда имеется один базовый фрейм, таким
образом, системная переменная совместима со старыми
версиями. Если отсутствует базовый фрейм, специфический для
канала, то при записи или чтении выводится тревога "Фрейм:
недопустимый оператор".

 ООО Siemens 2001 Все права защищены.


6-224 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
6 6
09.01 Фреймы

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

6.9.2 Действующие в канале фреймы


Функция
От ПО 6.1
Актуальные системные фреймы для
$P_SETFRAME установки фактической величины и
режима касания,
$P_EXTFRAME внешнего смещения нулевой точки,
$P_PARTFRAME TCARR и PAROT
Через эти системные переменные в программе
обработки деталей могут считываться и записываться
актуальные системные фреймы.

$P_NCBFRAME[n]
Актуальные глобальный базовые фреймы
ЧПУ
Через системную переменную $P_NCBFRAME[n]
могут считываться и записываться актуальные
глобальные элементы поля базового фрейма.
Результирующий общий базовый фрейм через
процесс записи зачисляется в канале.
Измененный фрейм становится активным только
в канале, где фрейм был запрограммирован.
Если фрейм должен быть изменен для всех
каналов ЧПУ, то одновременно должны быть
описаны $P_NCBFR[n] и $P_NCBFRAME[n].
Другие каналы в этом случае должны
активизировать фрейм с помощью, к примеру,
G54. При записи базового фрейма общий
базовый фрейм вычисляется заново.

$P_CHBFRAME[n]
Актуальные базовые фреймы канала
Через системную переменную $P_CHBFRAME[n]
могут считываться и записываться актуальные
элементы поля базового фрейма канала.
Результирующий общий базовый фрейм через
процесс записи зачисляется в канале. При
записи базового фрейма общий базовый фрейм
вычисляется заново.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 6-225
6 6
Фреймы 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

$P_BFRAME

$P_BFRAME идентична $P_CHBFRAME[0].


Системная переменная стандартно всегда имеет
действительную величину. Если отсутствует
базовый фрейм, специфический для канала, то
при записи или чтении выводится тревога
"Фрейм: недопустимый оператор".
$P_ACTBFRAME
Общий базовый фрейм
Переменная $P_ACTBFRAME вычисляет
связанный общий базовый фрейм. Переменная
может только считываться.
$P_ACTBFRAME соответствует
$P_NCBFRAME[0] : ... : $P_NCBFRAME[n] :
$P_CHBFRAME[0] : ... : $P_CHBFRAME[n].

$P_CHBFRMASK и $P_NCBFRMASK
Общий базовый фрейм
Через системную переменную $P_CHBFRMASK и
$P_NCBFRMASK пользователь может выбирать,
какие из базовых фреймов он хотел бы
использовать при вычислении «общего» базового

 ООО Siemens 2001 Все права защищены.


6-226 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
6 6
09.01 Фреймы

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

фрейма. Переменные могут программироваться


только в программе и считываться через BTSS.
Значение переменных интерпретируется как
битовая маска и указывает, какой элемент поля
базового фрейма $P_ACTBFAME вставляется в
расчет.
С помощью $P_CHBFRMASK может быть задано,
какие специфические для канала базовые фреймы,
а с помощью $P_NCBFRMASK, какие глобальные
базовые фреймы ЧПУ будут учитываться.
С помощью программирования переменных заново
вычисляется общий базовый фрейм и общий
фрейм. После Reset и в исходной установке это
величина
$P_CHBFRMASK = $MC_CHBFRAME_RESET_MASK и
$P_NCBFRMASK = $MN_NCBFRAME_RESET_MASK.
к примеру,
$P_NCBFRMASK = 'H81' ; $P_NCBFRAME[0] : $P_NCBFRAME[7]
$P_CHBFRMASK = 'H11' ; $P_CHBFRAME[0] : $P_CHBFRAME[4]

$P_IFRAME
Актуальный настраиваемый фрейм
Через заранее определенную фрейм-
переменную $P_IFRAME актуальный
настраиваемый фрейм, действующий в канале,
считываться и записываться в программе
обработки деталей. Записанный настраиваемый
фрейм сразу же зачисляется.
У глобальных настраиваемых фреймов ЧПУ
измененный фрейм действует только в канале, в
котором фрейм был запрограммирован. Если
фрейм должен быть изменен для всех каналов
ЧПУ, то необходимо одновременно описать
$P_UIFR[n] и $P_IFRAME. Другие каналы после
должны активизировать соответствующий фрейм
с помощью, к примеру, G54.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 6-227
6 6
Фреймы 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

От ПО 6.1
Актуальные системные фреймы для
$P_TOOLFRAME TOROT и TOFRAME
От ПО 6.3
$P_WPFRAME точки ограничения детали
Через эти системные переменные в программе
обработки деталей может считываться и
записываться актуальный системный фрейм.

$P_PFRAME
Актуальный программируемый фрейм
$P_PFRAME это программируемый фрейм,
получаемый из программирования
TRANS/ATRANS, G58/G59, ROT/AROT,
SCALE/ASCALE, MIRROR/AMIRROR или из
подчинения CTRANS, CROT, CMIRROR, CSCALE
программируемому FRAME.
Актуальная, программируемая фрейм-
переменная, создающая соотношение между
настраиваемой системой нулевой точки (ENS) и
системой координат детали (WCS).

От ПО 6.3
Актуальный системный фрейм для циклов
$P_CYCFRAME
Через эту системную переменную в программе
обработки деталей может считываться и
записываться актуальный системный фрейм.

$P_ACTFRAME
Актуальный общий фрейм
Актуальный результирующий общий фрейм
$P_ACTFRAME получается из соединения всех
базовых фреймов, актуального настраиваемого
фрейма и программируемого фрейма.
Актуальный фрейм всегда актуализируется при
изменении одного из компонентов фрейма.

$P_ACTFRAME соответствует от ПО 6.3


$P_SETFRAME : $P_EXTFRAME : $P_PARTFRAME : $P_ACTBFRAME :
$P_IFRAME : $P_TOOLFRAME : $P_WPFRAME : $P_PFRAME : $P_CYCFRAME

 ООО Siemens 2001 Все права защищены.


6-228 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
6 6
09.01 Фреймы

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Организация фрейма
Актуальный фрейм состоит из общего базового
фрейма, настраиваемого фрейма, системного
фрейма и программируемого фрейма согласно
указанному выше актуальному общему фрейму.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 6-229
6 6
Фреймы 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Для заметок

 ООО Siemens 2001 Все права защищены.


6-230 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

Трансформации

7.1 Трех-, четырех- и пятиосевая трансформация: TRAORI ......................................... 7-232


7.1.1 Программирование ориентации инструмента..................................................... 7-235
7.1.2 Соотношение осей ориентации - ORIWKS, ORIMKS ......................................... 7-240
7.1.3 Сингулярные позиции и их обработка ................................................................. 7-241
7.1.4 Оси ориентации (от ПО 5.2).................................................................................. 7-242
7.1.5 Декартово PTP-перемещение (от ПО 5.2)........................................................... 7-245

7.2 Фрезерная обработка токарных деталей: TRANSMIT.............................................. 7-250

7.3 Трансформация боковой поверхности цилиндра: TRACYL..................................... 7-253

7.4 Наклонная ось: TRAANG............................................................................................. 7-259


7.4.1 Программирование наклонной оси: G05, G07 (от ПО 5.3) ................................. 7-263

7.5 Граничные условия при выборе трансформации ..................................................... 7-265

7.6 Отключение трансформации: TRAFOOF .................................................................. 7-267

7.7 Связанные трансформации........................................................................................ 7-268

7.8 Переключаемые геометрические оси, GEOAX ......................................................... 7-271

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-231
7 7
Трансформации 09.01

840D 840Di
NCU 572
NCU 573

7.1 Трех-, четырех- и пятиосевая трансформация: TRAORI


Для обеспечения оптимального режима резания
при обработке пространственно искривленных
плоскостей угол установки инструмента должен
быть изменяемым.

С помощью какой конструкции станка это


достигается, зафиксировано в осевых данных.

Карданная инструментальная головка


Здесь три линейные оси (X, Y, Z) и две оси
ориентации определяют угол установки
инструмента. Одна из двух осей ориентации
устанавливается как наклонная ось, здесь в
примере A' – во многих случаях как установка
45°.

Осевая последовательность осей ориентации и


направление ориентации инструмента
устанавливаются в зависимости от кинематики
станка через машинные данные. На
изображенных здесь примерах расположения
представлены на примере кинематики станка CA!

 ООО Siemens 2001 Все права защищены.


7-232 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 840Di
NCU 572
NCU 573

Действуют следующие возможные связи:


A' лежит под углом ϕ к X-оси
B' лежит под углом ϕ к X-оси
C' лежит под углом ϕ к X-оси

Угол ϕ может проектироваться в диапазоне 0° до


+89° через машинные данные.

В зависимости от выбранного направления


ориентации инструмента активная рабочая
плоскость (G17, G18, G19) должна быть
установлена в NC-программе таким образом,
чтобы продольная коррекция инструмента
действовала в направлении ориентации
инструмента.

Трансформация с поворотной линейной осью


Здесь речь идет о схеме с подвижной деталью и
подвижным инструментом. Z
Кинематика состоит из трех линейных осей
(X, Y, Z) и двух расположенных под прямым A
углом осей вращения. Первая круговая ось, к
примеру, приводится в движение через крестовой B Y
суппорт двумя линейными осями, инструмент
расположен параллельно третьей линейной оси.
Вторая ось вращения поворачивает деталь. X
Третья линейная ось (ось качания) находится на
уровне крестового суппорта.

Осевая последовательность поворотных осей и


направление ориентации инструмента
устанавливается в зависимости от кинематики
станка через машинные данные.

Действуют следующие возможные связи:

Оси: Осевые последовательности:


1. Круговая ось A A B B C C
2. Круговая ось B C A C A B
Поворотная линейная ось Z Y Z X Y X

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-233
7 7
Трансформации 09.01

840D 840Di
NCU 572
NCU 573

3- х и 4-х осевые трансформации

Программирование
TRAORI(n)
TRAFOOF

Объяснение команд

TRAORI Активизирует первую согласованную трансформацию ориентации


TRAORI(n) Активизирует согласованную с помощью n трансформацию
ориентации
n Номер трансформации (n = 1 или 2), TRAORI(1) соответствует
TRAORI
TRAFOOF Выключить трансформацию

Прочие указания
После включения трансформации данные
позиции (X, Y, Z) всегда относятся к острию
инструмента.

Изменение позиций участвующих в


трансформации круговых осей приводит к таким
компенсационным движениям других осей
станка, что позиция острия инструмента остается
неизменной.

 ООО Siemens 2001 Все права защищены.


7-234 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 840Di
NCU 572
NCU 573

7.1.1 Программирование ориентации инструмента

Как правило, 5-ти осевые программы создаются


CAD/CAM-системами и не задаются на СЧПУ.
Поэтому следующие объяснения относятся
прежде всего к программистам постпроцессоров.

Для программирования ориентации инструмента


имеется 3 возможности:

1. Программирование движения круговых осей.


Изменение ориентации всегда
осуществляется в базовой кинематической
системе или в системе координат станка. Оси
ориентации перемещаются как синхронные
оси.

2. Программирование эйлеровых углов или RPY-


углов через A2, B2, C2
или
программирование вектора направления
через A3, B3, C3. Вектор направления
направлен от острия инструмента в сторону
крепления инструмента.

3. Программирование через угол предварения


LEAD и
боковой угол TILT (торцовое фрезерование).

Во всех случаях программирование ориентации


допускается только при включенной
трансформации ориентации.

Преимущество: Эти программы могут


применяться к любой кинематике станка.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-235
7 7
Трансформации 09.01

840D 840Di
NCU 572
NCU 573

Программирование

G1 X Y Z A B C Программирование движения круговых осей


G1 X Y Z A2= B2= C2= Программирование эйлеровых углов
G1 X Y Z A3= B3= C3= Программирование вектора направления
G1 X Y Z A4= B4= C4= Программирование вектора нормалей плоскостей
в начале кадра
G1 X Y Z A5= B5= C5= Программирование вектора нормалей плоскостей
в конце кадра
LEAD Угол предварения для программирования
ориентации инструмента
TILT Боковой угол для программирования ориентации
инструмента

Через машинные данные можно переключаться


между эйлеровыми и RPY-углами.

Программирование в эйлеровых углах


Запрограммированные при программировании
ориентации с помощью A2, B2, C2 величины
интерпретируются как эйлеровы углы (в
градусах).

Для получения вектора ориентации сначала


вектор в Z-направлении с помощью А2
поворачивается вокруг Z-оси, потом с помощью
В2 вокруг новой Х-оси и в завершении с помощью
С2 вокруг новой Z-оси.

В этом случае значение C2 (вращение вокруг


новой Z-оси) не имеет значения и не должно
программироваться.

 ООО Siemens 2001 Все права защищены.


7-236 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 840Di
NCU 572
NCU 573

Программирование в RPY-углах
Запрограммированные при программировании
ориентации с помощью A2, B2, C2 величины
интерпретируются как RPY-углы (в градусах).

Для получения вектора ориентации сначала


вектор в Z-направлении с помощью С2
поворачивается вокруг Z-оси, потом с помощью
В2 вокруг новой Y-оси и в завершении с помощью
A2 вокруг новой Х-оси..

В отличии от программирования эйлеровых углов


здесь все три значения влияют на вектор
ориентации.

Программирование вектора направления


Компоненты вектора направления
программируются с помощью A3, B3, C3. Вектор
показывает в направлении крепления
инструмента; длина вектора при этом не имеет
значения.

Не запрограммированные компоненты вектора


устанавливается равными нулю.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-237
7 7
Трансформации 09.01

840D 840Di
NCU 572
NCU 573

Торцовое фрезерование
Торцовое фрезерование служит для обработки
поверхностей с любым искривлением.

Для этого вида 3D-фрезы необходимо


построчное описание 3D-траекторий на
поверхности детали.
Вычисления осуществляются с учетом формы
инструмента и размеров инструмента – обычно в
CAM.
Готовые вычисленные NC-кадры после через
постпроцессоры считываются в СЧПУ.

Описание плоскостей
Описание изгиба траектории осуществляется
через векторы нормалей плоскостей со
следующими компонентами:
A4, B4, C4 стартовый вектор в начале кадра
A5, B5, C5 конечный вектор в конце кадра

Если в кадре находится только стартовый вектор,


то вектор нормалей плоскостей остается
постоянным на всем кадре. A4
B4
C4 A5
Если в кадре находится только конечный вектор, B5
то осуществляется интерполяция от конечной C5
величины предыдущего кадра через большую
круговую интерполяцию к запрограммированной
конечной величине.

Если запрограммированы стартовый и конечный


векторы, то интерполяция между двумя
направлениями также осуществляется через
большую круговую интерполяцию. Благодаря
этому могут создаваться постоянно ровные пути
траектории.

В исходном положении векторы нормалей


плоскостей показывают – независимо от
активной плоскости G17 до G19 – в Z-
направлении.

 ООО Siemens 2001 Все права защищены.


7-238 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 840Di
NCU 572
NCU 573

Длина вектора не имеет значения.

Не запрограммированные компоненты вектора


устанавливаются на ноль.
При активном ORIWKS (см. следующие
страницы) векторы нормалей плоскостей
относятся к активному фрейму и вращаются при
вращении фрейма.

Вектор нормалей плоскостей должен находится


внутри устанавливаемой через машинные
данные предельной величины вертикально к
касательной к траектории, в ином случае
сигнализируется тревога.

Программирование ориентации инструмента с


помощью LEAD и TILT
Результирующая ориентация инструмента
получается из:
− касательной к траектории,
− вектора нормалей плоскостей
− угла предварения LEAD
− бокового угла TILT на конце кадра

Объяснение команд

LEAD угол относительно вектора нормалей плоскостей, в плоскости,


образованной касательной к траектории и вектором нормалей
плоскостей
TILT угол в плоскости, вертикально к касательной к траектории
относительно вектора нормалей плоскостей

Поведение при внутренних углах (для 3D-


WZK)
Если кадр укорачивается на внутреннем угле, то
результирующая ориентация инструмента также
достигается на конце кадра.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-239
7 7
Трансформации 09.01

840D 840Di
NCU 572
NCU 573

7.1.2 Соотношение осей ориентации - ORIWKS, ORIMKS


Программирование
N.. ORIMKS
или
N.. ORIWKS

Объяснение команд

ORIMKS вращение в системе координат станка


ORIWKS вращение в системе координат детали

Функция
При программировании ориентации в системе
координат детали через эйлеров или RPY-угол
или вектор ориентации можно установить ход
вращательного движения через
ORIMKS/ORIWKS.

Выполнение
У ORIMKS выполненное движение инструмента
зависит от кинематики станка. При изменении
ориентации с фиксированным в пространстве
острием инструмента осуществляется линейная
интерполяция между позициями круговых осей.

У ORIWKS движение инструмента не зависит от


кинематики станка. При изменении ориентации с
фиксированным в пространстве острием
инструмента инструмент движется в плоскости,
образованной начальным и конечным вектором.

 ООО Siemens 2001 Все права защищены.


7-240 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 840Di
NCU 572
NCU 573

Прочие указания
ORIWKS является первичной установкой. Если в
случае 5-ти осевой программы изначально не ясно,
на каком станке она будет выполняться, то всегда
выбирается ORIWKS. Какие движения выполняет
станок в действительности, зависит от его
кинематики.

С помощью ORIMKS можно программировать


фактические движения станка с тем, чтобы, к
примеру, избежать столкновения с устройствами и
т.п.

С помощью машинных данных


$MC_ORI_IPO_WITH_G_CODE определяется,
какой вид интерполяции является действующим:
ORIMKS/ORIWKS или ORIMACHAX/ORIVIRTAX (см.
главу 7.1.4).

7.1.3 Сингулярные позиции и их обработка


Указания по ORIWKS:

Движения по ориентации в диапазоне сингулярной позиции 5-ти


осевого станка требуют большой подвижности осей станка (к
примеру, у поворотной токарной головки с C в качестве оси
вращения и A в качестве оси качаний все позиции с A = 0
являются сингулярными.)

Для того, чтобы не перегружать оси станка, система управления


скоростью значительно уменьшает скорость траектории вблизи
сингулярных позиций.

С помощью машинных данных


$MC_TRAFO5_NON_POLE_LIMIT
$MC_TRAFO5_POLE_LIMIT
трансформация может быть запараметрирована таким образом,
что движения ориентации вблизи полюса проходят через полюс и
возможна быстрая обработка.
Указание по ПО 5.2:

От ПО5.2 сингулярные позиции обрабатываются только с


помощью машинных данных $MC_TRAFO5_POLE_LIMIT
(см. функциональное описание, часть 3, абзац 2.8.4).

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-241
7 7
Трансформации 09.01

840D 840Di
NCU 572
NCU 573

7.1.4 Оси ориентации (от ПО 5.2)


Программирование
N.. ORIEULER или ORIRPY
или
N.. ORIVIRT1 или ORIVIRT2
N.. G1 X Y Z A2= B2= C2=

Объяснение команд

ORIEULER Программирование ориентации через эйлеровы углы


ORIRPY Программирование ориентации через RPY-углы
ORIVIRT1 Программирование ориентации через виртуальные оси
ориентации (определение 1), установка по машинным
данным $MC_ORIAX_TURN_TAB_1
ORIVIRT2 Программирование ориентации через виртуальные оси
ориентации (определение 2), установка по машинным
данным MD $MC_ORIAX_TURN_TAB_2
G1 X Y Z A2= B2= C2= Программирование углов виртуальных осей

Программирование
N.. ORIAXES или ORIVECT
N.. G1 X Y Z A B C

Объяснение команд

ORIAXES Линейная интерполяция осей ориентации


ORIVECT Большая круговая интерполяция
ORIMKS Вращение в системе координат станка
Описание см. главу 7.1.2
ORIWKS Вращение в системе координат детали
Описание см. главу 7.1.2
G1 X Y Z A B C Программирование позиции оси станка

Функция
Функция осей ориентации описывает ориентацию инструмента в
пространстве. Таким образом, вводится следующая третья
степень свободы, описывающая вращение вокруг самой себя. Это
необходимо для 6-ти осевых трансформаций.

 ООО Siemens 2001 Все права защищены.


7-242 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 840Di
NCU 572
NCU 573

С помощью машинных данных


$MC_ORI_DEF_WITH_G_CODE устанавливается, как
определяются запрограммированные углы A2, B2, C2:
Определение осуществляется по машинным данным
$MC_ORIENTATION_IS_EULER (стандарт) или
определение осуществляется по G_группы 50
(ORIEULER, ORIRPY, ORIVIRT1, ORIVIRT2).

С помощью машинных данных


$MC_ORI_IPO_WITH_G_CODE устанавливается, какой вид
интерполяции является действующим:
ORIWKS/ORIMKS или ORIAXES/ORIVECT.

Режим работы Jog


В этом режиме работы всегда осуществляется
линейная интерполяция углов ориентации. При
непрерывном или инкрементном перемещении
через клавиши перемещения может
перемещаться только одна ось ориентации.
Через маховики оси ориентации могут
перемещаться одновременно.

Для ручного перемещения осей ориентации


действует специфический для канала
переключатель коррекции подачи или
переключатель коррекции ускоренного хода при
наложении ускоренного хода.

С помощью следующих машинных данных


возможна отдельная задача скорости:
$MC_JOG_VELO_RAPID_GEO
$MC_JOG_VELO_GEO
$MC_JOG_VELO_RAPID_ORI
$MC_JOG_VELO_ORI

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-243
7 7
Трансформации 09.01

840D 840Di
NCU 572
NCU 573

Программирование подачи

FORI1 Подача для поворота вектора ориентации на большом круге


FORI2 Подача для наложенного вращения вокруг повернутого вектора
ориентации

Программируемая подача соответствует в случае


движений ориентации угловой скорости
[Grad/min].

Эффективность подачи через G-код:

При программировании ORIAXES подача для оси


ориентации может быть ограничена через
FL[ ]-оператора (feed limit).

При программировании ORIVECT подача должна


программироваться с помощью FORI1 или
FORI2. В NC-кадре FORI1 и FORI2 могут быть
запрограммированы только один раз. При этом
программировании перемещение всегда
осуществляется по кратчайшему пути.
При наложенном движении вращения и качания
действует соответственно наименьшая подача.
Подача соответствует в случае движений
ориентации угловой скорости [Grad/min].

Если геометрические оси и оси ориентации


совместно движутся по одной траектории, то
движение перемещения определяется из
наименьшей подачи.

 ООО Siemens 2001 Все права защищены.


7-244 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 840Di
NCU 572
NCU 573

7.1.5 Декартово PTP-перемещение (от ПО 5.2)


Программирование
N.. TRAORI
N.. STAT=`B10` TU=`B100` PTP
N.. CP

Объяснение команд

PTP Point to Point (движение от точки к точке)


Движение выполняется как движение синхронных осей; самая медленная из
принимающих участие в движении осей является доминирующей осью для
скорости.
CP continuous path (движение по траектории)
Движение выполняется как декартово движение по траектории
STAT= Позиция шарниров; величина зависит от трансформации.
TU= TURN-информация
Благодаря этому можно однозначно выставить осевой угол между -360
градусов и +360 градусов.

Функция
С помощью этой функции может быть
запрограммирована позиций в декартовой
системе координат, но движение станка
осуществляется в координатах станка.
Функция может использоваться, к примеру, при
смене позиции шарнира, если при этом движение
ведет через сингулярность.

Указание:
Функция имеет смысл только вместе с активной
трансформацией. Кроме этого, "PTP-
перемещение" допускается только вместе с G0 и
G1.

Выполнение
Переключение между декартовым
перемещением и перемещением осей станка
осуществляется с помощью команд PTP и CP.
Они действуют модально. CP является
стандартной установкой.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-245
7 7
Трансформации 09.01

840D 840Di
NCU 572
NCU 573

Программирование позиции (STAT=)


Только указание позиции с помощью декартовых
координат и ориентация инструмента не
определяют однозначно позицию станка. В
зависимости от того, о какой кинематике идет
речь, существует до 8 различных или отличных
позиций шарнира. Поэтому они являются
специфическими для трансформации. Для
возможности однозначного пересчета декартовой
позиции в осевой угол необходимо с помощью
команды STAT= указать позицию шарнира.
Команда "STAT" содержит в качестве двоичной
величины один бит для каждой из возможных
позиций.

Информация в литературе:
Различные трансформации включены в
юрошюру:
SINUMERIK 840D/FM-NC функциональное
описание (часть 3), "Обработка пакета
трансформаций".

Установочные биты, программируемые в "STAT",


включены в брошюру:
SINUMERIK 840D/FM-NC функциональное
описание (часть 3), "3-х до 5-ти осевая
трансформация".

Программирование осевого угла (TU=)


Для того, чтобы однозначно выставить осевой угол <
±360, необходимо запрограммировать эту
информацию с помощью команды "TU=".
Действие команды является покадровым.

Оси перемещаются по кратчайшему пути:


• если в позиции TU не программируется
• в случае осей, имеющих диапазон перемещения
> ±360 градусов

 ООО Siemens 2001 Все права защищены.


7-246 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 840Di
NCU 572
NCU 573

Пример:
Подвод к показанному на рисунке заданному
конечному положению может осуществляться в
положительном или отрицательном направлении.
По адресу A1 программируется направление.
A1=225°, TU=бит 0, → положительное направление
A1=−135°, TU=бит 1, → отрицательное направление
Перешлифовка между CP- и PTP-движениями

Между кадрами с помощью G641 возможна


программируемая переходная шлифовка.
Размером диапазона шлифовки является путь
траектории в mm или Inch, от которого или к
которому шлифуется переход кадра. Размер
указывается следующим образом:
• для G0-кадров с помощью ADISPOS
• для всех других команд пути с помощью ADIS

Вычисление пути траектории соответствует учету F-


адресов у не-G0-кадров. Подача выдерживается на
указанные в FGROUP(..) оси.

Вычисление подачи:
Для CP-кадров для вычисления используются
декартовы оси базовой кинематической системы.
Для PTP-кадров для вычисления используются
соответствующие оси системы координат станка.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-247
7 7
Трансформации 09.01

840D 840Di
NCU 572
NCU 573

Прочие указания
Смена режима работы
Функция "Декартов PTP-переход" имеет смысл
только в режимах работы AUTO и MDA. При
смене режима работы после JOG актуальная
установка сохраняется.
Если установлен G-код PTP, то оси
перемещаются в MСS. Если установлен G-код
CP, то оси перемещаются в WСS.

Power On / Reset
После Power On или после Reset установка
зависит от машинных данных
$MC_GCODE_RESET_VALUES[48]. Стандартно
установлен вид перемещения "CP".

Repos
Если в течение кадра прерывания была
установлена функция "Декартово PTP-
перемещение", то обратное позиционирование
осуществляется и с PTP.

Наложенные движения
DRF-смещение или внешнее смещение нулевой
точки в случае декартового PTP-перемещения
возможны лишь ограниченно. При переходе с
PTP- на CP-движение не должно быть наложений
в BKS.

 ООО Siemens 2001 Все права защищены.


7-248 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 840Di
NCU 572
NCU 573

Пример программирования

N10 G0 X0 Y-30 Z60 A-30 F10000 исходное положение


→ локоть сверху
N20 TRAORI(1) трансформация вкл
N30 X1000 Y0 Z400 A0
N40 X1000 Z500 A0 STAT=´B10´ TU=´B100´ PTP переориентация без
трансформации
→ локоть снизу
N50 X1200 Z400 CP трансформация снова активна
N60 X1000 Z500 A20
N70 M30

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-249
7 7
Трансформации 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

7.2 Фрезерная обработка токарных деталей: TRANSMIT


Программирование
TRANSMIT или TRANSMIT(n)
TRAFOOF

Объяснение команд

TRANSMIT Активизирует первую согласованную TRANSMIT-функцию


TRANSMIT(n) Активизирует n-ую согласованную TRANSMIT-функцию; n может
быть макс. 2 (TRANSMIT(1) соответствует TRANSMIT).
TRAFOOF Выключает активную трансформацию

Активная трансформация TRANSMIT также


отключается, если в соответствующем канале
активизируется одна из прочих трансформаций (к
примеру, TRACYL, TRAANG, TRAORI).

Функция TRANSMIT позволяет осуществлять


следующие работы:
• торцевая обработка токарных деталей в
плоскости вращения (сверление, контурная
обработка).
для программирования этих обработок может
использоваться декартова система координат.
• СЧПУ трансформирует запрограммированные
движения перемещения декартовой системы
координат на движения перемещения
реальных осей станка (стандартный случай):
– круговая ось
– ось подачи вертикально к оси вращения
– продольная ось параллельно к оси
вращения
Линейные оси расположены вертикально
друг на друге.
• допускается смещение центров инструмента
относительно центра вращения.
• управление скоростью учитывает определенные
для движений вращения ограничения.

 ООО Siemens 2001 Все права защищены.


7-250 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Круговая ось
Круговая ось не может программироваться, так
как она занимается геометрической осью и
поэтому не может напрямую программироваться
как ось канала.

Полюс
до ПО 3.x
Предотвращается прохождение через полюс
(начало декартовой системы координат).
Проходящее через полюс движение
останавливается на полюсе и выдается тревога.
При смещении центров фрезы движение
останавливается соответственно на краю зоны, к
которой не может быть осуществлен подвод.

От ПО 4
Для прохождения через полюс имеется две
возможности:
1. Перемещение только линейной оси
2. Перемещение в полюс с вращением круговой
оси в полюсе и перемещением из полюса
Выбор осуществляется через машинные данные
24911 и 24951.

Литература
/FB/ M1 кинематические трансформации

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-251
7 7
Трансформации 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Пример программирования
Y

N10 T1 D1 G54 G17 G90 F5000 G94 Выбор инструмента


N20 G0 X20 Z10 SPOS=45 Переход в исходное положение
N30 TRANSMIT Активизация TRANSMIT-функции
N40 ROT RPL=–45 Установка фрейма
N50 ATRANS X–2 Y10
N60 G1 X10 Y–10 G41 OFFN=1 Черновая обработка четырехгранника;
N70 X–10 припуск 1 mm
N80 Y10
N90 X10
N100 Y–10
N110 G0 Z20 G40 OFFN=0 Смена инструмента
N120 T2 D1 X15 Y–15
N130 Z10 G41
N140 G1 X10 Y–10 Чистовая обработка четырехгранника
N150 X–10
N160 Y10
N170 X10
N180 Y–10
N190 Z20 G40 Отменить выбор фрейма
N200 TRANS
N210 TRAFOOF
N220 G0 X20 Z10 SPOS=45 Переход к исходному положению
N230 M30

 ООО Siemens 2001 Все права защищены.


7-252 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

7.3 Трансформация боковой поверхности цилиндра: TRACYL


Программирование
TRACYL(d) или TRACYL(d,t)
TRAFOOF

Объяснение команд

TRACYL(d) Активизирует первую согласованную TRACYL-функцию


TRACYL(d,n) Активизирует n-ую согласованную TRACYL-функцию. n может
составлять макс. 2, TRACYL(d,1) соответствует TRACYL(d).
d Величина для актуального диаметра обрабатываемого цилиндра.
TRAFOOF Трансформация выкл
OFFN Смещение нормального контура: расстояние стенки паза от
запрограммированного опорного контура

Активная трансформация TRACYL также


отключается, если в соответствующем канале
активизируется одна из прочих трансформаций (к
примеру, TRANSMIT, TRAANG, TRAORI).

Функция
Криволинейная трансформация боковой
поверхности цилиндра TRACYL
X
Криволинейная трансформация боковой
поверхности цилиндра TRACYL позволяет
осуществлять следующие работы:

Обработка
Y
• продольных пазов на цилиндрических
деталях,
• поперечных пазов на цилиндрических
деталях, Z
• пазов любой формы на цилиндрических
деталях.

Система координат детали


Направление пазов программируется на
развернутую, ровную плоскость боковой
поверхности цилиндра.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-253
7 7
Трансформации 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Имеется два проявления трансформации


координат боковой поверхности цилиндра:

• без коррекции стенки паза


• с коррекцией стенки паза

Без коррекции стенки паза:


СЧПУ трансформирует запрограммированные
движения перемещения системы координат
цилиндра на движения перемещения реальных
осей станка:
– круговая ось
– ось подачи вертикально к оси вращения
– продольная ось параллельно к оси
вращения

Линейные оси расположены вертикально друг на


Система координат станка
друге. Ось подачи разрезает круговую ось.

С коррекцией стенки паза:


Кинематика как выше, но дополнительно
– продольная ось параллельно к направлению
обвода

Линейные оси расположены вертикально друг на


друге.

Управление скоростью учитывает определенные


для движений вращения ограничения.

Система координат станка

 ООО Siemens 2001 Все права защищены.


7-254 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Поперечное сечение паза


У конфигурации оси 1 пазы вдоль круговой оси
имеют параллельное ограничение только в том
случае, если ширина паза точно соответствует
радиусу инструмента.

Пазы, параллельные обводу (поперечные пазы)


не являются параллельными в начале и конце.

Смещение нормального контура OFFN


Для фрезеровки пазов с помощью TRACYL
программируется
• средняя линия паза в программе обработки
деталей,
• ширина паза через OFFN.
Во избежание повреждения стенки паза OFFN
начинает действовать только после выбора
коррекции радиуса инструмента (КРИ). Кроме
того необходимо OFFN>=радиус инструмента,
чтобы исключить повреждение противоположной
стенки паза.
Программа обработки деталей для фрезеровки
паза как правило состоит из следующих шагов:
1. Выбор инструмента
2. Выбор TRACYL
3. Выбор подходящего смещения координат
(FRAME)
4. Позиционирование
5. Программирование OFFN
6. Выбор КРИ
7. Кадр подвода (запуск КРИ и подвод к стенке
паза)
8. Контур средней линии паза
9. Отмена выбора КРИ
10. Кадр отвода (остановка КРИ и отвод о стенки
паза)
11. Позиционирование

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-255
7 7
Трансформации 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

12. TRAFOOF
13. Снова выбрать исходное смещение координат
(FRAME)

Особенности:
• Выбор КРИ:
КРИ программируется не по отношению к
стенке паза, а относительно
запрограммированной средней линии паза.
Чтобы инструмент перемещался слева от
стенки паза, задается G42 (вместо G41). Этого
можно избежать, если ввести в OFFN ширину
паза с отрицательным знаком.
• OFFN с TRACYL действует отлично от без
TRACYL. Так как OFFN учитывается и без
TRACYL при активной КРИ, то OFFN после
TRAFOOF должно быть снова установлено на
ноль.
• Изменение OFFN внутри программы
обработки деталей возможно. Таким образом
можно сместить среднюю линию паза из
середины (см. рисунок).
• Направляющие пазы:
С помощью TRACYL создается не такой же
паз в случае направляющих пазов, если бы он
был изготовлен с помощью инструмента,
диаметр которого соответствует ширине паза.
Принципиально невозможно создать с
помощью меньшего цилиндрического
инструмента туже геометрию стенки паза, как
с помощью большего.
TRACYL минимизирует ошибку. Во избежание
проблем с точностью радиус инструмента
должен быть лишь немного меньше чем
половина ширины паза.

 ООО Siemens 2001 Все права защищены.


7-256 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

При криволинейной трансформации боковой


поверхности цилиндра с коррекцией стенки паза
используемая для коррекции ось должна стоять
на нуле (y=0), чтобы паз изготовлялся по центру к
запрограммированной средней линии паза.

Круговая ось
Круговая ось не может программироваться,
так как она занимается геометрической осью и
поэтому не может напрямую программироваться
как ось канала.

Использование осей
Следующие оси не могут использоваться в
качестве осей позиционирования или
качающихся осей:
• геометрическая ось в направлении обвода
плоскости боковой поверхности цилиндра (Y-
ось)
• дополнительная линейная ось при коррекции
стенки паза (Z-ось)

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-257
7 7
Трансформации 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Пример программирования

N10 T1 D1 G54 G90 F5000 G94 Выбор инструмента, компенсация рабочей


плоскости
N20 SPOS=0 Переход в исходное положение
N30 G0 X25 Y0 Z105 CC=200
N40 TRACYL (40) Включение криволинейной трансформации
боковой поверхности цилиндра
N50 G19 Выбор плоскостей

Изготовление паза в форме крючка:


N60 G1 X20 Подвести инструмент к основанию паза
N70 OFFN=12 Установить зазор от стенки паза в 12 mm
относительно средней линии паза
N80 G1 Z100 G42 Подвод к правой стенке паза
N90 G1 Z50 Отрезок паза параллельно к оси цилиндра
N100 G1 Y10 Отрезок паза параллельно к обводу
N110 OFFN=4 G42 Подвод к левой стенке паза; Установить
зазор от стенки паза в 4 mm относительно
средней линии паза
N120 G1 Y70 Отрезок паза параллельно к обводу
N130 G1 Z100 Отрезок паза параллельно к оси цилиндра
N140 G1 Z105 G40 Отвод от стенки паза
N150 G1 X25 Свободный ход
N160 TRAFOOF
N170 G0 X25 Y0 Z105 CC=200 Переход в исходное положению
N180 M30

 ООО Siemens 2001 Все права защищены.


7-258 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 810D 840Di


NCU 572
NCU 573

7.4 Наклонная ось: TRAANG


Программирование
TRAANG(α) или TRAANG(α,n)
TRAFOOF

Объяснение команд

TRAANG(α) Активизация первой согласованной


трансформации наклонной оси
TRAANG(α,n) Активизация n-ой согласованной
трансформации наклонной оси. n может
быть макс. 2. TRAANG(α,1) соответствует
TRAANG(α).
α Угол стоящей под наклоном оси
TRAFOOF трансформация выкл

Если α (угол) опускается или вносится ноль, то


трансформация активизируется
параметрированием предыдущего выбора. Для
первого выбора действует предварительная
загрузка согласно машинным данным.

Активная трансформация TRAANG также


отключается, если в соответствующем канале
активизируется одна из прочих трансформаций (к
примеру, TRACYL, TRANSMIT, TRAORI).

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-259
7 7
Трансформации 09.01

840 D 810D 840Di


NCU 572
NCU 573

Функция
Функция «наклонная ось» задумана для
технологии шлифования и позволяет
осуществлять следующие работы:
• обработка с помощью наклонной оси подачи
• для программирования может использоваться
декартова система координат
• СЧПУ трансформирует запрограммированные
движения перемещения декартовой системы
координат на движения перемещения
реальных осей станка (стандартный случай):
наклонная ось подачи.

Возможны следующие виды обработок:


1. продольное шлифование 3
2. торцовое шлифование
1
3. шлифование определенного контура
2
4. шлифование с врезанием с угловой подачей

 ООО Siemens 2001 Все права защищены.


7-260 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 810D 840Di


NCU 572
NCU 573

Следующие настройки устанавливаются через


машинные данные:
• угол между осью станка и наклонной осью
• положение нулевой точки инструмента
относительно исходной точки согласованной в
функции "наклонная ось" системы координат
• резерв скорости, приготовленный на
параллельной оси для движения компенсации
• резерв ускорения оси, приготовленный на
параллельной оси для движения компенсации

Конфигурация оси
Для возможности программирования в
декартовой системе координат, необходимо
сообщить на СЧПУ связь между этой системой
координат и существующими в действительности
осями станка (MU, MZ):
• наименование геометрических осей
• подчинение геометрических осей осям канала
– общий случай (наклонная ось не активна)
– наклонная ось активна
• подчинение осей канала номерам осей станка
• обозначение шпинделей
• распределение имен осей станка

Принцип действия, за исключением «наклонная


ось активна» соответствует принципу действия
при нормальной конфигурации оси.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-261
7 7
Трансформации 09.01

840 D 810D 840Di


NCU 572
NCU 573

Пример программирования

N10 G0 G90 Z0 MU=10 G54 F5000 -> Выбор инструмента, компенсация


-> G18 G64 T1 D1 рабочей плоскости, выбор плоскостей
N20 TRAANG(45) Включение трансформации наклонной
оси
N30 G0 Z10 X5 Переход в исходное положение
N40 WAITP(Z) Освобождение осей для качания
N50 OSP[Z]=10 OSP2[Z]=5 OST1[Z]=–2 -> Качание до достижения размера
-> OST2[Z]=–2 FA[Z]=5000 (качание см. главу 9)
N60 OS[Z]=1
N70 POS[X]=4.5 FA[X]=50
N80 OS[Z]=0
N90 WAITP(Z) Освободить оси качания в качестве осей
позиционирования
N100 TRAFOOF Выключить трансформацию
N110 G0 Z10 MU=10 Свободный ход
N120 M30

-> программировать в одном кадре

 ООО Siemens 2001 Все права защищены.


7-262 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 810D 840Di


NCU 572
NCU 573

7.4.1 Программирование наклонной оси: G05, G07 (от ПО 5.3)

Программирование
G07
G05

Объяснение команд

G07 Переход в стартовую позицию


G05 Активизирует врезание с угловой подачей

Команды G07/G05 служат для облегчения


программирования наклонной оси.
При этом позиции могут программироваться и
показываться в декартовой системе координат.
Коррекция инструмента и смещение нулевой
точки учитываются декартово. После
программирования угла для наклонной оси в NC–
программе можно осуществить подвод к
стартовой позиции (G07) и после этого
осуществить врезание с угловой подачей (G05).
В режиме Jog шлифовальный круг может
перемещаться по-выбору либо декартово, либо в
направлении наклонной оси (индикация остается
декартовой).
Движется только реальная U–ось, индикация Z–
оси актуализируется.

• Repos–смещения в режиме Jog должны


возвращаться декартово.
• Пересечение декартового ограничения
рабочего поля в режиме Jog контролируется
при активном ”PTP–перемещении”,
соответствующая ось заранее
притормаживается. Если ”PTP–
перемещение” не активно, то ось может
перемещаться точно до ограничения
рабочего поля.
Литература: /FB2/ F2: 3х–5-ти–осевая
трансформация,
глава 2 ”Декартово PTP–перемещение”.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-263
7 7
Трансформации 09.01

840 D 810D 840Di


NCU 572
NCU 573

Пример программирования

N.. Программирование угла для


наклонной оси
N20 G07 X70 Z40 F4000 Переход в стартовую позицию
N30 G05 X70 F100 Наклонное врезание
N40 ...

 ООО Siemens 2001 Все права защищены.


7-264 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 810D 840Di


NCU 572
NCU 573

7.5 Граничные условия при выборе трансформации


Выбор трансформаций возможен через программу
обработки деталей или MDA. При этом учитывать:
• промежуточный кадр движения не вставляется
(фаски/радиусы).
• сплайн-последовательность кадров должна быть
завершена; если нет, то появляется сообщение.
• точная коррекция инструмента должна быть
отключена (FTOCOF); если нет, то появляется
сообщение.
• коррекция радиуса инструмента должна быть
отключена (G40); если нет, то появляется
сообщение.
• активизированная коррекция длины инструмента
берется СЧПУ в трансформацию.
• действующий перед трансформацией актуальный
фрейм отменяется СЧПУ.
• активное ограничение рабочего поля для осей,
затронутых трансформацией, отключается СЧПУ
(соответствует WALIMOF).
• контроль защищенной области отключается.
• режим управления траекторий и перешлифовка
прерываются.
• DRF-смещения в осях, участвующих в
трансформации, не могут изменяться между
предварительной и основной обработкой (до ПО 3).
• все указанные в машинных данных оси должны
быть синхронизированы относительно кадра.
• замененные оси возвращаются; если нет, то
появляется сообщение.
• при зависимых осях выводится сообщение.

Смена инструмента
Смена инструмента возможна только при отключенной
коррекции радиуса инструмента.
Смена коррекции длины инструмента и
включение/выключение коррекции радиуса
инструмента не могут быть запрограммированы в
одном и том же кадре.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-265
7 7
Трансформации 09.01

840 D 810D 840Di


NCU 572
NCU 573

Смена фрейма

Исключения
Затронутые трансформацией оси не могут
использоваться
• как Preset-ось (тревога)
• для перемещения к фиксированной точке
(тревога)
• для реферирования (тревога)

 ООО Siemens 2001 Все права защищены.


7-266 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 810D 840Di


NCU 572
NCU 573

7.6 Отключение трансформации: TRAFOOF


Программирование
TRAFOOF

Объяснение команд

TRAFOOF Выключает все активные трансформации/фреймы

Функция

С помощью команды TRAFOOF выключаются все


активные трансформации и фреймы.

Необходимые после этого фреймы должны быть


активизированы повторным программированием.

При этом учитывать:


Для отключения трансформации действуют те же
ограничения, что и для выбора (см. предыдущую
главу "Граничные условия при выборе
трансформации")

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-267
7 7
Трансформации 09.01

840 D 810D 840Di


NCU 572
NCU 573

7.7 Связанные трансформации

От ПО 5 могут последовательно включаться


(связываться) соответственно две
трансформации, таким образом, компоненты
движения для осей из первой трансформации
являются входными данными для связанной
второй трансформации. Компоненты движения
из второй трансформации воздействуют на оси
станка.
• Цепочка в ПО 5 может включать две
трансформации.
• Вторая трансформация должна быть
”наклонной осью” (TRAANG).
• В качестве первой трансформации возможны:
- трансформации ориентации (TRAORI),
вкл. карданную фрезерную головку
- TRANSMIT
- TRACYL
- TRAANG

Использование
- шлифование контуров, запрограммированных как
образующая развертки цилиндра (TRACYL), с помощью
установленного под наклоном шлифовального круга, к
примеру, заточка режущего инструмента.
- точная обработка созданного с помощью TRANSMIT не
закругленного контура с помощью установленного под
наклоном шлифовального круга.

Условием использования команды включения для


связанной трансформации является то, что отдельные
связываемые трансформации и активизируемая
связанная трансформация определены через машинные
данные.
Соблюдать граничные условия и особые случаи,
указанные в отдельных описаниях для трансформаций, и
при использовании внутри связи.

 ООО Siemens 2001 Все права защищены.


7-268 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 810D 840Di


NCU 572
NCU 573

Прочие указания
Информацию по проектированию машинных данных
трансформаций можно найти в функциональных
описаниях: M1 и F2.
Изготовитель станка (MH7.1)
Учитывать указания изготовителя станка по возможно
определенным через машинные данные трансформациям.
Трансформации и связанные трансформации являются
опциями. Информацию о наличии определенных
трансформаций в цепочке в определенных СЧПУ можно
получить в соответствующем актуальном каталоге.
Для связанных трансформаций имеются команды:
TRACON для включения и
TRAFOOF для выключения.

Включение
Программирование

TRACON(trf, par) Связанная трансформация


включается.
Объяснение параметров

trf Номер связанной трансформации:


0 или 1 для первой/единственной
связанной трансформации.
Если в этом месте ничего не
запрограммировано, то это
равнозначно указанию значения 0 или
1, т.е. активизируется
первая/единственная трансформация.
2 для второй связанной
трансформации. (Значение, отличные
от 0 – 2, вызывают тревогу ошибки).

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-269
7 7
Трансформации 09.01

840 D 810D 840Di


NCU 572
NCU 573

par Один или несколько разделенных


запятой параметров для
трансформаций в связи, которые
ожидают параметров. К примеру, угол
наклонной оси. Если параметры не
установлены, то активизируются
предварительные установки или
использовавшиеся последними
параметры. Установка запятой
обеспечивает обработку указанных
параметров в той последовательности,
в которой они ожидаются, если для
предыдущих параметров должны
действовать предварительные
установки. Особенно при указании
минимум одного параметра перед ним
должна стоять запятая, даже если не
требуется указания trf, к примеру,
TRACON( , 3.7).

Функция

Связанная трансформация включается. Активизированная


до этого другая трансформация неявно выключается
через TRACON().
Инструмент всегда подчинен первой трансформации
цепочки. Следующие трансформации ведут себя так, как
если бы активная длина инструмента была бы ноль. Для
первой трансформации цепочки действуют только
установленные через машинные данные базовые длины
инструмента (_BASE_TOOL_).

Выключение
Программирование

TRAFOOF

Функция

Команда выключает включенную последней (связанную)


трансформацию.

 ООО Siemens 2001 Все права защищены.


7-270 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 810D 840Di


NCU 572
NCU 573

7.8 Переключаемые геометрические оси, GEOAX


Программирование
GEOAX(n,ось канала,n,ось канала,…)

GEOAX()

Объяснение параметров

GEOAX(n, ось канала,n, ось Переключение геометрических осей.


канала,…)
GEOAX() Вызов первичной конфигурации геометрических
осей
n Номер геометрической оси (n=1, 2 или 3),
которой должна быть подчинена другая ось
канала.
n=0: удаление указанной оси канала из
соединения геометрических осей без
возможности замены.
ось канала Имя оси канала, которая должна быть включена
в соединение геометрических осей.

Функция
С помощью функции "Переключаемые геометрические
оси" можно изменять сконфигурированное через
машинные данные соединение геометрических осей
из программы обработки деталей. При этом одна
определенная как синхронная дополнительная ось ось
канала может заменить любую геометрическую ось.

Пример:
Салазки суппорта могут перемещаться через оси
канала X1, Y1, Z1, Z2. В программе обработки деталей
попеременно должны использоваться оси Z1 и Z2 в
качестве геометрической оси Z. Переключение между
осями осуществляется в программе обработки
деталей с помощью GEOAX.
После включения начинает действовать связь X1, Y1,
Z1 (устанавливается через машинные данные).

N100 GEOAX (3,Z2) В качестве Z-оси действует ось канала Z2


N110 G1 .....
N120 GEOAX (3,Z1) В качестве Z-оси действует ось канала Z1

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-271
7 7
Трансформации 09.01

840 D 810D 840Di


NCU 572
NCU 573

Выполнение
Номер геометрической оси
В команде GEOAX(n,ось канала...) номер n обозначает
геометрическую ось, которой должна быть подчинена
указанная после ось канала.
Для замены оси канала допускаются номера
геометрических осей 1 до 3 (X-, Y-, Z-ось).
При n = 0 распределенная ось канала удаляется из
соединения геометрических осей без новой загрузки
геометрической оси.

Замененная в соединении геометрических осей


посредством переключения ось после процесса
переключения может через ее имя оси канала быть
запрограммирована как дополнительная ось.

При переключении геометрических осей стираются все


фреймы, защищенные области и ограничения рабочего
поля.
Полярные координаты:
Смена геометрических осей с помощью GEOAX
устанавливает аналогично смене плоскостей (G17-G19)
модальные полярные координаты на величину 0.
DRF, NPV:
Возможное смещение с помощью маховика (DRF) или
внешнее смещение нулевой точки остаются
эффективными после переключения.

Смена позиций осей


Посредством нового присвоения номеров осей уже
подчиненным осям канала возможна смена позиций
внутри соединения геометрических осей.

N... GEOAX (1, XX, 2, YY, 3, ZZ)


Ось канала XX является
N... GEOAX (1, U, 2, V, 3, W) первой, YY второй и ZZ
третьей геометрической осью,
ось канала U это первая, V
вторая и W третья
геометрическая ось.

 ООО Siemens 2001 Все права защищены.


7-272 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 810D 840Di


NCU 572
NCU 573

Условия и ограничения

Деактивизация переключения
Команда GEOAX() вызывает первичную конфигурацию
соединения геометрических осей.

После POWER ON и при переключении в режим работы


реферирование осуществляется автоматическое
переключение на первичную конфигурацию.

Прочие указания
Процесс переключения и коррекция длины
инструмента
Активная коррекция длины инструмента действует и
после процесса переключения. Но для заново принятых
или геометрических осей с измененной позицией она
считается еще не включенной. При первой команде
движения для этих геометрических осей
результирующий путь перемещения состоит
соответственно из суммы коррекции длины инструмента
и запрограммированного пути перемещения.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-273
7 7
Трансформации 09.01

840 D 810D 840Di


NCU 572
NCU 573

Геометрические оси, сохраняющие при переключении


свою позицию в соединении осей, сохраняют и свое
состояние относительно коррекции длины инструмента.

Конфигурация геометрических осей и смена


трансформаций
Действующая в активной трансформации конфигурация
геометрических осей (установленная через машинные
данные) не может изменяться через функцию
"Переключаемые геометрические оси".

Если необходимо изменить конфигурацию


геометрических осей в связи с трансформациями, то это
возможно только через другую трансформацию.

Измененная через GEOAX конфигурация геометрических


осей стирается через активизацию трансформации.

Если установки машинных данных для трансформации


противоречат установкам для переключения
геометрических осей, то приоритет имеют установки в
трансформации.

Пример:
Трансформация активна. Согласно машинным данным
трансформация должна быть сохранена при RESET, но
одновременно при RESET должна быть восстановлена
первичная конфигурация геометрических осей. В этом
случае сохраняется конфигурация геометрических осей,
как она была определена с помощью трансформации.

 ООО Siemens 2001 Все права защищены.


7-274 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
7 7
09.01 Трансформации

840D 810D 840Di


NCU 572
NCU 573

Пример программирования
Станок имеет 6 осей канала с именами XX, YY,
ZZ, U ,V ,W. Первичной установкой конфигурации
геометрических осей через машинные данные
является:
Ось канала XX = 1-ая геометрическая ось (X-ось)
Ось канала YY = 2-ая геометрическая ось (Y-ось)
Ось канала ZZ = 3-яя геометрическая ось (Z-ось)

N10 GEOAX() Действует первичная конфигурация геометрических


осей.
N20 G0 X0 Y0 Z0 U0 V0 W0 Все оси ускоренным ходом в позицию 0.
N30 GEOAX(1,U,2,V,3,W) Ось канала U становится первой (X), V второй (Y), W
третьей геометрической осью (Z).
N40 GEOAX(1,XX,3,ZZ) Ось канала XX становится первой (X), ZZ третьей
геометрической осью (Z). Ось канала V остается
второй геометрической осью (Y).

N50 G17 G2 X20 I10 F1000 Полный круг в X-, Y-плоскости. Движутся оси канала
XX и V
N60 GEOAX(2,W) Ось канала W становится второй геометрической
осью (Y).
N80 G17 G2 X20 I10 F1000 Полный круг в X-, Y-плоскости. Движутся оси канала
XX и W.
N90 GEOAX() Возврат в первичное состояние
N100 GEOAX(1,U,2,V,3,W) Ось канала U становится первой (X), V второй (Y), W
третьей геометрической осью (Z).
N110 G1 X10 Y10 Z10 XX=25 Оси канала U, V, W перемещаются соответственно в
позицию 10, XX как дополнительная ось
перемещается в позицию 25.
N120 GEOAX(0,V) V исключается из соединения геометрических осей. U
и W продолжают оставаться первой (X) и третьей
геометрическими осями (Z). Вторая геометрическая
ось (Y) остается свободной.
N130 GEOAX(1,U,2,V,3,W) Ось канала U остается первой (X), V становится
второй (Y), W остается третьей геометрической осью
(Z).
N140 GEOAX(3,V) V становится третьей геометрической осью (Z), при
этом W переписывается, исключаясь тем самым из
соединения геометрических осей. Вторая
геометрическая ось (Y) как и прежде свободна.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 7-275
7 7
Трансформации 09.01

840 D 810D 840Di


NCU 572
NCU 573

Место для заметок

 ООО Siemens 2001 Все права защищены.


7-276 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
8 8
09.01 Коррекция инструмента

Коррекция инструмента

8.1 Память коррекций........................................................................................................ 8-278

8.2 Языковые команды для управления инструментом ................................................. 8-280

8.3 Коррекция инструмента Online PUTFTOCF, PUTFTOC, FTOCON, FTOCOF ......... 8-283

8.4 Фиксация коррекции радиуса инструмента, CUTCONON (от ПО 4)........................ 8-289

8.5 Активизация 3D-коррекций инструмента ................................................................... 8-292

8.6 Ориентация инструмента............................................................................................ 8-300

8.7 Свободное распределение D-номеров, номера резцов CE (от ПО 5) .................... 8-305


8.7.1 Проверка D-номеров (CHKDNO) ......................................................................... 8-306
8.7.2 Переименование D-номеров (GETDNO, SETDNO) ........................................... 8-307
8.7.3 Определение T-номеров для заданных D-номеров (GETACTTD) ................... 8-308
8.7.4 Установка D-номеров недействительными........................................................ 8-309

8.8 Кинематика держателя инструмента ......................................................................... 8-310

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 8-277
8 8
Коррекция инструмента 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

8.1 Память коррекций


Структура памяти коррекций
Каждый массив данных может вызываться с
помощью T- и D-номеров (кроме "Плоский D-Nr.")
и включает наряду с геометрическими данными
для инструмента и другие записи, к примеру, тип
инструмента.

От ПО 4
"Плоская структура D-номеров" используется
тогда, когда управление инструментом
осуществляется вне ЧПУ. В этом случае D-
номера с соответствующими кадрами коррекции
инструмента устанавливаются без подчинения
инструментам.
В программе обработки деталей может дальше
программироваться T. Но эта T никак не
относится к запрограммированным D-номерам.

Для геометрических величин (к примеру, длина 1


или радиус) существует несколько компонентов
описания. Они аддитивно пересчитываются в
результирующую величину (к примеру, общая
длина 1, общий радиус), которая после начинает
действовать.

Ненужным коррекциям присваивается величина


ноль.

Отдельные величины памяти коррекций P1 до


P25 через системную переменную могут
считываться и записываться из программы.

 ООО Siemens 2001 Все права защищены.


8-278 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
8 8
09.01 Коррекция инструмента

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Номер параметра Значение Примечание


инструмента (DP)
$TC_DP 1 Тип инструмента Обзор см. список
$TC_DP 2 Положение кромок резца только для токарных
инструментов
Геометрия Коррекция длины
$TC_DP 3 Длина 1 Вычисление по типу
$TC_DP 4 Длина 2 и плоскости
$TC_DP 5 Длина 3
Геометрия Радиус
$TC_DP 6 Радиус
$TC_DP 7 Ширина паза b для наградки (пила для
выборки пазов), радиус закругления для
фрезерного инструмента
$TC_DP 8 Выступ k только для наградки
$TC_DP 11 Угол для конического фрезерного
инструмента
Износ Коррекция длины и радиуса
$TC_DP 12 Длина 1
$TC_DP 13 Длина 2
$TC_DP 14 Длина 3
$TC_DP 15 Радиус
$TC_DP 16 Ширина паза b для наградки, радиус
закругления для фрезерного инструмента
$TC_DP 17 Выступ k только для наградки
$TC_DP 20 Угол для конического фрезерного
инструмента
Базовый Коррекции длины
размер/адаптер
$TC_DP 21 Длина 1
$TC_DP 22 Длина 2
$TC_DP 23 Длина 3
Технология
$TC_DP 24 Задний угол для токарных
инструментов
Прочие указания
Все прочие параметры зарезервированы.
Изготовитель станка
Через машинные данные могут быть сконфигурированы данные
пользователя для режущих кромок.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 8-279
8 8
Коррекция инструмента 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

8.2 Языковые команды для управления инструментом


Объяснение команд

T="WZ" Выбор инструмента через имя


NEWT("WZ",DUPLO_NR) Установка нового инструмента, номер гнезда как опция
DELT("WZ",DUPLO_NR) Стереть инструмент, номер гнезда как опция
GETT("WZ",DUPLO_NR) Определение T-номера
SETPIECE(x,y) Установка количества штук
GETSELT(x) Чтение предварительно выбранного номера
инструмента (T-Nr.)
"WZ" Идентификатор инструмента
DUPLO_NR Количество штук
x Номер шпинделя, опционные данные

При использовании управления инструментом инструменты могут


устанавливаться и вызываться с помощью имени, к примеру,
T="BOHRER" или T="123".

Функция NEWT
С помощью функции NEWT в NC-программе можно установить
новый инструмент с именем. В качестве параметра возврата
функция отправляет автоматически созданный Т-номер, с
помощью которого инструмент в дальнейшем может быть
адресован.

Rückgabeparam.=NEWT("WZ", DUPLO_NR)

Если номер гнезда не указывается, то он создается в управлении


инструментом.

Пример:
DEF INT DUPLO_NR
DEF INT T_NR
DUPLO_NR = 7
T_NR=NEWT("BOHRER", DUPLO_NR) Установить инструмент "BOHRER" с номером гнезда
7. Созданный Т-номер сохраняется в T_NR.

Функция DELT
С помощью функции DELT можно удалить инструмент без ссылки
на T-номер.
DELT("WZ", DUPLO_NR)

 ООО Siemens 2001 Все права защищены.


8-280 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
8 8
09.01 Коррекция инструмента

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Функция GETT
Функция GETT выдает инструменту, который
известен только через имя, необходимый для
установки данных инструмента T-номер.

Rückgabeparameter=GETT("WZ", DUPLO_NR)

Если существует несколько инструментов с


указанным идентификатором, то возвращается Т-
номер первого возможного из этих инструментов.

Возврат = –1: Идентификации инструмента или


номеру гнезда не может быть подчинен
инструмент.

Примеры:
T="BOHRER"
R10=GETT("BOHRER", DUPLO_NR) Полученный T-номер для BOHRER с
номером гнезда = DUPLO_NR

"BOHRER" сначала должен быть объявлен с


помощью NEWT или $TC_TP1[ ].

$TC_DP1[GETT("BOHRER", Запись параметра инструмента с


DUPLO_NR),1]=100 именем инструмента

Функция SETPIECE
Данная функция служит для актуализации
данных контроля количества штук.
Функция регистрирует все резцы инструмента,
которые были заменены с момента последней
активизации SETPIECE на названном номере
шпинделя.

SETPIECE(x,y)

x Количество изготовленных деталей


y y номер шпинделя, 0 обозначает главный шпиндель (стандартная
установка)

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 8-281
8 8
Коррекция инструмента 09.01

840D 840D 810D 840Di


NCU 571 NCU 572
NCU 573

Функция GETSELT
Функция дает Т-номер выбранного для шпинделя
инструмента.
Таким образом, можно обращаться к данным
коррекции инструмента еще до M6, немного
раньше устанавливая синхронизацию с главным
ходом.

Пример замены инструмента с управлением


инструментом
T1 Выбор инструмента; т.е., магазин
инструмента может быть приведен в
позицию инструмента параллельно с
обработкой.
M6 Замена выбранного инструмента (в
зависимости от настроек в машинных
данных может быть запрограммировано и
без М6).

Пример:
T1 M6 Заменить инструмент 1
D1 Выбор коррекции длины инструмента
G1 X10 … Работа с T1
T="BOHRER" Выбор инструмента «BOHRER»
D2 Y20 … Смена резца T1
X10 … Работа с T1
M6 Смена инструмента «BOHRER»
SETPIECE(4) Количество изготовленных деталей
D1 G1 X10 … Работа со сверлом BOHRER

Полный список всех переменных для управления


инструментом можно найти в списке системных
переменных в приложении.

 ООО Siemens 2001 Все права защищены.


8-282 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
8 8
09.01 Коррекция инструмента

840D 840Di
NCU 572
NCU 573

8.3 Коррекция инструмента Online: PUTFTOCF, PUTFTOC, FTOCON, FTOCOF


Программирование
FCTDEF(Polynom-Nr., LLimit, ULimit,a0,a1,a2,a3)
PUTFTOCF(Polynom-Nr., BezugПОert, Länge1_2_3, Kanal, Spindel)
PUTFTOC(Wert, Länge1_2_3, Kanal, Spindel)
FTOCON
FTOCOF

Объяснение команд

PUTFTOCF Непрерывная запись коррекции инструмента Online


FCTDEF Параметрирование функции PUTFTOCF
PUTFTOC Дискретная запись коррекции инструмента Online
FTOCON Включение коррекции инструмента Online
FTOCOF Выключение коррекции инструмента Online

Объяснение параметров

Polynom-Nr. Значение 1 до 3: одновременно возможно макс. 3 полинома;


полином до 3-его порядка
BezugПОert Опорная величина, от которой осуществляется коррекция
Länge1_2_3 Параметр износа, в котором суммируется величина коррекции
инструмента
Kanal Номер канала, в котором будет действовать коррекция
инструмента; указание только в том случае, если речь идет не о
своем канале
Spindel Номер шпинделя, для которого действует коррекция инструмента
Online; указание необходимо только для не активных
шлифовальных кругов
LLimit Верхняя предельная величина
ULimit Нижняя предельная величина
a0,a1,a2,a3 Коэффициенты функции полинома
Wert Значение, суммируемое в параметре износа

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 8-283
8 8
Коррекция инструмента 09.01

840D 840Di
NCU 572
NCU 573

Функция
С помощью этой функции коррекции
инструмента, получаемые из обработки, сразу же
учитываются через действующую online
коррекцию длины инструмента (к примеру, CD-
правка: шлифовальный круг правится
параллельно с обработкой). Коррекция длины
инструмента может изменяться из канала
обработки или параллельного канала (канал
правки).

Коррекция инструмента Online может


использоваться только для шлифовального
инструмента.

Общая информация по коррекции


инструмента Online (Online-WZK)
В зависимости от момента времени процесса правки
для записи Online-WZK используются различные
функции:
• непрерывная покадровая запись: PUTFTOCF
• непрерывная модальная запись: ID=1 DO FTOC (см.
главу Синхронные действия)
• дискретная запись: PUTFTOC

При непрерывной записи (на такт IPO) после


включения функции обработки каждое изменение
суммируется в памяти износа, чтобы избежать скачков
заданной величины.
В любом случае:
Online-WZK может действовать в любом канале для
любого шпинделя и длины 1, 2 или 3 параметров
износа.

Подчинение длин геометрическим осям


осуществляется на основе актуальной плоскости.

Подчинение шпинделей инструменту осуществляется


через данные инструмента в GWPSON или TMON, за
исключением активного шлифовального круга (см.
Руководство по программированию "Основы").

 ООО Siemens 2001 Все права защищены.


8-284 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
8 8
09.01 Коррекция инструмента

840D 840Di
NCU 572
NCU 573

Всегда корректируется параметр износа для


актуальной стороны круга или левой стороны круга у не
активных инструментов.

При идентичной коррекции для нескольких сторон круга


обеспечить через инструкцию связи (описание см. в
руководстве оператора) автоматическое использование
значений для второй стороны круга.

Если для канала обработки задаются коррекции Online,


то нельзя изменять величины износа в этом канале из
управляющей программы или через управление.

Online-WZK учитывается и для постоянной окружной


скорости круга (SUG), а также для контроля
инструмента TMON и безцентрового шлифования
CLGON.

Выполнение
PUTFTOCF = непрерывная запись
Процесс правки осуществляется одновременно с
обработкой:
Правка по всей ширине шлифовального круга с
помощью шарошки или алмаза для правки от
одной стороны шлифовального круга к другой.

Обработка и правка могут осуществляться в


различных каналах. Если канала не
запрограммирован, то коррекция действует в
активном канале.

PUTFTOCF(Polynom-Nr., BezugПОert, Länge1_2_3, Kanal, Spindel)

Коррекция инструмента непрерывно изменяется в


канале обработки по функции полинома 1-ого, 2-ого
или 3-его порядка, которая должна быть
предварительно определена с помощью FCTDEF.
Коррекция осуществляется от переменной «опорная
величина», к примеру, от изменяющейся фактической
величины.
Если номер шпинделя не программируется, то
корректируется активный, используемый инструмент.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 8-285
8 8
Коррекция инструмента 09.01

840D 840Di
NCU 572
NCU 573

Параметрирование функции FCTDEF


Параметрирование осуществляется в своем кадре:

FCTDEF (Polynom-Nr., LLimit, ULimit, a0,a1,a2,a3)

Полином может иметь 1-ый, 2-ой или 3-ий


порядок.
Limit обозначает предельные величины (LLimit =
нижняя, ULimit = верхняя предельная величина).
Пример:
Прямая (y = a0 + a1x) с наклоном 1 Y
FCTDEF(1, -1000, 1000, -$AA_IW[X], 1) a1

1
Дискретная запись Online-WZK: PUTFTOC
С помощью этой команды одна величина a0

коррекции может быть записана один раз. X


Коррекция сразу же начинает действовать в
назначенном канале.
Использование PUTFTOC:
Шлифовальный круг правится из параллельного
канала, но не одновременно с обработкой.

PUTFTOC(Wert, Länge1_2_3, Kanal, Spindel)

Online-WZK для указанной длины 1, 2 или 3


изменяется на указанную величину, т.е. величина
суммируется в параметре износа.

Учет Online-WZK: FTOCON, FTOCOF


Канал назначения может принимать коррекции инструмента
Online только тогда, когда активна FTOCON.
• FTOCON должна записываться в канале, в котором
должна действовать коррекция.
С помощью FTOCOF не осуществляется дальнейший
вывод коррекции, но в данных коррекции, специфических
для резцов, корректируется вся записанная с помощью
PUTFTOC величина.
• FTOCOF всегда Reset-позиция.
• PUTFTOCF всегда действует покадрово, т.е. в
следующем кадре перемещения.
• Коррекция инструмента Online с помощью FTOC может
включаться и модально. Более подробную информацию
см. главу «Синхронные действия движения».

 ООО Siemens 2001 Все права защищены.


8-286 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
8 8
09.01 Коррекция инструмента

840D 840Di
NCU 572
NCU 573

Пример программирования
Задача
У плоскошлифовального станка с последующими
фиксированиями после начала шлифовального
движения при X100 шлифовальный круг должен
правиться на величину 0.05. Величина правки с
помощью записи Online-WZK должна непрерывно
включаться для шлифовального инструмента.

Y: ось подачи для шлифовального круга


V: ось подачи для шарошки

Обработка: канал 1 с осями X, Z, Y


Правка: канал 2 с осью V
Управляющая программа в канале 1:

%_N_BEARB_MPF

N110 G1 G18 F10 G90 Исходное положение
N120 T1 D1 Выбор актуального инструмента
N130 S100 M3 X100 Шпиндель включен, движение к исходной
позиции
N140 INIT (2, "ABRICHT", "S") Выбор программы правки в канале 2
N150 START (2) Старт программы правки в канале 2
N160 X200 Движение в заданное конечное положение
N170 FTOCON Включение коррекции Online
N… G1 X100 Дальнейшая обработка
N…M30

Программа правки в канале 2:

%_N_ABRICHT_MPF

N40 FCTDEF (1, –1000, 1000, – Определение функции: прямая
$AA_IW[V], 1)
N50 PUTFTOCF (1, $AA_IW[V], 3, Непрерывная запись Online-WZK:
1) исходя из движения V-оси корректируется длина
3 актуального шлифовального диска в канале 1.
N60 V–0.05 G1 F0.01 G91 Движении подачи для правки, PUTFTOCF
действует только в этом кадре.

N… M30

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 8-287
8 8
Коррекция инструмента 09.01

840D 840Di
NCU 572
NCU 573

Модальная программа правки:

%_N_ABRICHT_MPF
FCTDEF(1,-1000,1000,- Определение функции.
$AA_IW[V],1)
ID=1 DO FTOC(1,$AA_IW[V],3,1) Выбор коррекции инструмента Online:
фактическая величина V-оси является входной
величиной для полинома 1; результат
суммируется в канале 1 в качестве величины
коррекции к длине 3 активного шлифовального
круга.
WAITM(1,1,2) Синхронизация с каналом обработки
G1 V-0.05 F0.01, G91 Движение подачи для правки
G1 V-0.05 F0.02
...
CANCEL(1) Отключение коррекции Online
...

 ООО Siemens 2001 Все права защищены.


8-288 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
8 8
09.01 Коррекция инструмента

840D 840Di
NCU 572
NCU 573

8.4 Фиксация коррекции радиуса инструмента, CUTCONON (от ПО 4)


Программирование
CUTCONON
CUTCONOF

Объяснение

CUTCONON Включение функции «Фиксация коррекции радиуса инструмента»


CUTCONOF Выключение функции «Фиксация коррекции радиуса инструмента»
(стандартная установка)

Функция
Функция “ Фиксация коррекции радиуса
инструмента“ служит для подавления коррекции
радиуса инструмента для определенного
количества кадров при сохранении полученной
посредством коррекции радиуса инструмента в
предыдущих кадрах разницы между
запрограммированной и фактически пройденной
траекторией центра инструмента в качестве
смещения.
Эта функция может использоваться, к примеру,
тогда, когда при строчечном фрезеровании в
точках возврата необходимо несколько кадров
перемещения, но не желательны контуры
(стратегии обхода), создаваемые коррекцией
радиуса инструмента.
Она может использоваться независимо от вида
1
коррекции радиуса инструмента (2 /2D, 3D-
торцевое фрезерование, 3D-периферийное
фрезерование).

Выполнение
Обычно перед активизацией подавления коррекции коррекция
радиуса инструмента уже активна, и она еще активна, когда
подавление коррекции снова выключается.
В последнем кадре перемещения перед CUTCONON
осуществляется движение к точке смещения в конечной точке кадра.
Все последующие кадры, в которых активно подавление коррекции,
перемещаются без коррекции.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 8-289
8 8
Коррекция инструмента 09.01

840D 840Di
NCU 572
NCU 573

Но при этом они смещаются на вектор от конечной точки последнего


кадра коррекции к его точке смещения.
Тип интерполяции этих кадров (линейная, круговая,
полиномиальная) может быть любым.
Кадр деактивизации подавления коррекции, т.е. кадр, содержащий
CUTCONOF, корректируется обычно; он начинается в точке
смещения стартовой точки.
Между конечной точкой предыдущего кадра, т.е. последнего
запрограммированного кадра перемещения с активным CUTCONON,
и этой точкой вставляется линейный кадр.
Круговые кадры, у которых круговая плоскость стоит вертикально на
плоскости коррекции (вертикальные круги), обрабатываются таким
образом, как если бы в них был запрограммирован CUTCONON.
Эта неявная активизация подавления коррекции автоматически
отменяется в первом кадре перемещения, содержащем движение
перемещения в плоскости коррекции и не являющимся таким кругом.
Вертикальные круги в этом понимании могут возникать только при
периферийном фрезеровании.

Пример

N10 ; Определение инструмента d1


N20 $TC_DP1[1,1]= 110 ; Тип
N30 $TC_DP6[1,1]= 10. ; Радиус
N40
N50 X0 Y0 Z0 G1 G17 T1 D1 F10000
N60
N70 X20 G42 NORM
N80 X30
N90 Y20
N100 X10 CUTCONON; Включение подавления коррекции
N110 Y30 KONT ; При выключении подавления коррекции при
необходимости вставить круг обхода
N120 X-10 CUTCONOF
N130 Y20 NORM ; Нет круга обхода при выключении КРИ
N140 X0 Y0 G40
N150 M30

 ООО Siemens 2001 Все права защищены.


8-290 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
8 8
09.01 Коррекция инструмента

840D 840Di
NCU 572
NCU 573

Прочие указания
1. Если коррекция радиуса инструмента не
активна (G40), то CUTCONON не действует.
Тревога не осуществляется.
Но G-код остается активным. Это имеет
значение в том случае, если в последующем
кадре должна быть включена коррекция
радиуса инструмента с помощью G41 или
G42.
2. Смена G-кода в 7-ой группе G-кода (коррекция
радиуса инструмента; G40 / G41 / G42) при
активном CUTCONON допускается.
Изменение после G40 начинает действовать
сразу же.
Смещение, с помощью которого
перемещались предыдущие кадры, при этом
выводится.
3. Если CUTCONON или CUTCONOF
программируется в кадре без движения
перемещения в активной плоскости
коррекции, то включение задерживается до
следующего кадра с таким движением
перемещения.

Прочая информация: /FB/, W1 Коррекция


инструмента

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 8-291
8 8
Коррекция инструмента 09.01

840D 840Di
NCU 572
NCU 573

8.5 Активизация 3D-коррекции инструмента


Объяснение

CUT3DC Активизация 3D-коррекции радиуса для периферийного


фрезерования
CUT3DFS 3D-коррекция инструмента для торцевого фрезерования с
постоянной ориентацией. Ориентация инструмента определена
через G17 - G19 и не подвергается влиянию фреймов.
CUT3DFF 3D-коррекция инструмента для торцевого фрезерования с
постоянной ориентацией. Ориентацией инструмента является
определенное через G17 - G19 и возможно повернутое фреймом
направление.
CUT3DF 3D-коррекция инструмента для торцевого фрезерования с
изменением ориентации (только при активной 5-ти осевой
трансформации).
G40 X Y Z Для выключения: линейный кадр G0/G1 с геометрическими осями
ISD=Wert Глубина врезания

Команды действуют модально и находятся в той


же группе, что CUT2D и CUT2DF.

Отключение осуществляется только при


следующем движении в актуальной плоскости.
Это всегда действует для G40 и не зависит от
CUT-команды.

Функция
При коррекции радиуса инструмента для
цилиндрических инструментов учитывается
изменяемая ориентация инструмента.

Для выбора 3D-коррекции радиуса инструмента


действуют те же программные команды, как и для
2D-коррекции радиуса инструмента. С помощью
G41/G42 коррекция указывается влево/вправо в
направлении движения. Пусковая характеристика
всегда NORM.

 ООО Siemens 2001 Все права защищены.


8-292 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
8 8
09.01 Коррекция инструмента

840D 840Di
NCU 572
NCU 573

Пример

N10 A0 B0 X0 Y0 Z0 F5000
N20 T1 D1 Вызов инструмента, вызов величин
коррекции инструмента
N30 TRAORI(1) Выбор трансформации
N40 CUT3DC Выбор 3D-коррекции радиуса
инструмента
N50 G42 X10 Y10 Выбор коррекции радиуса инструмента
N60 X60
N70 …

Прочие указания
Промежуточные кадры при активной 3D-
коррекции радиуса инструмента разрешены.
Действуют определения
2 1/2D- коррекции радиуса инструмента.

3D- коррекция радиуса инструмента действует


только при выбранной 5-ти осевой
трансформации.

На внешних углах всегда вставляется круговой


кадр. G450/G451 не имеют значения.

Команда DISC не обрабатывается.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 8-293
8 8
Коррекция инструмента 09.01

840D 840Di
NCU 572
NCU 573

Различие между 2 1/2D- и 3D-коррекцией


радиуса инструмента
При 3D-коррекции радиуса инструмента
ориентация инструмента является переменной.

При 2 1/2D- коррекции радиуса инструмента


вычисление осуществляется только с одним
инструментом с постоянной ориентацией.

3D- коррекции радиуса инструмента называется


также 5D-коррекцией, так как в этом случае
имеется 5 степеней свободы для положения
инструмента в пространстве.

Периферийное фрезерование
Используемый здесь вариант периферийного
фрезерования реализуется через задачу
траектории (директрисы) и соответствующей
ориентации. При этом виде обработки форма
инструмента не влияет на траекторию. Основным
является только радиус в точке касания.

Функция 3D-КРИ ограничивается только


цилиндрическими инструментами.

 ООО Siemens 2001 Все права защищены.


8-294 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
8 8
09.01 Коррекция инструмента

840D 840Di
NCU 572
NCU 573

Торцевое фрезерование
Для этого вида 3D-фрезерования необходимо
построчное описание 3D-траекторий на
поверхности детали.
Вычисления осуществляются с учетом формы
инструмента и размеров инструмента – обычно в
CAM.
Постпроцессор записывает в программу
обработки деталей – наряду с NC-кадрами –
ориентации инструмента (при активной 5-ти
осевой трансформации) и G-код для желаемой
3D-коррекции радиуса инструмента.

Благодаря этому оператор станка имеет


возможность – отклоняясь от использованного
для вычисления NC-траекторий инструмента –,
использовать немного более малый инструмент.

Пример:
NC-кадры были вычислены с фрезой 10 mm.
Здесь можно работать и с диаметром фрезы 9,9
mm, но при этом необходимо учитывать
измененный профиль шероховатости.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 8-295
8 8
Коррекция инструмента 09.01

840D 840Di
NCU 572
NCU 573

Формы фрезы, параметры инструмента


В этой таблице собраны формы инструмента и R R
предельные величины параметров инструмента,
возможные для торцевого фрезерования.

r
Форма тела инструмента не учитывается – типы Zylindr. Gesenk- Kugelkopf-
fräser fräser
инструмента 120 и 155 идентичны по действию. (Typ 110) (Typ 111)

Если в NC-программе указывается номер типа, a


отличный от приведенных в таблице, то система
автоматически использует тип инструмента 110 R R
«Цилиндрическая копировальная фреза». При
r R
нарушении предельных величин для параметров
инструмента подается тревога. Schaftfräser Schaftfräser m.
Kegelstumpffräser
(Typ 120, 130) Eckenverrund.
(Typ 155)
(Typ 121, 131)

Тип фрезы Тип-Nr. R r a


Цилиндрическая копировальная фреза 110 >0 X X
Сферическая фреза 111 >0 >R X
Концевая фреза, угловая фреза 120, 130 >0 X X
Концевая фреза, угловая фреза с закруглением 121, 131 >r >0 X
углов
Коническая фреза 155 >0 X >0

X=не обрабатывается

Коррекция длины инструмента


Опорной точкой для коррекции длины является
острие инструмента (точка пересечения
продольная ось/поверхность)).

 ООО Siemens 2001 Все права защищены.


8-296 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
8 8
09.01 Коррекция инструмента

840D 840Di
NCU 572
NCU 573

3D-коррекция инструмента, смена


инструмента
Новый инструмент с измененным размерами (R,
r, a) или другой формой может указываться
только с помощью программирования G41 или
G42 (переход G40 в G41 или G42, повторное
программирование G41 или G42).
Все другие параметры инструмента, к примеру,
длина инструмента, не учитываются этим
правилом, таким образом, такие инструменты
могут заменяться и без повторного G41 или G42.

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

Всегда рекомендуется согласовать как форму


инструмента, так и ориентацию инструмента с
изготовлением требуемой формы поверхности.

Поэтому представленный на рисунке случай


должен рассматриваться как граничный.

Этот граничный случай контролируется СЧПУ,


при этом на основе углов установки между
инструментом и векторами нормалей плоскостей
распознаются скачкообразные изменения точки
обработки. В этих местах СЧПУ вставляет
линейные кадры, чтобы движение могло быть
выполнено.

Для вычисления линейных кадров в машинных


данных имеются допустимые угловые диапазоны
для боковых углов.
Если происходит превышение определенных в
машинных данных предельных величин для
допустимых угловых диапазонов, то система
сигнализирует тревогу.

 ООО Siemens 2001 Все права защищены.


SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01 8-297
8 8
Коррекция инструмента 09.01

840D 840Di
NCU 572
NCU 573

Изгиб траектории
Изгиб траектории не контролируется. Здесь
также рекомендуется использовать только такие
инструменты, которые не повреждают контур.

Глубина врезания ISD


С помощью программной команды ISD (Insertion
Depth) программируется глубина врезания
инструмента при периферийном фрезеровании.
Таким образом возможно изменять позицию
точки обработки на боковой поверхности
инструмента.

FH
ISD указывает расстояние между острием фрезы
(FS) и вспомогательной точкой фрезы (FH). Точка
FH возникает через проекцию
FS

ISD
запрограммированной точки обработки на ось
инструмента. ISD обрабатывается только при
активной 3D-коррекции радиуса инструмента.

Внутренние углы/внешние углы


Внешние и внутренние углы обрабатываются
раздельно. Обозначение внутреннего или
внешнего угла зависит от ориентации
инструмента.

При изменениях ориентации на одном из углов


может возникнуть ситуация, что тип угла
изменится при обработке. Если эта ошибка
возникает, то обработка прерывается
сигнализацией ошибки.

 ООО Siemens 2001 Все права защищены.


8-298 SINUMERIK 840D/840Di/810D Руководство по программированию. Расширенное программирование (PGA) - Выпуск 09.01
8 8
09.01 Коррекция инструмента

840D 840Di
NCU 572
NCU 573

Метод точки пересечения для 3D-коррекции:


(от ПО5)
Здесь при 3D-периферийном фрезеровании на
внешних углах обрабатывается G-код
G450/G451, т.е. может быть осуществлено
перемещение к точке пересечения кривых
смещения. В ПО 4 во внешних углах всегда
вставлялся круг.
Особые преимущества новая функциональность
демонстрирует в типичных 3D-программа,
созданных с помощью CAD. Они часто состоят из
коротких кадров прямых (для аппроксимации
гладких кривых), у которых переходы между
соседними кадрами являются почти
тангенциальными.
При коррекции радиуса инструмента на внешней
стороне контура раньше всегда вста