SINUMERIK 840D sl. Программирование ЧПУ. Руководство по программированию (2021 год) - часть 9

 

  Главная      Книги - Разные     SINUMERIK 840D sl. Программирование ЧПУ. Руководство по программированию (2021 год)

 

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

 

   

 

   

 

содержание      ..     7      8      9      10     ..

 

 

 

SINUMERIK 840D sl. Программирование ЧПУ. Руководство по программированию (2021 год) - часть 9

 

 

Расширенное программирование
4.3 Обработчик прерываний (ASUP)
Согласование дополнительных обработчиков прерываний (SETINT)
Внутри обработчика прерываний могут быть запрограммированы операторы SETINT (см.
"Согласование и запуск обработчика прерываний (SETINT)" (Страница 561)), тем самым
предварительно активируя дополнительные обработчики прерываний. Запуск
выполняется только через вход.
4.3.3
Согласование и запуск обработчика прерываний (SETINT, PRIO, BLSYNC)
СЧПУ имеет несколько быстрых входов (вход 1 ... 8), каждый из которых вызывает
прерывание (1 ... 8). Каждому прерыванию можно с помощью команды SETINT
сопоставить приоритет и обработчик прерываний. Если прерывание вызывается
установкой быстрого входа, то текущая обработка в канале прерывается и запускается
обработчик прерываний.
Приоритет прерывания
Если в какой-либо программе обработки детали прерывания назначаются нескольким
входам, нужно присвоить прерываниям разные приоритеты.
Прерыванию можно присвоить одно из значений приоритета 1 ... 128. Значение
приоритета 1 соответствует высшему, 128 - низшему приоритету.
Синтаксис
SETINT(<n>) <ИМЯ>
SETINT(<n>) PRIO=<значение> <ИМЯ>
SETINT(<n>) PRIO=<значение> <ИМЯ> BLSYNC
SETINT(<n>) PRIO=<значение> <ИМЯ> LIFTFAST
Значение
SETINT(<n>):
Сигналу прерывания <n> назначается программа ЧПУ (ASUP) <имя>. Назна-
ченный обработчик прерываний запускается, как только распознается сиг-
нал прерывания <n> == 1.
Примечание:
Если сигналу прерывания <n> назначается другой обработчик прерываний,
предыдущее назначение перестает действовать.
<n>:
Номер сигнала прерывания
Тип:
INT
Диапазон зна-
1 ... 32
чений:
PRIO=:
Приоритет прерывания
(опционально)
<значение>:
(опция) Значение приоритета
Тип:
INT
Диапазон зна-
1 ... 128 (1 ⇒ высший приоритет)
чений:
<ИМЯ>:
Имя программы ЧПУ (ASUP)
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
561
Расширенное программирование
4.3 Обработчик прерываний (ASUP)
BLSYNC:
(опция) BLSYNC действует таким образом, что после вызова прерывания
сначала ожидается завершение обработки актуального кадра. Только после
этого выполняется обработчик прерываний.
LIFTFAST:
(опция) LIFTFAST действует таким образом, что после вызова прерывания
сначала происходит быстрый отвод (см. главу «Быстрый отвод от контура
(SETINT LIFTFAST, ALF) (Страница 564)»). Только после этого выполняется об-
работчик прерываний.
Граничные условия
Правила обработки прерываний
1. Для каждого прерывания, которое не может обрабатываться сразу или в данный
момент уже находится в обработке, сохраняется один дополнительный запрос
прерывания. Остальные запросы этого прерывания утрачиваются.
2. Если в данный момент обрабатывается прерывание и вызывается еще одно
прерывание с более высоким приоритетом, то оно прерывает менее приоритетное
прерывание. После завершения более приоритетного прерывания продолжается
обработка менее приоритетного прерывания. Если во время обработки более
приоритетного прерывания поступают ещё запросы на менее приоритетное
прерывание, то сохраняется один запрос. Остальные утрачиваются.
3. Если в данный момент обрабатывается прерывание и вызывается еще одно
прерывание с более высоким приоритетом, то оно прерывает менее приоритетное
прерывание. Более приоритетное прерывание обрабатывается. Если снова
вызывается более приоритетное прерывание, то текущее прерывание прерывается,
и обрабатывается более приоритетное прерывание. Максимально возможны шесть
активных уровней прерывания. Один обрабатываемый в данный момент уровень
прерывания и пять ожидающих уровней прерывания. Для каждого активного уровня
прерывания сохраняется не более одного дополнительного запроса прерывания. Все
остальные запросы прерывания утрачиваются. Запрос прерывания утрачивается и в
том случае, если он направляется на остальные уровни прерывания (уровень
прерывания ≥ 7).
Примеры
Пример 1: Согласование обработчиков прерываний и установка приоритета
Программный код
Комментарий
N20 SETINT(3) PRIO=1 ABHEB_Z
; IF вход 3 == 1
; THEN запуск обработчика прерываний «ABHEB_Z»
N30 SETINT(2) PRIO=2 ABHEB_X
; IF вход 2 == 1
; THEN запуск обработчика прерываний «ABHEB_X»
Программы последовательно выполняются в очередности значений приоритета при
одновременной готовности входов: сначала "ABHEB_Z", потом "ABHEB_X".
Программирование ЧПУ
562
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.3 Обработчик прерываний (ASUP)
Пример 2: Новое согласование обработчика прерываний
Программный код
Комментарий
N20 SETINT(3) PRIO=2 ABHEB_Z
; IF вход 3 == 1
; THEN запуск обработчика прерываний «ABHEB_Z»
N80 SETINT(3) PRIO=1 ABHEB_X
; IF вход 3 == 1
; THEN запуск обработчика прерываний «ABHEB_X»
4.3.4
Деактивация/повторная активация согласования обработчика
прерываний (DISABLE, ENABLE)
Оператор SETINT может быть деактивирован с помощью DISABLE и снова активирован
с помощью ENABLE без потери согласования "Вход → Обработчик прерываний".
Синтаксис
DISABLE(<n>)
ENABLE(<n>)
Значение
DISABLE(<n>):
Команда: Деактивация согласования обработчика прерываний входа <n>
ENABLE(<n>):
Команда: Реактивация согласования обработчика прерываний входа <n>
<n>:
Параметры: Номер сигнала прерывания
Тип:
INT
Диапазон значе-
1 ... 32
ний:
Пример
Программный код
Комментарий
N20 SETINT(3) PRIO=1 ABHEB_Z
; при включении входа 3 должен запуститься
; обработчик прерываний «ABHEB_Z».
N90 DISABLE(3)
; Оператор SETINT из N20 деактивируется.
N130 ENABLE(3)
; Оператор SETINT из N20 снова активируется.
4.3.5
Удаление согласования обработчика прерываний (CLRINT)
Заданное через SETINT назначение сигнала прерывания программе ЧПУ (ASUP) можно
удалить с помощью CLRINT.
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
563
Расширенное программирование
4.3 Обработчик прерываний (ASUP)
Синтаксис
CLRINT(<n>)
Значение
CLRINT(<n>):
Команда: Удаление назначения сигнала прерывания <n> программе ЧПУ
(ASUP) <n>, определенной с помощью SETINT
<n>:
Параметры: Номер сигнала прерывания
Тип:
INT
Диапазон значе-
1 ... 32
ний:
Пример
Программный код
Комментарий
N20 SETINT(3) PRIO=2 ABHEB_Z
N50 CLRINT(3)
; Согласование между входом "3" и обработчиком
прерываний "ABHEB_Z" удалено.
4.3.6
Быстрый отвод от контура (SETINT LIFTFAST, ALF)
При операторе SETINT с LIFTFAST при срабатывании входа инструмент движется от
контура детали с быстрым отводом.
Программирование ЧПУ
564
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.3 Обработчик прерываний (ASUP)
Дальнейший процесс зависит от того, содержит ли оператор SETINT наряду с LIFTFAST
обработчик прерываний:
С обработчиком преры- После быстрого отвода выполняется обработчик прерыва-
ваний:
ний.
Без обработчика преры- Обработка после быстрого отвода останавливается с ошиб-
ваний:
кой.
Синтаксис
SETINT(<n>) PRIO=1 LIFTFAST
SETINT(<n>) PRIO=1 <ИМЯ> LIFTFAST
Объяснение
SETINT(<n>):
Команда: Согласовать вход <n> с обработчиком прерываний. Согласованный
обработчик прерываний запускается при срабатывании входа <n>.
<n>:
Параметры: Номер входа
Тип:
INT
Диапазон зна-
1 ... 8
чений:
PRIO= :
Определение приоритета
<значение>:
Значение приоритета
Диапазон зна-
1 ... 128
чений:
Приоритет 1 соответствует высшему приоритету.
<ИМЯ>:
Имя подпрограммы (обработчика прерываний), которая должна быть выпол-
нена.
LIFTFAST:
Команда: Быстрый отвод от контура
ALF=… :
Команда: Программируемое направление перемещения (стоит в кадре дви-
жения)
По возможностям программирования с ALF см. тему " Направление переме-
щения при быстром отводе от контура (Страница 567) ".
Граничные условия
Поведение при активном фрейме с отражением
При определении направления отвода проверяется, активен ли фрейм с отражением. В
этом случае направление отвода относительно направления касательной изменяется
справа налево. Составляющие направления в направлении инструмента не отражаются.
Такое поведение активируется через установку MD:
MD21202 $MC_LIFTFAST_WITH_MIRROR = TRUE
Пример
Сломанный инструмент должен быть автоматически заменен однотипным
инструментом. После обработка продолжается с новым инструментом.
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
565
Расширенное программирование
4.3 Обработчик прерываний (ASUP)
Главная программа:
Главная программа
Комментарий
N10 SETINT(1) PRIO=1 W_WECHS LIFTFAST
; При включении входа 1 инструмент сразу же
отводится быстрым отводом (код 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 RMBBL M3
; Повторный подвод к контуру и возврат в главную
программу (программируется в одном кадре)
Программирование ЧПУ
566
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.3 Обработчик прерываний (ASUP)
4.3.7
Направление перемещения при быстром отводе от контура
Движение отвода
Плоскость движения отвода определяется следующими G-командами:
• LFTXT
Плоскость движения отвода определяется из касательной к траектории и
направления инструмента (стандартная настройка).
• LFWP
Плоскость движения отвода - это активная рабочая плоскость, выбираемая G-
командами G17, G18 или G19. Направление движения отвода не зависит от
касательной к траектории. Таким образом можно запрограммировать параллельный
оси быстрый отвод.
• LFPOS
Отвод названной с помощью POLFMASK / POLFMLIN оси на запрограммированную
с POLF абсолютную позицию оси.
ALF не влияет на направление отвода для нескольких осей, а также для нескольких
осей в линейной связи.
Программируемое направление перемещения (ALF=…)
В плоскости движения отвода с помощью ALF программируется направление с
дискретным шагом в 45 градусов.
Возможные направления перемещения сохранены в СЧПУ под специальными кодовыми
номерами, по которым они могут вызываться.
Пример:
Программный код
N10 SETINT(2) PRIO=1 ABHEB_Z LIFTFAST
ALF=7
Инструмент движется с включенной G41 (направление обработки слева от контура)
вертикально от контура.
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
567
Расширенное программирование
4.3 Обработчик прерываний (ASUP)
G41
ALF = 7
Базовая плоскость для описания направлений перемещения при LFTXT
В точке касания инструмента на запрограммированном контуре создается плоскость,
служащая базой для указания движения отвода с соответствующим кодовым номером.
Базовая плоскость создается из продольной оси инструмента (направление подачи) и
вектора к этой оси вертикального к касательной в точке касания инструмента на контуре.
̱͇͇͙͔͇͌͒ͣͦ͘
̱͇͇͙͔͇͌͒ͣͦ͘
̹͕͇͑͞
͎͇͖͔͌͒͌͝͏ͦ
̱͇͇͙͔͇͌͒ͣͦ͘
̱͇͇͙͔͇͌͒ͣͦ͘
̹͕͇͑͞
͎͇͖͔͌͒͌͝͏ͦ
Кодовые номера с направлениям перемещения при LFTXT
Исходя из базовой плоскости, на рисунке ниже указаны кодовые номера с
направлениями перемещения.
Программирование ЧПУ
568
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.3 Обработчик прерываний (ASUP)
̩͏͋ ͉
͔͇͖͇͉͔͗͒͌͏͏
͖͓͔͌͗͌͌͌͠͏ͦ
r
r
̩͏͋ ͉͚͌͗͘͜
*
*
̴͇͖͇͉͔͗͒͌͏͌
͖͓͔͌͗͌͌͌͠͏ͦ
Для ALF=1 определен отвод в направлении инструмента.
При ALF=0 функция "Быстрый отвод" отключена.
ОСТОРОЖНО
Опасность столкновений
При включенной коррекции радиуса инструмента:
• при G41 кодировки 2, 3, 4
• при G42 кодировки 6, 7, 8
не должны использоваться, т.к. в этих случаях произошел бы подвод инструмента к
контуру и столкновение с деталью.
Кодовые номера с направлениям перемещения при LFWP
При LFWP направление в рабочей плоскости получается согласно следующему
согласованию:
• G17: плоскость X/Y
ALF=1: отвод в направлении Х
ALF=3: отвод в направлении Y
• G18: плоскость Z/X
ALF=1: отвод в направлении Z
ALF=3: отвод в направлении Х
• G19: плоскость Y/Z
ALF=1: отвод в направлении Y
ALF=3: отвод в направлении Z
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
569
Расширенное программирование
4.4 Управление файлами и программами
См. также
Быстрый обратный ход при резьбонарезании (LFON, LFOF, DILF, ALF, LFTXT, LFWP, LFPOS,
POLF, POLFMASK, POLFMLIN) (Страница 239)
4.3.8
Процесс движения для обработчиков прерываний
Обработчик прерываний без LIFTFAST
Движения осей затормаживаются на траектории до состояния покоя. После запускается
обработчик прерываний.
Позиция покоя сохраняется как позиция прерывания и при REPOS с RMIBL в конце
обработчика прерываний к ней выполняется подвод.
Обработчик прерываний с LIFTFAST
Движения осей затормаживаются на траектории. Одновременно движение LIFTFAST
выполняется как наложенное движение. После остановки движения по траектории и
движения LIFTFAST запускается обработчик прерываний.
В качестве позиции прерывания сохраняется позиция на контуре, на которой было
запущено движение LIFTFAST и из-за этого произошел выход из траектории.
Поведение обработчика прерываний с LIFTFAST и ALF=0 идентично обработчику
прерываний без LIFTFAST.
Примечание
Значение, на которое геометрические оси при быстром отводе отводятся от контура,
может быть установлено через машинные данные.
4.4
Управление файлами и программами
4.4.1
Программная память
4.4.1.1
Программная память в NCK
В программной памяти файлы и программы (к примеру, главные и подпрограммы,
макроопределения) сохраняются постоянно (→ пассивная файловая система).
Наряду с этим существует часть типов файлов, которые могут быть здесь
буферизированы и при необходимости (к примеру, при обработке определенной детали)
передаваться в оперативной память (к примеру, для инициализации).
Программирование ЧПУ
570
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.4 Управление файлами и программами
̶͕͇͓͓͔͇͗͊͗ͦ ͖͇͓͙ͦͣ ͉ 1&.
B1B'()B',5
B1B&67B',5
B1B&0$B',5
B1B&86B',5
B1B63)B',5
B1B03)B',5
B1B:.6B',5
B1B&20B',5
B1B60$&B'()
B1B/
B63)
B1B*/2%B63)
B1B03) B03)
B1B00$&B'()
B1B B63)
B1B B63)
B1B029B03)
B1B80$&B'()
B1B B03)
B1B6*8'B'()
B1B
B1B0*8'B'()
B1B8*8'B'()
B1B*8' B'()
B1B*8' B'()
B1B32&.(7 B63)
B1B:(//(B:3'
B1B03)
B:3'
B1B B63)
B1B:(//(B03)
B1B03)
B03)
B1B3$57 B03)
B1B/ B63)
B1B3$57 B63)
B1B B
B1B3$57 B63)
B1B:(//(B,1,
B1B:(//(B6($
B1B3$57 B,1,
B1B3$57 B8)5
͔̾͌͗͌͢ ͏͓͔͇͌ ͛͏͑͘͏͕͉͇͔͔͗͌͢
B1B3$57 B&20
̸͌͗͌͢ ͏͓͔͇͌ ͔͇͎͔͇͔͔͌͌͢͞ ͖͕͎͕͉͇͙͓͒ͣ͌͒͌
B1B:(//(
Стандартные директории
Следующие директории имеются стандартно:
Директория
Содержание
_N_DEF_DIR
Блоки данных и макроблоки
_N_CST_DIR
Стандартные циклы
_N_CMA_DIR
Циклы изготовителя
_N_CUS_DIR
Циклы пользователя
_N_WKS_DIR
Детали
_N_SPF_DIR
Глобальные подпрограммы
_N_MPF_DIR
Главные программы
_N_COM_DIR
Комментарии
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
571
Расширенное программирование
4.4 Управление файлами и программами
Типы файлов
В программной памяти могут быть размещены следующие типы файлов:
Тип файла
Описание
<имя>_MPF
Главная программа
<имя>_SPF
Подпрограмма
<имя>_TEA
Машинные данные
<имя>_SEA
Установочные данные
<имя>_TOA
Коррекции инструмента
<имя>_UFR
Смещения нулевой точки/фрейм
<имя>_INI
Файл инициализации
<имя>_GUD
Глобальные данные пользователя
<имя>_RPA
R-параметры
<имя>_COM
Комментарий
<имя>_DEF
Определения для глобальных данных пользователя и ма-
кросов
Главная директория деталей (_N_WKS_DIR)
Главная директория деталей по умолчанию называется _N_WKS_DIR и находится в
программной памяти. Главная директория детали содержит для всех
запрограммированных деталей соответствующие каталоги деталей.
Директории деталей ( ..._WPD)
Директория детали содержит все файлы, необходимые для обработки детали. Это могут
быть главные программы, подпрограммы, любые программы инициализации и файлы
комментариев.
Программы инициализации выполняются один раз после выбора программы при
первом запуске программы обработки детали (согласно машинным данным
MD11280 $MN_WPD_INI_MODE).
Пример:
Директория детали _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
Программирование ЧПУ
572
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.4 Управление файлами и программами
Файл
Описание
_N_PART2_UFR
Программа инициализации для фрейм-данных для программы Part
2
_N_WELLE_COM
Файл комментария
Дополнительно в директории детали можно хранить и такие данные, которые не
требуются ЧПУ для непосредственной обработки. Это могут быть не только файлы ASCII,
но и двоичные файлы, например изображения в формате JPG или описания в формате
PDF. Чтобы ЧПУ могло интерпретировать их как двоичные файлы, расширения этих
файлов должны быть известны в ЧПУ (настройка при вводе в эксплуатацию через
MD17000 $MN_ EXTENSIONS_OF_BIN_FILES; по умолчанию предустановлены следующие
расширения файлов: JPG, GIF, PNG, BMP, PDF, ICO, HTM).
Выбрать деталь для обработки
Директория детали может быть выбрана для выполнения в одном канале. Если в этой
директории находится главная программа с тем же именем или только единственная
главная программа (_MPF), то она автоматически выбирается для обработки.
4.4.1.2
Внешняя программная память
Наряду с пассивной файловой системой в ЧПУ на станке может быть доступна и внешняя
программная память (например, на локальном или сетевом диске).
С помощью функций "Выполнение с внешнего устройства" или "EES (Execution from
External Storage)" возможно выполнение программ обработки детали напрямую из
внешней программной памяти.
Дополнительная информация: Описание функций - Основные функции
Глобальная память программ обработки деталей (GDIR)
При описании дисков один из них можно отметить как глобальную память программ
обработки деталей (GDIR).
В этом случае система автоматически создает на диске директории MPF.DIR, SPF.DIR и
WKS.DIR. Эти три директории образуют память GDIR.
Память GDIR играет роль исключительно для функции EES. В зависимости от
конфигурации диска память GDIR заменяет или расширяет память программ обработки
деталей ЧПУ. Тем не менее, настройка памяти GDIR для режима EES не обязательна.
Директории и файлы памяти GDIR могут адресоваться в программе обработки детали
точно так же, как в пассивной файловой системе. При этом возможен совместимый
перенос программы ЧПУ с указанием пути из пассивной файловой системы в память
GDIR. Директория SPF.DIR памяти GDIR содержится в маршруте поиска для подпрограмм.
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
573
Расширенное программирование
4.4 Управление файлами и программами
Организация программы
На следующем рисунке показана организация программы во внешней программной
памяти:
̶͇͘͘͏͉͔͇ͦ ͇͕͉͇͛͐͒ͦ ͘͏͙͓͇͌͘ ͉ 1&.
̩͔͔͌ͦͦ͟ ͖͕͇͓͓͔͇͗͊͗ͦ ͖͇͓͙ͦͣ
'(9
̲͈͕ͥ͐ ͋͏͑͘
3URJV
̽͏͑͒͢
0\3URJ 0SI
B1B&67B',5
SS
[[[
B1B&0$B',5
PRUH3URJV
̩͇͒
B1B&86B',5
0\6XE3 63)
'(9
̶͇͓͙ͦͣ ͖͕͇͓͓͗͊͗ ͕͈͇͈͕͙͗͑͏
̪͕͈͇͔͇͒͒ͣͦ ͖͇͓͙ͦͣ ͖͕͇͓͓͗͊͗ ͕͈͗
͙͇͋͌͒͌͐
͇͈͕͙͑͏ ͙͇͋͌͒͌͐ *',5
03) ',5
03) ',5
B1B352* B03)
352*
03)
B1B352* B03)
352*
03)
63) ',5
63) ',5
B1B68% B63)
68%
63)
B1B68% B63)
68%
63)
:.6 ',5
:.6 ',5
Не зависящие от регистра файловые системы
Примечание
Чтобы избежать проблем с прописным и строчным написанием при адресации файлов
(см. "Адресация файлов программной памяти (Страница 574)"), в качестве внешней
программной памяти следует использовать файловые системы, не зависящие от
регистра.
4.4.1.3
Адресация файлов программной памяти
На файл в программной памяти, который запрашивается через команду для работы с
файлами (например WRITE, DELETE, READ, ISFILE, FILEDATE, FILETIME, FILESIZE, FILESTAT,
FILEINFO), дается отсылка либо через абсолютный путь плюс имя файла, либо только
через имя файла. Во втором случае в качестве пути файла используется путь выбранной
программы.
Программирование ЧПУ
574
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.4 Управление файлами и программами
Адресация в представлении ЧПУ/EES
̶͇͘͘͏͉͔͇ͦ ͇͕͉͇͛͐͒ͦ ͘͏͙͓͇͌͘ ͉
1&.
̩͔͔͌ͦͦ͟ ͖͕͇͓͓͔͇͗͊͗ͦ ͖͇͓͙ͦͣ
'(9
̲͈͕ͥ͐ ͋͏͑͘
3URJV
̽͏͑͒͢
B1B&67B',5
0\3URJ 0SI
SS
[[[
̧͇͋͗͌͘͝͏ͦ ͉ ͖͙͇͉͔͗͌͋͒͌͘͏͏ ((6
B1B&0$B',5
PRUH3URJV
'(9
3URJV SS
[[[
̩͇͒
B1B&86B',5
0\6XE3 63)
'(9
̶͇͓͙ͦͣ ͖͕͇͓͓͗͊͗ ͕͈͇͈͕͙͗͑
̪͕͈͇͔͇͒͒ͣͦ ͖͇͓͙ͦͣ ͖͕͇͓͓͗͊͗
͏ ͙͇͋͌͒͌͐
͕͈͇͈͕͙͗͑͏ ͙͇͋͌͒͌͐ *',5
̧͇͋͗͌͘͝͏ͦ ͉ ͖͙͇͉͔͗͌͋͒͌͘͏͏ 1&.
̧͇͋͗͌͘͝͏ͦ ͉ ͖͙͇͉͔͗͌͋͒͌͘͏͏ 1&.
B1B03)B',5
03) ',5
B1B03)B',5 B1B352* B03)
B1B03)B',5 B1B352* B03)
B1B352* B03)
352*
03)
B1B352* B03)
352*
03)
̧͇͋͗͌͘͝͏ͦ ͉ ͖͙͇͉͔͗͌͋͒͌͘͏͏ ((6
B1B63)B',5
63) ',5
03) ',5 352* 03)
B1B68% B63)
68%
63)
̧͇͋͗͌͘͝͏ͦ ͉ ͖͙͇͉͔͗͌͋͒͌͘͏͏ ((6
B1B68% B63)
68%
63)
͉͔͇͆ͦ ͇͇͋͗͌͘͝͏ͦ
'(9
63) ',5 68%
63)
B1B:.6B',5
:.6 ',5
1& B1B63)B',5 B1B68% B63)
͏͒͏
1& 63) ',5 68%
63)
Адресация файлов пассивной файловой системы
Адресация файлов пассивной файловой системы обычно осуществляется в
представлении ЧПУ (имена директорий и файлов начинаются с идентификатора
домена "_N_", разделительным символом для расширения директории/файла является
"_") без указания имени диска. Но и адресация в представлении EES (без
идентификатора домена "_N_", разделительным символом для расширения директории/
файла является ".") тоже допустима.
Пример:
• Представление ЧПУ: "/_N_SPF_DIR/_N_SUB1_SPF"
• Представление EES: "/SPF.DIR/SUB1.SPF"
Примечание
Адресации файлов пассивной файловой системы в представлении EES преобразуются
внутри в представление ЧПУ по следующим правилам:
• К именам директорий и файлов добавляется идентификатор домена "_N_".
• Если четвертым с конца символом в имени директории или файла является точка ("."),
она преобразуется в символ подчеркивания ("_").
Через предопределенное имя диска "//NC:" в пассивной файловой системе тоже
возможна целенаправленная адресация.
Пример:
• Представление ЧПУ: "//NC:/_N_SPF_DIR/_N_SUB1_SPF"
• Представление EES: "//NC:/SPF.DIR/SUB1.SPF"
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
575
Расширенное программирование
4.4 Управление файлами и программами
Адресация файлов внешней программной памяти
Адресация файлов внешней программной памяти, не отмеченной как память GDIR,
должна осуществляться в представлении EES. В начале пути адресации необходимо
указать имя диска (например, "//DEV1:"). Допустимы все символические имена устройств,
сконфигурированные в /user/sinumerik/hmi/cfg/logdrive.ini.
Пример:
• Представление EES: "//DEV1:/MyProgDir/pp1.xxx"
• Представление ЧПУ: недопустимо
Адресация файлов глобальной памяти программ обработки деталей (GDIR)
При адресации файлов памяти GDIR наряду с указанием пути в представлении EES
допускается и указание пути в представлении ЧПУ.
Пример:
• Представление EES: "//DEV2:/MPF.DIR/PROG11.MPF"
• Представление ЧПУ: "/_N_MPF_DIR/_N_PROG11_MPF"
Примечание
Адресации файлов памяти GDIR в представлении ЧПУ преобразуются внутри в
представление EES по следующим правилам:
• Идентификатор домена "_N_" в имени директории и файла удаляется.
• Если четвертым с конца символом в имени директории или файла является символ
подчеркивания ("_"), он преобразуется в точку (".").
Правила указания пути
Полное указание пути состоит из имени диска, пути директории и имени файла.
Имя диска
Для указания имени диска действуют следующие правила:
• Допустимы все символические имена устройств, сконфигурированные в /user/
sinumerik/hmi/cfg/logdrive.ini.
• В начале стоит символ "//", за ним следует как минимум одна буква или цифра.
• Последующими символами могут быть буквы, цифры, "_" и пробел в любой
комбинации.
• Завершается имя буквой или цифрой, за которой следует двоеточие ":".
• Прочие специальные символы запрещены.
Примечание
Для пассивной файловой системы предопределено имя диска "//NC:".
Программирование ЧПУ
576
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.4 Управление файлами и программами
Примеры:
• Внешняя программная память:
-
//Drive1:
–
//Drive_1:
–
//Drive 1:
–
//A B:
–
//1 B C 2:
Путь директории
Для указания пути директории действуют следующие правила:
• В начале и в конце пути директории и в качестве разделительного символа для
отдельных участков пути используется "/".
Примечание
Двойная косая черта ("//") внутри пути директории недопустима!
• Имена директорий:
- Имена директорий должны начинаться с буквы или цифры. Только при адресации
в представлении ЧПУ имена директорий начинаются с идентификатора домена
"_N_".
- Последующими символами могут быть буквы, цифры и "_" в любой комбинации.
Примечание
В случае внешней программной памяти в имени директории допускаются и
пробелы. Но это не действительно, если внешняя программная память настроена
как глобальная память программ обработки деталей (GDIR).
- Прочие специальные символы запрещены.
• Расширения директорий:
- Расширения директорий должны состоять точно из трех букв/цифр.
- Они отделяются от имени директории символом "_" (представление ЧПУ) или "."
(представление EES).
Примечание
В пассивной файловой системе есть только расширения директорий _DIR и _WPD.
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
577
Расширенное программирование
4.4 Управление файлами и программами
Примеры:
• Пассивная файловая система или память GDIR:
- Представление ЧПУ: _N_WKS_DIR/_N_MYNCPROGS_WPD/...
- Представление EES: WKS.DIR/MYPROGS.WPD/...
• Внешняя программная память:
- /abc
- /ab_c.def
- /ab c1.def
- /a b c .d11
- /abc.def/ghi.klm
Имя файла
Для имен файлов действуют следующие правила:
• Только при адресации в представлении ЧПУ имена файлов начинаются с
идентификатора домена "_N_".
• Оба следующих символа должны быть две буквы или знак подчеркивания с буквой
после него.
Примечание
Если это условие выполнено, программа ЧПУ может быть вызвана из другой
программы как подпрограмма путем указания имени программы . Если имя
программы начинается с цифр, вызов подпрограммы возможен только через
оператор CALL.
• Последующими символами могут быть буквы, цифры и "_" в любой комбинации.
• Расширение файла:
- Расширение файла должно состоять точно из трех букв/цифр.
Примечание
Допустимые расширения файлов в пассивной файловой системе представлены в
"Программная память в NCK (Страница 570)".
- Оно отделяется от имени файла символом "_" (представление ЧПУ) или "."
(представление EES).
Программирование ЧПУ
578
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.4 Управление файлами и программами
Примеры:
• Пассивная файловая система или память GDIR:
- Представление ЧПУ: _N_SUB1_SPF
- Представление EES: SUB1.SPF
• Внешняя программная память:
- Teil1
- _Teil1
- Teil_1.spf
- Teil1.mpf
Имя подпрограммы в коде DIN
Для имен подпрограмм в коде DIN действуют следующие правила:
• Первый символ - буква "L".
• Следующие символы - цифры (не менее одной).
• Расширение файла:
- Расширение файла должно состоять точно из трех букв.
- Оно отделяется от имени файла символом "_" (представление ЧПУ) или "."
(представление EES).
Примеры:
• L123
• L1_SPF (представление ЧПУ) или L1.SPF (представление EES)
Максимальная длина пути
Для указания имени диска и пути директории доступно не более 128 байт, длина имени
файла должна составлять не более 31 байт. Следовательно, общая длина пути не должна
превышать 159 байт.
4.4.1.4
Маршрут поиска при вызове подпрограммы
При вызовах подпрограмм без указания пути абсолютный путь определяется через
выполнение фиксированного маршрута поиска.
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
579
Расширенное программирование
4.4 Управление файлами и программами
При этом поиск в программной памяти осуществляется в следующей
последовательности:
Директория
Описание
1
текущая директория / name
Текущая директория - это директория, в ко-
торой осуществлен выбор программы.
2
текущая директория / name_SPF
Это может быть:
3
текущая директория / name_MPF
• директория детали или стандартная
директория _N_MPF_DIR в памяти про-
грамм обработки деталей ЧПУ или в гло-
бальной памяти программ обработки де-
талей
или
• любая директория внешней программ-
ной памяти
4
a
//NC:/_N_SPF_DIR / name_SPF
Директория подпрограммы в памяти про-
грамм обработки деталей ЧПУ
B
//DEV2:/_N_SPF_DIR / name_SPF 1)
Директория подпрограммы в глобальной па-
мяти программ обработки деталей
Указание:
Этот этап поиска отсутствует, если глобальная
память программ обработки деталей не соз-
дана или выбор программы осуществлен в
памяти программ обработки деталей ЧПУ.
5
Расширение маршрута поиска, запрограммированное с CALLPATH (см. "Расширить мар-
шрут поиска для вызовов подпрограмм (CALLPATH) (Страница 553)").
Примечание:
Этот этап поиска отсутствует, если команда CALLPATH не запрограммирована.
6
/_N_CUS_DIR / name_SPF
Директория циклов пользователя
7
/_N_CMA_DIR / name_SPF
Директория циклов изготовителя
8
/_N_CST_DIR / name_SPF
Директория стандартных циклов
1)
//DEV2:" означает, например, диск, на котором создана глобальная память программ обработки
деталей.
Для поиска действуют следующие правила:
• Маршрут поиска проходится для каждого отдельного вызова подпрограммы, т. е. не
важно, где находится программа верхнего уровня.
• В зависимости от директории учитываются разные типы файлов.
• Поиск принципиально не выполняется в директориях нижнего уровня, т. е. во
вложенных директориях.
Программирование ЧПУ
580
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.4 Управление файлами и программами
4.4.1.5
Запрос пути и имени файла
Для запроса пути и имени файла программы ЧПУ предусмотрены следующие системные
переменные, считываемые в программе обработки детали:
Системная переменная
Тип
Объяснение
$P_STACK
INT
Выводит программный уровень, на котором обрабатывает-
ся текущая программа ЧПУ.
$P_PATH[ <n>]
STRING
Выводит путь программы ЧПУ, которая обрабатывается на
программном уровне, выбранном через индекс поля <n>.
Примеры:
$P_PATH[0] выводит путь для главной программы,
например "/_N_WKS_DIR/_N_WELLE_WPD/".
$P_PATH[$P_STACK - 1] выводит путь вызывающей програм-
мы.
Если путь относится к программе ЧПУ, которая заложена в
пассивной файловой системе ЧПУ или в глобальной памя-
ти программ обработки деталей (GDIR), то этот путь выво-
дится в представлении ЧПУ.
Если путь относится к программе ЧПУ, которая обрабаты-
вается какой-либо другой внешней программной памя-
тью, но не глобальной памятью программ обработки дета-
лей, то $P_PATH выводит этот путь в представлении EES.
$P_PROG[ <n>]
STRING
Выводит имя программы ЧПУ, которая обрабатывается на
программном уровне, выбранном через индекс поля <n>.
Если программа ЧПУ заложена в пассивной файловой си-
стеме ЧПУ или в глобальной памяти программ обработки
деталей, имя программы выводится в представлении ЧПУ.
Если программа ЧПУ обрабатывается с какого-либо друго-
го внешнего диска, но не глобальной памятью программ
обработки деталей, то $P_PROG выводит имя в
представлении EES.
$P_PROGPATH
STRING
Выводит путь программы ЧПУ, которая обрабатывается в
данный момент.
Вызов $P_PROGPATH идентичен $P_PATH[$P_STACK].
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
581
Расширенное программирование
4.4 Управление файлами и программами
Системная переменная
Тип
Объяснение
$P_IS_EES_PATH[ <n>]
BOOL
Запрос, соответствует ли выведенный через $P_PATH[<n>]
путь или выведенное через $P_PROG[<n>] имя программы
представлению ЧПУ или представлению EES.
= FALSE
$P_PATH[<n>] и $P_PROG[<n>] обеспечивают
представление ЧПУ. Т. е. перед каждым иден-
тификатором стоит префикс "_N_". Раздели-
тельным символом для расширения файла явл-
яется "_".
Примеры:
• Путь в представлении ЧПУ: "/_N_WKS_DIR/
_N_MYWPD_WPD/"
• Имя программы в представлении ЧПУ:
"_N_MYPROG_MPF"
Путь в представлении ЧПУ может относиться
как к пассивной файловой системе в ЧПУ, так и
к глобальной памяти программ обработки де-
талей.
=TRUE
$P_PATH[<n>] и $P_PROG[<n>] выводят
представление EES. Т. е. перед идентификато-
рами префикса "_N_" нет. Разделительным сим-
волом для расширения файла является ".".
Примеры:
• Путь в представлении EES: "//DEV1:/WKS.DIR/
MYWPD.WPD/"
• Имя программы в представлении EES:
"MYPROG.MPF"
<n>: Индекс <n> определяет программный уровень, с которого должна считываться информация
о пути (диапазон значений: 0 ... 17)
Примечание
В режиме EES вне глобальной памяти программ обработки деталей (GDIR) системными
переменными $P_PROG, $P_PATH, и $P_PROGPATH имена пути выводятся в представлении
EES. Поэтому программы пользователя, которые используют и далее обрабатывают эти
имена пути, нужно расширить для режима EES таким образом, чтобы они могли
обрабатывать и имена пути в представлении EES.
4.4.2
Оперативная память (CHANDATA, COMPLETE, INITIAL)
Функция
Оперативная память содержит текущие системные данные и данные пользователя, с
которыми работает СЧПУ (активная файловая система), например:
• Активные машинные данные
• Данные коррекции инструмента
Программирование ЧПУ
582
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.4 Управление файлами и программами
• Смещения нулевой точки
• ...
Программы инициализации
Здесь речь идет о программах, с которыми предустанавливаются (инициализируются)
данные оперативной памяти. Для этого могут использоваться следующие типы файлов:
Тип файла
Описание
name_TEA
Машинные данные
name_SEA
Установочные данные
name_TOA
Коррекции инструмента
name_UFR
Смещения нулевой точки/фрейм
name_INI
Файл инициализации
name_GUD
Глобальные данные пользователя
name_RPA
R-параметры
Области данных
Данные могут быть разбиты на различные области, в которых они должны действовать.
Например, СЧПУ может иметь несколько каналов или обычно и несколько осей.
Существует:
Идентификатор
Области данных
ЧПУ
Специфические данные ЧПУ
CH<n>
Специфические данные канала (<n> указывает номер канала)
AX<n>
Специфические данные осей (n указывает номер оси станка)
TO
Данные инструмента
COMPLETE
Все данные
Создание программы инициализации на внешнем РС
С помощью идентификатора области данных и идентификатора типа данных можно
определить области, которые при сохранении данных рассматриваются как блок:
_N_AX5_TEA_INI
Машинные данные для оси 5
_N_CH2_UFR_INI
Фреймы канала 2
_N_COMPLETE_TEA_INI
Все машинные данные
После ввода в эксплуатацию СЧПУ в оперативной памяти имеется блок данных,
обеспечивающий правильную работу СЧПУ.
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
583
Расширенное программирование
4.4 Управление файлами и программами
Принцип действий для многоканальных СЧПУ (CHANDATA)
CHANDATA (номер канала) для нескольких каналов разрешен только в файле
_N_INITIAL_INI. Это файл ввода в эксплуатацию, с помощью которого инициализируются
все данные СЧПУ.
Программный код
Комментарий
%_N_INITIAL_INI
CHANDATA(1)
; согласование осей станка канал 1:
$MC_AXCONF_MACHAX_USED[0]=1
$MC_AXCONF_MACHAX_USED[1]=2
$MC_AXCONF_MACHAX_USED[2]=3
CHANDATA(2)
; согласование осей станка канал 2:
$MC_AXCONF_MACHAX_USED[0]=4
$MC_AXCONF_MACHAX_USED[1]=5
CHANDATA(1)
: осевые машинные данные:
; окно точного останова грубого:
$MA_STOP_LIMIT_COARSE[AX1]=0.2
; ось 1
$MA_STOP_LIMIT_COARSE[AX2]=0.2
; ось 2
; окно точного останова точного:
$MA_STOP_LIMIT_FINE[AX1]=0.01
; ось 1
$MA_STOP_LIMIT_FINE[AX1]=0.01
; ось 2
ВНИМАНИЕ
Оператор CHANDATA
В программе обработки детали оператор CHANDATA может быть установлен только для
канала, в котором выполняется программа ЧПУ. Это означает, что оператор может
использоваться для защиты программ ЧПУ от выполнения в не предусмотренном для
этого канале.
В случае ошибки выполнение программы отменяется.
Примечание
Файлы INI в списках заданий не содержат операторов CHANDATA.
Сохранение программ инициализации (COMPLETE, INITIAL)
Файлы оперативной памяти могут быть сохранены на внешний PC и снова загружены с
него.
• Файлы сохраняются с помощью COMPLETE .
• С помощью INITIAL для всех областей создается файл INI (_N_INITIAL_INI).
Программирование ЧПУ
584
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.5 Обработка файла
Загрузка программ инициализации
ВНИМАНИЕ
Потеря данных
Если загружается файл с именем "INITIAL_INI", то все данные, которые не
обеспечиваются в файле, инициализируются со стандартными данными. Исключением
являются только машинные данные. Т.е установочные данные, данные инструмента,
WO, значения GUD, ... обеспечиваются со стандартными данными (обычно "НОЛЬ").
Для загрузки отдельных машинных данных, подходит, например, файл
COMPLETE_TEA_INI. В этом файле СЧПУ ожидает только машинные данные. Тем самым
другие области данных в этом случае не затрагиваются.
Загрузка программ инициализации
Программы INI могут выбираться и вызываться и как программы обработки детали, если
они используют только данные одного канала. Таким образом также возможна
инициализация управляемых программой данных.
4.5
Обработка файла
4.5.1
Записать файл (WRITE)
С помощью команды WRITE кадры/данные из программы ЧПУ могут быть записаны в
конец файла (журнала), находящегося в пассивной файловой системе или во внешней
программной памяти. Это может быть и обрабатываемая в настоящий момент
программа.
Примечание
Записываемый посредством команды WRITE файл создается заново, если он не
существует в программной памяти.
Условие
Актуальная установленная степень защиты должна быть равна или быть выше права
WRITE файла. Если это не так, то доступ отклоняется с сообщением об ошибке
(возвращаемое значение переменной ошибки = 13).
Синтаксис
DEF INT <ошибка>
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
585
Расширенное программирование
4.5 Обработка файла
WRITE(<ошибка>,"<имя файла>"/"<ExtG>","<кадр/данные>")
Значение
WRITE:
Команда добавления кадра или данных в конце указанного файла
<ошибка>:
Параметр 1: Переменная для возврата значения ошибки
Тип:
INT
Значе-
0
нет ошибок
ние:
1
путь не разрешен
2
путь не найден
3
файл не найден
4
неправильный тип файла
10
файл заполнен
11
файл используется
12
нет свободных ресурсов
13
нет прав доступа
14
отсутствие или неудача EXTOPEN для устройства вывода
15
ошибка записи на внешнее устройство
16
запрограммирован недействительный внешний путь
<имя файла>:
Параметр 2: Имя файла, в котором должен быть добавлен указанный кадр
или указанные данные
Тип:
STRING
Перед собственно именем файла можно указывать абсолютный путь. Если
путь не указывается, то поиск файла осуществляется в актуальной директо-
рии (=директория выбранной программы).
Правила указания пути см. "Адресация файлов программной памяти (Стра-
ница 574)".
<ExtG>:
Если данные с помощью функции "Process DataShare" должны быть выведены
на внешнее устройство/файл, то необходимо указать вместо имени файла
символический идентификатор для открываемого внешнего устройства/
файла.
Тип:
STRING
Дополнительную информацию см. "Process DataShare - Вывод на внешнее ус-
тройство/файл (EXTOPEN, WRITE, EXTCLOSE) (Страница 1039)".
Примечание:
Идентификатор должен быть идентичен указанному в команде EXTOPEN
идентификатору.
<кадр/данные>:
Параметр 3: Кадр или данные, которые должны быть добавлены в указанный
файл.
Тип:
STRING
Программирование ЧПУ
586
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.5 Обработка файла
Примечание
При записи в пассивную файловую систему или во внешнюю программную память
команда WRITE не явно добавляет символ "LF" (LINE FEED = новая строка) в конце строки
вывода.
Для вывода на внешнее устройство/файл через функцию "Process DataShare" это
поведение не действует. Если "LF" также должен быть выведен, то это должно быть
указано явно в строке вывода.
→ См. пример 3: не явный/явный "LF"!
Граничные условия
• Макс. размер файла (→ изготовитель станка!)
Макс. возможный размер файлов журнала в пассивной файловой системе
устанавливается с машинными данными:
MD11420 $MN_LEN_PROTOCOL_FILE
Макс. размер файла действует для всех файлов, создаваемых с помощью
команды WRITE в пассивной файловой системе. При превышении выводится
сообщение об ошибке и кадр или данные не сохраняются. Если памяти достаточно, то
может быть создан новый файл.
Примеры
Пример 1: Команда WRITE в пассивную файловую систему без абсолютного указания
пути
Программный код
Комментарий
N10 DEF INT ERROR
; Определение переменных ошибок.
N20 WRITE(ERROR,"PROT","PROTOKOLL VOM 7.2.97")
; Записать текст "PROTOKOLL VOM
7.2.97" в файл _N_PROT_MPF.
N30 IF ERROR
;Обработка ошибок.
N40 MSG ("Ошибка команды WRITE:" << ERROR)
N50 M0
N60 ENDIF
Пример 2: Команда WRITE в пассивную файловую систему с абсолютным указанием
пути
Программный код
WRITE(ERROR,"/_N_WKS_DIR/_N_PROT_WPD/_N_PROT_MPF","PROTOKOLL VOM
7.2.97")
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
587
Расширенное программирование
4.5 Обработка файла
Пример 3: Не явный/явный "LF"
a, запись в пассивную файловую систему с не явно созданным "LF"
Программный код
N110 DEF INT ERROR
N120 WRITE(ERROR,"/_N_MPF_DIR/_N_MYPROTFILE_MPF","MY_STRING")
N130 WRITE(ERROR,"/_N_MPF_DIR/_N_MYPROTFILE_MPF","MY_STRING")
N140 M30
Результат вывода:
MY_STRING
MY_STRING
b, запись во внешний файл без не явного созданного "LF"
Программный код
N200 DEF STRING[30] DEV_1
N210 DEF INT ERROR
N220 DEV_1="LOCAL_DRIVE/myprotfile.mpf"
N230 EXTOPEN(ERROR,DEV_1)
N240 WRITE(ERROR,DEV_1,"MY_STRING")
N250 WRITE(ERROR,DEV_1,"MY_STRING")
N260 EXTCLOSE(ERROR,DEV_1)
N270 M30
Результат вывода:
MY_STRINGMY_STRING
c, запись во внешний файл с явно запрограммированным "LF"
Для получения результата, идентичного a, запрограммировать следующее:
Программный код
N200 DEF STRING[30] DEV_1
N210 DEF INT ERROR
N220 DEV_1="LOCAL_DRIVE/myprotfile.mpf"
N230 EXTOPEN(ERROR,DEV_1)
N240 WRITE(ERROR,DEV_1,"MY_STRING'H0A'")
N250 WRITE(ERROR,DEV_1,"MY_STRING'H0A'")
N260 EXTCLOSE(ERROR,DEV_1)
N270 M30
Результат вывода:
Программирование ЧПУ
588
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.5 Обработка файла
MY_STRING
MY_STRING
4.5.2
Удалить файл (DELETE)
С помощью команды DELETE могут удаляться любые файлы, независимо от того,
созданы ли они через команду WRITE или нет. Файлы, созданные при более высоком
уровне доступа, также могут быть удалены с DELETE.
Синтаксис
DEF INT <ошибка>
DELETE(<ошибка>,"<имя файла>")
Значение
DELETE:
Команда удаления указанного файла
<ошибка>:
Переменная для возврата значения ошибки
Тип.
INT
Значе-
0
нет ошибок
ние:
1
путь не разрешен
2
путь не найден
3
файл не найден
4
неправильный тип файла
11
файл используется
12
нет свободных ресурсов
20
иная ошибка
<имя файла>:
Имя удаляемого файла
Тип:
STRING
Перед собственно именем файла можно указывать абсолютный путь. Если
путь не указывается, то поиск файла осуществляется в актуальной дирек-
тории (=директория выбранной программы).
Правила указания пути см. "Адресация файлов программной памяти (Стра-
ница 574)".
Пример
Программный код
Комментарий
N10 DEF INT ERROR
; Определение переменных ошибок.
N15 STOPRE
; Остановка предварительной обработки.
N20 DELETE(ERROR,"/_N_SPF_DIR/_N_TEST1_SPF")
; Удалить файл TEST1 в директории под-
программы.
N30 IF ERROR
;Обработка ошибок.
N40 MSG("Ошибка команды DELETE:" <<ERROR)
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
589
Расширенное программирование
4.5 Обработка файла
Программный код
Комментарий
N50 M0
N60 ENDIF
4.5.3
Чтение строк в файле (READ)
Команда READ считывает в указанном файле одну или несколько строк и помещает
считанную информацию в поле типа STRING. Каждая считанная строка в этом поле
занимает один элемент поля.
Условие
Актуальная установленная степень защиты должна быть равна или быть выше права
READ файла. Если это не так, то доступ отклоняется с сообщением об ошибке
(возвращаемое значение переменной ошибки = 13).
Синтаксис
DEF INT <ошибка>
DEF STRING[<длина строки>] <результат>[<n>,<m>]
READ(<ошибка>,"<имя файла>",<начальная строка>,<число строк>,<результат>)
Объяснение
READ:
Команда по чтению строк указанного файла и по сохранению этих строк
в поле переменной.
<ошибка>:
Переменная для возврата значения ошибки (параметры, вызываемые
по ссылке)
Тип.
INT
Значе-
0
нет ошибок
ние:
1
путь не разрешен
2
путь не найден
3
файл не найден
4
неправильный тип файла
11
файл используется
13
прав доступа недостаточно
21
Строка отсутствует (параметр <начальная строка>
или <число строк> больше, чем число строк в ука-
занном файле).
22
Длина поля переменной результата (<результат>)
слишком маленькая.
23
Слишком большой диапазон строк
(параметр <число строк> выбран таким большим,
что считывается за конец файла).
Программирование ЧПУ
590
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.5 Обработка файла
<имя файла>:
Имя считываемого файла (параметр, вызываемый по значению)
Тип:
STRING
Перед собственно именем файла можно указывать абсолютный путь.
Если путь не указывается, то поиск файла осуществляется в актуальной
директории (=директория выбранной программы).
Правила указания пути см. "Адресация файлов программной памяти
(Страница 574)".
<начальная строка>:
Начальная строка считываемой области файла (параметр, вызываемый
по значению)
Тип:
INT
Значе-
0
Считывается указанное с помощью
ние:
параметра <число строк> число строк перед
концом файла.
1 … n
Номер первой считываемой строки.
<число строк>:
Число считываемых строк (параметр, вызываемый по значению)
Тип:
INT
<результат>:
Переменная результата (параметр, вызываемый по ссылке)
Поле переменной, в которое помещается считанный текст.
Тип:
STRING (макс. длина: 255)
Если в параметре <число строк> указано меньше строк, чем составляет
размер поля [<n>,<m>] переменной результата, то оставшиеся элемен-
ты поля не изменяются.
Конец строки через управляющий символ "LF" (Line Feed) или "CR LF"
(Carrige Return Line Feed) не помещается в переменную результата.
Считанные строки обрезаются, если строка длиннее, чем определенная
длина строки. Сообщение об ошибке не появляется.
Примечание
Загрузка двоичных файлов невозможна. Выводится ошибка "неправильный тип файла"
(возвращаемое значение переменной ошибки = 4). Чтение следующих типов файлов
невозможно: _BIN, _EXE, _OBJ, _LIB, _BOT, _TRC, _ACC, _CYC, _NCK.
Пример
Программный код
Комментарий
N10 DEF INT ERROR
; Определение переменных ошибок.
N20 DEF STRING[255] RESULT[5]
; Определение переменной результата.
N30 READ(ERROR,"/_N_CST_DIR/
;Имя файла с идентификатором домена, расши-
_N_TESTFILE_MPF",1,5,RESULT)
рением файла
и указанием пути.
N40 IF ERROR <>0
;Обработка ошибок.
N50 MSG("FEHLER"<<ERROR<<"BEI READ-BEFEHL")
N60 M0
N70 ENDIF
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
591
Расширенное программирование
4.5 Обработка файла
4.5.4
Проверка наличия файла (ISFILE)
Командой ISFILE можно проверить, существует ли файл в программной памяти.
Синтаксис
<Результат>=ISFILE("<Имя файла>")
Объяснение
ISFILE:
Команда для проверки наличия файла
<Имя файла>:
Имя файла, наличие которого нужно проверить.
Тип:
STRING
Перед собственно именем файла можно указывать абсолютный путь. Если
путь не указывается, то поиск файла осуществляется в текущей директории
(=директория выбранной программы).
Правила указания пути см. "Адресация файлов программной памяти (Стра-
ница 574)".
<Результат>:
Переменная результата для записи результата проверки
Тип.
BOOL
Значе-
TRUE
Файл имеется
ние:
FALSE
Файл отсутствует
Примеры
Пример 1
Программный код
Комментарий
N10 DEF BOOL RESULT
; Определение переменной результата.
N20 RESULT=ISFILE("TESTFILE")
N30 IF(RESULT==FALSE)
N40
MSG("▸ФАЙЛ ОТСУТСТВУЕТ")
N50
M0
N60 ENDIF
Пример 2
Программный код
Комментарий
N10 DEF BOOL RESULT
; Определение переменной результата.
N20 RESULT=ISFILE("TESTFILE")
N30 IF(NOT ISFILE("TESTFILE"))
N40
MSG("ФАЙЛ ОТСУТСТВУЕТ")
N50
M0
N60 ENDIF
Программирование ЧПУ
592
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.5 Обработка файла
4.5.5
Выгрузка файловой информации (FILEDATE, FILETIME, FILESIZE, FILESTAT,
FILEINFO)
Через команды FILEDATE, FILETIME, FILESIZE, FILESTAT и FILEINFO можно
выгрузить определенную файловую информацию, например, дату / время последнего
обращения по записи, текущий размер файла, состояние файла или сумму этих
информаций.
Условие
Текущая установленная степень защиты должна быть равна или быть выше права
просмотра директории верхнего уровня. Если это не так, то доступ отклоняется с
сообщением об ошибке (возвращаемое значение переменной ошибки = 13).
Синтаксис
FILE
(<Ошибка>,"<Имя файла>",<Результат>)
Объяснение
FILEDATE:
Выводит дату последнего обращения к файлу по записи
FILETIME:
Выводит время последнего обращения к файлу по записи
FILESIZE:
Выводит текущий размер файла
FILESTAT:
Выводит состояние файла касательно следующих прав:
• Чтение (r: read)
• Запись (w: write)
• Исполнение (x: execute)
• Индикация (s: show)
• Удаление (d: delete)
Примечание:
Эти уровни защиты являются специальными свойствами пассивной фай-
ловой системы. Поэтому при доступе к внешней программной памя-
ти FILESTAT предоставляет только права доступа по умолчанию (77777).
FILEINFO:
Выводит для файла суммарную информацию, которая может быть вы-
гружена через FILEDATE, FILETIME, FILESIZE и FILESTAT.
<ошибка>:
Переменная для возврата значения ошибки (параметры, вызываемые по
ссылке)
Тип.
VAR INT
Значе-
0
нет ошибок
ние:
1
путь не разрешен
2
путь не найден
3
файл не найден
4
неправильный тип файла
13
прав доступа недостаточно
22
Длина строки переменной результата (<результат>)
слишком маленькая.
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
593
Расширенное программирование
4.5 Обработка файла
<Имя файла>:
Имя файла, из которого должна быть выгружена файловая информация
Тип:
CHAR[160]
Перед собственно именем файла можно указывать абсолютный путь.
Если путь не указывается, то поиск файла осуществляется в текущей ди-
ректории (=директория выбранной программы).
Правила указания пути см. "Адресация файлов программной памяти
(Страница 574)".
<Результат>:
Переменная результата (параметр Call-By-Reference)
Переменная, в которую помещается запрошенная файловая информа-
ция.
Тип:
VAR CHAR[8]
при
FILEDATE
формат: "dd.mm.yy"
VAR CHAR[8]
при
FILETIME
формат: "hh:mm.ss"
VAR INT
при
FILESIZE
Размер файлы выводится в байтах.
VAR CHAR[5]
при
FILESTAT
формат: "rwxsd"
(r: read, w: write, x: execute, s: show,
d: delete)
VAR CHAR[32]
при
FILEINFO
Формат: "rwxsd nnnnnnnn
dd.mm.yy hh:mm:ss"
Пример
Программный код
Комментарий
N10 DEF INT ERROR
; Определение переменных ошибок.
N20 STRING[32] RESULT
; Определение переменной результа-
та.
N30 FILEINFO(ERROR,"/_N_MPF_DIR/
; Имя файла с идентификатором доме-
_N_TESTFILE_MPF",RESULT)
на, расширением файла и указанием
пути.
N40 IF ERROR <> 0
; Обработка ошибок
N50
MSG("ОШИБКА"<<ERROR<<"В СЛУЧАЕ КОМАНДЫ
FILEINFO")
N60
M0
N70 ENDIF
Пример мог бы вывести в переменной результата RESULT, например, следующий
результат:
"77777 12345678 26.05.00 13:51:30"
Программирование ЧПУ
594
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.6 Защищенные области
4.6
Защищенные области
4.6.1
Определение защищенных областей (CPROTDEF, NPROTDEF)
Защищенные области, которые должны защищать элементы станка от столкновений,
определены соответственно в блоках в программе обработки детали. Они включают
следующие элементы:
1. Определение рабочей плоскости
Перед собственно началом определения защищенной области необходимо выбрать
рабочую плоскость, к которой должно относиться описание контура защищенной
области.
2. Начало определения
В зависимости от команды ЧПУ защищенная область создается либо спец. для канала,
либо спец. для станка.
3. Описание контура защищенной области
Контур защищенной области описывается посредством движений перемещения.
Они не выполняются и не связаны с предшествующими или последующими
геометрическими описаниями. Они определяют только защищенную область.
4. Конец определения
Синтаксис
DEF INT <Var>
G17/G18/G19
CPROTDEF/NPROTDEF(<n>,<t>,<AppLim>,<AppPlus>,<AppMinus>)
G0/G1/... X/Y/Z
EXECUTE(<Var>)
Объяснение
DEF INT <Var>:
Определение локальной вспомогательной переменной
(тип данных: INTEGER)
<Var>:
Имя вспомогательной переменной
G17/G18/G19:
Рабочая плоскость
Указание:
Рабочая плоскость не может изменяться до конца опреде-
ления. Программирование аппликаты между началом и
концом определения не допускается.
CPROTDEF():
Предопределенная процедура определения спец.
для канала защищенной области
NPROTDEF():
Предопределенная процедура определения спец.
для станка защищенной области
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
595
Расширенное программирование
4.6 Защищенные области
<n>:
Номер определенной защищенной области
Тип дан-
INT
ных:
<t>:
Тип защищенной области
Тип дан-
BOOL
ных:
Значение:
TRUE
Относящаяся к инструменту защи-
щенная область
FALSE
Относящаяся к детали защищенная
область
<AppLim>:
Тип ограничения в 3-м измерении
Тип дан-
INT
ных:
Значение:
0
нет ограничения
1
ограничение в плюсовом направле-
нии
2
ограничение в минусовом направле-
нии
3
Ограничение в плюсовом и минусо-
вом направлении
<AppPlus>:
Значение ограничения в плюсовом направлении 3-й раз-
мерности
Тип дан-
REAL
ных:
<AppMinus>:
Значение ограничения в минусовом направлении 3-й раз-
мерности
Тип дан-
REAL
ных:
Программирование ЧПУ
596
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.6 Защищенные области
G0/G1/... X/Y/Z
:
Контур защищенной области описывается макс. 11 движе-
ниями перемещения в выбранной рабочей плоскости. При
этом первое движение перемещения - это движение к
контуру. Последняя точка описания контура всегда должна
совпадать с первой точкой описания контура.
Защищенной областью считается область слева от контура:
• внутренняя защищенная область
Контур для внутренней защищенной области следует
описывать против часовой стрелки.
• Наружная защищенная область (допускается только для
относящихся к детали защищенных областей)
Контур для наружной защищенной области следует опи-
сывать по часовой стрелке.
Допустимы следующие элементы контура:
• G0, G1 для прямых элементов контура
• G2 для сегментов окружности по часовой стрелке
Допустимо только для относящихся к детали защищен-
ных областей! Не допустимо для относящихся к инстру-
менту защищенных областей, т. к. они могут быть только
выпуклыми.
• G3 для круговых сегментов против часовой стрелки
Указание:
Защищенная область не может быть описана полным круг-
ом. Полный круг должен быть разбит на две делительные
окружности.
Указание:
Последовательность G2 → G3 или G3 → G2 не допустима!
Между двумя круговыми кадрами должен быть вставлен
короткий кадр G1.
EXECUTE(<Var>):
Предопределенная процедура, отмечающая конец опреде-
ления
EXECUTE возвращает к обычной обработке программы.
Пример
Пример см. в "Активация/деактивация защищенных областей (CPROT, NPROT)
(Страница 599)".
Дополнительная информация
Спец. для станка защищенные области
Относящаяся к станку защищенная область или ее контур определяется посредством
гео-осей, т. е. относительно базовой кинематической системы (BKS) канала. Чтобы был
возможен правильный контроль защищенных областей во всех каналах, в которых
активна спец. для станка защищенная область, базовые кинематические системы (BKS)
всех участвующих каналов должны быть идентичны:
• положение начала координат относительно нулевой точки станка
• Ориентация осей координат
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
597
Расширенное программирование
4.6 Защищенные области
Исходная точка описания контура
• Относящиеся к инструменту защищенные области
Координаты для относящихся к инструменту защищенных областей указываются
абсолютно, относительно опорной точки инструментального суппорта F.
• Относящиеся к детали защищенные области
Координаты для относящихся к детали защищенных областей указываются
абсолютно, относительно нулевой точки базовой кинематической системы (BKS).
Вращательно-симметричные защищенные области
Для вращательно-симметричных защищенных областей (например, патрон шпинделя)
необходимо описание всего контура, а не только до центра вращения.
Относящиеся к инструменту защищенные области
Относящиеся к инструменту защищенные области всегда должны быть выпуклыми. Если
необходима вогнутая защищенная область, то необходимо разбить его на несколько
выпуклых защищенных областей.
)
① Выпуклые защищенные области
② Вогнутые защищенные области (недопустимы!)
F
Исходная точка инструментального суппорта
Граничные условия
При определении защищенной области следующие функции не могут быть активны и
запрещены к использованию:
• коррекция радиуса инструмента (коррекция радиуса фрезы, коррекция радиуса
резца)
• трансформация
• движение к референтной точке (G74)
• движение к фиксированной точке (G75)
• время ожидания (G4)
• останов предварительной обработки кадра (STOPRE)
• конец программы (M17, M30)
• M-функции: M0, M1, M2
Программирование ЧПУ
598
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.6 Защищенные области
4.6.2
Активация/деактивация защищенных областей (CPROT, NPROT)
Предварительно определенные в программе обработки детали защищенные области
можно в любой момент активировать либо предварительно активировать для
последующей активации через программу электроавтоматики. Активные защищенные
области можно деактивировать в любой момент.
При активации либо предварительной активации возможно относительное смещение
исходной точки защищенной области.
Примечание
Защищенная область учитывается только после реферирования всех гео-осей канала, в
котором она активирована.
Примечание
Контроль защищенных областей
Если ни одна относящаяся к инструменту защищенная область не активна, то траектория
инструмента проверяется по отношению к относящимся к детали защищенным
областям.
Если ни одна относящаяся к детали защищенная область не активна, контроль
защищенных областей не выполняется.
Синтаксис
CPROT(<n>,<Status>,<XMov>,<YMov>,<ZMov>)
NPROT(<n>,<Status>,<XMov>,<YMov>,<ZMov>)
Объяснение
CPROT:
Предопределенная процедура активации спец. для канала за-
щищенной области
NPROT:
Предопределенная процедура активации спец. для станка за-
щищенной области
<n>:
Номер защищенной области
Тип дан-
INT
ных:
<состояние>:
С помощью этого параметра устанавливается спец. для канала
статус активации.
Тип дан-
INT
ных:
Значение:
0
Деактивировать защищенную область
1
предварительная активация защищенной
области
2
Активировать защищенную область
3
Предварительно активировать защищен-
ную область с условным остановом
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
599
Расширенное программирование
4.6 Защищенные области
<XMov>,<YMov>,<ZMov>:
Значения аддитивного смещения в направлении X/Y/Z
Смещение может выполняться в 1, 2 или 3 размерностях. Зна-
чения смещения относятся к:
• нулевой точке станка при относящейся к детали защищен-
ной области
• исходной точке инструментального суппорта F для спец.
для инструмента защищенной области.
Тип дан-
REAL
ных:
Пример
Для фрезерного станка необходимо контролировать возможное столкновение фрезы с
измерительным щупом. Положение измерительного щупа при активации должно быть
указано через смещение.
Для этого определяются следующие защищенные области:
• Соответственно по одной спец. для станка и относящейся к детали защищенной
области для держателя измерительного щупа (n-PZ1) и самого измерительного щупа
(n-PZ2).
• Соответственно по одной спец. для станка и относящейся к детали защищенной
области для держателя фрезы (c-PZ1), хвостовика фрезы (c-PZ2) и самой фрезы (c-
PZ3).
Ориентация всех защищенных областей лежит в направлении Z.
Положение исходной точки измерительного щупа при активации должно находиться на
X = -120, Y = 60 и Z = 80.
Q 3=
Q 3=
)
F 3=
F 3=
=
š
F 3=
;
š
① Исходная точка для защищенной области измерительного щупа
F
Исходная точка инструментального суппорта
Программирование ЧПУ
600
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.6 Защищенные области
Программный код
Комментарий
DEF INT PROTZONE
; Определение вспомогательной переменной
G17
; Рабочая плоскость XY
; Определение защищенных областей:
NPROTDEF(1,FALSE,3,10,-10)
; Защищенная область n-PZ1
G01 X0 Y-10
X40
Y10
X0
Y-10
EXECUTE(PROTZONE)
NPROTDEF(2,FALSE,3,5,-5)
; Защищенная область n-PZ2
G01 X40 Y-5
X70
Y5
X40
Y-5
EXECUTE(PROTZONE)
CPROTDEF(1,TRUE,3,0,-100)
; Защищенная область c-PZ1
G01 X-20 Y-20
X20
Y20
X-20
Y-20
EXECUTE(PROTZONE)
CPROTDEF(2,TRUE,3,-100,-150)
; Защищенная область c-PZ2
G01 X0 Y-10
G03 X0 Y10 J10
X0 Y-10 J-10
EXECUTE(PROTZONE)
CPROTDEF(3,TRUE,3,-150,-170)
; Защищенная область c-PZ3
G01 X0 Y-27.5
G03 X0 Y27.5 J27.5
X0 Y27.5 J-27.5
EXECUTE(PROTZONE)
; Активация защищенных областей:
NPROT(1,2,-120,60,80)
; Активация защищенной области n-PZ1 со смещением
NPROT(2,2,-120,60,80)
; Активация защищенной области n-PZ2 со смещением
CPROT(1,2,0,0,0)
; Активация защищенной области c-PZ1
CPROT(2,2,0,0,0)
; Активация защищенной области c-PZ2
CPROT(3,2,0,0,0)
; Активация защищенной области c-PZ3
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
601
Расширенное программирование
4.6 Защищенные области
Дополнительная информация
Статус активации после запуска СЧПУ
Защищенная область может быть активна сразу же после запуска СЧПУ и реферирования
осей. Это случай, когда для защищенной области следующая системная переменная
установлена на TRUE:
• $SN_PA_ACTIV_IMMED[<n>] (для спец. для станка защищенной области) или
• $SC_PA_ACTIV_IMMED[<n>] (для спец. для канала защищенной области)
Индекс "<n>" соответствует номеру защищенной области: 0 = 1 Защищенная область
Защищенная область активируется статусом = 2 и без смещения.
Многократная активация защищенной области
Одна спец. для станка защищенная область может одновременно действовать в
нескольких каналах (например, защищенная область пиноли при двух противолежащих
салазках). Контроль защищенных областей выполняется только в том случае, если все
гео-оси реферированы.
Защищенная область в одном канале не может быть одновременно активирована с
различными смещениями.
Контроль защищенной области при активной коррекции радиуса инструмента
При активной коррекции радиуса инструмента работоспособный контроль защищенной
области возможен только в том случае, если плоскость коррекции радиуса инструмента
идентична плоскости определения защищенной области.
4.6.3
Проверка нарушения защищенной области, ограничения рабочего поля
и программных конечных выключателей (CALCPOSI)
Функция
Функция CALCPOSI проверяет в системе координат детали (WСS), можно ли
перемещать гео-оси из стартовой позиции по заданному пути перемещения, не нарушая
активных ограничений. Если путь перемещения из-за ограничений не может быть
пройден полностью, то возвращается положительное значение состояния в десятичной
кодировке и макс. возможный путь перемещения.
Определение
INT CALCPOSI(VAR REAL[3] <Start>, VAR REAL[3] <Dist>, VAR REAL[5]
<Limit>, VAR REAL[3] <MaxDist>, BOOL <MeasSys>, INT <TestLim>)
Синтаксис
<состояние> = CALCPOSI(VAR <Start>, VAR <Dist>, VAR <Limit>, VAR
<MaxDist>, <MeasSys>, <TestLim>)
Программирование ЧПУ
602
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.6 Защищенные области
Объяснение
CALCPOSI(...):
Предопределенная функция для теста на нарушение ограничений в отноше-
нии гео-осей
Остановка пред-
нет
варительной об-
работки:
Автономно в ка-
да
дре:
<состояние>:
Возвращаемое значение функции. Отрицательные значения показывают со-
стояния ошибки.
(часть 1)
Тип данных:
INT
Диапазон значе-
-8 ≤ x ≤ 100000
ний:
Значе-
0
Путь перемещения может быть пройден полностью
ние:
-1
В <Limit>, по крайней мере, один компонент - отрица-
тельный.
-2
Ошибка при описании трансформации.
Пример: Путь перемещения проходит через сингуляр-
ность, так что позиции осей не определены.
-3
Указанный путь перемещения <Dist> и максимально воз-
можный путь перемещения <MaxDist> находятся в ли-
нейной зависимости.
Указание
Возможно только в сочетании с <TestLim>, бит 4 == 1.
-4
Проекция направления перемещения из <Dist> на огра-
ничивающую поверхность - это нулевой вектор, или на-
правление перемещения располагается вертикально на
нарушенной ограничивающей поверхности.
Указание
Возможно только в сочетании с <TestLim>, бит 5 == 1.
-5
В <TestLim> бит 4 == 1 И бит 5 == 1
-6
По крайней мере, одна ось станка, которую необходимо
рассмотреть для проверки границ перемещения, не ре-
ферирована.
-7
Функция предотвращения столкновений: Недействи-
тельное определение кинематической цепочки или за-
щищенных областей.
-8
Функция предотвращения столкновений: Функция не
может быть выполнена из-за недостаточности памяти.
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
603
Расширенное программирование
4.6 Защищенные области
<состояние>:
Первая позиция
(часть 2)
Указание
Если одновременно нарушено несколько границ, то сигнал поступает по той
границе, которая вызывает наибольшее ограничение заданного пути пере-
мещения.
Значе-
1
Программные конечные выключатели ограничивают
ние:
путь перемещения
2
Ограничение рабочего поля ограничивает путь переме-
щения
3
Защищенные области ограничивают путь перемещения
4
Функция предотвращения столкновений: Защищенные
области ограничивают путь перемещения
Вторая позиция
Значе-
1x
начальное значение нарушает границу
ние:
2x
Заданная прямая нарушает границу.
Это значение возвращается и тогда, когда сама конечная
точка не нарушает границы, но на пути от стартовой к
конечной точке произошло бы нарушение предельного
значения (например, прохождение через защищенную
область, изогнутые программные конечные выключате-
ли в WСS при нелинейных трансформациях, например,
Transmit).
<состояние>:
Третья позиция
(часть 3)
Значе-
1xx
И первая позиция == 1 или 2:
ние:
Положительное предельное значение нарушено.
И первая позиция == 3 1):
Нарушена спец. для ЧПУ защищенная область.
2xx
И первая позиция == 1 или 2:
Отрицательное предельное значение нарушено.
И первая позиция == 3 1):
Нарушена спец. для канала защищенная область.
<состояние>:
Четвертая позиция
(часть 4)
Значе-
1xxx
И первая позиция == 1 или 2:
ние:
Коэффициент, на который умножается номер оси, нару-
шающей границу. Счет осей начинается с 1.
Отношение:
• Программные конечные выключатели: Оси станка
• Ограничение рабочего поля: Геометрические оси
И первая позиция == 3 1):
Коэффициент, на который умножается номер нарушен-
ной защищенной области.
Программирование ЧПУ
604
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.6 Защищенные области
<состояние>:
Шестая позиция
(часть 5)
Значе-
0xxxxx
Шестая позиция == 0: <Dist> не изменяется
ние:
1xxxxx
В <Dist> возвращается вектор направления, определяю-
щий дальнейшее направление движения на ограничи-
вающей поверхности.
Возможно только при следующих граничных условиях:
• Программные конечные выключатели или ограниче-
ние рабочего поля нарушены (не в стартовой точке)
• Трансформация не активна
• <TestID>, бит 4 или бит 5 == 1
<Start>:
Ссылка на вектор со стартовыми позициями:
• <Start> [0]: 1-й гео-оси
• <Start> [1]: 2-й гео-оси
• <Start> [2]: 3-й гео-оси
Тип параметра:
Вход
Тип данных:
VAR REAL[3]
Диапазон значе-
-макс. REAL-значение ≤ x[<n>] ≤ +макс. REAL-значение
ний:
<Dist>:
Ссылка на вектор.
Вход: инкрементальная величина пути перемещения
• <Dist> [0]: 1-й гео-оси
• <Dist> [1]: 2-й гео-оси
• <Dist> [2]: 3-й гео-оси
Выход (только при установленной шестой позиции в <состояние>):
В качестве выходного значения <Dist> содержит единичный вектор v,
определяющий дальнейшее направление перемещения в WСS.
Случай 1: Формирование вектора v для <TestID>, бит 4 == 1
Входные векторы <Dist> и <MaxDist> образуют плоскость движения. Эта
плоскость пересекается с нарушенной ограничивающей поверхностью.
Прямая пересечения обеих плоскостей определяет направление векто-
ра v. При этом ориентация (знак) выбирается таким образом, чтобы угол
между входным вектором <MaxDist> и v не превышал 90 градусов.
Случай 2: Формирование вектора v для <TestID>, бит 5 == 1
Вектор v - единичный вектор в направлении проекции содержащегося
в <Dist> вектора перемещения на ограничивающую поверхность. Если
проекция вектора перемещения на ограничивающую поверхность пред-
ставляет собой нулевой вектор, то возвращается ошибка.
Тип параметра:
Вход/выход
Тип данных:
VAR REAL[3]
Диапазон значе-
-макс. REAL-значение ≤ x[<n>] ≤ +макс. REAL-значение
ний:
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
605
Расширенное программирование
4.6 Защищенные области
<Limit>:
Ссылка на поле длиной 5.
• <Limit> [0 - 2]: Минимальные отступы гео-осей от ограничений:
- <Limit> [0]: 1-й гео-оси
- <Limit> [1]: 2-й гео-оси
- <Limit> [2]: 3-й гео-оси
Все минимальные отступы соблюдены при:
- Ограничение рабочего поля: без ограничений
- Программные конечные выключатели: Если нет активной трансфор-
мации или если активна трансформация, при которой возможно од-
нозначное соотнесение гео-осей с линейными осями станка, напри-
мер, 5-осевые трансформации.
• <Limit> [3]: Содержит минимальный отступ линейных осей станка, согла-
сование которых с гео-осью невозможно, например, из-за нелинейной
трансформации. Это значение используется также как предельное значе-
ние при контроле обычных защищенных областей и защищенных облас-
тей предотвращения столкновений.
• <Limit> [4]: Содержит минимальный отступ круговых осей станка, согла-
сование которых с гео-осью невозможно, например, из-за нелинейной
трансформации.
Указание
Это значение действует только при контроле программных конечных вы-
ключателей специальных трансформаций.
Тип параметра:
Вход
Тип данных:
VAR REAL[5]
Диапазон значе-
-макс. REAL-значение ≤ x[n] ≤ макс. REAL-значение
ний:
<MaxDist>:
Ссылка на вектор с инкрементальным значением пути перемещения, при
котором заданное минимальное расстояние границы оси не нарушает ни
одна из задействованных осей:
• <Dist> [0]: 1-й гео-оси
• <Dist> [1]: 2-й гео-оси
• <Dist> [2]: 3-й гео-оси
Если путь перемещения не ограничен, то содержание этого возвращаемого
параметра идентично содержанию <Dist>.
Для <TestID>, бит 4 == 1: <Dist> и <MaxDist>
В качестве входных значений <MaxDist> и <Dist> должны содержать векторы,
образующие плоскость движения. Оба вектора не должны иметь линейной
зависимости друг от друга. Величина <MaxDist> произвольная. Для расчета
направления движения см. описание <Dist>.
Тип параметра:
Выход
Тип данных:
VAR REAL[3]
Диапазон значе-
-макс. REAL-значение ≤ x[<n>] ≤ +макс. REAL-значение
ний:
Программирование ЧПУ
606
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.6 Защищенные области
<MeasSys>:
Система единиц (дюймовая / метрическая) для позиционных и линейных
данных (опция)
Тип данных:
BOOL
Значе-
FALSE
Система единиц согласно текущей активной G-команде
ние:
из G-группы 13 (G70, G71, G700, G710).
(по
умолча-
Указание
нию)
При активной G70 и метрической основной системе или
активной G71 и дюймовой основной системе системные
переменные $AA_IW и $AA_MW выводятся в основной
системе и при использовании для CALCPOSI при необхо-
димости должны быть пересчитаны.
TRUE
Система единиц согласно установленной основной си-
стеме:
MD52806 $MN_ISO_SCALING_SYSTEM
<TestLim>:
Биткодированный выбор контролируемых ограничений (опция)
Тип данных:
INT
Значение по
Бит 0, 1, 2, 3, 6, 7 == 1 (207)
умолчанию:
Бит
Дес.
Объяснение
0
1
Программные конечные выключатели
1
2
Ограничение рабочего поля
2
4
Активированные обычные защищенные области
3
8
Предактивированные обычные защищенные области
4
16
При нарушении программных конечных выключателей
или ограничений рабочего поля в <Dist> возвращать на-
правление перемещения согласно случаю 1 (см. выше).
5
32
При нарушении программных конечных выключателей
или ограничений рабочего поля в <Dist> возвращать на-
правление перемещения согласно случаю 2 (см. выше).
6
64
Активированные защищенные области недопущения
столкновений
7
128
Предактивированные защищенные области предотвра-
щения столкновений
8
256
Пары активированных и предактивированных защищен-
ных областей предотвращения столкновений
1) Если нарушено несколько защищенных областей, то сигнализируется та, которая вызывает
наибольшее ограничение заданного пути перемещения.
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
607
Расширенное программирование
4.6 Защищенные области
Пример
Ограничения
<
̶͕͇͓͓͔͗͊͗͌͢ ͕͔͑͌͞
͔͌͢ ͉͇͙͑͒ͥ͌͒͢͞͏
&
1
1
̵͇͔͊͗͏͔͌͞͏͌ ͇͈͕͗͌͊͞
͕ ͖͕͒ͦ
1
1
1
&
;
1
1
В примере представлены действующие программные конечные выключатели и
ограничения рабочего поля в плоскости X-Y и три следующих защищенных области:
• C2: Относящаяся к инструменту спец. для канала защищенная область, активная,
круговая, радиус = 2 мм
• C4: Относящаяся к детали спец. для канала защищенная область, предварительно
активирована, квадратная, длина стороны = 10 мм
• N3: Относящаяся к станку защищенная область, активная, прямоугольная, длина
стороны = 10 мм x 15 мм
Программа ЧПУ
В программе ЧПУ определяются защищенные области и ограничения рабочего поля.
Затем вызывается функция CALCPOSI() с различным параметрированием.
Программный код
N10 DEF REAL _START[3]
N20 DEF REAL _DIST[3]
N30 DEF REAL _LIMIT[5]
N40 DEF REAL _MAXDIST[3]
N50 DEF INT _PA
N60 DEF INT _STATUS
Программирование ЧПУ
608
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.6 Защищенные области
Программный код
; Относящаяся к инструменту защищенная область C2
N70 CPROTDEF(2, TRUE, 0)
N80 G17 G1 X-2 Y0
N90 G3 I2 X2
N100 I-2 X-2
N110 EXECUTE(_PA)
; Относящаяся к детали защищенная область C4
N120 CPROTDEF(4, FALSE, 0)
N130 G17 G1 X0 Y15
N140 X10
N150 Y25
N160 X0
N170 Y15
N180 EXECUTE(_PA)
; Спец. для станка защищенная область N3
N190 NPROTDEF(3, FALSE, 0)
N200 G17 G1 X10 Y5
N210 X25
N220 Y15
N230 X10
N240 Y5
N250 EXECUTE(_PA)
; Активировать или предварительно активировать защищенные области
N260 CPROT(2, 2, 0, 0, 0)
N270 CPROT(4, 1, 0, 0, 0)
N280 NPROT(3, 2, 0, 0, 0)
; Определить ограничения рабочего поля
N290 G25 XX=-10 YY=-10
N300 G26 XX=20 YY=21
N310 _START[0] = 0.
N320 _START[1] = 0.
N330 _START[2] = 0.
N340 _DIST[0] = 35.
N350 _DIST[1] = 20.
N360 _DIST[2] =
0.
N370 _LIMIT[0] = 0.
N380 _LIMIT[1] = 0.
N390 _LIMIT[2] = 0.
N400 _LIMIT[3] = 0.
N410 _LIMIT[4] = 0.
N420 _STATUS = CALCPOSI(_START, _DIST, _LIMIT, _MAXDIST)
N430 _STATUS = CALCPOSI(_START, _DIST, _LIMIT, _MAXDIST,,3)
N440 _STATUS = CALCPOSI(_START, _DIST, _LIMIT, _MAXDIST,,1)
N450 _START[0] =
5.
N460 _START[1] = 17.
N470 _START[2] =
0.
N480 _DIST[0] =
0.
N490 _DIST[1] =-27.
N500 _DIST[2] =
0.
N510 _STATUS = CALCPOSI(_START, _DIST, _LIMIT, _MAXDIST,,14)
N520 _STATUS = CALCPOSI(_START, _DIST, _LIMIT, _MAXDIST,, 6)
N530 _LIMIT[1] = 2.
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
609
Расширенное программирование
4.6 Защищенные области
Программный код
N540 _STATUS = CALCPOSI(_START, _DIST, _LIMIT, _MAXDIST,, 6)
N550 _START[0] = 27.
N560 _START[1] = 17.1
N570 _START[2] =
0.
N580 _DIST[0] =-27.
N590 _DIST[1] =
0.
N600 _DIST[2] =
0.
N610 _LIMIT[3] = 2.
N620 _STATUS = CALCPOSI(_START, _DIST, _LIMIT, _MAXDIST,,12)
N630 _START[0] = 0.
N640 _START[1] = 0.
N650 _START[2] = 0.
N660 _DIST[0] =
0.
N670 _DIST[1] = 30.
N680 _DIST[2] =
0.
N690 TRANS X10
N700 AROT Z45
N710 _STATUS = CALCPOSI(_START,_DIST, _LIMIT, _MAXDIST)
; Снова удалить фреймы из N690 и N700
N720 TRANS
N730 _START[0] =
0.
N740 _START[1] = 10.
N750 _START[2] =
0.
; Векторы _DIST и _MAXDIST определяют плоскость движения
N760 _DIST[0] = 30.
N770 _DIST[1] = 30.
N780 _DIST[2] =
0.
N790 _MAXDIST[0] = 1.
N800 _MAXDIST[1] = 0.
N810 _MAXDIST[2] = 1.
N820 _STATUS = CALCPOSI(_START, _DIST, _LIMIT, _MAXDIST,,17)
N830 M30
Результаты CALCPOSI()
N...
<состоя-
<MaxDist>[0] ≙ X
<MaxDist>[1] ≙ Y
Примечания
ние>
420
3123
8.040
4.594
N3 нарушается.
430
1122
20.000
11.429
Контроль защищенных областей отсут-
ствует,
ограничение рабочего поля нарушается.
440
1121
30.000
17.143
Активен только контроль программных
конечных выключателей.
510
4213
0.000
0.000
Нарушение стартовой точки C4
520
0000
0.000
-27.000
Предварительно активированная C4 не
контролируется. Заданный путь может
быть пройден полностью.
540
2222
0.000
-25.000
Из-за _LIMIT[1] = 2 путь перемещения со-
кращается ограничением рабочего по-
ля.
Программирование ЧПУ
610
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.6 Защищенные области
N...
<состоя-
<MaxDist>[0] ≙ X
<MaxDist>[1] ≙ Y
Примечания
ние>
620
4223
-13.000
0.000
Интервал до C4 из-за C2 и _LIMIT[3] в об-
щей сложности 4 мм. Интервал C2 → N3
в 0,1 мм не вызывает ограничения пути
перемещения.
710
1221
0.000
21.213
Фрейм со смещением и вращением ак-
тивен. Допустимый путь перемещения в
_DIST действителен в смещенной и
повернутой WCS.
820
102121
18.000
18.000
Программный конечный выключатель
оси Y нарушается. При <_TESTLIM> = 17
запрашивается вычисление направле-
ния дальнейшего движения. Это направ-
ление указано в <_DIST> (0.707, 0.0,
0.707). Оно действительно, поскольку в
<_STATUS> установлена шестая позиция.
Дополнительная информация
Состояние оси "Реферирована"
Все рассматриваемые CALCPOSI() оси станка должны быть реферированы.
Характеристики перемещения относительно окружности
Характеристики перемещения относительно окружности всегда интерпретируются как
характеристики радиуса. Это следует учитывать, в частности, для поперечных осей с
активированным программированием диаметра (DIAMON / DIAM90).
Сокращение пути перемещения
Если указанный путь перемещения оси ограничивается, то в возвращаемом значении
<MaxDist> пропорционально сокращаются и пути перемещения других осей. Тем
самым результирующая конечная точка и далее расположена на заданной траектории.
Круговые оси
Круговые оси контролируются только в том случае, если они не являются осями по
модулю.
Для одной или нескольких участвующих осей допустимо отсутствие определений
программных конечных выключателей, ограничений рабочего поля или защищенных
областей.
Состояние программного конечного выключателя и ограничения рабочего поля
Программные конечные выключатели и ограничения рабочего поля учитываются,
только если они при выполнении CALCPOSI()активны. На состояние можно повлиять,
например, через:
• Машинные данные: MD21020 $MC_WORKAREA_WITH_TOOL_RADIUS
• Установочные данные: $AC_WORKAREA_CS_...
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
611
Расширенное программирование
4.6 Защищенные области
• Интерфейсные сигналы ЧПУ/PLC: DB31, ... DBX12.2 / 3
• Команды: WALIMON / WALIMOF
Программные конечные выключатели и трансформации
В случае CALCPOSI()при различных кинематических трансформациях (например,
TRANSMIT) на основе многозначности в определенных местах диапазона перемещения
позиции осей станка (MСS) не всегда можно однозначно определить по позициям
геометрических осей (WСS). В обычном режиме перемещения однозначность следует,
как правило, из предыстории и условия, что непрерывному движению в WCS должно
соответствовать непрерывное движение осей станка в MСS. Поэтому в подобных случаях
при контроле программных конечных выключателей для разрешения многозначности
используется текущая позиция станка на момент выполнения функции CALCPOSI().
Примечание
Остановка предварительной обработки
При использовании CALCPOSI() в сочетании с трансформацией только пользователь
несет ответственность за программирование для синхронизации позиций станка с
предварительной обработкой перед CALCPOSI() остановки предварительной
обработки (STOPRE).
Отступ защищенных областей и обычные защищенные области
В случае обычных защищенных областей не гарантируется, что при движении
перемещения на заданном пути перемещения указанный в параметре <Limit>[3]
безопасный отступ соблюдается в отношении всех защищенных областей. Гарантируется
лишь, что при удлинении возвращаемой в <Dist> конечной точки на безопасный отступ
в направлении перемещения ни одна защищенная область не нарушается. Но ход
прямой может пролегать на любом расстоянии от защищенной области.
Отступ защищенных областей и защищенные области предотвращения
столкновений
В случае защищенных областей предотвращения столкновения гарантируется, что при
движении перемещения на заданном пути перемещения указанный в параметре
<Limit>[3] безопасный отступ соблюдается в отношении всех защищенных областей.
Указанный в параметре <Limit>[3] безопасный отступ действует, только если:
<Limit>[3] > (MD10619 $MN_COLLISION_TOLERANCE)
Если в параметре <TestLim> установлен бит 4 (вычисление направления дальнейшего
перемещения), то содержащийся в <DIST> вектор направления действителен, только
если установлена шестая позиция в возвращаемом значении функции (<состояние>).
Если такое направление определить невозможно, поскольку либо были нарушены
защищенные области, либо активна какая-либо трансформация, входное значение в
<DIST> остается неизменным. Дополнительное сообщение об ошибке не выводится.
Программирование ЧПУ
612
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.7 Специальные команды перемещения
4.7
Специальные команды перемещения
4.7.1
Подвод к кодированным позициям (CAC, CIC, CDC, CACP, CACN)
Команды пути для "Подвод к кодированным позициям" позволяют перемещать
линейные и круговые оси (при указании номеров позиций) на постоянные помещенные
в таблицы машинных данных позиции осей.
Синтаксис
CAC(<n>)
CIC(<n>)
CACP(<n>)
CACN(<n>)
Объяснение
CAC(<n>):
Выполнить подвод к кодированной позиции с номером позиции n
CIC(<n>):
Выполнить подвод к кодированной позиции, исходя из актуального номера
позиции, на n-количество позиций вперед (+) или назад (-)
CDC(<n>):
Выполнить подвод к кодированной позиции с номером позиции n по крат-
чайшему пути
(только для круговых осей)
CACP(<n>):
Выполнить подвод к кодированной позиции с номером позиции n в поло-
жительном направлении
(только для круговых осей)
CACN(<n>):
Выполнить подвод к кодированной позиции с номером позиции n в отрица-
тельном направлении
(только для круговых осей)
<n>:
Номер позиции в таблице машинных данных
Диапазон значений: 0, 1, … (макс. число мест в таблице - 1)
Пример: Подвод к кодированным позициям позиционирующей оси
Программный код
Комментарий
N10 FA[B]=300
; Подача для позиционирующей оси B
N20 POS[B]=CAC(10)
; Выполнить подвод к кодированной позиции с номером позиции 10
N30 POS[B]=CIC(-4)
; Выполнить подвод к кодированной позиции с "актуальным номе-
ром позиции" - 4
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
613
Расширенное программирование
4.7 Специальные команды перемещения
4.7.2
Сплайн-интерполяция (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN,
EAUTO, ENAT, ETAN, PW, SD, PL)
Аналитически точное описание произвольно изогнутых контуров на деталях
невозможно. Поэтому аппроксимация таких контуров выполняется через ограниченное
число опорных точек, к примеру, при оцифровке поверхностей. Для создания
оцифрованной поверхности на детали опорные точки должны быть объединены в одно
описание контура. Это обеспечивает сплайн-интерполяция.
Сплайн определяет кривую, состоящую из полиномов 2-го или 3-го порядка. Свойства на
опорных точках сплайна могут определяться в зависимости от используемого типа
сплайна .
3
3
3
3
3
3
3
͕͋ 3
͎͇͇͔͔͋͌͢ ͕͕͑͗͋͏͔͇͙͢
Следующие типы сплайнов доступны для SINUMERIK solution line:
• A-сплайн
• B-сплайн
• C-сплайн
Синтаксис
Общая информация:
ASPLINE X... Y... Z... A... B ... C ...
BSPLINE X... Y... Z... A... B ... C ...
CSPLINE X... Y... Z... A... B ... C ...
Для В-сплайна дополнительно можно запрограммировать:
PW=<n>
SD=2
PL=<значение>
Для A- и C-сплайна дополнительно можно запрограммировать:
Программирование ЧПУ
614
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.7 Специальные команды перемещения
BAUTO / BNAT / BTAN
EAUTO / ENAT / ETAN
Значение
Тип сплайн-интерполяции:
ASPLINE:
Команда для включения А-сплайн-интерполяции
BSPLINE:
Команда для включения В-сплайн-интерполяции
CSPLINE:
Команда для включения С-сплайн-интерполяции
Команды ASPLINE, BSPLINE и CSPLINE действуют модально и отно-
сятся к группе команд перемещения.
Опорные точки или контрольные точки:
X... Y... Z...
Позиции в декартовых координатах
A... B ... C...
Вес точки (только B-сплайн):
PW:
С помощью команды PW для каждой опорной точки можно запрограм-
мировать т.н. "Вес точки".
<n>:
"Вес точки"
Диапазон значе-
0 ≤ n ≤ 3
ний:
Размер шага:
0.0001
Действие:
n > 1
Кривая сильнее притягивается к контр-
ольной точке.
n < 1
Кривая слабее притягивается к контр-
ольной точке.
Порядок сплайна (только B-сплайн):
SD:
Стандартно используется полигон 3-го порядка. Но через программи-
рование SD=2 возможно и использование полигона 2-го порядка.
Расстояние между узловыми точками (только B-сплайн):
PL :
Выполняется внутреннее подходящее вычисление расстояний между
узловыми точками. Но СЧПУ может обрабатывать и заданные расстоя-
ния между узловыми точками, которые с помощью команды PL ука-
зываются как т.н. длине интервалов параметров.
<значение>:
Длина интервала параметров
Диапазон значе-
Как размер перемещения
ний:
Переходная характеристика в начале сплайна (только A- или C-сплайн):
BAUTO:
Данные для переходной характеристики не задаются. Начало следует
из положения первой точки.
BNAT:
Изгиб ноль
BTAN:
Тангенциальный переход к предшествующему кадру (позиция стира-
ния)
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
615
Расширенное программирование
4.7 Специальные команды перемещения
Переходная характеристика в конце сплайна (только A- или C-сплайн):
EAUTO:
Данные для переходной характеристики не задаются. Конец следует из
положения последней точки.
ENAT:
Изгиб ноль
ETAN:
Тангенциальный переход к предшествующему кадру (позиция стира-
ния)
%$872
($872
͇͔͔͋͌͢ ͔͌ ͎͇͇͔͋͢
%1$7
(1$7
̯͎͊͏͈ ͔͕͒ͣ
̶͕͌͗͌͋͜
͖͕ ͇͇͙͔͕͑͌͒ͣ͐͘
%7$1
(7$1
Примечание
Программируемая переходная характеристика не влияет на В-сплайн. B-сплайн в
стартовой и конечной точке всегда является тангенциальным к контрольному полигону.
Граничные условия
• Возможно использование коррекции радиуса инструмента.
• Контроль столкновений выполняется в проекции на плоскость.
Примеры
Пример 1: B-сплайн
Программный код 1 (все веса 1)
N10 G1 X0 Y0 F300 G64
N20 BSPLINE
N30 X10 Y20
Программирование ЧПУ
616
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.7 Специальные команды перемещения
Программный код 1 (все веса 1)
N40 X20 Y40
N50 X30 Y30
N60 X40 Y45
N70 X50 Y0
Программный код 2 (различный вес)
N10 G1 X0 Y0 F300 G64
N20 BSPLINE
N30 X10 Y20 PW=2
N40 X20 Y40
N50 X30 Y30 PW=0.5
N60 X40 Y45
N70 X50 Y0
Программный код 3 (контрольный полигон)
Комментарий
N10 G1 X0 Y0 F300 G64
N20
; отсутствует
N30 X10 Y20
N40 X20 Y40
N50 X30 Y30
N60 X40 Y45
N70 X50 Y0
<
̱͕͔͙͕͔͗͒ͣ͐͢ ͖͕͒͏͕͔͊
̩͌͘ ͉͇͌͘
̷͇͎͒͏͔͌͢͞ ͉͇͌͘
;
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
617
Расширенное программирование
4.7 Специальные команды перемещения
Пример 2: C-сплайн, изгиб ноль в начале и в конце
Программный код
N10 G1 X0 Y0 F300
N15 X10
N20 BNAT ENAT
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
Y
50
40
30
20
10
X
10
20
30
40
50
60
70
80
90
Пример 3: сплайн-интерполяция (A-сплайн) и трансформация координат (ROT)
Главная программа:
Программный код
Комментарий
N10 G00 X20 Y18 F300 G64
; Подвод в стартовую точку.
N20 ASPLINE
; Активировать тип интерполяции A-сплайна.
N30 KONTUR
; Первый вызов подпрограммы.
N40 ROT Z-45
; Трансформация координат: Поворот WСS на -45° вокруг
оси Z.
Программирование ЧПУ
618
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.7 Специальные команды перемещения
Программный код
Комментарий
N50 G00 X20 Y18
Подвод в стартовую точку контура.
N60 KONTUR
; Второй вызов подпрограммы.
N70 M30
; конец программы
Подпрограмма "Kontur" (содержит координаты опорных точек):
Программный код
N10 X20 Y18
N20 X10 Y21
N30 X6 Y31
N40 X18 Y31
N50 X13 Y43
N60 X22 Y42
N70 X16 Y58
N80 X33 Y51
N90 M1
На рисунке ниже, наряду со сплайном, полученным из примера программирования
(ASPLINE), содержаться и сплайны, которые получились бы при активации B- или C-
сплайн-интерполяции (BSPLINE, CSPLINE):
$63/,1(
%63/,1(
<
&63/,1(
1
͖͉͌͗͐͢ ͉͎͕͉͢ ͖͕͖͕͇͓͓͋͗͊͗͢
1
̩͙͕͕͗͐ ͉͎͕͉͢
͖͕͖͕͇͓͓͋͗͊͗͢
;
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
619
Расширенное программирование
4.7 Специальные команды перемещения
Дополнительная информация
Преимущества сплайн-интерполяции
Использование сплайн-интерполяции позволяет, в отличие от использования линейных
кадров G01, получить следующие преимущества:
• Уменьшение числа необходимых для описания контура кадров программы
обработки детали
• Мягкий, щадящий для механики ход кривой на переходах между кадрами программы
обработки детали
Программирование ЧПУ
620
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.7 Специальные команды перемещения
Свойства и использование различных типов сплайнов
Тип сплайна
Свойства и использование
A-сплайн
$ ͖͇͔͒͐͘ ͇͑͏͓͇ ͖͇͔͒͐͘
3
3
3
3
3
3
3
3
͕͋ 3
͎͇͇͔͔͋͌͢ ͕͕͑͗͋͏͔͇͙͢
Свойства:
• Проходит точно через заданные опорные точки.
• Ход кривой стабильный по касательной и кривизне.
• Практически не создает нежелательных колебаний.
• Сфера влияния изменений опорных точек является локальной, т. е. из-
менение одной опорной точки сказывается только макс. на 6 соседних
опорных точках.
Использование:
A-сплайн подходит прежде всего для интерполяции ходов кривой с больши-
ми изменениями наклона (например, ступенчатые ходы кривой).
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
621
Расширенное программирование
4.7 Специальные команды перемещения
Тип сплайна
Свойства и использование
B-сплайн
% ͖͇͔͒͐͘
̱͕͔͙͕͔͗͒ͣ͐͢ ͖͕͒͏͕͔͊
3
3
3
3
3
3
3
3
͕͋ 3
͎͇͇͔͔͋͌͢ ͕͕͑͗͋͏͔͇͙͢
Свойства:
• Проходит не через заданные опорные точки, а только вблизи. Кривая
притягивается опорными точками. Посредством коэффициента эквива-
лентности опорных точек возможно дополнительное управление ходом
кривой.
• Ход кривой стабильный по касательной и кривизне.
• Практически не создает нежелательных колебаний.
• Сфера влияния изменений опорных точек является локальной, т. е. из-
менение одной опорной точки сказывается только макс. на 6 соседних
опорных точках.
Использование:
Первоначально В-сплайн задумывался как интерфейс к системам CAD.
Программирование ЧПУ
622
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.7 Специальные команды перемещения
Тип сплайна
Свойства и использование
C-сплайн
& ͖͇͔͒͐͘ ͚͈͑͏͌͑͘͞͏͐ ͖͇͔͒͐͘
3
3
3
3
3
3
3
3
͕͋ 3
͎͇͇͔͔͋͌͢ ͕͕͑͗͋͏͔͇͙͢
Свойства:
• Проходит точно через заданные опорные точки.
• Ход кривой стабильный по касательной и кривизне.
• Часто создает нежелательные колебания, особенно в местах с большими
изменениями наклона.
• Сфера влияния изменений опорных точек является глобальной, т. е. из-
менение одной опорной точки сказывается на всем ходе кривой.
Использование:
C-сплайн может успешно использоваться тогда, когда опорные точки лежат
на аналитически известной кривой (окружность, парабола, гипербола)
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
623
Расширенное программирование
4.7 Специальные команды перемещения
Сравнение трех типов сплайнов в случае одинаковых опорных точек
3
3
3
3
3
3
3
$ ͖͇͔͒͐͘
% ͖͇͔͒͐͘
& ͖͇͔͒͐͘
Мин. число сплайн-кадров
G-команды ASPLINE, BSPLINE, CSPLINE соединяют конечные точки кадров сплайнами. Для
этого на стадии предварительной обработки необходимо одновременное вычисление
ряда кадров (конечных точек). Размер буфера для вычисления стандартно составляет 10
кадров. Не любая информация кадра является конечной точкой сплайна. Но СЧПУ из 10
кадров требуется определенное число кадров конечных точек сплайна:
Тип сплайна
Мин. число сплайн-кадров
A-сплайн:
Из каждых 10 кадров как минимум 4 должны быть сплайн-кадрами.
Кадры комментариев и вычисления параметров при этом не учитываются.
B-сплайн:
Из каждых 10 кадров как минимум 6 должны быть сплайн-кадрами.
Кадры комментариев и вычисления параметров при этом не учитываются.
C-сплайн:
Необходимое мин. число сплайн-кадров получается из следующей суммы:
Значение из MD20160 $MC_CUBIC_SPLINE_BLOCKS + 1
В MD20160 вносится число точек, через которые вычисляется сегмент сплайна.
Стандартная настройка 8. Поэтому из каждых 10 кадров в стандартном случае как
минимум 9 должны быть сплайн-кадрами.
Примечание
При значении, ниже допустимого, выводится ошибка, как и в том случае, когда
участвующая в сплайне ось программируется как позиционирующая ось.
Программирование ЧПУ
624
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.7 Специальные команды перемещения
Объединение коротких сплайн-кадров
При сплайн-интерполяции могут возникать короткие сплайн-кадры, которые приводят
не ненужному уменьшению скорости движения по траектории. С помощью функции
"Соединение коротких сплайн-кадров" эти кадры могут быть соединены таким образом,
что полученная длина кадра является достаточной и не приводит к уменьшению
скорости движения по траектории.
Функция активируется через спец. для канала машинные данные:
MD20488 $MC_SPLINE_MODE (настройка для сплайн-интерполяции)
Дополнительная информация: Описание функций - Основные функции
4.7.3
Соединение сплайнов (SPLINEPATH)
Интерполирующие в соединении сплайнов оси выбираются с помощью
команды SPLINEPATH. До восьми траекторных осей возможно при сплайн-
интерполяции.
Примечание
Если SPLINEPATH не программируется явно, то первые три оси канала перемещаются
как соединение сплайнов.
Синтаксис
Определение соединения сплайнов выполняется в отдельном кадре:
SPLINEPATH(n,X,Y,Z,…)
Значение
SPLINEPATH:
Команда для определения соединения сплайнов
n:
=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…
; Отмена сплайн-интерполяции
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
625
Расширенное программирование
4.7 Специальные команды перемещения
Z
SPLINEPATH (1,X,Y,Z)
X
Y
4.7.4
Включение / выключение сжатия кадра ЧПУ (COMPON, COMPCURV,
COMPCAD, COMPSURF, COMPOF)
Функции компрессора линейных кадров (и в зависимости от параметрирования также
круговых кадров и/или кадров ускоренного хода) включаются / отключаются G-
командами из группы G 30. Команды действуют модально.
Синтаксис
COMPON / COMPCURV / COMPCAD / COMPSURF
COMPOF
Объяснение
COMPON:
Включение функции компрессора COMPON
COMPCURV:
Включение функции компрессора COMPCURV
COMPCAD:
Включение функции компрессора COMPCAD
COMPSURF:
Включение функции компрессора COMPSURF
COMPOF:
Выключение текущей активной функции компрессора
Примечание
Для дополнительного улучшения качества поверхности можно использовать функцию
перешлифовки G642 и ограничение рывка SOFT . Эти команды записываются в начале
программы.
Программирование ЧПУ
626
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
Расширенное программирование
4.7 Специальные команды перемещения
Пример: COMPCAD
Программный код
Комментарий
N10 G00 X30 Y6 Z40
N20 G1 F10000 G642
; Включение: Функция перешлифовки G642
N30 SOFT
; Включение: Ограничение рывка SOFT
N40 COMPCAD
; Включение: Функция компрессора COMPCAD
N50 FIFOCTRL
N24050 Z32.499
; 1-й кадр перемещения
N24051 X41.365 Z32.500
; 2-й кадр перемещения
N99999 X... Z...
; Последний кадр перемещения
COMPOF
; Функция компрессора выкл.
4.7.5
Полиномиальная интерполяция (POLY, POLYPATH, PO, PL)
В прямом смысле в случае полиномиальной интерполяции (POLY) речь идет не о виде
сплайн-интерполяции. В первую очередь она задумана как интерфейс для
программирования созданных на внешних устройствах сплайн-кривых. При этом
сегменты сплайна могут программироваться напрямую.
Такой тип интерполяции снимает с ЧПУ задачу по вычислению коэффициентов
полиномов. Ее оптимальное использование возможно тогда, когда коэффициенты
поступают напрямую от системы CAD или постпроцессора.
Синтаксис
Полином 3-го порядка:
POLY PO[X]=(xe,a2,a3) PO[Y]=(ye,b2,b3) PO[Z]=(ze,c2,c3) PL=n
Полиномы 5-го порядка и новый синтаксис полинома:
POLY X=PO(xe,a2,a3,a4,a5) Y=PO(ye,b2,b3,b4,b5) Z=PO(ze,c2,c3,c4,c5)
PL=n
POLYPATH("AXES","VECT")
Примечание
Сумма запрограммированных в одном кадре ЧПУ коэффициентов полиномов и осей не
должна превышать макс. разрешенного числа осей на кадр.
Значение
POLY :
Включение полиномиальной интерполяции с
помощью кадра с POLY.
POLYPATH :
Полиномиальная интерполяция с возможно-
стью выбора для обоих групп осей AXIS или VECT
Программирование ЧПУ
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2
627
Расширенное программирование
4.7 Специальные команды перемещения
PO[идентификатор оси/переменная] :
Конечный точки и коэффициенты полиномов
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.
Включение/выключение полиномиальной интерполяции
Полиномиальная интерполяция включается в программе обработки детали через G-
команду POLY.
G-команда POLY вместе с G0, G1, G2, G3, ASPLINE, BSPLINE и CSPLINE относится к 1-й G-
группе.
Оси, запрограммированные только с именем и конечной точкой (к примеру, X10),
перемещаются линейно. Если таким образом запрограммированы все оси, то поведение
СЧПУ как при G1.
Полиномиальная интерполяция снова не явно отключается через программирование
другой команды 1-й G-группы (к примеру, G0, G1).
Коэффициент полинома
Значение PO (PO[]=) или ...=PO(...) указывает все коэффициенты полиномов
для оси. Согласно порядку полинома несколько значений указываются разделенными
запятой. Внутри одного кадра возможны различные порядки полинома для различных
осей.
Программирование ЧПУ
628
Руководство по программированию, 07/2021, 6FC5398-2EP40-0PA2

 

 

 

 

 

 

 

содержание      ..     7      8      9      10     ..