CNC · G-code · CAM · تولید

برنامه‌نویسی CNC چیست و چطور نوشته می‌شود؟

برنامه‌نویسی CNC نقشه و خواستهٔ ساخت را به دستورهای دقیق حرکت، دور اسپیندل، ابزار و عملیات ماشین تبدیل می‌کند. در این راهنما می‌بینیم ماشین CNC چگونه برنامه را اجرا می‌کند، G-code چه می‌گوید، برنامه دستی چه زمانی مناسب است و مسیر CAM چطور باید برای دستگاه واقعی بازبینی شود.

خلاصهٔ کوتاه

برنامه، مختصات و فرمان‌های فرایندی را به کنترلر ماشین می‌دهد تا قطعه طبق مسیر تعریف‌شده ساخته شود.

دو روش رایج

نوشتن یا ویرایش دستی کد برای کارهای ساده؛ تولید مسیر در CAM برای هندسه و عملیات پیچیده‌تر.

اصل مهم

کد باید با ماشین، کنترلر، ابزار، ستاپ و فیکسچر مقصد سازگار و پیش از برش بازبینی شود.

CNC کوتاه‌شدهٔ Computer Numerical Control است: کنترل عددی رایانه‌ای. در ماشین‌کاری، برنامه به کنترلر می‌گوید ابزار یا قطعه در چه جهتی حرکت کند، با چه سرعتی برش انجام شود و چه عملیاتی به چه ترتیبی اجرا شود. برنامه‌نویسی CNC فقط تایپ چند فرمان نیست؛ زنجیره‌ای از تفسیر نقشه، انتخاب روش ساخت، تعیین ابزار و مبدا، ساخت مسیر، تبدیل آن به زبان کنترلر و بررسی ایمنی است.

ماشین CNC چگونه از برنامه به قطعه می‌رسد؟

برنامه‌نویس هندسهٔ نهایی و مشخصات ساخت را از نقشه یا مدل CAD می‌خواند. سپس توالی عملیات و مسیرهای ابزار را در محیط CAM یا به‌صورت دستی تعریف می‌کند. کنترلر ماشین فایل خروجی را تفسیر می‌کند و محورهای ماشین را بر اساس مختصات و فرمان‌ها حرکت می‌دهد. ابزار براده‌برداری می‌کند و اپراتور با تنظیم مبداها، ابزارها و شرایط ستاپ، اجرای واقعی را مدیریت می‌کند.

برای مثال در فرز CNC معمولاً ابزار می‌چرخد و در محورهای خطی یا دورانی نسبت به قطعه حرکت می‌کند. در تراش CNC قطعه داخل اسپیندل می‌چرخد و ابزار به موقعیت‌های لازم می‌رود. ماشین‌های مختلف ممکن است تعداد محور، نوع ابزارگیر، تعویض ابزار، قابلیت‌های کنترلی و محدودیت‌های متفاوتی داشته باشند؛ بنابراین یک مسیر یا کد را نمی‌توان بدون بررسی از دستگاهی به دستگاه دیگر منتقل کرد.

برنامه CNC از چه اجزایی تشکیل می‌شود؟

ساختار برنامه با توجه به کنترلر فرق می‌کند، اما معمولاً بخش‌هایی برای آغاز امن، انتخاب واحد و حالت مختصات، انتخاب ابزار و آفست، روشن‌کردن اسپیندل و خنک‌کار، حرکت‌های برشی، پایان عملیات و توقف یا بازگشت ماشین دارد. درک نقش هر بخش کمک می‌کند خطاهایی مثل حرکت با مبدا اشتباه یا فراخوانی نادرست ابزار زودتر دیده شوند.

  • شماره و توالی بلوک‌ها: هر خط یا بلوک مجموعه‌ای از آدرس‌ها و فرمان‌هاست؛ شماره‌گذاری در برخی کنترلرها اختیاری است.
  • آدرس محور و مختصات: X، Y و Z معمولاً محورهای خطی‌اند؛ A، B و C می‌توانند محورهای دورانی باشند. علامت و معنای مختصات به دستگاه و تنظیمات آن وابسته است.
  • فرمان‌های آماده‌سازی G: حالت‌هایی مثل حرکت سریع یا خطی، انتخاب صفحه، واحدها، حالت مختصات و جبران ابزار را تعیین می‌کنند.
  • فرمان‌های کمکی M: عملکردهایی مانند اسپیندل، خنک‌کار، توقف برنامه و پایان را کنترل می‌کنند؛ فهرست دقیق باید از مستندات کنترلر خوانده شود.
  • پارامترهای برش: سرعت اسپیندل، پیشروی و در صورت نیاز عمق یا چرخهٔ برش، با توجه به ماشین، ابزار، جنس و توصیه سازنده تعیین می‌شوند.
  • آفست‌ها و مبداها: مبدا قطعه و اصلاح طول یا شعاع ابزار، رابطهٔ مختصات برنامه با ستاپ فیزیکی را مشخص می‌کنند.
  • توضیح و کامنت: یادداشت‌های روشن برای نام عملیات، ابزار، مبنا و هشدارهای ستاپ، نگهداری و بازبینی برنامه را ساده‌تر می‌کنند.

G-code و M-code چه تفاوتی دارند؟

به‌طور ساده، G-code بیشتر حالت حرکت و ماشین‌کاری را تعریف می‌کند و M-code بیشتر فرمان‌های کمکی ماشین را. برای نمونه، G00 در بسیاری از کنترلرها برای حرکت سریعِ بدون برش و G01 برای حرکت خطی با پیشروی برنامه‌ریزی‌شده به‌کار می‌رود. M03 معمولاً اسپیندل را در جهت تعریف‌شده روشن می‌کند و M05 آن را متوقف می‌کند. این مثال‌ها عمومی‌اند: شمارهٔ کد، جهت چرخش، چرخه‌های ثابت و رفتار دقیق ممکن است بر اساس کنترلر و پیکربندی ماشین تفاوت داشته باشد.

یک کد به‌تنهایی معنی کامل برنامه را نشان نمی‌دهد. باید دانست ماشین در چه صفحه‌ای کار می‌کند، واحد میلی‌متر است یا اینچ، مختصات مطلق‌اند یا افزایشی، کدام آفست فعال است، ابزار کجا قرار دارد و آیا فرمان با وضعیت فعلی ماشین سازگار است. خواندن برنامه با توجه به حالت‌های مدال کنترلر اهمیت دارد، چون بعضی تنظیمات تا زمان تغییر صریح در بلوک‌های بعدی باقی می‌مانند.

نمونهٔ آموزشی خواندن چند خط G-code

قطعهٔ کوتاه زیر فقط برای آشنایی با شکل فرمان‌هاست و برنامهٔ آمادهٔ اجرا نیست. مقادیر، انتخاب آفست، شماره ابزار، جهت و دور اسپیندل، ارتفاع امن، ترتیب حرکت و سازگاری کنترلر باید برای ماشین مشخص بررسی شوند. اجرای مستقیم این نمونه روی ماشین واقعی مناسب نیست.

(نمونه آموزشی؛ قبل از هر اجرا باید برای ماشین مقصد بازبینی شود)
G21        (واحد میلی‌متر، در کنترلرهایی که این معنا را دارند)
G90        (مختصات مطلق، در کنترلرهایی که این معنا را دارند)
G00 X0 Y0  (حرکت سریع به مختصات نمونه؛ ارتفاع امن در این خط مشخص نشده)
G01 Z-1 F100 (حرکت خطی با پیشروی نمونه؛ فقط برای توضیح ساختار)
M05        (نمونه فرمان توقف اسپیندل در کنترلرهای متداول)
M30        (پایان برنامه در بسیاری از کنترلرها)

در این مثال G21 و G90 حالت‌هایی را انتخاب می‌کنند که در بسیاری از کنترلرها به‌ترتیب واحد متریک و مختصات مطلق‌اند. G00 حرکت سریع و G01 حرکت خطی با پیشروی F را نشان می‌دهد. نبود انتخاب ابزار، اسپیندل، مبدا قطعه، آفست طول، ارتفاع امن و مسیر برگشت یعنی این قطعه برای تولید واقعی کامل نیست. مثال آموزشی عمداً ساده است تا نشان دهد تفسیر کد بدون زمینهٔ ماشین و ستاپ خطرناک است.

برنامه‌نویسی دستی یا نرم‌افزار CAM؟

در برنامه‌نویسی دستی، برنامه‌نویس بلوک‌ها و حرکت‌ها را مستقیماً می‌نویسد یا بخش‌هایی از فایل خروجی را ویرایش می‌کند. این روش برای حرکت‌های ساده، سوراخ‌کاری مشخص، اصلاح محدود یا درک رفتار کنترلر می‌تواند سریع باشد؛ اما با پیچیده‌شدن هندسه، تعداد ابزارها و عملیات، احتمال خطای محاسباتی و نگهداری دشوارتر می‌شود.

در روش CAM، مدل CAD وارد نرم‌افزار می‌شود، عملیات و ابزار انتخاب می‌شوند و مسیرهای خشن‌کاری و پرداخت محاسبه می‌گردند. سپس پس‌پردازنده مسیر را به قالب مناسب کنترلر مقصد تبدیل می‌کند. CAM کدنویسی را حذف نمی‌کند: برنامه‌نویس همچنان باید مدل را بررسی کند، ابزار و پارامترها را معقول انتخاب کند، ستاپ را تعریف کند، پس‌پردازنده درست را به کار ببرد و خروجی را اعتبارسنجی کند.

یک روش ترکیبی هم رایج است: مسیر پیچیده در CAM ساخته می‌شود و اصلاح‌های محدود و آگاهانه در فایل خروجی انجام می‌گیرد. هر ویرایش باید در نسخهٔ منبع و مستندات ثبت شود تا پس‌پرداز مجدد، تغییرات را ناخواسته پاک نکند یا تفاوت نسخه‌ها برای اپراتور مبهم نماند.

مراحل حرفه‌ای نوشتن برنامه CNC

  1. بررسی نقشه و مدل: واحد، نسخه، ابعاد مرجع، تلرانس، کیفیت سطح، جنس و مشخصات خام را روشن کنید. تناقض نقشه و مدل را قبل از برنامه‌ریزی حل کنید.
  2. انتخاب ماشین و روش ساخت: توان، کورس، محورهای در دسترس، کنترلر، نوع ابزارگیر و محدودیت‌های واقعی کارگاه را در نظر بگیرید.
  3. تعریف ستاپ و مبدا: روش بستن، تعداد ستاپ‌ها، مبناهای اندازه‌گیری، موقعیت صفر قطعه و دسترسی ابزار را مشخص کنید.
  4. طراحی توالی عملیات: خشن‌کاری، نیمه‌پرداخت، پرداخت، سوراخ‌کاری و عملیات تکمیلی را طوری مرتب کنید که قطعه پایدار بماند و تلرانس‌ها حفظ شوند.
  5. انتخاب ابزار و شرایط برش: ابزار و نگهدارنده را بر اساس جنس، دسترسی، توان ماشین و توصیه سازنده انتخاب کنید. سرعت و پیشروی را بدون دادهٔ معتبر حدس نزنید.
  6. ساخت مسیر و پس‌پرداز: مسیر ابزار را در CAM یا به شکل دستی تعریف و سپس با پس‌پردازندهٔ مناسب ماشین و کنترلر خروجی بگیرید.
  7. بازبینی کد و شبیه‌سازی: توالی، حالت‌های فعال، مختصات، طول ابزار، جبران‌ها، حرکت‌های سریع و برخورد احتمالی با قطعه، گیره و فیکسچر را بررسی کنید.
  8. آماده‌سازی اجرای اول: نسخهٔ برنامه، ابزارها، آفست‌ها، صفر قطعه و برگه ستاپ را تطبیق دهید. اپراتور باید طبق دستورالعمل کارگاه و قابلیت‌های کنترلر، اجرای آزمایشی و کنترل‌شده را انجام دهد.
  9. اندازه‌گیری و اصلاح: قطعهٔ اول را با ابزار اندازه‌گیری مناسب کنترل کنید، اصلاح‌ها را ثبت کنید و نسخهٔ تأییدشده را از نسخهٔ آزمایشی جدا نگه دارید.

شبیه‌سازی، پس‌پردازنده و بررسی ایمنی

پس‌پردازنده یک مترجم سادهٔ متن نیست؛ باید قواعد و قابلیت‌های کنترلر مقصد و پیکربندی ماشین را درست بازتاب دهد. فراخوانی ابزار، تعویض ابزار، کدهای کمکی، چرخه‌ها، محدودیت محور و روش فعال‌کردن آفست‌ها می‌توانند اختصاصی باشند. پس‌پردازنده نامتناسب ممکن است خروجی ظاهراً معتبر اما رفتاری متفاوت تولید کند.

شبیه‌سازی مسیر ابزار، نمایش براده‌برداری و برخورد احتمالی را بر اساس داده‌های واردشده بررسی می‌کند. کیفیت نتیجه به مدل دقیق ماشین، نگهدارنده، ابزار، فیکسچر و قطعهٔ خام وابسته است. شبیه‌سازی ناقص نمی‌تواند برخورد واقعی یا همهٔ خطاهای ستاپ را رد کند؛ رویهٔ کنترل‌شدهٔ کارگاه، بازبینی اپراتور و اجرای آزمایشی مسئولانه همچنان لازم است.

پیش از اجرا، نسخه و مقصد برنامه، واحد و حالت مختصات، آفست کار، جبران طول و شعاع، جهت چرخش، ارتفاع‌های امن، محدوده کورس، مسیر تعویض ابزار و فاصله از گیره‌ها باید طبق دستورالعمل همان ماشین بررسی شوند. برای کد ناشناس، شروع کار باید با رویه‌های ایمنی کارگاه و نظارت فرد صلاحیت‌دار انجام شود.

خطاهای رایج در برنامه‌نویسی CNC

  • اشتباه در واحد یا حالت مختصات: تفاوت اینچ و میلی‌متر یا مطلق و افزایشی می‌تواند اندازه و جهت حرکت را کاملاً تغییر دهد.
  • مبدا یا آفست نادرست: انتخاب سیستم مختصات اشتباه باعث جابه‌جایی کل مسیر می‌شود؛ طول ابزار و شعاع برش نیز باید با ابزار واقعی تطبیق داشته باشد.
  • اعتماد به G-code عمومی: کدهای مشابه در کنترلرهای متفاوت لزوماً رفتار یکسان ندارند. مستندات ماشین و خروجی پس‌پردازنده مرجع‌اند.
  • نادیده‌گرفتن فیکسچر و نگهدارنده: بررسی فقط برخورد ابزار با قطعه کافی نیست؛ بدنه ابزار، نگهدارنده، گیره و اجزای ماشین نیز اهمیت دارند.
  • پارامترهای برش نامتناسب: سرعت و پیشروی نامناسب می‌تواند کیفیت سطح، عمر ابزار، بار اسپیندل و پایداری فرایند را تحت تأثیر قرار دهد.
  • ویرایش بدون کنترل نسخه: اصلاح برنامه بدون ثبت تغییر، تأیید و شناسه نسخه احتمال اجرای فایل اشتباه را بالا می‌برد.
  • فرض‌کردن اینکه شبیه‌سازی همه‌چیز را می‌بیند: مدل‌های ناقص، آفست اشتباه یا داده‌های ستاپ قدیمی می‌توانند نتیجه شبیه‌سازی را گمراه‌کننده کنند.

چطور برنامه را برای تولید تکراری آماده کنیم؟

برای تولید پایدار، برنامه باید همراه با اطلاعات ستاپ نگهداری شود: شناسه و نسخه قطعه، ماشین و کنترلر مقصد، فهرست ابزارها و نگهدارنده‌ها، مبداها، ترتیب عملیات، نسخه پس‌پردازنده و نکات بازرسی. تغییر ابزار، جنس خام یا فیکسچر باید به‌عنوان تغییر فرایند بررسی شود، نه صرفاً جایگزینی بی‌قیدوشرط یک مقدار.

برای تیراژ، ثبت زمان سیکل واقعی، نتیجه اندازه‌گیری قطعه اول، اصلاحات مجاز و علت توقف‌ها به بهبود برنامه کمک می‌کند. برنامهٔ تأییدشده را از فایل در حال توسعه جدا کنید و دسترسی و نام‌گذاری فایل‌ها را روشن نگه دارید تا نسخهٔ آزمایشی به اشتباه وارد تولید نشود.

برای برنامه‌نویسی CNC چه اطلاعاتی لازم است؟

برای برآورد و شروع کار معمولاً نقشه یا مدل سه‌بعدی، جنس و ابعاد خام، تلرانس‌ها و سطح نهایی، تعداد قطعه، ماشین و کنترلر، تعداد محورها، روش بستن، ابزارهای موجود و نمونه فایل یا برنامه قبلی مفید است. اگر پس‌پردازنده یا مدل ماشین اختصاصی دارید، نسخه و محدودیت استفاده از آن را هم مشخص کنید. داده‌های محرمانه طراحی را از مسیر امن و با توافق روشن دربارهٔ نگهداری و دسترسی تبادل کنید.

اگر می‌خواهید این مراحل را برای قطعه‌ای واقعی اجرا کنید، صفحهٔ خدمات برنامه‌نویسی CNC و طراحی مسیر ابزار توضیح می‌دهد چه دامنه‌ای قابل تعریف است، چه فایل‌هایی برای شروع نیاز داریم و چه خروجی‌هایی می‌توان توافق کرد.

پرسش‌های متداول درباره برنامه‌نویسی CNC

آیا G-code بین کنترلرهای مختلف یکسان است؟

بخش‌هایی از G-code در کنترلرهای رایج مشترک است، اما چرخه‌ها، کدهای کمکی، گزینه‌ها و رفتار ماشین ممکن است متفاوت باشد. برنامه را برای دستگاه و کنترلر مقصد بررسی کنید و از اجرای فایل ناشناس یا تبدیل‌نشده پرهیز کنید.

برای یادگیری باید از کدنویسی دستی شروع کنم؟

یادگیری ساختار برنامه دستی برای فهم مختصات، حالت‌ها و منطق کنترلر مفید است؛ اما یادگیری باید با مستندات کنترلر و محیط آموزشی امن پیش برود. برنامه تولیدی نیازمند بازبینی متناسب با ماشین واقعی است.

CAM خودش برنامه صحیح و آماده اجرا می‌سازد؟

CAM مسیر را با توجه به ورودی‌ها محاسبه می‌کند، اما کیفیت خروجی به مدل، تنظیمات عملیات، ابزار، پس‌پردازنده و بازبینی برنامه‌نویس وابسته است. خروجی نرم‌افزار به‌خودی‌خود تأیید اجرای ماشین نیست.

آیا شبیه‌سازی جای اجرای آزمایشی را می‌گیرد؟

خیر. شبیه‌سازی به کیفیت مدل و داده‌های ستاپ وابسته است. تطبیق آفست‌ها، ابزار و فیکسچر واقعی و اجرای کنترل‌شده طبق دستورالعمل کارگاه همچنان ضروری است.

چطور زمان ماشین‌کاری را کم کنیم؟

تعداد ستاپ‌ها و تعویض ابزار، حرکت‌های بدون برش، راهبرد خشن‌کاری و پرداخت و شرایط برش را بررسی کنید. هر تغییر باید با ماشین، ابزار، جنس، تلرانس و کیفیت سطح سازگار باشد و با دادهٔ واقعی ارزیابی شود.

اگر قصد دارید مفاهیم برنامه‌نویسی را روی یک قطعه واقعی پیاده کنید، جزئیات خدمت برنامه‌نویسی CNC را ببینید. برای طراحی ابزار نرم‌افزاری یا گردش‌کار اختصاصی در کنار عملیات تولید نیز می‌توانید خدمات توسعه سامانه‌های اختصاصی را بررسی کنید.

برای قطعه یا برنامه‌تان بررسی تخصصی می‌خواهید؟

نقشه، جنس قطعه، ماشین و کنترلر مقصد را آماده کنید تا درباره ورودی‌های لازم و دامنه برنامه‌نویسی گفت‌وگو کنیم.

مشاهده خدمات برنامه‌نویسی CNCثبت درخواست بررسی
بازگشت به مقالاتجزئیات خدمت CNC