Copyright © 2007 НИП "Информатика"
#---------------------------------------------------------------------------
# Система ЧПУ : NC-210
# Станок : Энерготехника
# : паспорт 525 - плазменная резка с коррекцией
# : паспорт 526 - плазменная резка без коррекции
#
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
# Макрос РЕЖИМ_ВЫВОДА
#
# Устанавливает атрибуты вывода системных переменых в зависимости от
# заданного режимa вывода координат
#---------------------------------------------------------------------------
МАКРО РЕЖИМ_ВЫВОДА
КодКоорд = (КлючКоорд = ПРИРАЩ) ? ПдгПриращ : ПдгАбс
ЕСЛИ (КлючКоорд = АБСОЛЮТ) ТО
_X_ = МОДАЛ; _Y_ = МОДАЛ; _I_ = НОРМАЛ; _J_ = НОРМАЛ
ИНАЧЕ ЕСЛИ (КлючКоорд = ПРИРАЩ) ТО
_X_ = НЕНУЛЬ; _Y_ = НЕНУЛЬ; _I_ = НОРМАЛ; _J_ = НОРМАЛ
КОНЕСЛИ
КОНМАК
#---------------------------------------------------------------------------
# Макрос РЕЖИМ_ТОРМОЖ
#---------------------------------------------------------------------------
МАКРО РЕЖИМ_ТОРМОЖ
ЕСЛИ (ДопПар2 <> НЕОПР ЛИ ДопПар3 = 2 ЛИ КлючРезки(СРЕДН) = ВКЛ) ТО
КодТормож = (АБС(УголСлед)>=ДопПар2) ? 9 : НЕОПР
КОНЕСЛИ
КОНМАК
#---------------------------------------------------------------------------
# Макрос ВЫВОД_КОРРЕКЦИИ
#---------------------------------------------------------------------------
МАКРО ВЫВОД_КОРРЕКЦИИ
ЕСЛИ (ДопПар1 = 1) ТО
ЕСЛИ (ПодходККонтуру) ТО
ВЫВОД КодКорр
ПодходККонтуру = ЛОЖЬ
ИНАЧЕ ЕСЛИ (ОтходОтКонтура) ТО
ОтходОтКонтура = ЛОЖЬ
ИНАЧЕ
ЕСЛИ (ПОИСК(КОРРЕК)) ТО
КодКорр = ПдгРадВыкл
ВЫВОД КодКорр
КОНЕСЛИ
КОНЕСЛИ
КОНЕСЛИ
КОНМАК
#---------------------------------------------------------------------------
# Макрос РЕЗАК_ВКЛ
#
# Формирует команды включения резака
#---------------------------------------------------------------------------
МАКРО РЕЗАК_ВКЛ
ЕСЛИ (КлючБыстро = ВЫКЛ) ТО
_G_ = 0
ВЫВОДСТР НомКадра(КлючКадра), _G_
_G_ = НЕОПР
КодИнтерп2 = НЕОПР
КОНЕСЛИ
_M_ = ВспСрВкл
ВЫВОДСТР НомКадра(КлючКадра), _M_
ВклПоз = ЛОЖЬ
КОНМАК
#---------------------------------------------------------------------------
# Макрос РЕЗАК_ВЫКЛ
#
# Формирует команды выключения резака
#---------------------------------------------------------------------------
МАКРО РЕЗАК_ВЫКЛ
_G_2 = НЕОПР
_G_ = 0
ВЫВОДСТР НомКадра(КлючКадра), _G_
_G_ = НЕОПР
КодИнтерп2 = НЕОПР
_M_ = ВспСрВыкл
ВЫВОДСТР НомКадра(КлючКадра), _M_
КОНМАК
#---------------------------------------------------------------------------
# Макрос ВОССТАНОВЛЕНИЕ_СОСТОЯНИЯ
#
# Восстанавливает состояние до вызова подпрограммы
#---------------------------------------------------------------------------
МАКРО ВОССТАНОВЛЕНИЕ_СОСТОЯНИЯ
КодИнтерп2 = НЕОПР
ПодачаТек(ММИН) = НЕОПР
_X_2 = НЕОПР
_Y_2 = НЕОПР
КОНМАК
#---------------------------------------------------------------------------
# Макрос ПОЗИЦИОНИРОВАНИЕ
#
# Выполняет перемещение в точку пробивки
#---------------------------------------------------------------------------
МАКРО ПОЗИЦИОНИРОВАНИЕ
ЕСЛИ (ВклПоз) ТО
КодИнтТек = КодИнтерп
Xтекущ = _X_
Yтекущ = _Y_
КодИнтерп = ПдгБыстро
_X_ = ТчВрез(1)
_Y_ = ТчВрез(2)
ВЫВОД НомКадра(КлючКадра), КодИнтерп
ВЫЗОВ ВЫВОД_КОРРЕКЦИИ
ВЫВОДСТР _X_, _Y_
КодИнтерп = КодИнтТек
_X_ = Xтекущ
_Y_ = Yтекущ
КОНЕСЛИ
КОНМАК
#---------------------------------------------------------------------------
# Описание переменных
#---------------------------------------------------------------------------
#
# Параметры пользователя
#
# ДопПар1 - использование коррекции: 1 - использовать, 0 - нет
# ДопПар2 - угол торможения
# ДопПар3 - режим торможения: 0 - G29, 1 - G27, 2 - G28+G09
ФОРМАТ '##'
КодРежима = НЕОПР, ФОРМАТ '##', ПРЕФИКС ' G', МОДАЛ
КодТормож = НЕОПР, ФОРМАТ '##', ПРЕФИКС ' G'
ВЕЩ НомерПП = НЕОПР, ФОРМАТ, '###', ПРЕФИКС, 'L'
Парам(1) = НЕОПР
Парам(2) = НЕОПР
ВЕЩ ТолщЛиста
ЛОГИЧ ПодходККонтуру = ЛОЖЬ
ЛОГИЧ ОтходОтКонтура = ЛОЖЬ
ЛОГИЧ ВклРез = ИСТИНА
ЛОГИЧ ВклПоз = ЛОЖЬ
ТОЧКА ТчВрез
#---------------------------------------------------------------------------
# Начальная секция постпроцессора
#---------------------------------------------------------------------------
СТАНОК:
КлючКадра = ПОДПРОГР
ВЫЗОВ РЕЖИМ_ВЫВОДА
ВЫВОДСТР НомКадра(КлючКадра), ' D1'
ВЫВОДСТР НомКадра(КлючКадра), КодКоорд
КодКорр2 = ПдгРадВыкл
#---------------------------------------------------------------------------
# Секция обработки оператора ТОЛЩИНА
#---------------------------------------------------------------------------
ТОЛЩИНА:
ТолщЛиста = Парам(1)
#---------------------------------------------------------------------------
# Секция обработки оператора РЕЖИМ
#---------------------------------------------------------------------------
РЕЖИМ:
ВЫЗОВ РЕЖИМ_ВЫВОДА
#---------------------------------------------------------------------------
# Секция загрузки инструмента
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
# Секция обработки оператора РЕЗАК
#---------------------------------------------------------------------------
РЕЗАК:
ЕСЛИ (Парам(1) = ВКЛ) ТО
ВклРез = ИСТИНА
ИНАЧЕ ЕСЛИ (Парам(1) = ВЫКЛ) ТО
ВЫЗОВ РЕЗАК_ВЫКЛ
КОНЕСЛИ
#---------------------------------------------------------------------------
# Секция обработки оператора РАЗМЕТ
#---------------------------------------------------------------------------
РАЗМЕТ:
#---------------------------------------------------------------------------
# Секция обработки подачи
#---------------------------------------------------------------------------
ПОДАЧА:
#---------------------------------------------------------------------------
# Секция обработки коррекции
#---------------------------------------------------------------------------
КОРРЕК:
ЕСЛИ ( (КлючКомп = СПРАВА ИЛИ КлючКомп = СЛЕВА) ЛИ %
КлючРезки(СРЕДН) = ВЫКЛ ) ТО
ПодходККонтуру = ИСТИНА
ИНАЧЕ ЕСЛИ (КлючКомп = ВЫКЛ ) ТО
ОтходОтКонтура = ИСТИНА
КОНЕСЛИ
#---------------------------------------------------------------------------
# Секция обработки остановов станка
#---------------------------------------------------------------------------
СТОП:
_M_ = ВспСтоп
ВЫВОДСТР НомКадра(КлючКадра), _M_
#---------------------------------------------------------------------------
# Секция обработки технологических остановов станка
#---------------------------------------------------------------------------
ТЕХОСТ:
_M_ = ВспТехост
ВЫВОДСТР НомКадра(КлючКадра), _M_
#---------------------------------------------------------------------------
# Секция обработки команды ИЗ (начало траектории)
#---------------------------------------------------------------------------
ИЗ:
#---------------------------------------------------------------------------
# Секция линейного движения на быстром ходу
#---------------------------------------------------------------------------
ВТОЧКУБЫСТРО:
ТчВрез(1) = _X_
ТчВрез(2) = _Y_
ТчВрез(3) = 0
ВклПоз = ИСТИНА
#---------------------------------------------------------------------------
# Секция линейного движения на рабочей подаче
#---------------------------------------------------------------------------
ВТОЧКУ:
ВЫЗОВ ПОЗИЦИОНИРОВАНИЕ
ВЫЗОВ РЕЖИМ_ТОРМОЖ
ВЫВОДСТР НомКадра(КлючКадра), КодРежима
ЕСЛИ (ВклРез) ТО
ВЫЗОВ РЕЗАК_ВКЛ
ВклРез = ЛОЖЬ
КОНЕСЛИ
ВЫВОД НомКадра(КлючКадра), КодИнтерп, КодКоорд, КодТормож
ВЫЗОВ ВЫВОД_КОРРЕКЦИИ
ВЫВОДСТР _X_, _Y_, ПодачаТек(ММИН)
#---------------------------------------------------------------------------
# Секция кругового движения на рабочей подаче в ХУПЛ
#---------------------------------------------------------------------------
КРУГХУ:
ВЫЗОВ ПОЗИЦИОНИРОВАНИЕ
ВЫЗОВ РЕЖИМ_ТОРМОЖ
ВЫВОДСТР НомКадра(КлючКадра), КодРежима
ЕСЛИ (ВклРез) ТО
ВЫЗОВ РЕЗАК_ВКЛ
ВклРез = ЛОЖЬ
КОНЕСЛИ
ВЫВОД НомКадра(КлючКадра), КодИнтерп, КодКоорд, КодТормож
ВЫЗОВ ВЫВОД_КОРРЕКЦИИ
ВЫВОДСТР _X_, _Y_, _I_, _J_, ПодачаТек(ММИН)
#---------------------------------------------------------------------------
# Секция обработки подготовительных функций
#---------------------------------------------------------------------------
ПДГФУН:
_G_ = Парам(1)
ЕСЛИ (Парам(10) = ТЕКУЩ) ВЫВОДСТР НомКадра(КлючКадра), _G_
#---------------------------------------------------------------------------
# Секция обработки вспомогательных функций
#---------------------------------------------------------------------------
ВСПФУН:
_M_ = Парам(1)
ЕСЛИ (Парам(10) = ТЕКУЩ) ВЫВОДСТР НомКадра(КлючКадра), _M_
#---------------------------------------------------------------------------
# Секция обработки команд ТЕКСТ
#---------------------------------------------------------------------------
ТЕКСТ:
ВЫВОДСТР '(', ВставСтр, ')'
#-------------------------------------------------------------------------
# Вызов подпрограммы. Оператор ВЫЗОВПП
#-------------------------------------------------------------------------
ВЫЗОВПП:
ВЫЗОВ ПОЗИЦИОНИРОВАНИЕ
НомерПП = Парам(1)
ВЫВОД НомКадра(КлючКадра)
ВЫВОДСТР '(EPP,', НомерПП, 'S,', НомерПП, 'E)'
НомерКадра = ВКЛ
ВЫЗОВ ВОССТАНОВЛЕНИЕ_СОСТОЯНИЯ
#---------------------------------------------------------------------------
# Конец головной программы. Оператор КОНЕЦУП
#---------------------------------------------------------------------------
КОНЕЦУП:
_M_ = ВспКонец
ВЫВОДСТР НомКадра(КлючКадра), _M_
#-------------------------------------------------------------------------
# Начало подпрограммы. Оператор ПОДПРОГ
#-------------------------------------------------------------------------
ПОДПРОГ:
НомерПП = Парам(1)
ВЫВОДСТР '"', НомерПП, 'S"', НомКадра(КлючКадра)
#-------------------------------------------------------------------------
# Конец подпрограммы. Оператор КОНЕЦПП
#-------------------------------------------------------------------------
КОНЕЦПП:
ВЫВОДСТР '"', НомерПП, 'E"', НомКадра(КлючКадра)
ВЫЗОВ ВОССТАНОВЛЕНИЕ_СОСТОЯНИЯ
#---------------------------------------------------------------------------
# Секция обработки конца программы
#---------------------------------------------------------------------------
КОНЕЦ:
КодРежима2 = НЕОПР