PCBمونتاژ SMTpick and place

فایل Pick and Place (Centroid) چیست؟ ستون‌ها، خروجی از CAD و اشتباه‌های رایج مونتاژ SMT

فایل pick and place یا Centroid فهرستی CSV از همه قطعات SMD برد است که به ماشین مونتاژ می‌گوید هر قطعه را دقیقاً کجا، با چه چرخشی و روی کدام سمت برد قرار دهد. ستون‌های اصلی آن RefDes، مرکز X/Y، Rotation و Layer است. در این راهنما ساختار فایل، روش خروجی گرفتن از KiCad، Altium و Eagle و اشتباه‌های رایجی که باعث جابه‌جایی یا چرخش غلط قطعه می‌شود را بررسی می‌کنیم.

فایل Pick and Place (Centroid) چیست؟

فایل pick and place که با نام‌های Centroid، CPL یا فایل موقعیت قطعه (.pos) هم شناخته می‌شود، یک فایل متنی — معمولاً CSV — است که برای هر قطعه نصب‌سطحی (SMD) روی برد، چهار اطلاعات می‌دهد: شناسه قطعه (RefDes)، مختصات مرکز آن (X و Y)، زاویه چرخش (Rotation) و سمت برد (Layer). ماشین Pick and Place در خط مونتاژ SMT دقیقاً با همین فایل برنامه‌ریزی می‌شود تا بداند هر قطعه را از کدام نوار یا tray بردارد و کجا، با چه زاویه‌ای روی پد لحیم قرار دهد.

این فایل همراه با BOM (فهرست قطعات)، فایل Gerber و فایل استنسیل، مجموعه فایل‌های مونتاژ SMT را تشکیل می‌دهد. Gerber برای ساخت برد لخت است و Centroid برای مونتاژ قطعات روی آن؛ اگر سرویس ساخت شما فقط برد لخت تحویل می‌دهد، به فایل pick and place نیازی ندارید، ولی برای سفارش مونتاژ (PCBA) بدون آن عملاً امکان برنامه‌ریزی ماشین وجود ندارد.

فایل pick and place چه ستون‌هایی دارد؟

فرمت واحد و استانداردی برای این فایل وجود ندارد؛ هر کارخانه مونتاژ انتظار خودش را دارد. با این حال هسته مشترک همه فرمت‌ها پنج ستون زیر است:

ستوننام‌های رایجمحتوا
شناسه قطعهRefDes، Designator، Commentمرجع قطعه در شماتیک، مثل R1، C12، U3
مختصات XMid X، Center X، Pos Xفاصله مرکز قطعه تا مبدأ برد، معمولاً میلی‌متر
مختصات YMid Y، Center Y، Pos Yفاصله مرکز قطعه تا مبدأ برد در محور عمودی
چرخشRotation، Rotزاویه قطعه نسبت به حالت پایه، درجه؛ مثبت معمولاً پادساعتگرد (CCW)
سمت بردLayer، SideTop یا Bottom — روی کدام سمت برد مونتاژ می‌شود

چند ستون کمکی هم در بسیاری از خروجی‌ها دیده می‌شود و برای بررسی دستی فایل مفید است:

  • Footprint / Package: نام کتابخانه‌ای پایه قطعه، مثل 0402، SOIC-8 یا QFN-24. ماشین به آن نیاز ندارد، ولی بازبینی اینکه RefDes و footprint به هم می‌خورند با همین ستون ممکن است.
  • Value / Comment: مقدار قطعه (مثلاً 10k یا 100nF) که تطبیق سریع فایل با BOM را ساده می‌کند.

مبدأ مختصات و قرارداد چرخش

دو نکته‌ای که بیشترین خرابکاری را در مونتاژ ایجاد می‌کنند، همین‌جا پنهان شده‌اند:

  1. مبدأ (Origin): مختصات X و Y نسبت به مبدأ برد سنجیده می‌شوند. در KiCad و Altium این مبدأ همان جایی است که در محیط PCB با کلید Origin تعیین کرده‌اید (معمولاً گوشه پایین-چپ برد یا یک فیدوشیال). اگر مبدأ فایل Centroid با مبدأ فایل‌های Gerber و Drill یکی نباشد، کل چیدمان قطعات با یک جابه‌جایی ثابت روی برد می‌نشیند.
  2. چرخش پایه (Zero Rotation): زاویه صفر یعنی چه؟ برای اکثر مقاومت‌ها و خازن‌ها، حالتی که پایه ۱ سمت چپ باشد. اما هر کتابخانه footprint می‌تواند نقطه مرجع و جهت صفر خودش را داشته باشد؛ بعضی قطعات مثل LED، دیود، کانکتور و آی‌سی‌ها اگر با صفرِ اشتباه به ماشین داده شوند، دقیقاً ۹۰ یا ۱۸۰ درجه برعکس مونتاژ می‌شوند. به همین دلیل ماشین‌های مدرن یک «Rotation Offset» برای هر footprint در کتابخانه خودشان دارند و معمولاً خطای چرخش در مرحله برنامه‌ریزی ماشین اصلاح می‌شود — به شرطی که خود فایل، زاویه را با قرارداد استاندارد نرم‌افزار CAD گزارش کرده باشد.

نکته‌ای درباره فیدوشیال: فایل Centroid فقط مکان قطعات را می‌دهد؛ تراز دقیق برد با دوربین ماشین از طریق مارک‌های فیدوشیال انجام می‌شود. طراحی و جای‌گذاری این مارک‌ها را در راهنمای فیدوشیال PCB توضیح داده‌ایم. بدون فیدوشیال سالم، حتی فایل Centroid بی‌نقص هم به جابه‌جایی چند دهم میلی‌متری روی قطعات ریز 0402 ختم می‌شود.

از کدام نرم‌افزار CAD خروجی بگیریم؟

تقریباً همه ابزارهای طراحی PCB خروجی pick and place دارند؛ تفاوت در نام منو، فرمت پیش‌فرض و گزینه‌هاست.

KiCad

در KiCad از مسیر File → Fabrication Outputs → Component Placement (.pos) یا در نسخه‌های جدیدتر Footprint Position File خروجی بگیرید. در پنجره تنظیمات می‌توانید فرمت (CSV یا ASCII)، واحد (mm پیشنهاد می‌شود) و سمت برد را انتخاب کنید.

برای خروجی دقیق‌تر و قابل تکرار، خط فرمان KiCad کامل‌ترین کنترل را می‌دهد:

kicad-cli pcb export pos board.kicad_pcb \
  --format csv --units mm --side both \
  --bottom-negate-x --smd-only --exclude-dnp \
  -o board-cpl.csv

گزینه‌های مهم که در مستندات رسمی KiCad آمده‌اند:

  • --side front|back|both: خروجی یک‌طرفه یا دوطرفه.
  • --units mm|in: واحد مختصات؛ پیش‌فرض inch است، پس برای کارخانه‌هایی که میلی‌متر می‌خواهند حتماً mm بگذارید.
  • --bottom-negate-x: مختصات X قطعات پشت برد را منفی می‌کند؛ بعضی کارخانه‌ها برای سمت پایین همین قرارداد آینه‌ای را می‌خواهند و بعضی نه. این را از مونتاژکار خودتان بپرسید.
  • --smd-only و --exclude-fp-th: فقط قطعات نصب‌سطحی را نگه می‌دارد و قطعات سوراخ‌دار (Through-Hole) را حذف می‌کند.
  • --exclude-dnp: قطعات نشان‌دار با وضعیت «Do Not Populate» را از فایل بیرون می‌گذارد.

ستون‌های خروجی KiCad معمولاً Ref, Val, Package, PosX, PosY, Rot, Side است.

Altium Designer

در Altium از طریق Output Job File خروجی Generates Pick and Place Files را اضافه کنید (یا مستقیم از File → Assembly Outputs → Generates pick and place files). طبق مستندات Altium، این خروجی مکان، چرخش و سمت برد هر قطعه با نوع Standard را گزارش می‌کند و قطعاتی مثل نوع Graphical در آن نمی‌آیند.

در پنجره Pick and Place Setup سه حالت نمایش مکان وجود دارد که انتخاب غلطشان دردسرساز است:

  • Center X / Center Y: مرکز هندسی footprint، محاسبه‌شده از روی بیرونی‌ترین پدها — رایج‌ترین انتظار کارخانه‌ها.
  • Ref X / Ref Y: نقطه مرجعی که خودتان در footprint تعریف کرده‌اید.
  • Pad X / Pad Y: مختصات پد شماره ۱.

واحد را روی Metric بگذارید و فرمت CSV را انتخاب کنید. اگر کارخانه Center می‌خواهد و شما Ref خروجی گرفته باشید (یا برعکس)، قطعاتی که footprintشان نامتقارن است جابه‌جا مونتاژ می‌شوند.

Autodesk EAGLE / Fusion 360 Electronics

در EAGLE خروجی مستقیم Centroid وجود ندارد؛ راه معمول، اجرای ULPهایی مثل mountsmd.ulp یا centroid.ulp است که فایل CSV با ستون‌های RefDes، X، Y، Rotation و Side می‌سازند. در Fusion 360 Electronics هم از همان ULPها یا از بخش Fabrication Output استفاده می‌شود.

EasyEDA

در EasyEDA از منوی Fabrication Output گزینه Pick and Place File را بزنید؛ خروجی CSV با ستون‌های Designator، Name (footprint)، Layer، Center-X و Center-Y و Rotation-Mid ساخته می‌شود. این همان فرمتی است که سرویس مونتاژ JLCPCB انتظار دارد.

اشتباه‌های رایج فایل pick and place

بیشتر توقف‌های خط مونتاژ به خودِ ماشین مربوط نیست؛ به فایلی برمی‌گردد که با قرارداد کارخانه نمی‌خواند. این‌ها پرتکرارترین مواردند:

  1. چرخش غلط قطعات قطب‌دار. زاویه‌ای که CAD گزارش می‌کند با صفرِ footprint کتابخانه گره خورده است. اگر LED، دیود شاتکی، خازن تانتال یا آی‌سی با ۱۸۰ درجه اختلاف مونتاژ شود، نتیجه از روشن‌نشدن برد تا سوختن قطعه در تست است. پیش از ارسال، زاویه چند قطعه قطب‌دار را دستی با نقشه چیدمان مقایسه کنید.
  2. سمت پایین بدون توافق روی آینه‌کردن X. بعضی ماشین‌ها مختصات پشت برد را با X منفی (آینه‌ای) می‌خواهند و بعضی با X مثبت و چرخش اصلاح‌شده. KiCad هر دو حالت را با --bottom-negate-x پشتیبانی می‌کند؛ فقط باید بدانید کارخانه شما کدام را می‌خواهد.
  3. مبدأ ناهمسان با Gerber و Drill. مختصات Centroid باید از همان مبدأ فایل‌های ساخت بیاید. اگر در CAD مبدأ را گوشه برد گذاشته‌اید ولی Gerber را از مختصات مطلق صفحه خروجی گرفته‌اید، همه قطعات با یک جابه‌جایی ثابت روی برد می‌نشینند. بهترین کار: مبدأ را روی یک فیدوشیال یا گوشه مشخص برد تنظیم کنید و همان را در همه خروجی‌ها نگه دارید.
  4. واحد اشتباه (میلی‌متر در برابر اینچ). یک برد ۱۰۰ میلی‌متری با واحد اینچ تفسیر شود، قطعات باید روی بردی ۲۵۴۰ میلی‌متری بنشینند! سرتیتر ستون‌ها را چک کنید که واحد صریح باشد یا با کارخانه توافق شده باشد.
  5. آمدن قطعات Through-Hole و DNP در فایل. ماشین SMT فقط قطعات نصب‌سطحی را برمی‌دارد؛ کانکتورهای سوراخ‌دار و قطعات «نصب نشو» باید از فایل حذف یا صریحاً علامت‌گذاری شوند. در KiCad با --smd-only و --exclude-dnp این کار خودکار است.
  6. فراموش‌کردن قطعات مکانیکی. پیچ، اسپیسر، هیت‌سینک و پایه‌های پرسی جای هیچ‌کدام در فایل Centroid نیست؛ اگر footprintشان نوع Standard باشد، Altium آنها را هم در گزارش می‌آورد و باید دستی یا با فیلتر حذف شوند.
  7. بردهای پنل‌شده. اگر برد به‌صورت پنل مونتاژ می‌شود، باید مشخص کنید فایل Centroid برای واحد تکی است یا پنل کامل. در پنل با قطعات چرخانده (مثلاً برای بهره‌وری چیدمان)، زاویه‌ها باید مطابق جهت قطعه در پنل باشند، نه در برد واحد. قواعد پنل‌کردن را در راهنمای پنل‌کردن PCB ببینید.
  8. مشکل جداکننده و انکودینگ. در محیط‌هایی که جداکننده اعشار کاما است (لوکال‌های اروپایی)، CSV با ویرگول به هم می‌ریزد. فایل را با نقطه اعشار و انکودینگ ASCII یا UTF-8 بدون BOM تحویل دهید و یک بار با یک ویرایشگر متن بازش کنید تا از سلامت ستون‌ها مطمئن شوید.

چک‌لیست پیش از ارسال فایل

قبل از اینکه بسته فایل مونتاژ را ببندید، این موارد را مرور کنید:

  1. واحد مختصات میلی‌متر است (یا با کارخانه توافق شده).
  2. مبدأ Centroid با مبدأ Gerber و Drill یکی است؛ چک‌لیست فایل Gerber را هم اجرا کنید.
  3. فقط قطعات SMD در فایل‌اند؛ Through-Hole و DNP حذف یا علامت‌گذاری شده‌اند.
  4. زاویه چرخش چند قطعه قطب‌دار (LED، دیود، کانکتور) با نقشه چیدمان مطابقت دارد.
  5. برای سمت پایین، قرارداد آینه‌کردن X با مونتاژکار روشن شده است.
  6. تعداد ردیف‌های فایل با تعداد قطعات SMD در BOM می‌خواند.
  7. فیدوشیال‌های مورد نیاز ماشین (حداقل دو مارک در دو گوشه قطر برد) طراحی شده‌اند؛ جزئیات در راهنمای فیدوشیال.
  8. فایل استنسیل خمیر لحیم هم همراه بسته است؛ طراحی‌اش را در راهنمای استنسیل PCB پوشش داده‌ایم.

یک نکته تجربی: بعضی کارخانه‌های مونتاژ ابزار آنلاین بررسی Centroid دارند و قبل از تولید، فایل شما را با Gerber تطبیق می‌دهند و چرخش‌های مشکوک را علامت می‌زنند. اگر چنین ابزاری در دسترس بود، حتماً استفاده کنید — هزینه اصلاح فایل در این مرحله صفر است و در مرحله بعد از مونتاژ، کل برد.

جمع‌بندی

  • فایل pick and place نقشه قرارگیری قطعات SMD برای ماشین مونتاژ است: RefDes، مرکز X/Y، Rotation و Layer ستون‌های اصلی‌اند.
  • فرمت استاندارد جهانی وجود ندارد؛ خروجی KiCad، Altium، EAGLE و EasyEDA ساختار مشابهی دارند ولی قرارداد مبدأ، چرخش و سمت پایین باید با کارخانه مونتاژ هماهنگ شود.
  • پرتکرارترین خطاها: چرخش غلط قطعات قطب‌دار، مبدأ ناهمسان با Gerber، واحد اشتباه و نیامدن توافق روی آینه‌کردن X در سمت پایین.
  • فایل Centroid بدون فیدوشیال درست و BOM و استنسیل کامل، بسته مونتاژ کاملی نیست.

منابع

منابع و شواهد

  1. Preparing Assembly Data — Altium Designer Technical DocumentationAltium
  2. KiCad CLI documentation — PCB position file exportKiCad
  3. How to Create a Centroid (Pick and Place) File Instantly?NextPCB
  4. Pick and Place File Guide — Centroid, CPL, .pos for SMT AssemblyPCB Viewer
  5. How to generate a pick-and-place (CPL) file in KiCadGoForFab