Экспорт файла установки из EDA — также называемого CPL (Component Placement List), файлом centroid или XYR / .pos — и отправка его без сверки с текущей BOM и монтажным чертежом — одна из первых причин остановки NPI и полярных компонентов, установленных вверх ногами. CSV, идеально импортируемый программным обеспечением программирования SMT, может всё же сместить весь разъём (начало библиотеки на Pin 1 вместо центра корпуса), повернуть диоды и ИС на 180° или установить компонент, помеченный DNP (do not populate).
Закупка и замены относятся к ведомости материалов (BOM) PCBA, а CPL управляет физическими координатами, принадлежностью top/bottom и углом поворота насадки. Сверка CPL перед отправкой требует семиэлементного контракта координат плюс множественной сверки с BOM и визуальной проверки наложением.
1. Семиэлементный контракт координат и ориентации
Машина SMT не читает символы схемы — она ведёт вакуумную насадку к числовым смещениям (X, Y) относительно фидуциалов платы, затем поворачивает патрон на θ градусов от ориентации компонента в кармане ленты. Перед экспортом (например, KiCad 9.0 File → Fabrication Outputs → Component Placement, или Generates Pick and Place Files в Altium) проверьте эти семь пунктов:
| Параметр CPL | Конвенция, явная при экспорте | Частая ошибка | Проверка перед отправкой |
|---|---|---|---|
| 1. Начало отсчёта (0,0) | Единая точка (обычно левый нижний угол контура или выделенный Drill/Place File Origin), идентичная файлам Gerber/сверления |
CPL экспортирована с абсолютного начала листа, а Gerber использует вспомогательное сверлильное начало — глобальное смещение всех компонентов | Наложить центроиды CPL на слои пасты Gerber top/bottom и сверить фидуциалы (FID1–FID3) |
| 2. Единицы и точность | mm явно (рекомендуется, 3–4 десятичных знака) или mil/inch в заголовке |
Единица не указана или округление децентрирует BGA 0,35--0,40 mm и 0201 | Сверить максимальные значения (X, Y) с реальными размерами контура |
| 3. Точка отсчёта центроида | Геометрический центр корпуса (точка захвата насадкой), не Pin 1 | Разъёмы, экраны, DPAK/SOT с началом библиотеки, оставшимся на Pin 1 — срыв захвата или децентрированная постановка | По одному проверить в оверлее слоя пасты несимметричные разъёмы, дроссели и планки |
4. Сторона (Top/Bottom) |
Явный признак стороны (Top/Bottom или T/B) либо раздельные файлы |
Нижние развязочные конденсаторы или навесные элементы ошибочно помечены Top |
Сверить количество top/bottom с апертурами пасты каждой стороны |
| 5. Конвенция X для bottom | Уточнить, дано ли X нижней стороны видом сквозь плату сверху или зеркально по горизонтали (Negate bottom X) |
CAD уже зеркалировал, а инженер инвертирует второй раз в Excel — вся сторона bottom перевёрнута | Проверить несимметричным компонентом bottom против вида пасты Gerber bottom |
| 6. Поворот (θ) | Тригонометрический угол от нулевой ориентации библиотеки до поставленной (0°--360°) | Посадочные места нарисованы на 90° или 180° от стандарта ленты IPC-7351 / EIA-481 — полярные ставятся наоборот | Перекрестить метки Pin 1 / катода монтажного чертежа с реальными корпусами |
7. Периметр установки и DNP |
Явно указать, исключены ли из CPL посадочные места DNP/DNI, фидуциалы и тестовые точки — или они помечены в колонке статуса |
CAD экспортирует также неустанавливаемые места — не включён Exclude from position files или фильтр DNP |
Сверить множество обозначений Fit развёрнутой BOM с множеством CPL |
2. Сверка на практике: три классические ошибки CPL сразу
Скачайте наш автономный учебный пакет, чтобы увидеть, как множественная сверка дополняет визуальную проверку полярности. Пример платы TRAIN-C / Вариант A (30,0 × 13,0 mm, только SMT top, начало слева внизу, DNP исключён из CPL, конвенция диода D1: 0° = метка катода влево):
- Учебные файлы: bom.csv, cpl-bad.csv, cpl-good.csv, assembly-drawing.svg, verify.py и инструкция.
Шаг 1: сверка входящей CPL с BOM (cpl-bad.csv)
bom.csv содержит три SMT-компонента Fit (R1, R2, D1) и один конденсатор DNP (C3). На фоне assembly-drawing.svg в cpl-bad.csv обнаруживаются три ошибки, которые без исправления гарантированно дают отказ сборки:
Находка в cpl-bad.csv |
Тип ошибки | Источник в потоке CAD | Исправление в cpl-good.csv |
|---|---|---|---|
R2 полностью отсутствует (присутствуют только R1, D1, C3) |
Отсутствует требуемый компонент (missing:R2) |
Посадочное место случайно отмечено "Exclude from position files" или помечено "Virtual/Mechanical" | Снять исключение и вернуть R2 на (14, 8), Top, 0° |
C3 присутствует на (22, 8), Top, 0° |
DNP ошибочно включён (unexpected:C3) |
DNP введён в свободное текстовое поле вместо нативного свойства DNP CAD; или экспорт без включения "Exclude DNP footprints" |
Включить нативное исключение DNP и убрать C3 из устанавливаемого множества |
D1 с Rotation_deg = 180 (на (18, 8)) |
Перевёрнутая полярность (orientation:D1) |
Библиотечное посадочное место рисует катод вправо при 0°, против контракта чертежа «0° = катод влево» | Поворот возвращён к 0° (cpl-good.csv), и физический катод перепроверен против шелкографии/чертежа |
Шаг 2: запуск проверочного скрипта и понимание его границ
В папке assets python verify.py сравнивает обе CPL с ожидаемым множеством ({R1, R2, D1}), ловит дублирующие обозначения и проверяет контракт ориентации D1:
{"file": "cpl-bad.csv", "errors": ["missing:R2", "unexpected:C3", "orientation:D1"], "count": 3}
{"file": "cpl-good.csv", "errors": [], "count": 0}
Отметьте границу между множественной сверкой и геометрической проверкой:
- Скрипт сравнивает две таблицы и немедленно ловит пропавшие обозначения (
R2), лишние DNP (C3) и дублирующие строки (сначала разверните сгруппированные строки BOM вродеR1, R2, R5в отдельные обозначения до подсчёта). - Но никакой табличный скрипт не может знать, что
180°ошибочно дляD1— правило физической ориентации должно быть сначала установлено из монтажного чертежа, слоёв меди/пасты Gerber и даташита компонента, человеком или оптической системой CAM.
3. Почему одних координат (X, Y) недостаточно для ориентации
Даже при идеально центрированном центроиде (X, Y) между двумя падами поворот на 90° или 180° остаётся невидимым, пока не согласованы три независимых маркера:
- Даташит компонента и стандарт ленты EIA-481: определяет ориентацию физического компонента в кармане ленты относительно транспортных отверстий (угол захвата 0°).
- Нулевая ориентация библиотеки CAD (0°): по IPC-7351 ноль может быть Level A (Pin 1 слева вверху для ИС, катод диода влево) или Level B (Pin 1 слева внизу); сторонние библиотеки (SnapEDA, Ultra Librarian, SamacSys или исторические собственные) часто смешивают обе на одной плате.
- Метки полярности монтажного чертежа: чёткие маркеры на контуре компонента — точка Pin 1, полоса катода (
|◀),+полярных конденсаторов, ключа разъёма — размещённые там, где AOI может их прочитать после постановки.
Правило для правок таблиц: не добавляйте равномерно +90° или +180° к колонке поворота в Excel — кроме случая, когда точно известно, как ПО программирования SMT сборщика (Valor, Unicam, Fuji Flexa, Yamaha YSUP…) отображает 0° CAD на ориентацию ленты в фидере. Лучше: отметьте на монтажном чертеже полярные и несимметричные семейства — диоды, LED, танталовые/электролитические, BGA/QFN/QFP, SOT-23/SOT-89, направленные датчики/микрофоны — и требуйте контроль первого изделия (FAI) с подписанным наложением.
4. Диагностика систематических аномалий при импорте CPL
Когда сборщик накладывает вашу CPL на слои пасты Gerber в CAM, форма аномалии напрямую указывает причину:
| Визуальная аномалия в CAM-оверлее | Причина на стороне экспорта/импорта | Правильное исправление |
|---|---|---|
| Все компоненты сдвинуты на один вектор (Δ X, Δ Y) | Начало CPL ≠ начало Gerber/сверления | Реэкспортировать CPL и Gerber с одного Drill/Place File Origin (или выровнять оба по левому нижнему углу + FID1) |
| Позиции растянуты в 25,4× или 0,03937× | Конфликт единиц (mil vs mm) или масштабный коэффициент при импорте |
Объявить единицу в заголовке (mm) и реимпортировать 1:1 |
| Top верен, bottom перевёрнут зеркально | Negate bottom X CAD в сочетании со вторым зеркальным преобразованием на стороне CAM |
Договориться с CAM, ожидается ли bottom «вид сквозь плату» или «зеркало по X»; переключать только с одной стороны (CAD или CAM) |
| Чипы центрированы, но разъёмы/дроссели смещены на Pin 1 | Начало посадочного места на Pin 1 вместо центра корпуса | Переместить точку захвата посадочного места в геометрический центр (или позволить CAM привязать центроид к центру рамки группы падов) |
| Вся семья ИС повёрнута на 90° (например, все SOIC-8) | Библиотека нарисована вертикально при 0°, а библиотека фидера ожидает 0° горизонтально | Исправить смещение поворота корпуса в библиотеке машины по точке Pin 1 монтажного чертежа |
5. Подача синхронизированного пакета PCBA
Для избежания EQ NPI, ошибок полярности и дрейфа ревизий пакет монтажа PCB или ключевой сборки PCBA должен содержать следующие синхронизированные файлы (закупочные аспекты в руководстве по контролю ошибок BOM):
- Файл центроидов/установки (
.csvили.pos) или интеллектуальный пакетODB++/IPC-2581: содержащийDesignator,Mid X (mm),Mid Y (mm),Layer/Side (Top/Bottom),Rotation (deg),Package/Footprint,Comment/Value. - BOM ревизии с колонкой
DNP: каждыйFitSMT из BOM появляется в CPL ровно один раз; каждыйDNPясно помечен. - Цветной монтажный чертёж PDF (виды top/bottom): обозначения, контуры, точки Pin 1, полосы катодов и начало (0,0) видимы.
- Слои пасты и меди Gerber (
GTP/GBP,GTL/GBL): позволяющие автоматическое наложение центроид-пад в CAM до резки трафарета и программирования SMT.
Команды SMT-монтажа и монтажа PCB HILPCB выполняют на каждом входящем пакете автоматическую проверку наложения BOM-CPL-Gerber по центроидам — центры корпусов, полярность Pin 1/катода против даташита и исключения DNP проверяются до первой постановки, затем замыкаются 3D AOI и контролем первого изделия (FAI). Запросите расчёт с Gerber, BOM и CPL — полный пакет обычно получает DFM/DFA-ревизию в течение 2 часов.
Частые вопросы
Почему в моей CPL меньше строк, чем в BOM?
Сначала проверьте, не группирует ли BOM несколько обозначений в строку (Qty 4: C1, C2, C3, C4 = 1 строка BOM, но 4 строки CPL). Затем разверните BOM в отдельные обозначения и вычтите исключаемые позиции: DNP, механику (винты, стойки, радиаторы), элементы голой платы (фидуциалы, тестовые точки, монтажные отверстия) и ручную проводку — ничто из этого не проходит через машины.
Нужно ли включать компоненты DNP в файл установки?
Обе конвенции работают при последовательности и документировании — но безопаснее исключать DNP из машинного файла (или экспортировать колонку статуса Fitted/DNP, строго идентичную BOM). Самая опасная ошибка — DNP, замеченный мимоходом в примечании BOM, тогда как то же обозначение остаётся нормальной строкой постановки в CPL.
В чём разница между началом Pin 1 и центроидом установки?
При создании посадочного места начало (0,0) часто ставят на Pin 1 для удобства расчёта падов. Но насадка SMT должна захватывать компонент за геометрический центр корпуса (центр масс), иначе он опрокидывается на высокой скорости. Современные EDA (KiCad, Altium) вычисляют центр по рамке пады/шелкография или используют атрибут Component Center — вручную проверяйте несимметричные разъёмы и дроссели.
Нужен ли файл CPL при Gerber X3 или ODB++?
ODB++, IPC-2581 и Gerber X3 встраивают центроиды, контуры, Pin 1 и атрибуты BOM прямо в набор данных изготовления/монтажа, устраняя большинство ошибок начала и зеркала. Однако даже при ODB++/IPC-2581 всё равно нужно предоставить контролируемую BOM (с утверждёнными MPN и ревизированным DNP) и монтажный чертёж PDF — для проверки полярности при контроле первого изделия.
