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

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

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

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

      Представляю относительно простую модификацию для возможности программной регулировки оборотов.
      Откручиваем винты и снимаем крышку корпуса, видим инвертор. Его модель "Inverter_B_V05"

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

      Тут уже с переделанным подключением, забыл сфоткать как было до.
      Переделка такая:
      Между SGND и FWD  (пины 4 и 5) ставим обычный тумблер, что бы иметь возможность вручную отключать/включать вращение шпинделя, на всякий случай (для душевного спокойствия, ну и чтобы закрыть отверстие пустое вместо крутилки),  когда тумблер включён управление вращением (запуск/остановка/регулировка оборотов) будет программное.
      На самой плате управления (называется MACH3 Interface Board V1.2) ищем колодку SPINDLE. Она слева на картинке.

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

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

      Чёрные провода от тумблера. Белые от интерфейсной платы.
      Так то, скорее всего, непомешал бы подтягивающий резистор на 10КОм между 5V и SGND, но вроде в самом инверторе подтяжка есть и глюков не замечено.
      ВАЖНО:
      В сообщениях ниже написали о проблемах подключения, а именно невозможность управлять вращением.
      Проблема в уровнях TTL некоторых LPT портов.
      А именно при логическом 0 у них по факту больше 1 вольта, чего хватает, что бы оптопара осталась открыта.
      Решение, это поставить парочку диодов, на которых упадёт лишнее напряжение, что бы при 0 был фактически 0.
      Стягивающий резистор поставить не вариант.
      Короче, ищем управляющую ногу оптопары, делаем на дорожке разрыв, впаиваем последовательно 2 диода.

      На белый провод не обращайте внимание, он для других модификаций.
      Диоды подойдут практически любые, только не Шоттки (т.к. на них слишком малое падение напряжения)!
      Например 1N4007. Купить можно в любом радиомагазине, либо выпаять из старого блока питания компа.
       
      В управляющей программе ставим  "пин 1" - управление шпинделем и Active LOW в случае Mach3 или Inverted в случае LinuxCNC. 
      Кстати, этот инвертор, судя по всему, вполне спокойно потянет 1000 Ваттный шпиндель. Больше, думаю, не стоит.
      Вот, в общем то и всё =) Ничего сложного.
    • Автор: Alex_
      Здравствуйте, рассматриваю два фрезерных станка:
      AMAN 6090 4AXIS 2200W (LPT/USB) и ADVERCUT K6090T по описанию характеристики очень схожие, 
      отличия ADVERCUT: литая станина, DSP контроллер, рельсовые направляющие, повыше скорость и стоимость в 2 раза больше. Aman имеет 4-ю ось.
      Понятно, что дороже - лучше, но все же, что может ADVERCUT чего нельзя сделать на AMAN кроме скорости в 2 раза? 
      При наличии компьютера с LPT, так ли нужен DSP контроллер?
    • Автор: 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 и могут быть отличая в расположении/размерах, т.к. я вносил изменения в свой станок. Если что-то будет сильно отличаться - измерьте и напишите, внесу изменения. Либо можете всё сделать самостоятельно исходники все в архиве.
    • Автор: PavelK
      Модель станка c поворотной осью (вдоль Y) для симуляции работы в PowerMill 2018 и старше.
       
      Тема по созданию и модификации:
       
    • Автор: PavelK
      Модель станка для симуляции работы в PowerMill 2018 и старше.
      Тема по созданию и модификации:
       
       
       
×
×
  • Создать...