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

Доработка постпроцессора!


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

Доюрый день!!!

 

В спруткам имеется постпроцессор на ДМГ - Heidenhain (CNC Pilot 4290)_TurnMill, у нас имеются станки с такой же стойкой, сам код программы совпадает, но в программе которую выдает постпроцессор нехвает описание контура изделия, без которого станок не хочет принимать программу. Код который выдает постпроцессор выглядет следующим образом:

 

 

PROGRAMMKOPF [ PROGRAM HEAD]
#MASCHINE                CTX-310        [ MACHINE ]
#WERKSTUECK              DMG ПРОБА 2    [ WORKPIECE ]
#FIRMA                   VIMPEL         [ DEPT. ]
#AUTOR                   PG             [ AUTOR ]
#DATUM                   23.07.2015     [ DATE ]
#EINSPANNDURCHM          150            [ CLAMP. DIAM. ]
#AUSSPANNLAENGE          6              [ CLAMP. LENGTH ]
#SPANNDRUCK              25             [ CLAMP. PRESS. ]
#KOMMENTAR               DMG ПРОБА 2    [ COMMENT ]
#SYNCHRO                 0              [ SYNCHRO ]
#SCHLITTEN               $1             [ SLIDE ]


REVOLVER 1 [ TURRET ]
[ T   5 ID"New  l16, Ti1.98" ]


SPANNMITTEL 1


ROHTEIL [ BLANK ]
N   1 G20 X7.6 Z33.3 K23


BEARBEITUNG [ MACHINING ]
[ Tоkаrnyj kоntur ]
N   2 G14 Q0
N   3 T5 G96 S150 M3 G95 F0.5
N   4 G0 X4.6 Z0.7
N   5 G1 G42 X6 Z0 M108
N   6 G1 X7.2 Z-0.9
N   7 G1 Z-10.1
N   8 G1 G40 X8.8 Z-10.9
N   9 M5 M109
N  10 G14 Q0
N  11 G0

ENDE [ END ]

 

В данной программе присутствует описание заготовки Rohteil, что очень хорошо, и следом за заготовкой для станка должно быть описание контура детали "FERTIGTEIL [ FINISHED PART ]", которого как вы видите нет, в самом посте подпрограммы выдачи контура тоже нет и как я понимаю его необходимо дописать в виде подпрограммы или где то в командах!! подскажите как сделать этот контур с чего вообще начать??

 

 

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


Мне кажется в этой УП просто не хватает строчки   FERTIGTEIL [FINISHED PART], а описание образующего контура,  после FERTIGTEIL, не обязательно.
Другое дело если вы обрабатываете деталь циклом. Думаю, в этом случает постпроцессор отработает нормально и выведет этот контур в УП.
А пока попробуйте организовать вывод строки FERTIGTEIL [FINISHED PART] 
Скорее всего это делается в PPFUN командой    Output "FERTIGTEIL [FINISHED PART]"
В общем, в любом случае, сообщите что получилось, постараюсь помочь.

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

Да так и есть, нехватало строчки FERTIGTEIL [FINISHED PART], добавил вывод в постпроцессоре, пока все нормально. Спасибо!!))

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

Добрый день!

Вопрос по постпроцессору Морисеики!

При выполнении подряд 2 операций (2д контур) с одной осевой фрезой и используя ось С, постпроцессор на Мори (да и все остальные), к сожалению, после первой операции не возвращают ось в С=0 и имея поворотные преобразования, получается так что точка отсчета по оси С начинается (во второй операции) не в нуле и после включения G12 происходит смещение траектории обработки, подскажите как это можно исправить в постпроцессоре в каких командах!. Показал для наглядности в скриншоте:post-49150-0-72195700-1438145214_thumb.jpg

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

Добрый день!

Вопрос по постпроцессору Морисеики!

При выполнении подряд 2 операций (2д контур) с одной осевой фрезой и используя ось С, постпроцессор на Мори (да и все остальные), к сожалению, после первой операции не возвращают ось в С=0 и имея поворотные преобразования, получается так что точка отсчета по оси С начинается (во второй операции) не в нуле и после включения G12 происходит смещение траектории обработки, подскажите как это можно исправить в постпроцессоре в каких командах!. Показал для наглядности в скриншоте:attachicon.gifВопрос.jpg

Может воспользоваться правилами подводов/отводов ? Например указать, что после отработки операции необходимо делать отвод (по умолчанию в станке прописан вроде как такой: X;Z; а потом дописать еще следом C0.

хотя допустим если несколько пазов в одной операции делается, то ось С сбрасывать в 0 что неужто после каждого надо?

а можете Ваш проект приложить ? 

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

Заметил  что пост реализован так, что если в этих двух операциях были бы разные инструменты, то после первой операции ось С по умолчанию ушла бы в ноль, если один инструмент. то действительно приходится в правилах отвода, в первой операции, прописать С0, но на это, в принципе, можно закрыть глаза. Основная проблема в том, что G12 включается после того как ось С проворачивается в начало обработки и получается так, что начальное значение оси С станок принимает за ноль и происходит смещение. Для нормальной работы необходимо, чтобы G12 выводилось до того как ось С провернется в начало обработки, но как это сделать я пока не понял, дело в том что G12 выводится в команде Interp, а данная команда В СLDATA всегда идет после Multigoto.

post-49150-0-51486600-1438238174_thumb.jpg

Проект.zip

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

Установите галочку, как показано на рисунке. В результате в начале операции ось С принудительно выводится в ноль. А внутри полярной интерполяции (между G12 и G13) ускоренные перемещения интерполируются со скоростью перемещения 10000.
post-717-0-92220400-1438247068_thumb.png
 

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


Насчет лички погорячился.  Сообщите куда можно выслать постпроцессор.

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

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

attachicon.gifРис1.png

 

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

Насчет лички погорячился.  Сообщите куда можно выслать постпроцессор.

 

Почта: eppavel105@yandex.ru

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

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

attachicon.gifРис1.png

 

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

Насчет лички погорячился.  Сообщите куда можно выслать постпроцессор.

 

Касаемо моего вопроса, добавление Оси С2 по большому счету ничего не изменило и для работы в противошпинделе тоже, так как помимо вывода С2 , нужен вывод соответствующих М-функций, которые не прописаны. Мой вопрос был не в выводе оси, с осями в постпроцессоре все нормально, проблема в том что G12.1 в операциях выводится после того как ось поворачивает шпиндель в начало обработки и в итоге G12 воспринимает угол на который повернулся шпиндель как ноль, и далее происходит смещение, показывал на скрине в сообщении выше. Мне надо сделать так, чтобы G12 выводилось в начале обработки до вывода каких либо значений оси С, но как это сделать я пока не пойму.

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

Заметил  что пост реализован так, что если в этих двух операциях были бы разные инструменты, то после первой операции ось С по умолчанию ушла бы в ноль, если один инструмент. то действительно приходится в правилах отвода, в первой операции, прописать С0, но на это, в принципе, можно закрыть глаза. Основная проблема в том, что G12 включается после того как ось С проворачивается в начало обработки и получается так, что начальное значение оси С станок принимает за ноль и происходит смещение. Для нормальной работы необходимо, чтобы G12 выводилось до того как ось С провернется в начало обработки, но как это сделать я пока не понял, дело в том что G12 выводится в команде Interp, а данная команда В СLDATA всегда идет после Multigoto.

Ведь при полярной интерполяции, ось Y меняется на C.  И вот так вот с бухты-барахты переставлять команду я бы не советовал.

Скорее всего, надо разделить начальную строку на части

 

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

G0X0.Y51.369Z-11.C115.444
Z20.375
G12.1
 
а надо проверить вот такую конструкцию..
G0Z-11.
C115.444
G12.1
G1X0.C51.369F10000.
Z20.375

 

Возможно смещение даже не столько из-за С, сколько из-за Y

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

Ведь при полярной интерполяции, ось Y меняется на C.  И вот так вот с бухты-барахты переставлять команду я бы не советовал.

Скорее всего, надо разделить начальную строку на части

 

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

G0X0.Y51.369Z-11.C115.444
Z20.375
G12.1
 
а надо проверить вот такую конструкцию..
G0Z-11.
C115.444
G12.1
G1X0.C51.369F10000.
Z20.375

 

Возможно смещение даже не столько из-за С, сколько из-за Y

 

Если перед G12.1 стоит ось С, то он ее будет принимать как точку отсчета, т.е. в нашем случае С115.444 после кадра G12.1 будет восприниматься станком как С0, что не совсем правильно...

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

Если перед G12.1 стоит ось С, то он ее будет принимать как точку отсчета, т.е. в нашем случае С115.444 после кадра G12.1 будет восприниматься станком как С0, что не совсем правильно...

да команды местами поменять - дело то житейское  :smile:

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

да команды местами поменять - дело то житейское  :smile:

 

попробуй аккуратненько 

attachicon.gifMoriSeiki_TurnMill_experimenten.rar

 

Посмотрел пост, также выводит G12.1 после кадра с осью С.post-49150-0-52764400-1439188266.jpg

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

Посмотрел пост, также выводит G12.1 после кадра с осью С.attachicon.gifБезымянный.jpg

да, извиняюсь. действительно, залил неверный

 MoriSeiki_TurnMill_experimenten_v2.rar

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

Посмотрел пост, также выводит G12.1 после кадра с осью С.attachicon.gifБезымянный.jpg

 

ну и как, подошло? все-таки ждем продолжения этой саги :)

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

ну и как, подошло? все-таки ждем продолжения этой саги :)

 

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

post-49150-0-35368500-1440143080_thumb.jpg

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

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

attachicon.gif1111.jpg

А отработает ли G0 при включенной полярной интерполяции?

И второй вопрос: 

При включенной полярной интерполяции зачем выводить Y? (пусть даже и равной нулю)

 

MoriSeiki_TurnMill_experimenten_v3.rar 

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

Всем привет!

Вопрос по генератору постпроцессоров. В управляющей программе  нужно вывести подачу раньше чем она появляется в тексте CLD т.е в кадре перемещения до строки FEDRATE. Как из программки GOTO посмотреть вперед по тексту CLD в FEDRATE, запомнить значение подачи, и вывести его в текущем кадре?  Станочник достал уже, говорит что не красиво... эстет чертов.

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

Всем привет!

Вопрос по генератору постпроцессоров. В управляющей программе  нужно вывести подачу раньше чем она появляется в тексте CLD т.е в кадре перемещения до строки FEDRATE. Как из программки GOTO посмотреть вперед по тексту CLD в FEDRATE, запомнить значение подачи, и вывести его в текущем кадре?  Станочник достал уже, говорит что не красиво... эстет чертов.

Можно сделать так

В программе AbsMov пропиши следующее:

 

  a: Array of Real 
  b: Integer    
 
  b = GetCld(1, a)                !  читаем параметры следующей за GOTO команды (предполагаем что это FEDRAT) 
  if b=CodeOfCmd(“FEDRAT”) then  Feed=Str(a[1]) 
Ссылка на сообщение
Поделиться на других сайтах

 

Можно сделать так

В программе AbsMov пропиши следующее:

 

  a: Array of Real 
  b: Integer    
 
  b = GetCld(1, a)                !  читаем параметры следующей за GOTO команды (предполагаем что это FEDRAT) 
  if b=CodeOfCmd(“FEDRAT”) then  Feed=Str(a[1]) 

 

а если FEDRAT не сразу после?

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

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

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

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

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

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

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

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

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

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

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




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