Перейти к публикации
  • Привет. Кажется, ты используешь AdBlock. Наш форум развивается и существует за счет доходов от рекламы. Добавь нас в исключения =) КАК ДОБАВИТЬ?
PavelK

Aman - апгрейд для программного управления скоростью вращения шпинделя

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

Приветствую!

Есть у меня станочек Aman 3040, 800 Ватт шпиндель. Регулировка оборотов осуществляется ручкой на передней панели. Программно можно только запускать/останавливать вращение. Мне это, разумеется, сразу не понравилось, т.к. много материалов в обработке и для всех нужны свои скорости. 

ОбщийВид.jpg

Представляю относительно простую модификацию для возможности программной регулировки оборотов.

Откручиваем винты и снимаем крышку корпуса, видим инвертор. Его модель "Inverter_B_V05"

image.png

Нас интересует зелёная клеммная колодка слева:

image.png

Тут уже с переделанным подключением, забыл сфоткать как было до.

Переделка такая:

Между SGND и FWD  (пины 4 и 5) ставим обычный тумблер, что бы иметь возможность вручную отключать/включать вращение шпинделя, на всякий случай (для душевного спокойствия, ну и чтобы закрыть отверстие пустое вместо крутилки),  когда тумблер включён управление вращением (запуск/остановка/регулировка оборотов) будет программное.

На самой плате управления (называется MACH3 Interface Board V1.2) ищем колодку SPINDLE. Она слева на картинке.

image.png

Кстати, кому интересно - на выходе стоит оптопара PC817.

image.png

(первый пин там, где точка на микросхеме).

От неё идёт два провода, один белый, другой белый с синей прерывистой полосой (правый провод).
Если версия платы чуть другая, то ориентироваться лучше по оптопаре и даташиту. 

Так вот белый с прерывистой синей полосой  к "+5V" (2 пин, если считать сверху) инвертора, другой к "5V" (3 пин, если считать сверху, не путайте с питающим, это именно вход управления) - он как раз управляющий.

В итоге должно получиться так:

image.png

Чёрные провода от тумблера. Белые от интерфейсной платы.

Так то, скорее всего, непомешал бы подтягивающий резистор на 10КОм между 5V и SGND, но вроде в самом инверторе подтяжка есть и глюков не замечено.

ВАЖНО:

В сообщениях ниже написали о проблемах подключения, а именно невозможность управлять вращением.

Проблема в уровнях TTL некоторых LPT портов.
А именно при логическом 0 у них по факту больше 1 вольта, чего хватает, что бы оптопара осталась открыта.

Решение, это поставить парочку диодов, на которых упадёт лишнее напряжение, что бы при 0 был фактически 0.
Стягивающий резистор поставить не вариант.

Короче, ищем управляющую ногу оптопары, делаем на дорожке разрыв, впаиваем последовательно 2 диода.

IMG_20220126_150121.jpg

На белый провод не обращайте внимание, он для других модификаций.

Диоды подойдут практически любые, только не Шоттки (т.к. на них слишком малое падение напряжения)!
Например 1N4007. Купить можно в любом радиомагазине, либо выпаять из старого блока питания компа.

 

В управляющей программе ставим  "пин 1" - управление шпинделем и Active LOW в случае Mach3 или Inverted в случае LinuxCNC. 

Кстати, этот инвертор, судя по всему, вполне спокойно потянет 1000 Ваттный шпиндель. Больше, думаю, не стоит.

Вот, в общем то и всё =) Ничего сложного.

Поделиться сообщением


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

Добрый день!

Имею похожую электронику на ЧПУ. Подключил по описанной схеме, но програмное управление с Mach3 не появилось. Шпиндель только включается и выключается... При выключение сохраняется медленное неравномерное вращение.

Можете показать настройки Mach3?

Отличие в том, что стоит оптопара китайский ноунейм.

Поделиться сообщением


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

Здравствуйте.

У меня LinuxCNC, а не Mach3.  Но, может быть, что проблема не в настройках.

Мультиметр, а лучше осциллограф есть?  Нужно замерить напряжение на управляющем пине и землёй при изменении оборотов.

 

Поделиться сообщением


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

Да, без осциллографа не разберёшься... По мультиметру скачать показание меньше вольта, не зависимо от того меняешь обороты или нет.

Поделиться сообщением


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

Здравствуйте!

Хотел бы поделиться подключением вместо тумблера, кнопки с подсветкой spacer.png

Для этого с колодки на частотнике берем 5В и подключаем к "+" Кнопки (контакт светодиода подсветки). "-" Кнопки подключаем к разъему FWD на частотнике и к разъему C на кнопке. Осталось протянуть провод от NO на кнопке к SGND.

 

P.S Также есть схема подключения ESS Smooth Stepper и .3mf файл для печати креплений. 

IMG_9377.jpg

IMG_9378.jpg

IMG_9376.jpg

IMG_9375.jpg

Изменено пользователем MolybdenumX

Поделиться сообщением


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

23.02.2021 в 18:54, PavelK сказал:

Здравствуйте.

У меня LinuxCNC, а не Mach3.  Но, может быть, что проблема не в настройках.

Мультиметр, а лучше осциллограф есть?  Нужно замерить напряжение на управляющем пине и землёй при изменении оборотов.

 

Добрый день! Являюсь в общем то  новичком в области такого рода CNC.

У меня точно такой же станок как у автора топика AMAN 30x40 c шпинделем на 800W.

У меня вопрос к автору модернизации, может и ещё кто подскажет. 

Я сделал всё по вашей инструкции, в том числе подкинул провода от платы MACH3 к инвертору точно так же как у вас, однако так вообще не заработало - при включении тумблера шпиндель постоянно раскручивался   на 100% и не как не регулировался, даже не выключался. Думал проблема в настройках Mach, но я перешёл на LinuxCNC и там всё тоже  самое. Далее я поменял местами провода на входе в частотник и как бы что - то заработало, но не всё. Теперь шпиндель у меня включается и выключается програмно и также регулируются обороты НО НЕ ДОКОНЦА то есть по ощущениям максимум процентов на 50, уже перекрутил все настройки но ничего не помогает. 

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

IMG_20220124_224351.jpg

IMG_20220124_224356.jpg

IMG_20220124_224410.jpg

Поделиться сообщением


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

brain111  Здравствуйте. Нашёл в чём может быть проблема, дополнил решением в посте выше после "ВАЖНО".

Поделиться сообщением


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

26.01.2022 в 19:30, PavelK сказал:

brain111  Здравствуйте. Нашёл в чём может быть проблема, дополнил решением в посте выше после "ВАЖНО".

Да, Спасибо! Всё заработало!

Хотел спросить, вы устанавливали на этот станок концевые датчики?

Поделиться сообщением


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

10 часов назад, brain111 сказал:

Хотел спросить, вы устанавливали на этот станок концевые датчики?

Ага. 

 

Поделиться сообщением


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

привет, подниму тему, есть такой же инвертор, работаю из под ncstudio. на соеденительной плате есть выходы (Р5, Р12, Р13) для управления оборотами из программы, но на инверторе нет ни Х1 Х2 Х3 ни S1 S2 S3. Непонятно куда подключать. В сети на этот invertor_b_v05 ни чего нет, станок достался с третьих рук и ни марка ни производитель неизвестен.что за контакты BCD0 BCD1 BCD2? И еще есть сверзу есть разъем panel

26.01.2022 в 22:30, PavelK сказал:

brain111  Здравствуйте. Нашёл в чём может быть проблема, дополнил решением в посте выше после "ВАЖНО".

 

Поделиться сообщением


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

Здравствуйте.

Не использую ncstudio так что подсказать не могу.

Инрветор управляется по PWM, а не аналоговым - имейте ввиду.

7 часов назад, Svyat сказал:

BCD0 BCD1 BCD2

Я не выяснял.

7 часов назад, Svyat сказал:

сверзу есть разъем panel

Это вот для такой панельки:

image.png

Но не нашёл подходящей.

Поделиться сообщением


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

03.02.2023 в 15:02, Svyat сказал:

В сети на этот invertor_b_v05 ни чего нет,

Вы снимите и обсмотрите его. Должна быть наклеечка с моделью. Или фото дайте

 

Поделиться сообщением


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

Подскажите, имею такой станок. Вопрос как откалибровать по высоте, есть расхождение порядка 0.2мм. Или только жертвенный стол делать? 

Поделиться сообщением


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

28.02.2023 в 13:05, brain111 сказал:

Подскажите, имею такой станок. Вопрос как откалибровать по высоте, есть расхождение порядка 0.2мм. Или только жертвенный стол делать? 

 Жертвенник после установки калибруется самим станком. Ставите фрезу диаметром 20± и алга

 

Поделиться сообщением


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

Приветствую, имею аналогичный станок новой ревизии, хочу также как и вы сделать программное управление оборотами, но из за отличий коннектора и версии платы закрались сомнения, а не эбонëт ли? ( фото прикладываю зарание спасибо ща ответ) 

IMG20231007170347.jpg

IMG20231007170339.jpg

Поделиться сообщением


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

07.10.2023 в 13:06, [email protected] сказал:

но из за отличий коннектора и версии платы закрались сомнения, а не эбонëт ли? ( фото прикладываю зарание спасибо ща ответ) 

Здравствуйте. К сожалению, по фото немогу ничего гарантировать, т.к. нужно отследить по дорожкам от коннектора на плате куда идут они - если на оптопару, то  посмотреть на какие именно ноги. В посте про оптопару написано.

Поделиться сообщением


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

Если еще актуально, то с Вашей версией еще проще, видите два незадействованных пина на разъеме Spindle? вот их цепляете вместо красного и синего провода к частотнику (5V) если не заработает, поменяйте местами, не помню точно что куда. Крутилку отцепите

Поделиться сообщением


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

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

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

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

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

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

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

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

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


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

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

  • Похожие публикации

    • Автор: Vla
      понял, помучаю станок в RD и сравню.
      а будет заметна разница в замене двигателей и приводов с китайских на фирменные или это не существенно?
    • Автор: Alex_
      Здравствуйте, рассматриваю два фрезерных станка:
      AMAN 6090 4AXIS 2200W (LPT/USB) и ADVERCUT K6090T по описанию характеристики очень схожие, 
      отличия ADVERCUT: литая станина, DSP контроллер, рельсовые направляющие, повыше скорость и стоимость в 2 раза больше. Aman имеет 4-ю ось.
      Понятно, что дороже - лучше, но все же, что может ADVERCUT чего нельзя сделать на AMAN кроме скорости в 2 раза? 
      При наличии компьютера с LPT, так ли нужен DSP контроллер?
    • Автор: Letchik
      Всем  доброе время  суток .
      Возможна ли  работа связки "Частотник + трехфазный трансформатор (220=>380)+мотор"/Теория вроде  не  препятствует .
      Но  есть ли  практика использования и какие есть подводные камни ?
    • Автор: PavelK
      Приветствую.
      Для тех, кому лень, в самом конце картинка что куда тыкать.
      Задача: Есть плата M2 Nano, нужно подключить внешний драйвер шагового двигателя,
      т.к. как встроенные в неё драйвера тянут ну максимум 1 Ампер (без радиадота, с ним край 2) по току,
      так что более сильные двигатели не поставить.
      Увы, но на этой плате не предусмотрены выходы управляющих сигналов step и dir для шаговых драйверов, поэтому наша задача их найти. Сделать это достаточно просто.
      Кстати, сигнал PUL это то же самое, что и STEP, т.е. "ШАГ" двигателя. DIR - направление. Enable нам не нужен ("прекращает удержание двигателя в одном положении").
      Взглянем на плату M2 Nano:

       
      Легко можем найти две микросхемы встроенных драйверов с наименованием A4988 - она весьма говённая популярна и управляется как раз нужными нам сигналами step и dir, осталось только их найти.
      Для этого открываем даташит (распиновку какой контакт за что отвечает): A4988.pdf  и в районе 18 страницы видим назначение каждого контакта чипа:

      ВАЖНО:  пин с номером 1 находится физически на самом чипе там, где в углу есть выгравированный/нарисованный круг/скос.
      Если смотреть на нашу плату как на первой картинке, то получается чип располагается так:

      На нужно припаять проводки к 16 (STEP) и 19 (DIR) пину. Аккуратнее - расстояние между ножками чипа пол миллиметра. Напряжение там всего 5 Вольт, а ток совсем мизерный, поэтому подойдут тонкие провода.  Можно их выдрать из USB кабеля зарядки телефона, если нет под рукой ничего кроме.
      Теперь нам нужно выяснить общий провод управления (общий анод/общий катод), это может быть либо GND (ноль/минус питания) либо VCC (5 Вольт), лезем в даташит и выясняем, что это GND, то есть нам нужно припаяться ещё и к GND пину, т.е. управление у нас с общим катодом.

      Не обязательно к ножке микроконтроллера, так как это GND, т.е. общий ноль, то он присутствует много где на плате - можно отследить по дорожкам (обязательно замерьте сопротивление между пином у самого чипа и того места, куда планируете - должно быть 0 Ом).
      Теперь главное, что бы внешний драйвер так же поддерживал управление по общему катоду.
      Выяснить это просто - достаточно взглянуть на колодку подключения.

      Например на драйвере Leadshine DM442 (кстати, именно его я рекомендую. Ссылка на алишку: тынц. Не стоит брать дешманские драйверы - будет только разочарование в итоге)

      Как видим, есть сигналы PUL+, PUL- и DIR+,DIR-  это значит, что драйвер поддерживает управление как по общему аноду, так и по общему катоду.
      Поэтому  провод от STEP подключаем к PUL+, провод от DIR подключаем к DIR+, а провод от GND подключаем и к PUL- и к DIR- т.к. у нас управление по общему катоду.
      Примерно так:

      Ну и общая наглядная схема на примере замены для оси X (для Y аналогично):

      ПРЕДУПРЕЖДЕНИЕ: Так как я сталкивался уже как минимум с 3 различными вариациями (похоже подделка на подделку) этого недоконтроллера, то рекомендую не бессмысленно повторять, а убедиться в правильности распиновок, т.к. могут быть "повёрнуты" чипы штатных драйверов либо отличаться их модель, отчего распиновка может не соответствовать. Так же убедитесь, что не закоротили при пайке соседние пины на чипе, как минимум необходимо глянуть хотя бы залупой.
      ВАЖНО: 
      Так как M2 Nano нельзя настроить на произвольный размер шага, то на драйвере нужно правильно выставить дробление шага,
      иначе размер не будет соответствовать! Штатный драйвер настроен на дробление 8. Т.е. один шаг состоит из 8 микрошагов.
      Для правильной настройки нужно знать количество шагов на оборот Вашего шагового двигателя. У биполярных обычно это 200.
      Дальше по таблице на драйвере выставляете в соответствующее положение микропереключатели. 
      На примере по таблице драйвера выше это получается 1600 шагов на оборот.
      Либо методом подбора -  там всего 16 вариантов.

      Если меняете на внешние драйвера по обеим осям, то уже можете выставить наиболее приемлемое по качеству/скорости, главное что бы у обоих оно совпадало (и у движков кол-во шагов на оборот разумеется то же)!

      Если на одну из осей ставите так же редуктор, то нужно выставить ещё и в соответствии с коэффициентом редукции. Если на цело не поделится, тогда придётся либо подбирать редуктор с чётным коэффициентом, либо на вторую ось ставить аналогичный, либо страдать и растягивать/сжимать макет.
      Исправления/дополнения и т.д. приветствуются, т.к. мог недоглядеть чего.
    • Автор: PavelK
      Приветствую!
      Подготовка файлов к фрезеровке у меня идёт в программе PowerMill, а в ней есть замечательная возможность показать, как будет происходить обработка с учётом станка - то есть все перемещения шпинделя, проверка столкновений, выход за пределы рабочей плоскости и т.д. В моём случае было важно положение заготовки:
       
      Сейчас покажу как можно самостоятельно сделать модель станка.
      Разумеется, нужно сначала смоделировать сам станок в любой CAD программе (да хоть в Blender или 3DS Max) в упрощённой версии, но что бы все размеры и позиции максимально совпадали.
      Я это сделал в привычном FreeCad 0.19, на примере станка Aman 3040 800W:

      Исходник:  Machine-Aman3040.zip (FreeCad 0.19 и должен быть установлен верстак A2Plus).
      Он немного не совпадает с реальным станком, т.к. я вносил свои изменения в конструкцию.
      Вы можете самостоятельно переделать, если что-то будет сильно не совпадать или пишите - по возможности сделаю 1:1.
      Дальше необходимо разбить станок на составляющие части, а именно на неподвижные (станина), и подвижные (оси X, Y, Z).
      В PowerMill при создании станка есть два понятия: "head" (головка) и "table" (стол).
      Инструмент крепится к головке и перемещается вместе с ней (соответственно и перемещаются все оси). 
      Заготовка же располагается на столе и, грубо говоря, стол является системой координат.
      Нюанс в том, что стол то же может перемещаться - например, в случае наличия поворотного устройства (ось A), или же стол это ось Y,
      а следовательно будет перемещаться координатная система.
      В моём случае поворотного устройства нет и стол так же неподвижен.
      Теперь нужно сделать отдельные файлы для неподвижных и подвижных частей:  станина, ось Y, ось X, ось Z (вместе со шпинделем).
      Вот так выглядят по отдельности:
         
      То есть станина и каждая ось - весь набор составляющих.
      Важно: не перемещайте составляющие при сохранении - для них всех должна сохранятся единая система координат (точка отсчёта).
      Сохраняем каждый файл в формате *.STEP (в случае FreeCAD) или, к примеру, в SolidWorks  *.sldprt.
      Теперь нужно каждый файл сконвертировать в составляющую станка для PowerMill (файл в формате dmt).
      Запускаем PowerMill, в верхнем меню File -> Import model (можете в списке типов файлов посмотреть поддерживаемые для экспорта из вашей CAD) и ничего не меняя сразу делаем экспорт File -> Export Model,  в типе файла выбираем "Autodesk Manufacturin Triangles (*.dmt)", и выбираем какую-нить папку. Так проделываем со всеми файлами.
      У меня вот так:

      Все эти файлы я буду в дальнейшем называть "части станка".
      Теперь нам нужно описать для PowerMill где какие части станка и что они могут.
      Кстати, подробная документация (MTDUserManual) в конце поста.
      Сначала поясню, что нам нужно определиться с тем,  какие перемещения от каких зависят.
      В случае моего станка ось Z зависит от оси X, а она в свою очередь зависит от оси Y, а они зависят от положения head (головки)
      Зависимость выясняется просто - что вместе с чем "ездит" от того и зависит. То есть, к примеру, при перемещении оси Y на 100 миллиметров - вместе с ней поедет по Y и ось X, а вместе с ними поедет и ось Z (можно на реальном станке поперемещать, что бы понять, что имел ввиду перемещение оси Z  по оси X и Y).
      Если был бы 5и координатный станок, то было бы так же, но дополнительно ось U зависела бы от W, а они зависели бы от положения table (стола), так как заготовка крепится к нему.
      Ладно, по ходу может станет понятнее.
      Создаём в папке, в которую сохраняли файлы на предыдущем шаге,  пустой текстовый файл и сразу меняем у него расширение на "*.mtd" и открываем его на редактирование. Кстати, удобнее всего это делать в Notepad++.
      Файл пишется в формате xml. 

      Кто не вкурсе, то в кратце и упрощённо: всё состоит из "блоков".
      <name>  начинает блок name
         вложенные блоки
      </name> заканчивает блок name
      name - просто название блока. Каждый блок должен быть начат и закончен как на примере выше.
      В блок может быть вложен другой блок. Так же у блоков могут быть параметры: 
      <name  param="value">
         вложенные блоки
      </name>
      Где param - название параметра, а value - его значение. Параметры прописываются только в начале блока.
      Если в блоке нет содержимого, то можно воспользоваться "короткой записью":
      <name param="value" />   То есть начали блок, объявили параметр (не обязательно) и закончили блок.

      Блоки считываются и обрабатываются программой PowerMill и каждый блок (и параметр) имеет для неё значение.

      Мы так же можем указать комментарий - то, что будет проигнорировано программой:
      <!--  весь этот текст будет проигнорирован  -->
      Таким образов в файле я буду писать комментарии для вас.
      Так, пока что этих понятий должно хватить.
      Пишем:
      <?xml version="1.0" ?>      <!-- Даём понять, что документ в xml формате -->
      <machine xmlns="x-schema:PowermillMachineTool" POST="SimPost.">    <!-- Начинаем описание станка. Задаём постпроцессор симуляции. -->
         <machine_part>  <!-- неподвижные комоненты-->
            <model_list>
               <dmt_file>
                  <path FILE="Frame.dmt" />
                  <rgb R="100" G="100" B="200" />
               </dmt_file>
            </model_list>
         </machine_part>
      Блок machine_part описывает какую-либо часть станка. В нашем случае это станина целиком, т.к. она неподвижна.
      Вложенный блок dmt_file говорит, что мы сейчас укажем файл, откуда брать часть станка.
      Во вложенном блоке path  мы указываем путь до файла с этой частью и его название. Так как файл с описанием у нас лежит в той же папке, что и файлы частей станка, то путь указывать не нужно (путь относительный текущей папки, в которой наш файл с описанием станка).Во вложенном блоке rgb мы можем указать цвет детали в формате RGB (можно взять значения из палитры Фотошопа), в моём случае для станины указал сиреневый.
      Да, блоков dmt_file, то есть составляющих одной части, может быть несколько
      <dmt_file>
      .....
      <dmt_file>
      <dmt_file>
      .....
      <dmt_file>
      Это если вам нужно, к примеру, по разному раскрасить каждую составляющую станины. Мне же, пока что, ни к чему.
      Прописываем стол:
         <machine_part NAME="table" > <!-- Стол у нас не двигается. Если двигался бы, то делаете по аналогии с блоком head, он чуть ниже  -->
         </machine_part>
      Здесь мы указали часть, отвечающую за стол. Да, она пустая, так как стол у нас неподвижен.
      Чуть дальше мы укажем систему координат стола и её расположение.
      Теперь же прописываем оси:
          <!-- Описания осей -->  
          <machine_part>
              <axis>   <!-- указываем PowerMill, что эта часть станка является "осью" -->  
                  <control_info ADDRESS="Y" MIN="0" MAX="400" VALUE="260" />    <!-- указываем, какой именно, где она сейчас и ограничения перемещений -->
                  <simple_linear I="0" J="1" K="0" />   <!-- указываем тип перемещения а так же как она направлена в пространстве (как будет перемещаться) -->
              </axis>    
              <model_list>   <!-- Укажем, из каких файлов состоит эта часть станка -->
                  <dmt_file>
                      <path FILE="AxisY.dmt" />
                      <rgb R="200" G="200" B="200" />
                  </dmt_file>
              </model_list>
                      
              <machine_part>  <!-- Вложенный блок части станка, так как от оси Y зависит ось X -->
                  <axis>
                      <control_info ADDRESS="X" MIN="0" MAX="300" VALUE="170" />
                      <simple_linear I="1" J="0" K="0" />
                  </axis>    
                  <model_list>
                      <dmt_file>
                          <path FILE="AxisX.dmt" />
                          <rgb R="200" G="200" B="200" />
                      </dmt_file>
                  </model_list>            
                  <machine_part>  <!-- Вложенный блок части станка, так как от оси X зависит ось Z -->
                      <axis>
                          <control_info ADDRESS="Z" MIN="0" MAX="80" VALUE="20" />
                          <simple_linear I="0" J="0" K="-1" />
                      </axis>    
                      <model_list>
                          <dmt_file>
                              <path FILE="AxisZ.dmt" />
                              <rgb R="200" G="200" B="200" />
                          </dmt_file>
                      </model_list>
                  
                     <!-- Вложенный блок виртуальной части станка head. Тем самым мы указываем PowerMill где по зависимостям находится головка. И, к примеру, если нужно  будет головку переместить по Y на 100 мм, то так же по Y на 100 мм будут перемещены предыдущие machine_parts   -->
                      <machine_part NAME="head">
                      </machine_part>    
                      
                  </machine_part>
              </machine_part>    
          </machine_part>        
       
      Надеюсь, понятно про вложенность.
      Пояснение по поводу: <control_info ADDRESS="Z" MIN="0" MAX="80" VALUE="20" /> 
      В параметрах MIN и MAX мы указываем пределы перемещений для оси (в мм). 
      Параметр VALUE указывает где сейчас расположена часть станка в CAD редакторе относительно нуля по расстоянию (когда ось доехала до минимума). Поэтому проще всего перед экспортом переместить в соответствующее место и что бы положение части станка оказалось таким же, как и на реальном станке. За ноль я считаю положение при срабатывании концевого датчика.

      Кстати, можно так же указать параметр HOME и задать какое-либо значение - тогда, при нажатии кнопки Home в управлении станком PowerMill оси будут перемещены в это значение.
      Пояснение по поводу: <simple_linear I="0" J="0" K="-1" /> 
      Название блока говорит о том, что это просто линейное перемещение.
      В параметрах I, J, K мы задаём вектор направления, в котором будет перемещаться часть станка. В данном случае по Z будет сверху вниз отсчёт вестись. Да, возможно перемещение и под углом (установив, к примеру, 0.5 в K и J).
      Для поворотного нужно название simple_rotary (в параметрах нужно также будет указать координаты X Y Z - центр вращения).
       
      Указываем положение глобальной системы координат:
      <table_attach_point PART="table" X="-154" Y="7" Z="54.5"  I="0" J="0" K="1" />
      В этом блоке мы указываем, где для PowerMill будет начинаться глобальная система координат и как она будет ориентирована и к какой части станка привязана (что бы она перемещалась вместе с ней).
      Вот про что речь:

      Относительно глобальной системы координат располагается заготовка.
      Где она должна располагаться? Рекомендую в том месте, куда станок приходит в ноль (домашняя позиция) при поиске начал и откуда идёт увеличение координат по X и Y. 
      НО, учитывая, что на Aman 3040 нет концевых датчиков (которые всё же лучше поставить самостоятельно для удобства), то за 0 можно принять положение, когда каждая ось отогнана "до упора" (вручную на станке).
      Значения берёте из вашей CAD программы относительно всё той же системы координат, в которой сохраняли. Ориентацию так же нужно будет поставить, что бы направление системы координат PowerMill соответствовала то, что на станке (в управляющей станком программе).
      Скачав исходник моего станка можете глянуть координаты компонента HomePointer что бы более понятно стало. 
       
      Указываем точку привязки инструмента:
      <head_attach_point PART="head" X="19.5" Y="267.0" Z="141.5" I="0" J="0" K="1" />    
      Это координаты и ориентация, где будет инструмент (фреза) и куда направлена. В нашем случае логично, что на выходе из шпинделя сверху вниз. Соответственно из CAD, в которой делали станок, берём эти координаты, относительно глобальных.
      НО тут есть проблема с тем, что шпиндель с ручной сменой инструмента и положение цанги при закручивании может гулять туда-сюда (и сам вылет инструмента заодно). 
      ВАЖНО:
      Блоки table_attach_point  и head_attach_point  должны располагаться первыми внутри блока machine. В исходниках всё правильно. В посте указал в таком порядке для более лёгкого осмысления что за чем.
      Постпроцессор:
      Так же можно и нужно указать постпроцессор симуляции для этого станка в блоке machine:
      <machine  xmlns="x-schema:PowermillMachineTool"   POST="SimPost." >
      В данном случае это штатный PowerMill постпроцессор для симуляции. Есть ещё  "pmpMultiaxis.*", но про них крайне мало информации, так что если удастся разобраться подробнее, допишу этот параграф.
      Дополнительно:
      Можно указать ещё процесс смены инструмента.  Но т.к. он у всех разный описывать здесь не буду. В документации, есть что-то про это.
      Что бы была проверка на столкновения, то у блоков machine_part нужно указать параметр NAME со значением на ваше усмотрение.
       
      Ну и в общем то на этом всё.
      Теперь, как тестировать наш "станок":
      1. В PowerMill создаёте новый проект. 
      2. В левой панели Станки -> импорт станка:

      3. Выбираете наш файл Aman3040.mtd
      4. Будет ошибка "Постпроцессор установлен но не может быть сконфигурирован":

      Что бы её не было нужно указать постпроцессор, как именно написал выше в соответствующем параграфе.
      5.  Станок импортировался.
      6. Можем перемещать оси в ручном режим, для этого правой кнопкой на станке и в контекстной менюшке нажать "Положение":

      7. Дальше как обычно - импортируем какую-либо тестовую модель, создаём какую-либо обработку, выбираем инструмент и запускаем симуляцию траектории. Профиль патрона, пока что, можно не создавать. 
      8. Инструмент встанет куда нужно и сможем увидеть, правильно ли всё сделали.
      Примечания: PowerMill может проверять на столкновения, поэтому, чем больше будет составляющих и частей станка, тем более производительный компьютер нужен. Не увлекайтесь с точностью повторения станка - только самое главное, что может повлиять на работу или за что может задеть инструмент. Так же могут быть ложные срабатывания - тогда в CAD нужно будет подправить модель, к примеру, если сделали каретки подвижными на валах, то нужно увеличить диаметр отверстия в каретке (на пару соток достаточно обычно).
      Все исходники: Machine-Aman3040.zip
      Отдельно готовый станок для импорта:  
       

      Готовый станок с повороткой вдоль Y:  
       
      Постпроцессор для LinuxCNC:

      Документация по разработке: MTDUserGuide.pdf
      ВАЖНО:  После скачивания распаковать архив и импортировать станок как написано выше. Модель станка не точная копия Aman3040 и могут быть отличая в расположении/размерах, т.к. я вносил изменения в свой станок. Если что-то будет сильно отличаться - измерьте и напишите, внесу изменения. Либо можете всё сделать самостоятельно исходники все в архиве.
×
×
  • Создать...