Страница 2 из 10

Раскладочный станок - установщик компонентов smd

Добавлено: 22 мар 2012, 08:36
2cme
Здравствуйте.
Раскладочный станок - установщик компонентов smd на основе LinuxCNC?
Софта вообще нигде не нашел. Атак хочется чтоб "мечта идиота" сбылась: зарядил магазины, нажал кнопку, и счастье "лентяя-автоматизатора-рационизатора" (;

_________________________________________________________________________

ТЗ
(для просмотра содержимого нажмите на ссылку)
...в процессе...

1. Формат файла с данными о расположении элементов на плате (1206, 0805)
pick_and_place_tab.csv
"tab" в качестве разделителя полей, результат экспорта из diptrace (исправил, были заполнены не все записи поля Value)
(1.15 КБ) 1634 скачивания
pick_and_place_s.csv
"|" в качестве разделителя полей, результат экспорта из diptrace (исправил, были заполнены не все записи поля Value)
(1.15 КБ) 1814 скачиваний

Код: Выделить всё

RefDes|Type       |X (mm)|Y (mm)|Side|Rotate|Value
C1    |CAP_0805   |25,95 |21,8  |Top |90    |10n
R1    |RES_1206   |4,95  |22    |Top |90    |1k

2. Архитектура Figaro-pcb-pick-and-place(сообщение #59)
3. Конструкция станка, подобное.
4. ИМХО: возможный вариант логики работы программы (образно; сообщение #91):
  • загружается файл PnP;
  • на основе данных из PnP формируется список фидеров с указанием параметров типоразмера и номинала для компонентов R, C, ...(из файла PnP подтягивается или оператор задает);
  • Компоненты "разбрасываются" по фидерам, из списка фидеров полученного на предыдущем шаге;
  • Уточняются типы фидеров для списка из предыдущего шага; уточняются доп. параметры фидера (расположение, ...);
  • Комплектуется станок фидерами, платой, захватом;
  • Генерится вспомогательный и основной g-code.
_________________________________________________________________________
(для просмотра содержимого нажмите на ссылку)
Ожидаемый результат: ПО для генерации g-code для подобной системы (Шаг A).
_________________________________________________________________________

Результат на данное время:
1) WhiteLinePNP by Bender (сообщение #19).

2)Рабочее название Figaro-pcb-pick-and-place (сообщения #49-56)
Nick: проект figaro на launchpad.net, теперь код хостится там(сообщение #83).

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 23 мар 2012, 13:55
wldev
Я незнаю что такое gerber файл. Сгенерируются пож. и выставите его сюда.

Я пока вижу так:
Есть глобальная система координат(СК).
На ней указывается СК платы, СК лент и координаты элементов и отверстий.
Далее составляется таблица.
например
элемент 1(из ленты №1) поставить на плату в точку 5,10.
элемент 1(из ленты №1) поставить на плату в точку 5,15.
элемент 2(из ленты №2) поставить на плату в точку 5,25. и повернуть на 90град.

Либо брать её из файла, просто надо посмотреть что там пишется...

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 23 мар 2012, 14:05
2cme
Вот информация о формате Gerber (RS-274X):
Gerber
Gerber Format

Мож за основу gerbv -> Исходники скачать

Подопытный файл который за основу можно взять выложу позже, уточнение для начала можно ограничится smd резисторами и кондерами типоразмера 1206 или 0805.

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 23 мар 2012, 14:23
wldev
Жду подопытный файл... И если можете напишите в нём свои комментарии после "//".

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 23 мар 2012, 15:00
2cme
Вот совершенно бесмысленная плата, с точки зрения функций.
На ней просто расположены smd R и C типоразмера 1206 и 0805.
Два вида файлов сгенерированы в diptrace и сгенерированы в gerbv.
Лучше за основу взять файлы сгенерированы в gerbv.
Или лучше взять файл реального девайса?
Про коментарии не понял, что именно нужно прокоментировать?
gerber.tar.gz
(17.36 КБ) 1148 скачиваний
открываются программой gerbv

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 23 мар 2012, 17:11
wldev
Если можно ещё фото или скриншот. Плат которые содержатся в архивах.

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 23 мар 2012, 17:17
2cme
Плата одна, там слои, каждый слой - файл.
А на каком языке пишите, вы так и не ответили?

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 23 мар 2012, 17:25
wldev
2cme писал(а):А на каком языке пишите, вы так и не ответили?
С++ Qt4.80

Вот описание gerber формата
http://www.pcb.spb.ru/gerber.html

А в вашей программе, в которой генерируются gerber. Как-то задается где у вас расположены кассеты с элементами?

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 23 мар 2012, 23:35
2cme
to Bender
Файл какого слоя решили взять для определения координат smd элемента?

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 24 мар 2012, 04:59
wldev
Пока разбираюсь...

А вообще раскладчики каким слоем пользуется?

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 24 мар 2012, 08:52
2cme
Немного протупил. :oops:
DipTrace умеет такой файлик формировать pick and place(причем при формировании можно выбрать поля, разделитель полей, координаты компонента "By Component Center"/"By Component Origin"), он то что нужно:

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 24 мар 2012, 09:35
wldev
О, то что надо!
А то я те файлы смотрел, и пришёл к выводу что там нужен ещё и анализатор слоя...

А так все вроде норм!

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 24 мар 2012, 09:43
2cme
Там еще надо быть внимательным, я при первом экспорте задал разделитель ","(не очень удобно т.к. применяется для разделения разрядов в числе) но можно задать любой симфол. Желательно предусмотреть в создаваемом ПО возможность определения символа разделителя полей, при импорте файл.
pick_and_place_s.csv
(1.06 КБ) 1074 скачивания
символ "|" в качестве разделителя полей.

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 24 мар 2012, 10:03
wldev
2cme писал(а):Для начала вид (тип) магазинов как на видео в #12 сообщении, ок?
Давайте так...

На видео:
1. он берёт элемент
2. ставит его
3. прижимает ленту к низу и двигает её?

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 24 мар 2012, 10:13
2cme
Может такой цикл:
1. С высоты безопастности двигается к магазину;
2. Предполагается что изначально в ленте первая ячейка пустая(примечание), поэтому, сдвигает ленту на один шаг (шаг размещения элеметов в ленте);
3. Захватывает элемент;
4. Выходит на высоту безопастности;
5. Двигается к месту установки;
6. Устанавливает элемент;
7. Выходит на высоту безопастности.

Примечание:
- первый элемент всетаки не пустой, но при этом программа это должна учитывать, при захвате первого элемента из магазина и не выполнять сдвиг ленты на шаг;
- при устировке магазинов, выполняется уточнение координат захвата, выполняется юстировка ленты в магазине. Причем наверное конструкционно надо предусмотреть чтобы лента в магазине фиксировалась дискретно (хотя может и лишнее), при сдвиге.
- сдвиг выполнять по тех отверстию, или отверстию от места смд (как на видео выше).

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 24 мар 2012, 10:45
wldev
Для начала инф. достаточно... что нибудь напишу покажу.

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 25 мар 2012, 08:58
2cme
Nick писал(а):Как я вижу общую схему программы:

Класс плата:
Функции
  • прочитать расположение компонентов
  • создать список компонентов
  • выполнить расстановку
Параметры
  • положение
  • слой?
Класс деталь:
Функиции:
  • Взять
  • Положить
  • Юстировать
  • Магазин
    Параметры
В каком виде в gbr хранится описание компонентов? Есть ли открытые библиотеки для чтения gbr?
Может так:
- Класс pnp (pic and place, то есть устройтсво захвата);
- Класс shop (магазин);
- Класс pcb (плата).

Класс pcb:
Параметры:
  • Координаты нуля платы;
  • Габариты платы;
  • Поворот платы;
  • Высота безопастности;
  • Информация о smd элементов (Кординаты, тип, поворот, и т.д.);
Класс shop (магазин):
Параметры:
  • Тип магазина;
  • Координаты для захвата элемента;
  • Параметры для получения следующего элемента;
  • Высота безопастности;
Функции (могут быть, а могут не быть, зависит от типа магазина):
  • Выполнить подачу элемета (то есть выполнить шаг);

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 25 мар 2012, 09:37
2cme
Класс pnp:
Параметры:
  • Тип захвата;
  • Скорость перемещения;
  • Скорость получения и установки зхватом элемента;
  • Высота безопастности;
  • Тип юстировки;
Функции (могут быть, а могут не быть, зависит от типа магазина):
  • Перемещине к магазину;
  • "Шагнуть" магазин;
  • Захват элемента из магазина;
  • Перемещине к месту установки;
  • Установка элемента;
  • Выйти на высоту безопастности;
  • Юстировать магазин/плату;

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 25 мар 2012, 09:39
2cme
И наверное должен быть класс который выполняет основную работу по согласовалию всех элементов и генерации g-code.

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 25 мар 2012, 12:20
2cme
Вот нашел http://code.google.com/p/openpnp/ только пока не получается запустить.

Re: Раскладочный станок - установщик компонентов smd

Добавлено: 25 мар 2012, 15:00
sandman
Привет, прочитал и улыбнулся... :D
Сам работаю на таких машинах... Смысл есть собрать такой автомат, если есть капитал на железо и вероятность зарабатывать этим деньги, а так проще и быстрее в ручную детальки пинцетиком на пасту побросать и в духовку... (12 лет опыта в этой сфере)
Велосипед изобретать не нужно.
Что имеется?
Каждая CAD программа выдаёт файл координат smd деталей, например Eagle имеет такое mountsmd.ulp, которое выдаёт файлы xx.mnt и xx.mnb- одно для топ, другое для боттом стороны в формате "деталь- координата x- координата y- угол поворота °- тип корпуса"
Каждый автомат имеет свой конвертер, который проверяет каждую строчку исходного файла и в итоге выдаёт конечный файл платы с координатами деталей, корректирующими марками и т.д
потом уже у каждого производителя своё, но в принципе похоже. Фидера (магазины) делятся на ленточные, трубчатые и кассетные.
Создаётся библиотека корпусов, к которым дефинируют фидера, и тогда проще создавать новые библиотеки деталей.
Потом происходит следующее: Создаётся задание, где берётся уже готовый файл платы с координатами, к нему "подключается" файл фидеров для этой платы, он тоже создаётся заранее, и можно начинать работать...
Если кому интересно, могу по подробнее... И без контроля поворота пипетки-детали будет тошно потом, при проверке и корректировке готовой платы...