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

Макропрограмма на лазер Mazak


Айк777

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

Здравствуйте уважаемые коллеги! Имеется станок лазерной резки, часто требуется вырезать простые габариты прямоугольной формы, появилась идея замутить универсальную программу с параметрическими функциями изменяя которые можно прямо на стойке задать размер габарита, кол-во на листе по X и по Y с постоянным расстоянием между деталями. Подскажите пожалуйста, как написать прогу с повтором цикла раскроя прямоугольника ? 

 

Fanuc Series 160i-L

 

 

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


Если вы ранее не использовали макропрограммирование это будет нелегко.

Для начала необходимо ознакомится с макрокомандами в руководстве и посмотреть примеры макропрограммирования.

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

Если вы обрабатываете прямоугольник 30*50 обычная программа будет иметь вид:

G0 X0 Y0

G91

G1Y30

G1 X50

G1 Y-30

G1 X-50

G90

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

#101=30 (размер по Y)

#102=50 (размер по X)

G0 X0 Y0

G91

G1Y#101

G1 X#102

G1 Y-#101

G1 X-#102

 

Затем необходимо организовать переход от одного прямоугольника к другому, если расстояние по X между прямоугольниками составляет 5 мм то с учетом предыдущего фрагмента  это будет примерно так:

G91 X[#102+5], или задействовать для расстояния между прямоугольниками переменную, допустим №104 тогда так,

#104=5

G91 X[#102+#104]

 

или за счет команды G52

#103=#103+[#102+5]

G52 X#103                           В этом случае вы сможете использовать кадр G0 X0 Y0 для перемещения в начальную точку обработки любой детали лежащей на горизонтальной линии.

 

Затем необходимо организовать количество повторов фрагмента, либо за счет подпрограммы, либо за счет цикла или команды "если". Но предварительно необходимо рассчитать, сколько заготовок укладывается на лист в продольном направлении.

После того как справитесь с продольной укладкой переходите к поперечной.

После составления программы все необходимо проверить.

Отнеситесь к тому, что я написал, именно как к примеру, я редко использую макрокоманды, да и работаю со станками HAAS (хотя G коды у них как у фанука, но отличия есть).

В прочем в моей практике был случай, когда с помощью макропрограммы можно было обработать 12 подобных друг другу деталей отличающихся только общей  длинной. Изменение одной переменной давало возможность обработать любую из этих деталей,  в обработке одной детали  участвовало три инструмента. Этот случай в чем то, похож на ваш, на там не было необходимости в смещениях и повторах.

На форуме видел очень интересные примеры макропрограмм, посмотрите будет полезно.

Удачи.

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

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

N1G52X25.Y100.

M98P0100
M98P9900
G52X0.Y0.
N2G52X25.Y200.
M98P0100
M98P9900
G52X0.Y0.
N3......

 

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

Давайте попробуем, что-нибудь придумать.

Для начала нам понадобятся несколько переменных

#101=25 (X начальный для G52)

#102= 100 (Y начальный для G52)

#103= 100 (X приращение для G52)

#104=100 (Y приращение для G52)

#105=0 (счетчик изготовленных деталей по X)

#106=5 (количество деталей которое необходимо изготовить по X )

#107=0 (X расчетный для G52)

#108=0 (Y расчетный для G52)

#109=0 (счетчик деталей для Y)

#110=5 (количество деталей, которое необходимо изготовить по Y)

 

#107=#101

#108=#102

 

N10

G52 X#107 Y#108

G0 X0 Y0

M98P0100

M98P9900

 

#107=#107+#103

#105=#105+1

IF[#105 LT #106] GOTO10 

(повторяем фрагмент программы между №10 и IF пока количество  изготовленных деталей вдоль оси X меньше значения, заданного в переменной  #106)

 

#105=0

#107=#101

 

Для начала как-то так. Далее необходимо организовать расчет для изготовления деталей со смещением по оси Y.

Затем можно добавить расчет количество деталей, исходя из их размеров и размеров листа.

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

Спасибо огромное! Кажется это то что нужно, после праздников доберусь до стойки и протестирую.

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

Пожалуйста, удачи.

Не забудьте всё тщательно проверить.

 

От этих пчел, можно ожидать чего угодно. :smile:

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • jtok
      Он сильно зависит от марки PP, от расчетной температуры и от расчетного срока службы (количества циклов нагружения). Поищите стандарт DVS 2205, части 1 и 2. В нем есть номограммы долговременной прочности. Он на немецком, но ничего лучше нет. Номограммы эти приведены по ссылке, внизу страницы, раздел "Список приложений".  Например, диаграмма для PP type 1 по ссылке: В оригинале же выглядят они вот так (для PP type 1): Также был древний документ на русском по этой теме, прицеплен к сообщению. _raschet_emkosti DVS 2205-2.pdf
    • Andrey_kzn
      - тут возможно смысл сообщения в том, что оси не синхронизированы, только вот зачем синхронизировать  оси X и Y не понятно. В случае двух шпинделей например,  coupled будет означать синхронизацию.
    • niagara39
      Правильно ХУ на этом станке не перпендекулярны. Тормоз оси У включен постоянно, отключается только при перемещении самой оси У. Координаты не  меняются... Знать бы что за параметры, пока ничего подобного не нашли
    • nicomed
      Поднял старые записи. Из того что было максимально похоже на то, что можно было назвать "получалось" :   Самому не совсем понятно поведение СкетчМенеджера при отрисовке линии от координат 0,0,0 - частенько слетает в произвольное место на виде. 
    • maxx2000
      на втором  скрине PLC сообщает что-то типа "старт программы запрещён потому что оси ХУ не связаны". Возможно станок в режиме точения должен заблокировать перемещение У, включить тормоз или что-то ещё для произвольного смещения под нагрузкой. Возможно косяк в тексте программы.
    • maxx2000
      @sneg0vik как это? Если ХУ не перпендикулярны то это уже не У, а скажем ось В. Нет, конечно в теории можно построить станок с неперпендикулярными ХУ. Вопрос зачем? Gildemeister CTX 420 это же токарно-фрезерный с осью У
    • sneg0vik
      На станке ось "X" является наклонной по отношению к оси "Y" (т. е. они не перпендикулярны). Поэтому надо полагать (учитывая текст ошибки) у вас отключена связь оси "Y" с осью "X".   Проверьте меняются ли координаты оси "X", когда вы двигаете ось "Y". И наоборот. Если - нет, то ищите как включить (наверное через параметры) взаимосвязь оси "Y" с осью "X".
    • ДОБРЯК
      Если ваш Заказчик и такую работу примет, то необходимо в шпоночное отверстие добавить и массу воды. Примерно 1/4 от той массы которую вы будете добавлять.  Да и еще и не забыть добавить момент инерции от воды.
    • Soprin
      В функции MOVE по F7.3 должно же из R270 переносить в R278?
    • niagara39
      Причина все еще не найдена... Но заметил, что сразу после включения в меню диагностики появляется следующее предупреждающее сообщение: 10155 M: Y-axis: Y-axis and X-axis not coupled , но причина его появления и его смысл неизвестны
×
×
  • Создать...