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

Симуляция подпрограмм с переменными


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

Какой программой прорисовать подпрограммы с переменными?

Станок - фрезерно-расточной ИР500 стойка FANUC SYSTEM 6M-MODEL-B

Стойка позволяет писать подпрограммы с переменными.

Есть ли возможность в NСManager прорисовывать такие подпрограммы ?

ПРИМЕР

(G13 - подпрограмма P9011 переопределённая в параметрах станка на функция G13)

%

...

( FREZA 14 )

N80G0G90G54X370.Y170.

G43H24Z70.

M3S1500Z22.

G1Z-2.F1000

G13I8.D74F200L2

G0Z200.M5M9

G28G91X0

...

%

:9011

( OBXOD OTVERSTIYA )

( I = RADIUS OTV = #4)

G91

#1=ABS[#4]-#[2000+#7]

IF[#1LE0]GOTO1

#2=#1*3/4

#3003=3

G1X[#1-#2]Y-#2F#9

G17G3X#2Y#2R#2

I-#1

X-#2Y#2R#2

G1X-[#1-#2]Y-#2

#3003=0

N1G90M99

%

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


to lesstar

Я попробую. Вроде что-то подобное настраивали и учитывали.

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

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

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

Начнём с конца вопроса. :smile:

Прелесть?... К примеру, всем же больше нравится проектировать детали в параметрической системе, правда? Ну вот и здесь также. Т.е. может быть написана одна программа для целой группы однотипных деталей. Для машиностроительных деталей такой подход очень удобен. Конечно писать такую программу труднее, чем обычную, но при определённом навыке особых проблем не представляет.

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

Вообщем сейчас, когда САМ-системы стали мощными и доступными :rolleyes: , конечно актуальность таких программ поугасла. Но и сейчас им можно найти достойное применение.

Я попробую. Вроде что-то подобное настраивали и учитывали.

Хлопотно будет. Я писал такие проги под Фанук и Хайденхайн - отличаются как день и ночь.
Ссылка на сообщение
Поделиться на других сайтах

Вообщем сейчас, когда САМ-системы стали мощными и доступными , конечно актуальность таких программ поугасла. Но и сейчас им можно найти достойное применение.

Для САМ нужна 3D модель детали, которую никто не дает и получается,

что помимо программирования нужно еще и 3D модель делать, а если еще и САМ нет.

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

У нас очень часто идут простые ("типовые корпуса") - это корпуса состоящие

из набора стандартных элементов (карман,колодец,сетка отверстий и т.п.) и поэтому

каждый раз расписывать все эти типовые элементы лень. Я лучше один раз помучаюсь и

напишу подпрограмму с параметрами, чем каждый раз расписывать все это. Зато потом

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

тратится времени да и ошибок меньше.

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

Хлопотно будет.

Да, хлопотно. Но тем не менее, мы это в свое время, сделали.

Какой программой прорисовать подпрограммы с переменными?

Я то считаю. что это наш конек, прорисовать программы и с переменными и с коррекцией и с чертом лысым. :smile: Я даже не знаю симуляторов, где это так легко и дешево можно сделать. Например, единственно что нужно - поставить значение в корректор, если программировали контур, и вы увидите обработку того, что действительно будет обработано станком. Кто из симуляторов это может показать?

С переменными умеем и конечно же учимся работать, т.к., как ни странно, это используется и спасибо большое IBV и Lesstar за разъяснения, зачем это надо. Не так давно сделали закладку, где пишутся значения регистров (переменных) используемых в программе. Именно для FANUC SYSTEM 6M-MODEL-B много чего учитывали, так как есть несколько пользователей, которые используют эти хитрости с ПП, вычислениями и регистрами.

Для программы, пример которой был дан, я задал для корректора D74 значение радиуса инструмента 7мм и получил результируещее отверстие диамметром 16мм. Если бы значение в корректоре было 0, то диамметр был бы 30мм.

Lesstar - все так и должно быть? А зачет переменная - #3003=3

, от ее значения ничего не зависит, вроде.

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

Lesstar - все так и должно быть? А зачет переменная - #3003=3

, от ее значения ничего не зависит, вроде.

Все прорисовано верно. ( #3003=3 - блокировка покадровой обработки )

UAV, а может NCManager прорисовывать более сложные подпрограммы?

FANUC 6M позволяет при программировании использовать различные функции

и операторы, которые необходимы при программировании таких подпрограмм

как сверление по сетке, выборка колодца и т.п.:

- цикл повторения WHILE [условие] DO m ... END m

- бесконечный цикл DO m ...END m

- условный переход IF [условие] GOTO n

- функции SIN,COS,TAN,SQRT

- различные округления FUP,FIX,ROUND

- условия (=,<>,>,<,>=,<=) EQ,NE,GT,LT,GE,LE

и т.п.

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

lesstar, приводите пример, если интересно проверить - прорисую и покажу.

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

В Вашем предыдущем примере есть часть из перечисленного:

#1=ABS[#4]-#[2000+#7]

IF[#1LE0]GOTO1

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

lesstar, приводите пример, если интересно проверить - прорисую и покажу.

ПРИМЕР - Обработка отверстий по дуге

/ Коментарии

/ #4003 текущий G код (G90/G91)

/ #0 пусто ( присвоено значение или нет )

/ EQ =

/ NE <>

/ LT <

%

....

( SVERLO 5.0 )

G0G90G54X60.Y60.

G43H8Z50.

M13S1500

G81G99Z2.R11.F200

G65P8507X60.Y60.R40.D20.H9.A45.

G80Z200.M5M9

.....

%

:8507

/ #24 = X CENTR DUGI PO X

/ #25 = Y CENTR DUGI PO Y

/ #18 = R RADIUS DUGI

/ #7 = D UGOL MEGDU OTVERSTIYAMI

/ #11 = H KOLICESTVO OTVERSTIY

/ #1 = A UGOL DO PERVOGO OTVERSTIYA

#30=#4003

G90

IF[#24 EQ #0]GOTO 30

IF[#25 EQ #0]GOTO 30

IF[#18 EQ #0]GOTO 30

IF[#7 EQ #0]GOTO 30

IF[#7 EQ 0]GOTO 30

IF[#11 EQ #0]GOTO 30

IF[#11 EQ 0]GOTO 30

GOTO 50

N30#3000=175(OSCHIBKA V PARAMETRAH)

N50IF[#1 NE #0] GOTO 60

#1=0

N60#31=0

#32=0

WHILE[#32LT ABS[#11]]DO1

#33=#31+#1

X[#24+#18*COS[#33]]Y[#25+#18*SIN[#33]]

#32=#32+1

#31=#31+#7

END1

G#30M99

M30

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

Как-то так?

UAV, это здорово, что и такие подрограммы прорисовываются.

Имея NCManager, можно отлаживать все подпрограммы на компьютере.

Замечание: Откуда взялось первое отверстие (cкорей всего с координатами X60.Y60.)?

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

lesstar

Спасибо на добром слове.

Откуда взялось первое отверстие (cкорей всего с координатами X60.Y60.)?

<{POST_SNAPBACK}>

В настройках стоит, что цикл начнет сверлить при его включении. Параметр CycleNeedsGeom No.

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

В настройках стоит, что цикл начнет сверлить при его включении. Параметр CycleNeedsGeom No.

UAV, значит, чтобы прорисовать отверстия, которые выполняет подпрограмма

(только по дуге), достаточно установить параметр CycleNeedsGeom = Yes ?

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

Нет. Этот параметр отвечает за то, когда начать сверлить. Бывают стойки, которые начинают сверлить сразу (в текущей позиции), когда включится цикл. А бывают, когда в кадре включения цикла, сверление не происходит, а происходит только задание параметров цикла. Само сверление начинается со следующих кадров где задаются координаты отверстий.

В ваших примерах идет вычисления. Их особо настраивать не надо. Нужно только заменить в описании стойки ключевые слова программы на слова которые понимает NCManager. Например:

Replace "SIN" "с"

Replace "COS" "к"

Replace "ABS" "м"

...

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

UAV, это здорово, что и такие подрограммы прорисовываются.

<{POST_SNAPBACK}>

Скажу более, сам не знал, и вот такие - тоже можем (переменные заданы именами) . Это фрагмент Окумовской программы:

.....

 TZ=0   (TEKUSchAYa KOORDINATA PO *Z* KONTURA)

 TZK=0  (TEKUSchAYa KOORDINATA PO *Z* INSTRUMENTA S KORREKTsIEI)

 TDZ=0  (TEKUSchII ShAG PO OSI *Z* NA SFERE,MM)

 AX=0   (PROMEZhUTOChNAYa PEREMENNAYa - OTNOShENIYa STORON TREUGOL'NIKA)

 TANN=0 (TEKUSchII UGOL NAKLONA K TOChKE KASANIYa FREZY I SFERY)

 TDZK=0 (TEKUSchAYa VELIChINA KORREKTsII PO OSI *Z*)

 DXK=0  (VELIChINA KOREKTsII PO OSI *X* NA SFERE)

 DYK=0  (VELIChINA KOREKTsII PO OSI *Y* NA SFERE)

 (*REZhIMY OBRABOTKI*)

 FRAB=2   (RABOChAYa PODAChA)

NSTR (*I.NAChAL'NAYa TOChKA OBRABOTKI*)

 TX=RS

 TXK=TX-RF

 TY=0

 TYK=TY

 TZ=-SC

 TZK=TZ-RF

G00 Z=TZK

G00 X=TXK Y=TYK

NCIL (*II.NAChALO TsYKLA OBRABOTKI TsILINDRA*)

   TANG=TANG-AC

   TX=RS*[COS[TANG]]

   TY=RS*[SIN[TANG]]

   TZ=TZ-ZC

   TXK=[RS-RF]*COS[TANG]

   TYK=[RS-RF]*SIN[TANG]

   TZK=TZK-ZC

  G01 X=TXK Y=TYK Z=TZK F=FRAB

  IF [TZK GT [-EC-RF+ZC]] NCIL (*KONETs TsYKLA OBRABOTKI TsILINDRA*)

NSFR (*III.NAChALO TsYKLA OBRABOTKI SFERY*)

   TDZ=ABS[[[ABS[TZK]-[RF+EC]]/[RS-RF]]*[ZD-ZU]+ZU]

   TDAG=ABS[[[ABS[TZK]-[RF+EC]]/[RS-RF]]*[AD-AU]+AU]



....

post-534-1174371622_thumb.jpg

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

работаю оператором на станке Ир-320 системы FANUC 6M

Попробуйте пропустить через графику на станке такую программку,это только графика

начальную (шапку)поставте сами G,S,F

#100=0

#103=0

G0X0YO

WHILE[#100LE20]DO1

#100=#100+1

G90

#101=SQRT[441-[#100*#100]]

#102=50-#101

#103=#103-1

#104=-[sQRT[441-[#100*#100]]]

G0X0Y#103

G1X#102

G2X[#102-#104+#101]R21.

G1X100.

END1

M30

или эту

#100=0

WHILE[#100 LE 7]DO1

#100=#100+1

G240 P#100

G243 P0 , @99@

END1

M30

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

Попробовал. Первую программу. С второй надо разбираться - не встречал коды G240 G243 и т.д.

Что-то такое? DXF - файл этой траектории, прикладываю.

post-534-1199859716_thumb.png

траектория.rar

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

UAV.Во-первых, привет от коллеги по цеху.

NCm-штука полезная,НО!

Меня терзает вот какой вопрос: как в NCm закладываются алгоритмы симуляции тех или иных команд стойки?У меня на заводе их уйма,и как я буду подстраивать под NCm.?

Для примера хотя бы возьмите стойку 8600,или ее Российский аналог NC210.

Весьма рекомендую ознакомиться с этой стойкой, прежде чем делать заявления типа: " Какая еще система может такое?"

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

sudakhp И Вам, здравствуйте!

Для примера хотя бы возьмите стойку 8600,или ее Российский аналог NC210.

Если есть описание в электронном виде руководства программиста, по этой стойке - дайте пожалуйста. Что именно в этой стойке проблематично настроить?

Меня терзает вот какой вопрос: как в NCm закладываются алгоритмы симуляции тех или иных команд стойки?У меня на заводе их уйма,и как я буду подстраивать под NCm.?

Есть файл настройки, где описываются буквы, G-коды, M-коды. Описание этого файла настройки можно почитать в папке .../doc если установлен NCM. В данный момент, упрощаем прочедуру настройки. Сделаем приложение, которое упростит работу с настройкой. Сейчас спецсредств нет, настройка идет в текстовом редакторе.

Алгоритм симуляции закладываем мы, естественно. Например станочные циклы которых еще не было. Узнаем работу из доки или у пользователя NCM и настраиваем интерпретацию внутри NCM. Работа не с нуля, т.к. аппарат обработки циклов у нас, как разработчиков, есть. В результате появляется новые буквы и коды в файле настройки.

В принципе, можно написать макро подпрограмму в формате G-кода стойки и повесить ее вызов на неизвестный NCM-у G-код. Тело этой ПП поместить в файл настройки в спец раздел. Таким образом некоторые команды и алгоритмы работы стойки может закладывать пользователь.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Shoker
    • 4Zzz
      Всем хорошего здоровья и отличного настроения! Попросили меня посчитать толщину полипропиленового листа для наливной ёмкости. Вроде все условия задал, все перепроверил, но на выходе получаю, что для ёмкости Ø 3 м и высотой 1,5 м хватает листа толщиной 1 мм. По факту на таких ёмкостях ставят 5-8 мм.   При расчете применял материал полипропилен из Солида. Он сначала ругнулся, что отсутствует предел текучести. Погуглил, взял этот предел текучести 27 600 000 Н/м2 (с пробелами, чтобы легче воспринимать цифры). И вот мне кажется, здесь у меня и ошибка. Прошу посмотреть, какой у вас указан предел текучести полипропилена?  
    • Onizuka
      Только генерация экземпляров в кол-ве 13667 штук заняло 6 часов! Еще бы 4 дуги в сечении заменить, например на эллипс. Меньше ограничений в сечении - быстрее пересчет. Но это уже, скорее всего, излишне. Главная проблема вложенные таблицы и огромное кол-во экземпляров.
    • ak762
      я не очень знаком с современными терминами в среде молодежи, что такое дискорд в вашем понимании? если речь идет про файл то нет проблемм присоединяю к тексту СВ версия 2023 если про то как включить встроенный калькулятор то поставте галочки как обведено красным и в меню tools->toolbox   PS: ошибся с обведением должно быть Solidworks toolbox utilities Ibeam.SLDPRT      
    • sloter
      А в чём есть (может быть) проблема? Понятно, что в такую старую версию файлы новых версий АИ ассоциативно затягиваться не будут. А без связи - через нейтральный формат sat, stp, igs (как обычно) или dwg. Главное - версию формата понизить при экспорте до необходимой принимающей стороне. На сколько помню, МТД stp читал. А для этого формата вообще ни чего не нужно.
    • maxx2000
    • Мрачный
      Серва наверное. Ибо мотор-редуктор либо торчать будет вбок либо несуразно чтото выйдет. Сервы есть и под IP65/67, это мне вроде годится. Они вроде как в габаритах NEMA и будут, как шаговики. Буду смотреть типа Leadshine, маслостойкие. Спасибо за консультацию, коллеги.  Благодарю всех.
    • ДОБРЯК
      Это понимаете только Вы, что если величина сила скаляр, то и сила это скаляр. Что только не напишет великий математик на страницах форума. Только на литературном форуме это понимают и считают вас великим математиком... :=)
    • Stanislav
      Думается при таких партиях от 100 тыс за деталь на последнем чертеже.  Начертить 3д модель, разобраться с допусками, прикинуть технологию, написать программу. Около недели работы (5 рабочих дней) по последней детали например, может еще и не уложишься. Неделя работы инженера-конструктора-программиста ЧПУ  25тыс. руб.  Далее наладчик первую деталь налаживать будет не быстро, скорее всего за неделю 3-4 штуки сделает, набрать весь инструмент (а он тут не такой уж и простой), привязать, сделать первую деталь наверняка где нибудь провалит размер одним словом еще неделя + 25 тыс рублей. Есть начальник или еще кто то с кем надо поделиться +25 тыс рублей (Или просто компания должна заработать, а это уже не 25 а 50 т.р.).  Итого 75-100 тыс рублей грубыми прикидками за штуку при штучной партии. При следующих заказах уже -25 т.р. так как работа инженера уже выполнена.   
    • ДОБРЯК
      Хоть это поняли. Для какой матрицы делается численная факторизация для матрицы масс или матрицы жесткости? Забавно читать ваши сообщения. Чтобы найти первые собственные числа и вектора для матриц любой размерности не нужно решать СЛАУ.      
×
×
  • Создать...