دستگاههای CNC قلب تپنده صنعت مدرن هستند. این ماشینها توانستهاند فرآیندهای پیچیده ماشینکاری را بهصورت دقیق، سریع و تکرارپذیر انجام دهند. اما سؤال اینجاست: چطور CNC متوجه میشود که چه کاری باید انجام دهد؟
پاسخ در سه دسته دستور اصلی نهفته است:
- G-code: زبان هندسی و حرکتی دستگاه
- S-code: تنظیم سرعت اسپیندل
- T-code: انتخاب ابزار
این سه بخش در کنار هم، برنامهنویسی CNC را تشکیل میدهند و اگر اپراتور یا برنامهنویس بهخوبی آنها را بشناسد، میتواند هر عملیات ماشینکاری را با اطمینان اجرا کند.
در این مقاله قصد داریم بهطور کامل با G-code آشنا شویم و سپس به سراغ S-code و T-code برویم. همچنین جداول مرجع کدها برای دستگاههای فرز و تراش (بر اساس Fanuc) را مرور خواهیم کرد.
G-code چیست و چه نقشی در CNC دارد؟
G-code یا Geometric Code زبان حرکتی دستگاه CNC است. این کدها مشخص میکنند که ابزار در چه مسیری حرکت کند، چه نوع حرکتی انجام دهد (خطی، دایرهای، سریع یا با برادهبرداری) و در چه صفحهای کار کند.
به زبان ساده:
اگر CNC را مانند یک ربات بدانیم، G-code همان نقشه راهی است که به ربات میگوید از کجا حرکت کند و به کجا برود.

ویژگیهای مهم G-code
- هر G-code با حرف G و یک عدد دو رقمی (یا بیشتر) نمایش داده میشود؛ مثل G00 یا G71.
- ممکن است یک G-code در دستگاه فرز کاربردی داشته باشد و همان کد در دستگاه تراش معنای دیگری پیدا کند.
- بعضی G-codeها دائمی (Modal) هستند و تا زمان تغییر فعال باقی میمانند (مثلاً G01).
- برخی دیگر غیردائمی (Non-Modal) هستند و فقط در همان خط دستور اثر دارند (مثلاً G04 برای Dwell یا مکث).
ساختار یک خط برنامه CNC
یک خط کدنویسی در CNC معمولاً شامل ترکیبی از دستورات است:
N10 G01 X50 Z-20 F0.2 S1200 T0101 M03
توضیح خط بالا:
- N10 → شماره خط برنامه
- G01 → حرکت خطی با برادهبرداری
- X50 Z-20 → مختصات مقصد ابزار
- F0.2 → پیشروی ۰٫۲ میلیمتر بر دور
- S1200 → سرعت اسپیندل ۱۲۰۰ دور بر دقیقه
- T0101 → انتخاب ابزار شماره ۱
- M03 → روشن شدن اسپیندل در جهت ساعتگرد
🔹 همانطور که میبینید، G-code نقش اصلی را در تعیین نوع حرکت دارد، ولی برای کامل شدن عملیات نیاز به ترکیب با S-code، T-code و M-code داریم.
دستهبندی G-code ها و گروههای اصلی

یکی از مهمترین مهارتهای اپراتور یا برنامهنویس CNC، شناخت گروهبندی G-code هاست. چون اگر بدانیم هر گروه چه کاری انجام میدهد، سریعتر میتوانیم کدها را درک کرده و خطاها را برطرف کنیم.
در سیستمهای کنترلی Fanuc (و بسیاری از کنترلرهای دیگر)، G-codeها در گروههای اصلی زیر تقسیم میشوند:
| گروه | نمونه G-code | توضیح کاربرد |
|---|---|---|
| گروه 1 | G00, G01, G02, G03 | حرکات اصلی: سریع، خطی، دایرهای |
| گروه 2 | G20, G21 | انتخاب واحد اندازهگیری (اینچ یا میلیمتر) |
| گروه 3 | G90, G91 | حالت برنامهنویسی مطلق یا نسبی |
| گروه 7 | G40, G41, G42 | جبرانسازی نوک ابزار |
| گروه 9 | G70 تا G89 | سیکلهای ماشینکاری مثل سوراخکاری و قلاویزکاری |
| گروه 11 | G98, G99 | انتخاب نقطه بازگشت در سیکلها |
توضیح گروهها به زبان ساده
🔹 گروه 1: حرکات اصلی
- G00: حرکت سریع (Rapid traverse) بدون برادهبرداری.
- G01: حرکت خطی با برادهبرداری. سرعت حرکت با F مشخص میشود.
- G02 / G03: حرکت دایرهای ساعتگرد و پادساعتگرد.
این گروه شبیه به الفبای پایه زبان CNC است؛ بدون آنها هیچ حرکتی وجود ندارد.
🔹 گروه 2: انتخاب واحدها
- G20: واحد اینچ
- G21: واحد میلیمتر
💡 نکته کلیدی: اشتباه در انتخاب واحد یکی از رایجترین خطاهای اپراتورهاست. تصور کنید قطعهای که باید ۱۰ میلیمتر تراشیده شود، به جای آن ۱۰ اینچ تراش داده شود!
🔹 گروه 3: مطلق یا نسبی
- G90: حالت مطلق (Absolute) → مختصات نسبت به نقطه صفر اصلی ماشین تعریف میشوند.
- G91: حالت نسبی (Incremental) → مختصات نسبت به موقعیت فعلی ابزار تعریف میشوند.
📌 مثال ساده:
- اگر در حالت G90 دستور X20 بدهیم، ابزار همیشه به مختصات X20 میرود.
- اگر در حالت G91 دستور X20 بدهیم، ابزار ۲۰ واحد جلوتر از جای فعلی حرکت میکند.
🔹 گروه 7: جبرانسازی نوک ابزار
در تراشکاری و فرزکاری، شکل نوک ابزار باعث میشود مسیر واقعی برادهبرداری با مسیر برنامه کمی تفاوت داشته باشد. برای جبران این خطا از دستورات زیر استفاده میشود:
- G40: لغو جبرانسازی
- G41: جبرانسازی به چپ
- G42: جبرانسازی به راست
🔹 گروه 9: سیکلهای آماده (Canned Cycles)
این گروه مخصوص عملیاتهایی است که تکراری هستند و نوشتن آنها به صورت دستی زمانبر است.
- G70: سیکل پرداخت نهایی (Finishing cycle)
- G71 / G72: خشنتراشی طولی یا پیشانی (Stock removal)
- G76: سیکل پیچبری چندمرحلهای (Thread cutting cycle)
- G83: سوراخکاری پلهای (Peck drilling)
- G84: قلاویزکاری (Tapping cycle)
این دستورات در واقع میانبرهایی هستند که برنامهنویسی را سادهتر میکنند.
🔹 گروه 11: بازگشت در سیکلها
- G98: بازگشت به سطح اولیه (Initial level)
- G99: بازگشت به نقطه R در سیکلهای سوراخکاری
این دستورات مشخص میکنند ابزار پس از انجام سوراخکاری یا قلاویز، به کجا برگردد.
مثال از ترکیب گروهها در یک برنامه واقعی
فرض کنید میخواهیم یک سوراخ ساده را روی قطعه ایجاد کنیم:
N10 G21 G90 G17
N20 G00 X0 Y0
N30 G43 Z5 H01
N40 G81 R2 Z-10 F100
N50 G80
N60 M30
توضیح:
- G21: انتخاب واحد میلیمتر
- G90: حالت مطلق
- G17: انتخاب صفحه XY
- G00: حرکت سریع به نقطه شروع
- G43: جبران طول ابزار
- G81: سیکل سوراخکاری ساده
- R2: نقطه شروع سیکل در فاصله ۲ میلیمتری سطح قطعه
- Z-10: عمق سوراخ ۱۰ میلیمتر
- F100: سرعت پیشروی ۱۰۰ میلیمتر بر دقیقه
- G80: لغو سیکل
جدول دستورات پرکاربرد G-code در دستگاه فرز (Milling)

دستگاههای فرز CNC پرکاربردترین نوع ماشینهای CNC در صنایع هستند. در این دستگاهها، ابزار در اسپیندل حرکت میکند و قطعه کار ثابت است. به همین دلیل، G-codeهای پرکاربرد در فرز بیشتر حول محور انتخاب صفحه، سوراخکاری، قلاویزکاری و حرکتهای سهبعدی میچرخند.
در ادامه جدولی از مهمترین G-codeهای فرز (بر اساس کنترل Fanuc) را میبینید:
| G Code | توضیح |
|---|---|
| G00 | حرکت سریع (Rapid traverse) |
| G01 | حرکت خطی با برادهبرداری (Linear interpolation) |
| G02 | حرکت دایرهای ساعتگرد |
| G03 | حرکت دایرهای پادساعتگرد |
| G04 | مکث (Dwell) |
| G17 | انتخاب صفحه XY |
| G18 | انتخاب صفحه ZX |
| G19 | انتخاب صفحه YZ |
| G20 | واحد اینچ |
| G21 | واحد میلیمتر |
| G43 | جبران طول ابزار (Tool length compensation +) |
| G49 | لغو جبران طول ابزار |
| G54 – G59 | انتخاب سیستم مختصات کاری (Work offset) |
| G73 | سیکل سوراخکاری سریع (High-speed drilling cycle) |
| G81 | سیکل سوراخکاری ساده (Drilling cycle) |
| G83 | سیکل سوراخکاری پلهای (Peck drilling cycle) |
| G84 | سیکل قلاویزکاری (Tapping cycle) |
| G85 | سیکل بورینگ (Boring cycle) |
| G90 | حالت مطلق (Absolute programming) |
| G91 | حالت نسبی (Incremental programming) |
| G94 | پیشروی بر حسب دقیقه (Feed per minute) |
| G95 | پیشروی بر حسب دور (Feed per revolution) |
توضیح برخی G-codeهای کلیدی در فرز
🔹 G17، G18، G19: انتخاب صفحه کاری
- G17: برای عملیات در صفحه XY (رایجترین در فرزکاری)
- G18: برای صفحه ZX
- G19: برای صفحه YZ
این انتخاب مشخص میکند که حرکات دایرهای (G02/G03) در کدام صفحه اجرا شوند.
🔹 G43 و G49: جبران طول ابزار
ابزارهای مختلف طولهای متفاوتی دارند. برای اینکه ماشین بداند سر ابزار دقیقاً کجاست، باید طول ابزار جبران شود.
- G43 Hxx: جبران طول ابزار بر اساس مقدار تعریفشده در جدول ابزار
- G49: لغو جبران
📌 مثال:
G43 H01 Z100
ابزار شماره ۱ با طول تعریفشده در جدول، جبران میشود و به ارتفاع Z100 میرود.
🔹 G81 تا G89: سیکلهای سوراخکاری و قلاویزکاری
این سیکلها باعث میشوند عملیات سوراخکاری با کمترین تعداد خطوط برنامه اجرا شوند.
مثال:
G81 R2 Z-15 F120
این دستور یک سوراخ ساده به عمق ۱۵ میلیمتر ایجاد میکند.
🔹 G94 و G95: واحد پیشروی
- G94: پیشروی بر حسب دقیقه (مناسب برای فرزکاری)
- G95: پیشروی بر حسب دور (مناسب برای تراشکاری، ولی در برخی فرزهای خاص هم کاربرد دارد)
اگر اشتباهی بین این دو انتخاب رخ دهد، ابزار یا میشکند یا سطح قطعه خراب میشود.
مثال عملی از برنامه فرزکاری با G-code
فرض کنید میخواهیم یک سوراخ ساده روی قطعه ایجاد کنیم:
N10 G21 G17 G90
N20 G00 X0 Y0 Z5
N30 G81 R2 Z-10 F100
N40 G80
N50 M30
توضیح:
- G21: واحد میلیمتر
- G17: انتخاب صفحه XY
- G90: حالت مطلق
- G00: حرکت سریع به مختصات X0 Y0 Z5
- G81: سیکل سوراخکاری ساده تا عمق ۱۰ میلیمتر
- R2: شروع سیکل در فاصله ۲ میلیمتر از سطح قطعه
- F100: سرعت پیشروی ابزار ۱۰۰ میلیمتر بر دقیقه
- G80: لغو سیکل
نکات کلیدی در استفاده از G-codeهای فرز
- همیشه قبل از اجرای سیکل، ارتفاع R را به درستی انتخاب کنید تا ابزار به قطعه برخورد نکند.
- از G43 برای جبران طول ابزار استفاده کنید و هیچوقت آن را فراموش نکنید.
- انتخاب درست بین G94 و G95 میتواند تفاوت بین یک عملیات موفق و یک شکست کامل باشد.
جدول دستورات پرکاربرد G-code در دستگاه تراش (Turning)

در دستگاههای تراش CNC، برخلاف فرز، قطعه کار روی اسپیندل میچرخد و ابزار ثابت است یا حرکت خطی دارد. به همین دلیل بسیاری از G-codeها در تراش با فرز متفاوت تفسیر میشوند و اپراتور باید این تفاوتها را بهخوبی بشناسد.
در جدول زیر، پرکاربردترین G-codeها در تراش (Fanuc) آورده شدهاند:
| G Code | توضیح |
|---|---|
| G00 | حرکت سریع (Rapid traverse) |
| G01 | حرکت خطی با برادهبرداری |
| G02 | حرکت دایرهای ساعتگرد |
| G03 | حرکت دایرهای پادساعتگرد |
| G04 | مکث (Dwell) |
| G32 | پیچبری تکمرحلهای |
| G33 | پیچبری با گام متغیر |
| G70 | سیکل پرداخت نهایی (Finishing cycle) |
| G71 | سیکل خشنتراشی طولی (Stock removal turning cycle) |
| G72 | سیکل خشنتراشی پیشانی (Facing cycle) |
| G73 | سیکل خشنتراشی با الگو (Pattern repeating cycle) |
| G74 | سوراخکاری پیشانی (Face drilling) |
| G75 | سوراخکاری قطر خارجی یا داخلی (Peck drilling) |
| G76 | سیکل پیچبری چندمرحلهای |
| G92 | سیکل رزوهزنی ساده |
| G96 | کنترل سرعت برشی ثابت (Constant Surface Speed) |
| G97 | لغو CSS، کنترل دور ثابت |
| G98 | بازگشت به سطح اولیه در سیکلها |
| G99 | بازگشت به نقطه R در سیکلها |
توضیح برخی G-codeهای کلیدی در تراش
🔹 G71 و G72: خشنتراشی
- G71: برای حذف براده در طول قطعه (طولی).
- G72: برای حذف براده در سطح پیشانی قطعه.
📌 این دستورات باعث میشوند اپراتور نیازی به نوشتن دستی دهها خط حرکت نداشته باشد.
🔹 G76: پیچبری چندمرحلهای
یکی از مهمترین دستورها در تراشکاری رزوه است.
- ابزار به صورت مرحلهای و با عمقهای کاهشی وارد قطعه میشود.
- نتیجه: رزوه تمیز، دقیق و بدون فشار زیاد روی ابزار.
مثال:
G76 P020060 Q100 R0.05
G76 X20 Z-30 P1000 Q200 F1.5
🔹 G96 و G97: کنترل سرعت برشی
- G96: سرعت سطحی ثابت → ابزار با توجه به قطر قطعه سرعت خود را تنظیم میکند (ایدهآل برای تراش رزوه یا پرداخت).
- G97: لغو CSS → سرعت ثابت اسپیندل، بدون توجه به قطر.
🔹 G33 و G92: پیچبری دستی
- G33: پیچبری با گام متغیر یا خاص.
- G92: رزوهزنی ساده، مخصوص رزوههای مستقیم و استاندارد.
تفاوت تفسیر G-code در تراش و فرز
بسیاری از کدها در تراش و فرز ظاهر یکسانی دارند اما عملکردشان متفاوت است:
| G-code | در فرز | در تراش |
|---|---|---|
| G71 | سوراخکاری سریع (High-speed drilling cycle) | سیکل خشنتراشی طولی |
| G72 | سیکل سوراخکاری مستقیم | سیکل خشنتراشی پیشانی |
| G76 | سیکل بورینگ/رزوه (در برخی فرزها) | سیکل پیچبری چندمرحلهای |
| G96 | کمتر استفاده میشود | بسیار حیاتی در کنترل سرعت برشی |
این تفاوتها باعث میشوند اپراتوری که بین دستگاههای مختلف جابهجا میشود، نیازمند دقت و تسلط بیشتری باشد.
مثال عملی از تراشکاری با G-code
N10 G21 G40 G80
N20 T0101
N30 G00 X50 Z5
N40 G71 U2 R0.5
N50 G71 P60 Q100 U0.2 W0.1 F0.3
N60 N60 G00 X0 Z0
N70 N100 M30
توضیح برنامه:
- T0101: انتخاب ابزار شماره ۱
- G00: حرکت سریع به مختصات اولیه
- G71: شروع سیکل خشنتراشی طولی
- U / W: مقادیر اضافه برای باربرداری جانبی و انتهایی
- F0.3: سرعت پیشروی ابزار در برادهبرداری
نکات کلیدی در استفاده از G-code تراش
- قبل از اجرای سیکل، مسیر خشنتراشی را با دقت تعریف کنید.
- همیشه CSS (G96) را با محدودیت سرعت اسپیندل همراه کنید تا ابزار نسوزد.
- در پیچبری (G76 یا G92) به هماهنگی میان اسپیندل و حرکت محورها توجه ویژه داشته باشید.
S-code در CNC چیست و چه کاربردی دارد؟
بعد از اینکه با G-code و نقش آن در کنترل مسیر و حرکت ابزار آشنا شدیم، نوبت به S-code میرسد. این دسته از کدها در دستگاههای CNC برای کنترل سرعت چرخش اسپیندل (Spindle) استفاده میشوند.
به زبان ساده، S-code همان فرمان RPM دستگاه است.
تعریف S-code
- حرف S مخفف Spindle speed است.
- S-code همیشه به یک عدد متصل میشود که نشاندهنده سرعت دوران اسپیندل بر حسب دور بر دقیقه (RPM) است.
- معمولاً در همان خطی که دستور حرکت (G-code) داده میشود، S-code هم قرار میگیرد.
📌 مثال ساده:
S1200 M03
این خط به دستگاه میگوید: اسپیندل با سرعت ۱۲۰۰ RPM روشن شود و در جهت ساعتگرد بچرخد.
نقش S-code در عملیات ماشینکاری
- کنترل کیفیت سطح: انتخاب سرعت درست اسپیندل باعث میشود سطح قطعه پرداخت مناسب داشته باشد.
- طول عمر ابزار: سرعت زیاد باعث سوختن ابزار میشود، سرعت کم هم باعث کاهش راندمان.
- هماهنگی با فید (Feed): سرعت اسپیندل باید با پیشروی ابزار هماهنگ باشد تا دقت برادهبرداری حفظ شود.
- عملیات خاص مثل قلاویزکاری و پیچبری: در این عملیاتها سرعت اسپیندل باید دقیق و پایدار باشد تا رزوه خراب نشود.
مثال از ترکیب S-code با سایر دستورات
N10 G00 X0 Z5
N20 S800 M03
N30 G01 Z-20 F0.2
N40 S1200
توضیح:
- ابزار به نقطه شروع حرکت میکند.
- اسپیندل با سرعت ۸۰۰ دور در دقیقه روشن میشود.
- ابزار با سرعت پیشروی ۰٫۲ میلیمتر بر دور به عمق Z-20 میرود.
- در حین کار سرعت اسپیندل تغییر میکند و به ۱۲۰۰ دور میرسد.
S-code در تراش در مقابل فرز
- در تراشکاری: چون قطر قطعه تغییر میکند، باید گاهی از G96 (CSS) به همراه S-code استفاده کرد تا سرعت برشی ثابت بماند.
- در فرزکاری: ابزار در اسپیندل میچرخد و قطعه ثابت است، بنابراین سرعت برشی بیشتر به شرایط ابزار و جنس قطعه وابسته است.
نکات کلیدی در استفاده از S-code
- همیشه قبل از شروع برنامه، سرعت بهینه برای جنس قطعه و ابزار را محاسبه کنید.
- برای عملیات دقیق (مثل قلاویزکاری) از سرعت پایینتر استفاده کنید.
- از ترکیب S-code با M03/M04/M05 (روشن ساعتگرد/پادساعتگرد/خاموش) استفاده کنید.
- در عملیات رزوهزنی، حتماً هماهنگی بین S-code و فید رعایت شود.
📌 جدول پرکاربرد S-code ها در Fanuc:
| دستور | توضیح |
|---|---|
| S****n | تعیین سرعت اسپیندل (n = عدد دور بر دقیقه) |
| M03 | روشن کردن اسپیندل در جهت ساعتگرد |
| M04 | روشن کردن اسپیندل در جهت پادساعتگرد |
| M05 | توقف اسپیندل |
نتیجهگیری درباره S-code
S-code قلب تپنده فرآیند ماشینکاری است. بدون تعیین سرعت صحیح اسپیندل، حتی بهترین G-codeها هم نمیتوانند نتیجه مطلوب بدهند. شناخت درست این کدها به اپراتور کمک میکند هم کیفیت سطح قطعه بهتر شود و هم طول عمر ابزار افزایش یابد.
T-code در CNC چیست و چه کاربردی دارد؟
بعد از آشنایی با G-code (کنترل مسیر حرکت) و S-code (کنترل سرعت اسپیندل)، حالا به سراغ T-code میرویم؛ دستوری که نقش آن در انتخاب و مدیریت ابزارهاست.
به زبان ساده:
T-code همان فرمان انتخاب ابزار در دستگاه CNC است.
تعریف T-code
- حرف T مخفف Tool (ابزار) است.
- T-code همیشه به یک عدد متصل میشود که معرف ابزار مورد نظر است.
- بسته به نوع ماشین (تراش یا فرز)، فرمت استفاده از T-code متفاوت است.
📌 مثال ساده در تراش (Fanuc):
T0101
این خط به دستگاه میگوید ابزار شماره 1 انتخاب شود و جبرانسازی ابزار شماره 1 نیز فعال گردد.
ساختار T-code در تراش (Turning)
در تراشها، T-code معمولاً به صورت چهار رقمی نوشته میشود:
- T abcd
- ab → شماره ابزار (Tool number)
- cd → شماره آفست (Offset number)
📌 مثال:
T0302
- ابزار شماره 3 انتخاب شود.
- جبرانسازی طول و شعاع ابزار بر اساس آفست شماره 2 فعال گردد.
T-code در فرز (Milling)
در دستگاههای فرز، T-code معمولاً به صورت دو رقمی استفاده میشود:
T05 M06
- T05: انتخاب ابزار شماره 5
- M06: تعویض ابزار (Tool Change)
💡 نکته: در فرزکاری، انتخاب ابزار و تعویض آن اغلب با هم میآید.
مثال ترکیب T-code با G و S
N10 T0202
N20 G97 S1200 M03
N30 G00 X50 Z5
توضیح:
- T0202: انتخاب ابزار شماره 2 با آفست 2
- S1200: تنظیم سرعت اسپیندل روی 1200 RPM
- M03: روشن شدن اسپیندل در جهت ساعتگرد
- G00: حرکت سریع ابزار به مختصات X50 Z5
کاربردهای T-code
- تعویض ابزار در فرز و تراش
- اجرای عملیات مختلف با ابزارهای مختلف (مثلاً سوراخکاری، قلاویزکاری، تراش داخلی/خارجی).
- جبرانسازی ابزار (Tool Offset Compensation)
- هر ابزار طول و شعاع متفاوتی دارد؛ T-code به همراه آفست باعث میشود دقت حرکتی ابزار تضمین شود.
- اتوماسیون کامل در ماشینکاری
- با استفاده از T-code، دستگاه میتواند در یک برنامه طولانی به صورت خودکار ابزارها را تعویض کند.
جدول پرکاربرد T-code ها
| دستور | توضیح |
|---|---|
| T0101 | انتخاب ابزار شماره 1 با آفست 1 (تراش) |
| T0202 | انتخاب ابزار شماره 2 با آفست 2 (تراش) |
| T0301 | انتخاب ابزار شماره 3 با آفست 1 (تراش) |
| T05 M06 | انتخاب ابزار شماره 5 و تعویض آن (فرز) |
| M06 | تعویض ابزار در فرزکاری |
نکات کلیدی در استفاده از T-code
- همیشه اطمینان حاصل کنید که جایگاه ابزار در Turret یا Magazine درست تعریف شده باشد.
- آفست ابزارها باید با دقت کالیبره شوند؛ خطا در آفست مساوی است با خطای ابعادی قطعه.
- در برنامهنویسی طولانی، شماره ابزار و آفست را طوری بچینید که زمان تعویض ابزار کمینه شود.
نتیجهگیری درباره T-code
T-code همان فرمانی است که به دستگاه میگوید “کدام ابزار” را برای عملیات انتخاب کند. بدون این دستور، هیچ برنامه CNC کامل نیست. انتخاب صحیح ابزار و تعریف دقیق آفستها، کلید دستیابی به دقت بالا و کیفیت مطلوب در ماشینکاری است.
ارتباط G-code، S-code و T-code با PLC/PMC

تا اینجا دیدیم که G-code وظیفه کنترل مسیر حرکت ابزار را دارد، S-code سرعت اسپیندل را مشخص میکند و T-code ابزار مناسب را انتخاب مینماید. اما نکته مهم اینجاست که بسیاری از این دستورات فقط درون کنترل CNC باقی نمیمانند؛ بلکه برای اجرا نیاز است به سیستم دیگری به نام PLC یا PMC منتقل شوند.
نقش PLC/PMC در اجرای کدها
- PLC (Programmable Logic Controller): کنترلری منطقی است که ورودیها و خروجیهای دستگاه را مدیریت میکند.
- PMC (Programmable Machine Control): همان PLC داخلی در کنترلهای Fanuc است.
زمانی که دستوراتی مانند M-code یا حتی بعضی از S و T کدها صادر میشوند، CNC آنها را به PLC/PMC ارسال میکند. PLC شرایط مختلف را بررسی کرده و اگر همه چیز ایمن و آماده باشد، فرمان را به خروجیها میفرستد.
مثال واقعی از ارتباط کدها با PLC
🔹 تعویض ابزار با T-code
- اپراتور دستور T05 M06 را وارد میکند.
- CNC این دستور را به PLC میفرستد.
- PLC شرایط زیر را بررسی میکند:
- اسپیندل متوقف شده باشد.
- درب محافظ بسته باشد.
- ابزار فعلی در وضعیت بازگشت باشد.
- اگر همه شرایط درست بود، PLC فرمان فعالسازی موتور تعویض ابزار را صادر میکند.
🔹 تغییر سرعت با S-code
- اپراتور دستور S1200 را وارد میکند.
- کنترل CNC فرمان را به درایو اسپیندل میفرستد.
- PLC همزمان بررسی میکند که:
- گیربکس در حالت صحیح باشد.
- روغنکاری یا سیستم خنککاری فعال باشد.
- سرعت انتخابشده از حد مجاز بیشتر نباشد.
- اگر شرایط ایمن بود، موتور اسپیندل با 1200 دور روشن میشود.
🔹 حرکتهای جانبی با M-code (ارتباط مستقیم با PLC)
- روشن/خاموش شدن کولانت (M08 / M09)
- باز و بسته شدن سهنظام (M10 / M11 یا M68 / M69)
- روشن شدن چراغها یا سیستمهای کمکی
این دستورات تقریباً همیشه بعد از پردازش به PLC منتقل میشوند و اجرای آنها بدون تایید PLC امکانپذیر نیست.
مزیت این ارتباط
- ایمنی بالا: هیچ دستور خطرناکی بدون بررسی شرایط اجرا نمیشود.
- انعطافپذیری: کارخانهسازنده میتواند منطق خاص خود را در Ladder اضافه کند.
- قابلیت عیبیابی: در Fanucهای جدید، برنامه Ladder را میتوان آنلاین مشاهده کرد و این کار عیبیابی را سریعتر میکند.
دیاگرام ساده ارتباط CNC و PLC
[G-code / S-code / T-code]
↓
کنترل CNC (Interpreter)
↓
ارسال فرمان
↓
PLC / PMC (Logic check)
↓
بررسی شرایط و Interlock
↓
فرمان خروجی به عملگرها
نکات کلیدی برای اپراتورها
- همیشه بدانید که همه دستورات مستقیم اجرا نمیشوند؛ بسیاری از آنها ابتدا از فیلتر PLC عبور میکنند.
- خطاهای مربوط به عدم اجرای یک دستور (مثلاً تعویض ابزار) اغلب به منطق PLC برمیگردند نه به خود G-code.
- مطالعه Ladder Diagram برای تکنسینها ضروری است تا منطق پشت دستورات را درک کنند.
ارتباط G، S و T code با PLC/PMC تضمین میکند که دستگاه نهتنها دقیق عمل کند، بلکه ایمن هم باشد. بدون این بخش، بسیاری از دستورات CNC هرگز قابلیت اجرا پیدا نمیکردند.
نکات کلیدی در استفاده از G, S, T کدها
شناخت دستورات CNC فقط نصف ماجراست؛ اجرای درست آنها و رعایت نکات عملی بخش مهمتر کار است. در ادامه به مهمترین نکاتی میپردازیم که اپراتورها و برنامهنویسها باید در هنگام استفاده از G-code، S-code و T-code به آن توجه کنند.
۱. انتخاب واحد درست (اینچ یا میلیمتر)
- G20 = اینچ
- G21 = میلیمتر
💡 اشتباه در انتخاب واحد یکی از خطرناکترین خطاهاست. فرض کنید به جای 10 میلیمتر، ماشین 10 اینچ برادهبرداری کند!
۲. مطلق یا نسبی بودن مختصات
- G90 = مطلق (Absolute) → تمام مختصات نسبت به نقطه صفر اصلی.
- G91 = نسبی (Incremental) → مختصات نسبت به موقعیت فعلی ابزار.
📌 همیشه مطمئن شوید دستگاه در مد صحیح باشد؛ بهخصوص زمانی که چند نفر روی یک دستگاه کار میکنند.
۳. هماهنگی بین سرعت اسپیندل و پیشروی ابزار
- سرعت اسپیندل (S-code) و سرعت پیشروی (F) باید هماهنگ باشند.
- سرعت بالا با فید زیاد = احتمال شکستن ابزار.
- سرعت کم با فید زیاد = سطح ناهموار و خشن.
✅ همیشه از جداول پیشنهادی شرکت سازنده ابزار استفاده کنید.
۴. جبران طول و شعاع ابزار
- با G43/G41/G42 در فرز و T-code با Offset در تراش انجام میشود.
- اگر جبرانسازی درست تنظیم نشود، قطعه دقت لازم را نخواهد داشت.
۵. تست برنامه قبل از اجرای واقعی
- ابتدا برنامه را در سیمولاتور نرمافزاری اجرا کنید.
- اگر امکانش هست، یک بار با حرکت در هوا (Dry Run) تست کنید.
- در حین تست از سرعت پایین استفاده کنید تا در صورت خطا آسیبی به قطعه یا ابزار وارد نشود.
۶. توجه به سیکلهای آماده (Canned Cycles)
- G-codeهای سیکل آماده (مثل G71، G72، G83، G84) کار را ساده میکنند.
- اما هر کنترلر ممکن است تفسیر متفاوتی داشته باشد.
- همیشه Manual دستگاه را مطالعه کنید.
۷. همخوانی با منطق PLC
- بعضی از دستورات مثل تعویض ابزار یا باز/بسته شدن سهنظام فقط در صورتی اجرا میشوند که PLC شرایط ایمنی را تایید کند.
- اگر دستوری اجرا نشد، لزوماً مشکل از G-code نیست؛ ممکن است به تنظیمات PLC مربوط باشد.
۸. ثبت و آرشیو پارامترها
- قبل از هر تغییری در پارامترها، از آنها Backup بگیرید.
- تغییر اشتباه در پارامترها باعث میشود حتی دستورات ساده (مثل G01 یا T01) هم درست عمل نکنند.
چکلیست سریع قبل از اجرای برنامه
- ✅ واحد درست انتخاب شده است؟ (G20/G21)
- ✅ دستگاه در مد مطلق یا نسبی درست است؟ (G90/G91)
- ✅ سرعت اسپیندل با ابزار و جنس قطعه سازگار است؟ (S-code)
- ✅ آفست ابزارها تنظیم شده است؟ (T-code و G43/G41)
- ✅ سیکلها با شرایط دستگاه سازگار هستند؟ (G71، G83 و …)
- ✅ برنامه یک بار در حالت Dry Run تست شده است؟
نکته طلایی: اپراتور حرفهای کسی است که قبل از فشار دادن دکمه Start، همه این موارد را در ذهن مرور کند.
سوالات متداول (FAQ)
خیر، استاندارد کلی مشترک است اما هر برند (مثل Fanuc یا Siemens) کدهای خاص خود را دارد.
خیر، استاندارد کلی مشترک است اما هر برند (مثل Fanuc یا Siemens) کدهای خاص خود را دارد.
خیر، اگر با منطق و مثال جلو بروید، پس از مدتی ساده و قابل فهم میشود.
بله، نرمافزارهای CAD/CAM مثل Mastercam یا SolidCAM این کار را انجام میدهند.
G-code دستورات حرکتی دستگاه CNC هستند که مشخص میکنند ابزار در چه مسیری و با چه سرعتی حرکت کند.
S-code: سرعت دوران اسپیندل را تعیین میکند.
T-code: ابزار مناسب برای عملیات را انتخاب میکند.
در مدلهای قدیمی این امکان با رلهها وجود داشت، اما در دستگاههای جدید تقریباً غیرممکن است چون بسیاری از دستورات نیاز به تایید PLC دارند.
G00 (حرکت سریع)، G01 (برادهبرداری خطی)، G02/G03 (حرکت دایرهای)، G71/G72 (خشنتراشی در تراش)، G81/G83 (سوراخکاری در فرز).
جمعبندی
در این مقاله با سه دسته اصلی کد در دستگاههای CNC آشنا شدیم:
- G-code: دستورهای حرکتی و هندسی دستگاه
- S-code: کنترل سرعت اسپیندل
- T-code: انتخاب و جبرانسازی ابزار
همچنین دیدیم که بسیاری از این دستورات در ارتباط با PLC/PMC اجرا میشوند تا ایمنی و کارایی دستگاه تضمین گردد. شناخت این کدها برای هر اپراتور یا برنامهنویس CNC ضروری است و به او کمک میکند تا عملیات ماشینکاری را دقیق، سریع و ایمن انجام دهد.
💡 اگر به دنبال آموزش تخصصی G-code، خدمات Fanuc، یا رفع اشکال CNC هستید، تیم مدارپرداز با تجربه و دانش فنی آماده همکاری است.
برای دریافت مشاوره یا مشاهده خدمات همین حالا به صفحه خدمات Fanuc مدارپرداز مراجعه کنید.