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

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


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

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

Станок - фрезерно-расточной ИР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 пользователей

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




  • Сообщения

    • alek77
      Да, спасибо, я уже из интереса ее нашел. Еще раз повторю, чтобы не выхватить, сам я такими методами указния размеров не пользуюсь, это самая вредная практика из всех, что встречал. В свое время имел много проблем в автокаде, корректируя чужие чертежи. Но там и отртогональные линии под углом в 0,001 градуса были в норме, и миллион линий одна поверх другой, и незамкнутые отрезки и много всего, от чего волосы дыбом. В солиде, думал, не столкнусь с таким, наивный. Поэтому искал и нашел макрос который косяки размеров подсвечивает. Он вполне рабочий, но не стабильный. В чем причина не разбирался, так как со своей задачей он справляется. Причем отрабатывает и галочки, и замену текста в размере. Хорошо, что @malvi.dp нашел время и что-то корректирует, спасибо отдельное ему за это. Макрос достаточно полезный при работе с чужими документами. И если удастся сохранить все начальные функции этого макроса против изощренных методов вредительства - будет офигенно.
    • Kelny
      Если этой ссылки достаточно для отображения материала и материал уже есть в обозначенной модели, то возможно подойдёт TabBuilder: https://help.solidworks.com/2023/russian/SolidWorks/SWHelp_List.html?id=e68c1877b4fa431483f8c751bd9fcc78&_gl=1*lby1j3*_up*MQ..*_ga*NTEyNjA5NDQ3LjE3MTQxMTU3MzA.*_ga_XQJPQWHZHH*MTcxNDExNTcyOS4xLjEuMTcxNDExNTczNy4wLjAuMA..#Pg0   В старых версиях при написанни ссылок такого радо в некоторых случаях можно было не писать имя файла, а достаточно было вместо имени файла модели оставить ПРОБЕЛ.SLDPRT и имя после этого подставлялось само. Пробовать надо.   Так же можете глянуть макрос по изменению свойств файла (методы и функции там устаревшие, но возможно даже будет работать и можно поковыряться в коде): https://kelnyproject.ucoz.ru/load/6-1-0-8 по програмированию так же есть справка (версию в ссылке поменяйте на свою, что бы справка была актуальна для вашей версии): https://help.solidworks.com/SearchEx.aspx?query=get custom property&version=2010&lang=english,enu&prod=api
    • gudstartup
      только перед обновлением обязательно выполните  все что написано в руководстве и касается сохранения состояния станка и чпу. и обязательно сделайте образ диска и помните что слишком новые версии могут не заработать на вашем чпу относительно безопасно ставить только сервиспаки
    • NordCom
      Большое спасибо! Через это меню удалось зайти в меню. 95148->MOD
    • Danil89nur
      Доброе время суток. Столкнулся с проблемой на новой работе. Много деталей у который в свойствах отсутствует раздел "Материал" и приходится каждый раз вручную заходить туда, создавать раздел и выбирать там ""SW-Material@Name.SLDPRT". Возможно кто-то знает, либо сможет помочь с написанием простенького макроса, при нажатии на который в свойствах детали будет создаваться необходимый раздел и в нем сразу написан выбранный материал (желательно, чтоб там было указано сразу наименование материала, а не формула для его получения ""SW-Material@Name.SLDPRT"). Пытался самостоятельно через ChatGPT, но так как в програмировании я 0, то ничего не получилось)
    • Bot
      Коллеги, Благодарю вас за интерес к проекту электронной энциклопедии в области инженерного программного обеспечения PLMpedia, который более 15 лет развивался группой компаний ЛЕДАС. Представленный ниже скриншот передаёт содержание и структуру базы данных энциклопедии, накопленной за эти годы: именно такую начальную страницу, можно было до сегодняшнего дня увидеть, придя по адресу https://plmpedia.ru/ В последние несколько лет ЛЕДАС особенно интенсивно и результативно вкладывает все ресурсы в развитие своего основного бизнеса: см. ниже «О компании ЛЕДАС». Сегодня я с некоторым сожалением констатирую, что у компании ЛЕДАС более нет возможности отвлекать ресурсы своих сотрудников на некоммерческий (фактически волонтерский) проект PLMpedia. Вся база данных ресурса может быть безвозмездно передана любому юридическому или физическому лицу с единственным условием: наш преемник должен будет публично объявить о состоявшейся передаче и взятии на себя [...] View the full article
    • gudstartup
      @NordCom  у вас наверное это так происходит читайте этот раздел itnc_530.pdf
    • fenics555
      интересный индус. А нового то чего?
    • gudstartup
      откудова качаете мне интересно?
    • ДОБРЯК
      Совсем забыл про собственные вектора       собственный тон частота           0.013                        1   Расчет собственных форм и частот   1         1   7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   1         2   7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00       собственный тон частота       15910.75                         2   Расчет собственных форм и частот   1         1   7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   1         2  -7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00        
×
×
  • Создать...