Перейти к публикации

Постпроцессор 2С42-65


Grizzly

Рекомендованные сообщения

Возникла проблемка при создании поспроцессора (ПП) на стойку 2с42-65 в расчете циклов сверления. Суть в следующем - при постпроцессировании нескольких траекторий в одну УП пропадает переменная отвода инструмента I (или параметр $mom_cycle_retract_to_pos(2)) в строке задания цикла G81... (см. рис). А стойка требуется вывод полной строки данных. Как сделать принудительный вывод переменной I ($mom_cycle_retract_to_pos(2))? :wallbash:

post-2641-1127800171_thumb.jpg

Ссылка на сообщение
Поделиться на других сайтах


В определении адреса

ADDRESS I_G81 {

LEADER "I"

............................................

FORCE always

}

Задать

FORCE Always

(Указывает постпроцессору всегда выводить этот адрес. )

адрес I определен, на всякий случай, как I_G81, чтобы не конфликтовать с другими адресами I.

Сооответственно, в описании кадра цикла использовать адрес I_G81

BLOCK_TEMPLATE G81 {

G[.....]

I_G81[.....]

............................

}

все эти изменения выполняются в def-файле.

примерно так, IMHO.

Ссылка на сообщение
Поделиться на других сайтах

Спасибо за ответ, но результат следующий параметр I появляется во всех строчках цикла (см. рис.), а нужно только в первой, где происходит описание цикла. :g:

Чтобы добиться аналогичного результата без ручного редактирования def файла, достаточно в POST Builder'e переменной I присвоить атрибут Force Output.

post-2641-1127883401_thumb.jpg

Ссылка на сообщение
Поделиться на других сайтах

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

Вывод заголовка цикла в файле постпроцессора выглядит так:

#=============================================================

proc MOM_drill { } {

#=============================================================

global cycle_name

global cycle_init_flag

set cycle_init_flag TRUE

set cycle_name DRILL

CYCLE_SET

}

Процедура CYCLE_SET находится в файле ugpost_base.tcl:

proc CYCLE_SET { } {

#=============================================================

global cycle_name

WORKPLANE_SET

MOM_force once G_motion X Y Z R

catch {MOM_force once G_return}

if { [string first DWELL $cycle_name] != -1 } { MOM_force once cycle_dwell }

if { [string first NODRAG $cycle_name] != -1 } { MOM_force once cycle_nodrag }

if { [string first DEEP $cycle_name]!= -1 } { MOM_force once cycle_step }

if { [string first BREAK_CHIP $cycle_name] != -1 } { MOM_force once cycle_step }

}

Собака, IMHO, зарыта в строчке "MOM_force once G_motion X Y Z R". Именно тут не хватает нужного Вам адреса "I". Но добавить его туда напрямую врядли получится (любые попытки изменить файл ugpost_base.tcl у меня приводили к отказу постпроцессора), да и идеологически это неправильно.

Изменить процедуру "proc MOM_drill" в основном файле постпроцессора можно только вручную (или я просто не знаю как это делается в Post Builder-е), но лучше этого не делать.

Я в подобных случаях создавал "исправленные копии" нужных мне процедур и помещал их в "User's Tcl File". У Вас такая копия, насколько я себе представляю, должна выглядеть примерно так:

#=============================================================

proc MOM_drill { } {

#=============================================================

global cycle_name

global cycle_init_flag

set cycle_init_flag TRUE

set cycle_name DRILL

WORKPLANE_SET

MOM_force once G_motion X Y Z R I

catch {MOM_force once G_return}

}

Ссылка на сообщение
Поделиться на других сайтах

Спасибо! Все заработало :clap_1:

Отредактировал файл ugpost_base.tcl и все заработало.

Кстати, а что такое "исправленные копии" процедур и где находится "User's Tcl File"?

Ссылка на сообщение
Поделиться на других сайтах

где находится "User's Tcl File"?

User's Tcl File создаётся самим программистом для реализации того, что нельзя сделать через PostBuilder. В PostBuilder-e есть галочка для подключения такого файла. Находиться он должен там же где и основной файл постпроцессора.

Если основной файл и User's Tcl File содержат процедуры под одним и тем же именем, выполняется процедура из User's Tcl File, что позволяет подменить чем то не устраивающую процедуру на свою собственную. В частности, можно скопировать "дефектную" процедуру и "исправить" её по своему усмотрению (это к вопросу "что такое "исправленные копии" процедур").

Ссылка на сообщение
Поделиться на других сайтах

Появился еще один вопрос:

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

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

Поясню свой вопрос:

После постпроцесирования получается такая УП

%

01111

N1 M10I1T06

N2 G00X40.Y-47.Z10.

N3 G01Z-27.F20

.

.

.

А хочется получить следующее:

%

01111

N1 M10I1T06X40.Y-47.Z10

N2 G01Z-27.F20

.

.

.

Т.е. совместить два постпроцессорных события в одном кадре УП – Start of Path (N1) и Rapid Move (N2). Как организовать подобный вывод?

Ссылка на сообщение
Поделиться на других сайтах

Насколько я понимаю, нужно всего лишь добавить команды ("слова"), отвечающие за вывод координат, в блок, отвечающий за вывод кадра "M10I1T06".

Или я не понял всей глубины проблемы. :)

Ссылка на сообщение
Поделиться на других сайтах

Проблема в том, что в момент отработки события Start of Path кадр N1 система еще "не знает", что будет в следующем кадре N2, поэтому если просто добавлять координаты в первое событие, то вывод будет следующим:

N1 M10I1T06X0.Y0.Z0.

Ссылка на сообщение
Поделиться на других сайтах
  • 17 лет спустя...

Вы издеваетесь? У 2С42  16-64кбайта памяти а современным постам даже мегабайт мало ежели только на километры перфоленты выводить будете да не в каждую ФСУ такая бобина влезет.

Сдайте ее в утиль и осваивайте современные системы. Даже Fanuc 6 по сравнению с 2C42 'это совершенство!

Ссылка на сообщение
Поделиться на других сайтах
6 часов назад, gudstartup сказал:

Сдайте ее в утиль

Классный совет, но без бесплатного станка немного бесполезный :(

6 часов назад, gudstartup сказал:

У 2С42  16-64кбайта памяти а современным постам даже мегабайт мало

Ну уж.... Как-то мы работали и на Мазатроле с 216кБ и на Фануке 18-ом с 64кБ (пока память не расшарили). Да-неудобно, но не смертельно.

Ссылка на сообщение
Поделиться на других сайтах

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

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

Изменено пользователем dedspb
Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, Killerchik сказал:

Ну уж.... Как-то мы работали

Ну уж как то все работали и на 2С42 но не в современных реалиях! Программу из постпроцессора все равно придется оптимизировать по объему а некоторые программисты  делать это категорически не хотят.

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

Иногда в реалиях программистов на  Фанук с 12 мегабайтами программулина не влезает работаем с PCMCIA карты...

Вот помню надо было сделать энное количество маркировочных надписей на детали так программа получилась такая что на катушку ФСУ Консул 2С42-65 не поместилась пришлось катушку немного увеличить.

 

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, dedspb сказал:

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

Да уж надо учитывать скромные вычислительные мощности ее процессора ведь МС1201 это вам не Интел с несколькими ядрами.

Ссылка на сообщение
Поделиться на других сайтах

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

Для примера программа (подход, обход по половине окружности, отход(см. рисунок)) 

%
N1G90G00G17G54
N2S0M03
N3G01X+100000Y0
N4X+50000
N5G03X-50000I0J0
N6G01X-100000
N7M05
N8M02

 

Станок не корректно отрабатывает кадр N5 т.к в данном кадре отсутствует четвертая координата Y . Как это исправить в постбилдере? 

изображение_2022-12-12_144626525.png

Ссылка на сообщение
Поделиться на других сайтах

Насколько помню, у нас были станки с такой ЧПУ, но это программирование для 2С42-61, станок 2В623ПМФ4.

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, dedspb сказал:

Станок не корректно отрабатывает кадр N5 т.к в данном кадре отсутствует четвертая координата Y . Как это исправить в постбилдере?

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

MOM_force once X Y

 

Ссылка на сообщение
Поделиться на других сайтах

Или поставьте галочки "Обязательный вывод" на адресах X и Y в этих же круговых перемещениях (правой клавишей мыши).

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...