Skip to main content
CNC.wiki

Написание и вызов подпрограмм на ЧПУ Fanuc, Siemens и Mitsubishi

Как писать подпрограммы ЧПУ на Fanuc, Siemens и Mitsubishi. Разбор синтаксиса M98, MCALL, настройки параметров 0010, 0389, 8129 и устранение ошибок 0077 и 14012.

Hakan Gündoğdu
Hakan Gündoğdu

Сооснователь CNC CARE

Введение

Сбой позиционирования из-за сохранения инкрементального режима (G91) после выхода из подпрограммы ЧПУ создает непосредственную угрозу столкновения револьверной головки (turret) или шпинделя с элементами технологической оснастки. Когда интерпретатор ЧПУ считывает команду возврата M99 или M17 в тот момент, когда активное состояние системы координат все еще установлено в инкрементальный режим, основная управляющая программа возобновляет движение относительно последней точки подпрограммы, а не в абсолютной системе координат детали (G54). Это приводит к тому, что режущий инструмент на рабочей подаче врезается в зажимной патрон (chuck), губки тисков (vise jaw) или прижим. В результате жесткого удара ломается дорогостоящий инструмент, сгибается вал шпинделя, а заготовка отправляется в брак, что вызывает незапланированный простой оборудования. Обеспечение надежности оборудования требует строгого контроля модальных состояний, использования защитных блокировок и верификации параметров вложенности подпрограмм на системах Fanuc, Siemens и Mitsubishi.

Техническая сводка

Технические характеристикиПодробности
Коды командFanuc: M98, M99, M198
Siemens: L<number>, <program name>, MCALL, EXTCALL, M17, RET
Mitsubishi: M98, M99, M198
Модальная группа / РежимКоманды вызова и возврата подпрограмм
Поддерживаемые брендыFanuc, Siemens, Mitsubishi
Критические параметрыFanuc: 3404#2 (SBP), 6001#5/7000#0 (TCS)
Siemens: P (INT), VAR keyword
Mitsubishi: #8876 (M198 device), #8129 (Search priority)
Основное ограничениеПределы вложенности: макс. 4 уровня (Fanuc), макс. 11/16 уровней (Siemens), макс. 8/10 уровней (Mitsubishi). Вложенные вызовы M198 на внешних носителях данных запрещены.

Краткий обзор

  • Сброс модальных режимов: Обязательно восстанавливайте абсолютное позиционирование (G90) и сбрасывайте измененные модальные подачи перед выходом из подпрограммы, чтобы предотвратить катастрофический уход инструмента с траектории.
  • Предел вложенности: Ограничивайте уровни вложенности подпрограмм до 4 на Fanuc, от 8 до 10 на Mitsubishi и от 11 до 16 на Siemens во избежание переполнения памяти интерпретатора.
  • Вызов с внешнего накопителя: Программируйте команду M198 (Fanuc/Mitsubishi) или EXTCALL (Siemens) для выполнения больших программ напрямую с внешних карт памяти или серверов данных.
  • Защита параметров блокировкой: Блокируйте права на редактирование макропрограмм серий 8000 и 9000 на стойках Fanuc с помощью параметров PRG8 (0389#2) and PRG9 (0010#4) для предотвращения их случайного изменения.
  • Кастомизация через псевдонимы: Используйте пользовательские коды M, S, T или B для автоматического назначения псевдонимов и запуска фоновых подпрограмм, например, циклов вращения револьверной головки.
  • Модальный вызов Siemens MCALL: Применяйте команду MCALL на системах Siemens для автоматического выполнения подпрограммы в каждой координатной точке, указанной в последующих кадрах, до её отмены.

Базовые концепции

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

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

Структура команд

Для вызова подпрограммы интерпретатор ЧПУ должен распознать специальный код команды вместе с идентификатором целевой программы и количеством повторений. В стандартных средах Fanuc и Mitsubishi этот переход инициирует код M98, передавая управление программе, указанной по адресу P. Контроллер отслеживает каждую итерацию подпрограммы с помощью счетчика циклов перед выполнением финальной последовательности возврата. По достижении конца подпрограммы код возврата останавливает выполнение подпрограммы и возвращает указатель программы обратно в кадр, непосредственно следующий за исходной командой вызова.

Системы управления Siemens поддерживают более гибкую структуру, позволяя вызывать подпрограммы напрямую по их имени или адресу L. Определение подпрограммы Siemens может включать заголовок PROC, который задает типы и имена параметров для передачи значений между уровнями программы. Переход назад выполняется с помощью M17 или RET. В системах всех брендов внешние вызовы, такие как M198 или EXTCALL, позволяют считывать данные с карт памяти или сетевых дисков. Параметры и адреса синтаксиса определяют, как ЧПУ осуществляет поиск, повторение и возврат из этих подпрограмм.

Адреса синтаксиса команд:

  • Стандартный вызов Fanuc: M98 P_ L_ ;
  • Внешний вызов Fanuc: M198 P_ ;
  • Возврат Fanuc: M99 ;
  • Определение Siemens: PROC <program name> (<ParamType> <ParamName>, VAR <ParamType> <ParamName>) [SAVE] [DISPLOF] [SBLOF] [ACTBLOCNO]
  • Вызов Siemens: <program name> (<Param1>, <Param2>) or L<number> or MCALL <program name>
  • Возврат Siemens: M17 or RET
  • Стандартный вызов Mitsubishi: M98 P__ H__ L__ ,D__ ; or M98 <file name> H__ L__ ,D__ ;
  • Внешний вызов Mitsubishi: M198 P__ L__ ; or M198 <file name> L__ ;
  • Возврат Mitsubishi: M99 P__ ;
Адрес параметраБренд ЧПУОписаниеДопустимые настройки
PFanuc / MitsubishiУказывает номер целевой программы для вызоваДо 8 цифр
LFanuc / MitsubishiОпределяет количество повторений подпрограммыот 1 до 9999 (по умолчанию: 1)
HMitsubishiУказывает начальный номер кадра внутри подпрограммыКод кадра (например, H100 соответствует N100)
,DMitsubishiЯвно направляет вызов на конкретное физическое устройство храненияот 0 до 4 (настраивается через параметры)
<file name>MitsubishiЗадает буквенно-цифровое имя файла в угловых скобкахДо 32 символов
P (в вызове)SiemensКонтролирует количество повторений программыот 1 до 9999 (например, P3)
VARSiemensОбъявляет передачу параметров по ссылке в заголовке PROCН/Д (ключевое слово)
SAVESiemensАвтоматически сохраняет и восстанавливает активные модальные G-функции и фреймыН/Д (атрибут)
DISPLOFSiemensПодавляет отображение кадров на HMI во время выполнения подпрограммыН/Д (атрибут)
SBLOFSiemensОтключает пошаговый режим одиночного кадра во время выполненияН/Д (атрибут)

Применение на брендах

Интеграция ЧПУ Fanuc

Системы управления Fanuc поддерживают псевдонимы (aliases), управляемые параметрами, для вызова подпрограмм. Система может выполнять фоновые подпрограммы, используя параметр 6001#5 (TCS) для сопоставления вызовов инструмента с программой O9000.

Стандартные подпрограммы вызываются с помощью M98, файлы на внешней карте памяти — с помощью M198, а возврат осуществляется по команде M99.

Параметр / Ошибка / ВерсияТипОписаниеНастройки / Подробности
Parameter 0010#4 (PRG9)ПараметрОпределяет, запрещено ли редактирование подпрограмм с O9000 по O9999.0 (не запрещено), 1 (запрещено)
Parameter 0389#2 (PRG8)ПараметрОпределяет, запрещено ли редактирование подпрограмм с O8000 по O8999.0 (не запрещено), 1 (запрещено)
Parameter 3404#2 (SBP)ПараметрОпределяет, указывает ли адрес P в команде M198 номер файла или номер программы.0 (номер файла), 1 (номер программы)
Parameter 3457ПараметрКонфигурация иерархии папок поиска (например, папки пользователя, папки производителя станка (MTB), системные папки).Битовые значения
Parameters 6071 to 6079ПараметрНазначает определенные M-коды для автоматического вызова подпрограмм с O9001 по O9009.от 3 до 99999999 (исключая зарезервированные M-коды)
Alarm 0076ОшибкаПРОГРАММА НЕ НАЙДЕНА: Вызываемая программа не найдена в памяти или папках поиска.Проверьте параметр 3457 и убедитесь в регистрации O-номера.
Alarm 0077ОшибкаСЛИШКОМ МНОГО ВЛОЖЕННЫХ ПОДПРОГРАММ/МАКРОСОВ: Превышен предел уровней вложенности.Макс. 4 вложенные подпрограммы (8, включая вызовы макросов).
Alarm 1080ОшибкаДВОЙНОЙ ВЫЗОВ ПОДПРОГРАММЫ С ВНЕШНЕГО УСТРОЙСТВА: Вложенный вызов M198.Избегайте вызова M198 из активной подпрограммы M198.
Alarm 1091ОшибкаДУБЛИРОВАНИЕ СЛОВА ВЫЗОВА ПОДПРОГРАММЫ: Несколько вызовов в одном кадре.Задавайте вызовы подпрограмм в отдельных кадрах.
Parameter 0001#1 (FCV)ВерсияРежим совместимости с устаревшими форматами перфолент FS0-TC/FS15-TA.0 (стандартный формат), 1 (возврат к формату Series 15 с объединением числа повторений и адреса P)

Предупреждение: Невыполнение сброса смещений координат или модального позиционирования (G91) перед командой возврата M99 приводит к дрейфу системы координат, направляя револьверную головку в тиски.

Интеграция Siemens SINUMERIK

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

Модальные вызовы подпрограмм инициируются с помощью команды MCALL, выполняя подпрограмму после каждого кадра перемещения до её отмены. Возврат осуществляется с помощью M17 или RET.

Параметр / Ошибка / ВерсияТипОписаниеНастройки / Подробности
P (INT)ПараметрАдрес для программирования количества повторений подпрограммы.от 1 до 9999
VARПараметрОбъявляет параметры, передаваемые по ссылке, в заголовке PROC.Н/Д (ключевое слово)
SAVEАтрибутАвтоматически сохраняет и восстанавливает активные модальные G-функции и фреймы.Н/Д
DISPLOF / SBLOFАтрибутПодавляет отображение кадров на HMI / отключает режим одиночного кадра.Н/Д
Alarm 14011Ошибкапрограмма не существует или редактируется. Вызываемый файл отсутствует или открыт на HMI.Закройте файл на HMI; проверьте путь _N_SPF_DIR.
Alarm 14012Ошибкапревышен максимальный уровень подпрограмм. Превышена максимальная глубина вложенности.Проверьте уровни вложенности.
Alarm 12720Ошибкаотсутствует номер программы для вызова макроса (G65/G66) в режиме ISO.Укажите номер целевой программы с помощью адреса P.
SINUMERIK 808D vs 828D/840D slВерсияРазличия в уровнях вложенности подпрограмм в зависимости от аппаратного класса стоек.808D: 11 уровней · 828D/840D sl: 16 уровней (18 с ASUB)
Software Version 5+ВерсияБлокировка безопасности, препятствующая выполнению программ, открытых для редактирования.Программы, открытые на HMI, не могут быть запущены с помощью NC Start.

Предупреждение: Отсутствие атрибута SAVE в строке PROC позволяет модальным настройкам G-кода (таким как G91) переноситься обратно в главную программу, что приводит к мгновенным авариям осей.

Интеграция ЧПУ Mitsubishi

Mitsubishi позволяет вызывать подпрограммы по буквенно-цифровым именам прямо в кадре G-кода. Приоритет поиска настраивается с помощью параметра #8129 для определения формата O-номеров.

Подпрограммы вызываются с помощью M98 с использованием угловых скобок (например, <PART.PRG>) и перенаправляются на внешние носители с помощью M198 или адреса ,D.

Параметр / Ошибка / ВерсияТипОписаниеНастройки / Подробности
#8876 (M198 pro stor: dev)ПараметрВыбирает целевое устройство хранения для подпрограмм, вызываемых через M198.G (жесткий диск), R (карта памяти), D (сервер данных), N (USB-накопитель)
#8880 to #8888ПараметрЗадает конкретные аппаратные устройства, сопоставленные с адресом ,D (от 0 до 4).M (память), G (жесткий диск), R (карта памяти), D (сервер данных), T (Ethernet), F (FLD)
#8129 (Subpro No. select)ПараметрОпределяет приоритет поиска номеров подпрограмм.0 (указанный номер), 1 (4-значный O-номер), 2 (8-значный O-номер)
Program Error (P230)ОшибкаПереполнение вложенности подпрограмм: Превышена максимальная глубина вложенности.Проверьте пределы вложенности и конфигурацию сервера данных.
Program Error (P231)ОшибкаНет номера кадра: Отсутствует кадр возврата или точка перехода.Убедитесь, что номер кадра совпадает с целевым в M99 P.
Program Error (P232)ОшибкаНет номера программы: Целевой файл отсутствует или внешний диск не смонтирован.Проверьте статус монтажа диска и длину имени файла (макс. 32 символа).
M70V/M700V vs M800V/M80VВерсияПределы уровней вложенности подпрограмм для различных серий систем ЧПУ.M70V/M700V и M800V/M80V: M70V/M700V: 8 уровней · M800V/M80V: 10 уровней
M800VW/M80VW vs M800VS/M80VВерсияУстройство поиска по умолчанию для M198, если параметр #8876 не задан.M800VW/M80VW и M800VS/M80V: VW/Type-W: сервер данных · VS/Type-S: фронтальная SD-карта

Предупреждение: Одновременный запуск подпрограммы M198 с SD-карты на нескольких каналах (системах) заблокирован, что приводит к немедленной остановке работы.

Сравнение брендов

КритерийFanucSiemensMitsubishi
Буквенно-цифровые имена файловНет встроенной поддержки; требуются строго O-номера.Поддерживается встроенно с использованием строковых имен программ.Поддерживается встроенно с использованием угловых скобок (например, <PART-FILE.PRG>).
Повторяющийся модальный вызовПокадровое выполнение или модальный вызов макроса G66.Модальное выполнение подпрограммы через MCALL <prog>.Покадровое выполнение.
Глубина вложенностиМакс. 4 уровня вложенности (8, включая макросы).Макс. 11 (808D), 16 (828D/840D sl), до 18 с ASUB.Макс. 8 (M70V/M700V), 10 (M800V/M80V).
Вызов с накопителяM198 P_ считывает с карты памяти/сервера данных.EXTCALL вызывает внешние подпрограммы.M198 вызывает с устройства, заданного параметром #8876 или явным адресом ,D.
Передача параметровТребует вызовов пользовательских макросов (G65/G66).Поддерживается напрямую через определение PROC («передача по значению» и «передача по ссылке» через VAR).Требует вызова макроса или переменных.

Технический анализ

Аналитический обзор этих трех архитектур ЧПУ выявляет различные подходы к выполнению подпрограмм, управлению областями видимости памяти и передаче параметров. Siemens строит управление на основе языков программирования ПК высокого уровня, позволяя программистам определять локальные области видимости и механизмы передачи параметров непосредственно в заголовке подпрограммы. Используя ключевое слово VAR в строке PROC, Siemens обеспечивает передачу по ссылке, позволяя подпрограммам изменять и возвращать результаты вычислений в родительскую программу. Fanuc и Mitsubishi используют традиционные регистровые архитектуры, требующие опций макросов, таких как G65 или G66, для передачи значений, или заставляющие программистов полагаться на нестабильные общие или глобальные переменные, что создает риск повреждения модальных данных.

Иерархии вложенности также отражают особенности аппаратной философии брендов. Ограничение вложенности в 4 уровня на Fanuc требует от программистов ведения простых ветвей вызовов с небольшой глубиной. Siemens предоставляет от 16 до 18 уровней вложенности, но поскольку эти уровни динамически распределяются между пользовательскими подпрограммами, стандартными циклами и встроенными фоновыми процедурами производителя (OEM-макросами, такими как ограничение скорости шпинделя или управление револьверной головкой), этот лимит может быстро закончиться. Mitsubishi занимает промежуточное положение, предлагая 8 уровней на устаревших сериях M70V и 10 уровней на новых системах M80V. Превышение этих лимитов на любой стойке немедленно останавливает выполнение программы, что доказывает необходимость отслеживания глубины вызовов во всех активных системах.

Маршрутизация директорий и функции безопасности также различают эти платформы. Fanuc использует параметр 3457 для поиска в жесткой автоматической иерархии папок, тогда как Mitsubishi допускает прямое физическое указание маршрута через адрес ,D или имена файлов в угловых скобках, такие как <PART.PRG>. Siemens isolates subprogram calls to the local workpiece directory unless an EXTERN declaration is declared. Кроме того, Siemens реализует блокировку безопасности HMI (начиная с версии ПО 5 и выше), которая предотвращает выполнение NC Start, если вызываемый файл открыт на экране для редактирования — функция, которая изначально отсутствует на стойках Fanuc и Mitsubishi.

Примеры программ

Пример вызова подпрограммы Fanuc

; Пример вызова подпрограммы Fanuc
O0001 (ГЛАВНАЯ ПРОГРАММА) ;
G90 G54 G00 X0 Y0 Z10.0 ; Предварительное позиционирование осей
M98 P1000 L5 ; Вызов подпрограммы O1000 пять раз
G00 Z50.0 M30 ; Отвод осей и конец главной программы

O1000 (ПОДПРОГРАММА) ; G91 G01 Z-2.0 F150 ; Переключение в инкрементальный режим и подача по Z G90 G01 X50.0 F300 ; Переключение в абсолютный режим и фрезерование до X50.0 G91 G01 Z2.0 ; Инкрементальный отвод по Z G90 G01 X0 ; Абсолютный возврат в X0 M99 ; Возврат в главную программу

пробный прогон (dry run)

При тестировании кода Fanuc в режиме пробного прогона станок сначала перемещается в координаты X0, Y0 и Z10.0 в абсолютном режиме. Когда интерпретатор достигает кадра M98 P1000 L5, он приостанавливает выполнение главной программы и переходит к подпрограмме O1000. В подпрограмме O1000 контроллер переключается в инкрементальный режим (G91) для подачи Z вниз на 2.0 мм, а затем возвращается в абсолютный режим (G90) для выполнения подачи по оси X до 50.0 мм. Он выполняет инкрементальный отвод, возвращается в абсолютную точку X0, а затем считывает M99. Контроллер повторяет этот цикл пять раз перед возвратом в главную программу, где отводит Z до 50.0 мм и завершает работу по команде M30.

Пример вызова подпрограммы Siemens

; Пример вызова подпрограммы Siemens
N10 G90 G54 G00 X0 Y0 Z10.0 ; Предварительное позиционирование осей
N20 MCALL POCKET_CYCLE(3.0, 150.0) ; Модальный вызов подпрограммы POCKET_CYCLE
N30 X50.0 Y50.0 ; Выполнение подпрограммы в координате 1
N40 X100.0 Y50.0 ; Выполнение подпрограммы в координате 2
N50 MCALL ; Отмена модального вызова подпрограмм
N60 G00 Z50.0 M30 ; Отвод Z и конец главной программы

Примечание: Ниже приведена подпрограмма POCKET_CYCLE.SPF, сохраненная в рабочей папке детали:

PROC POCKET_CYCLE(REAL DEPTH, REAL FEED) SAVE DISPLOF ;
G91 G01 Z=-DEPTH F=FEED ; Инкрементальное врезание
G90 G01 G41 X0 Y0 ; Включение компенсации радиуса инструмента
G03 X0 Y0 CR=25.0 ; Обработка кругового кармана
G40 G01 X0 Y0 ; Отмена компенсации
G91 G01 Z=DEPTH ; Инкрементальный отвод
M17 ; Возврат в главную программу

пробный прогон

Проверка программы Siemens в режиме пробного прогона показывает, что станок сначала перемещается к координатам X0, Y0 и Z10.0. Команда MCALL в кадре N20 регистрирует процедуру POCKET_CYCLE модально в памяти ЧПУ. Станок не выполняет подпрограмму в кадре N20, но при считывании кадра N30 (X50.0 Y50.0) перемещается в указанные координаты, останавливается и вызывает подпрограмму. Подпрограмма выполняется с активным атрибутом SAVE, автоматически сохраняя модальные настройки вызывающей программы. Она переключается в инкрементальный режим для подачи по Z вниз на 3.0 мм, фрезерует круговой карман, выполняет отвод и считывает M17. Контроллер автоматически восстанавливает исходные модальные настройки и продолжает выполнение. Он повторяет эту последовательность для кадра N40 (X100.0 Y50.0) перед тем, как кадр N50 очистит модальное состояние.

Пример вызова подпрограммы Mitsubishi

; Пример вызова подпрограммы Mitsubishi
O0002 (ГЛАВНАЯ ПРОГРАММА) ;
G90 G54 G00 X0 Y0 Z10.0 ; Предварительное позиционирование осей
M98 <POCKET-ROUT.PRG> H200 L3 ,D1 ; Вызов файла POCKET-ROUT.PRG с устройства 1, начиная с кадра N200
G00 Z50.0 M30 ; Отвод осей и конец главной программы

Примечание: Ниже приведена подпрограмма POCKET-ROUT.PRG, сохраненная на карте CF (устройство 1):

O2000 (ПОДПРОГРАММА) ;
N100 G01 Z-5.0 F100 ; Этот кадр пропускается из-за начального адреса H200
N200 G91 G01 Z-2.0 F120 ; Выполнение начинается здесь; инкрементальная подача
N300 G90 G01 X30.0 Y30.0 F250 ; Обработка абсолютного профиля
N400 G91 G01 Z2.0 ; Инкрементальный отвод
N500 G90 G01 X0 Y0 ; Абсолютный возврат
M99 ; Возврат в главную программу

пробный прогон

Во время пробного прогона контроллер Mitsubishi предварительно позиционирует инструмент в координатах X0, Y0 и Z10.0. При выполнении команды M98 система ЧПУ проверяет устройство 1 (карта CF), находит файл <POCKET-ROUT.PRG> и ищет кадр N200. Интерпретатор полностью пропускает кадр N100, начиная инкрементальное перемещение по оси Z с кадра N200. После выполнения профильных проходов инструмент возвращается в X0, Y0 в абсолютном режиме. При считывании M99 контроллер возвращается в главную программу, повторяя этот процесс три раза перед завершением по команде M30.

Анализ ошибок

БрендКод ошибкиУсловие срабатыванияСимптомы у оператораПервопричина / Устранение
FanucAlarm 0076Вызываемый номер программы отсутствует в памяти или папках поиска.Станок мгновенно останавливается, выводя сообщение об ошибке PROGRAM NOT FOUND.Проверьте конфигурацию путей папок в параметре 3457 и убедитесь, что файл с O-номером существует в локальной памяти.
FanucAlarm 0077Глубина вложенности превышает максимально допустимый предел.ЧПУ останавливается в середине цикла, выводя ошибку TOO MANY SUB, MACRO NESTING.Упростите логику программы. Убедитесь, что уровни вызовов не превышают 4 уровня (8, включая вызовы макросов).
FanucAlarm 1080Вложенный вызов внешнего устройства M198 выполнен внутри активной подпрограммы M198.Выполнение зависает, выводится ошибка DUPLICATE DEVICE SUB PROGRAM CALL.Избегайте вложенности блоков M198. Скопируйте вспомогательные подпрограммы в локальную память SRAM.
FanucAlarm 1091В одном кадре запрограммировано несколько команд вызова подпрограммы.Интерпретатор останавливается и выводит ошибку DUPLICATE SUB-CALL WORD.Выделите каждую команду вызова подпрограммы в отдельный кадр.
SiemensAlarm 14011Вызываемая подпрограмма отсутствует, не активна или открыта для редактирования.Контроллер приостанавливает работу, выводя сообщение о том, что программа не существует или редактируется.Закройте файл на HMI, чтобы снять блокировку редактирования. Проверьте путь в _N_SPF_DIR.
SiemensAlarm 14012Превышен лимит глубины вложенности.Система останавливается с сообщением о превышении максимального уровня вложенности подпрограмм, отключая NC Start.Проанализируйте дерево вызовов. Уменьшите количество вложенных циклов или OEM-макросов, таких как Turret3_CODE_T.
SiemensAlarm 12720Вызов макроса в режиме ISO выполнен без определения номера программы с помощью P.ЧПУ отклоняет команду, выводя сообщение об отсутствии номера программы для вызова макроса.Укажите номер целевой программы с помощью адреса P.
MitsubishiError P230Уровень вложенности превышает допустимый объем или выполнены вложенные вызовы сервера данных M198.ЧПУ останавливает работу и выводит сообщение об ошибке Subprogram nesting over.Проверьте уровни вложенности. Ограничьте число вызовов до 8 (M70V/M700V) или 10 (M800V/M80V).
MitsubishiError P231Указанный кадр возврата (M99 P) или точка перехода отсутствуют.Интерпретатор завершает работу по ошибке, выводя сообщение No sequence No.Убедитесь, что номер кадра, запрограммированный после P, существует в целевой программе.
MitsubishiError P232Вызываемый файл отсутствует, диск не смонтирован или имя превышает 32 символа.Выполнение останавливается, отображая ошибку No program No.Надежно смонтируйте внешний носитель, проверьте имена файлов и следите, чтобы длина имени не превышала 32 символа.

Практическое применение

Простой оборудования и повышенный износ узлов станка часто вызваны непреднамеренным изменением макропрограмм смены инструмента операторами или сбоями из-за некорректной адресации внешних вызовов. Проверка параметра 0010#4 (PRG9) до начала обработки устраняет наиболее частую причину незапланированных остановок для этой команды, предотвращая случайную перезапись системных подпрограмм серии O9000. Аналогично, защита программ O8000 через параметр 0389#2 (PRG8) повышает надежность оборудования при многосменной работе. Если этот параметр не проверен перед запуском, отклонение размера накапливается с каждым циклом и обнаруживается только при финальном контроле как брак. В системах Siemens отсутствие атрибута SAVE в заголовке PROC приводит к тому, что измененные в подпрограмме параметры подачи или инкрементального шага переносятся в основную траекторию. На стойках Mitsubishi некорректный вызов через M198 с SD-карты, вызванный плохим контактом или неправильным указанием приоритета поиска в параметре #8129, мгновенно останавливает линию с ошибкой P232. Регулярное техническое обслуживание разъемов накопителей и аудит настроек вложенности (максимум 4 уровня для Fanuc, 8–10 для Mitsubishi и 11–16 для Siemens) исключают перегрузку буфера интерпретатора и внезапный брак деталей.

Связанные команды

  • Простой вызов макроса G65: Инициирует одиночный немодальный вызов подпрограммы, позволяя напрямую передавать локальные переменные в регистры макросов.
  • Модальный вызов макроса G66: Предписывает интерпретатору ЧПУ автоматически выполнять назначенную макроподпрограмму после каждого последующего кадра перемещения до её отмены.
  • Сглаживание на основе допусков G645: Регулирует допуски сглаживания контура при высокоскоростной обработке, что должно быть тщательно согласовано с подачами в подпрограммах для предотвращения хордальных погрешностей.
  • Управление наклонной плоскостью G68.2: Задает координаты наклонной рабочей плоскости для многоосевой обработки, требуя правильного сопоставления координат перед выполнением циклов подпрограмм.
  • Mitsubishi High-Speed Control III (G05 P20000): Активирует усовершенствованное буферизованное управление траекторией для обработки микросегментов, которое должно программироваться в отдельном кадре, независимом от вызовов подпрограмм, во избежание конфликтов команд.

Заключение

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

Часто задаваемые вопросы (FAQ)

Как гарантировать, что модальные режимы из подпрограммы не вызовут смещение координат в основной программе?

Для предотвращения опасного дрейфа координат на системах Siemens обязательно используйте атрибут SAVE в строке определения PROC, что заставит систему автоматически восстановить исходное состояние модальных групп при возврате. На стойках Fanuc и Mitsubishi рекомендуется вручную прописывать кадр сброса модальных кодов (G90 G40 G49) непосредственно перед командой M99. Практическое действие: добавьте в шаблон постпроцессора CAM-системы автоматический вывод кадра возврата с принудительным восстановлением абсолютной системы координат.

Как устранить ошибку переполнения вложенности подпрограмм (Alarm 0077 или Alarm 14012)?

Данные ошибки возникают, когда глубина вызовов превышает аппаратный лимит ЧПУ, причем этот лимит делится между пользовательским кодом и фоновыми циклами смены инструмента или PLC-макросами станка. Перенос вспомогательных переходов в общую линейную структуру или использование простых переходов по условию (GOTO) вместо подпрограмм позволяет освободить стек памяти. Практическое действие: выполните трассировку вложенности с помощью встроенного симулятора ЧПУ и сократите количество уровней вызовов, объединив мелкие подпрограммы в один файл.

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

Подпрограммы изготовителя станка (серии O8000 и O9000 на Fanuc) уязвимы для случайного редактирования операторами в процессе наладки, что может привести к поломке измерительных датчиков или револьверной головки. Блокировка редактирования через параметры PRG9 и PRG8 полностью закрывает доступ к перезаписи этих файлов. Практическое действие: на стойке Fanuc установите значение параметра 0010#4 (PRG9) в 1 и параметра 0389#2 (PRG8) в 1, чтобы защитить макросы от несанкционированного изменения.

Проблема все еще не решена?

Задайте вопрос нашему ИИ-ассистенту по этой теме на естественном языке. На основе проверенных источников, без галлюцинаций.

Спросить ИИ-ассистента
Hakan Gündoğdu
Hakan Gündoğdu
  • CNC CARE Co-Founder (May 2025 - Present)
  • Mitsubishi Electric NC Sales & Service Section Manager (2008 - 2025)
  • Reis CNC Service Engineer (2003 - 2005)
  • Ören Kalıp CNC Mold Line Team Leader (1999 - 2002)

Имея более чем 25-летний опыт работы во всех областях индустрии станков с ЧПУ, я продолжаю свою деятельность в качестве сооснователя компании CNC CARE, где мы предлагаем независимый от брендов консалтинг, инжиниринг и оригинальные запасные части.

Похожие статьи

Другие статьи по этой теме

Настройка 3D-контроля столкновений Fanuc: параметры и ошибки

Узнайте, как настроить встроенный 3D-контроль столкновений на ЧПУ Fanuc. Параметры 10930, 10930#5, аварийный останов Alarm PS0492 и защита от простоев оборудования.

FanucProgramming

Параметры активации макросов Fanuc: настройка 0932 и 8135

Как настроить параметры 0932 и 8135 для активации макросов на стойках Fanuc. Руководство по расширению общих переменных и предотвращению столкновений и брака.

FanucProgramming

Настройка параметров системы управления стойкостью инструмента Fanuc

Руководство по настройке параметров управления стойкостью инструмента на стойках ЧПУ Fanuc. Как настроить G10 L3, G11 и параметры 6800 и 6810 без аварий и брака.

FanucProgramming

Настройка динамического ускорения жесткого нарезания резьбы Fanuc

Как настроить оптимальное ускорение жесткого нарезания резьбы на ЧПУ Fanuc с помощью параметра 11420#0. Настройка ступеней передач 1-4 и устранение аварии SP0741.

FanucProgramming