جی کد نویسی cnc چیست؟
جی کد نویسی CNC (برنامه نویسی کنترل عددی کامپیوتری) هنر برنامه ریزی ماشین های CNC برای ساخت قطعات است. برنامه CNC یک فایل متنی است که حاوی کد g است. اگر حرفه ای هستید که بیشتر وقت خود را صرف برنامه نویسی CNC می کنید، احتمالاً عنوان شغلی شما برنامه نویس CNC است.
G-Code چیست؟
G-Code زبانی است که برای کنترل ماشین های CNC استفاده می شود. این یکی از انواع برنامه نویسی CNC است که برنامه نویسان این نوع دستگاه ها از آن استفاده می کنند، نوع دیگر برنامه نویسی CAM است. برنامه های CAM کد g را از یک نقشه CAD تولید می کنند، اما نتیجه نهایی همچنان g-code است.
کنترلر CNC دستگاه شما احتمالاً g-code را اجرا می کند، اگرچه احتمالات دیگری نیز وجود دارد. برخی از ماشین ها با فرمت های اختصاصی نیز می توانند g-code را اجرا کنند. این زبان Lingua Franca (زبان کاری) CNC است.
برای ساختن یک قطعه بر روی یک دستگاه CNC، به آن می گویید که چگونه قطعه را با استفاده از برنامه G-Code بسازد.
روش های مختلف جی کدنویسی CNC چیست؟
ماشین های CNC با استفاده از یکی از سه روش برنامه ریزی می شوند:
- نرم افزار CAM
- برنامه نویسی مکالمه
- برنامه نویسی G-Code
اغلب، استفاده از چندین روش با هم سودمند است. برای مثال، ممکن است یک برنامه اولیه CNC با استفاده از نرمافزار CAM ایجاد کنید و سپس کد g را از نرمافزار CAM با استفاده از برنامهنویسی G-Code ویرایش کنید تا برنامه سریعتر تولید کند.
چرا باید جی کد نویسی CNC را یاد بگیرم؟
هر ماشینکار CNC باید g-code را بداند. اگر به CNC و ماشینکاری علاقه دارید نیز لازم است که این زبان را آموزش ببینید.
برنامه نویسی CNC می تواند یک مهارت ارزشمند باشد. طبق گفته Glass Door، برنامه نویسان CNC به طور متوسط 54000 دلار در سال حقوق دریافت می کنند. آن را با اپراتورهای ماشینهای CNC که 42000 دلار در سال دریافت میکنند و ماشینکار CNC که 42000 دلار در سال دریافت میکنند مقایسه کنید.
یک برنامه نویس CNC ماهر می تواند درآمد شما را تا حد زیادی بر اساس این اعداد افزایش دهد.
یادگیری برنامه نویسی مکالمه یک شروع است. انتخاب CNC مکالمه ای همراه با برخی از کارهای MDI به زودی شما را به همان اندازه بهره وری خواهد کرد، اگر نه بیشتر از یک ماشینکار دستی در یک ماشین دستی.
ارتباط خوب با نرم افزار CAM حتی از اهمیت بیشتری برخوردار است. شما می توانید قطعاتی بسازید که انجام آنها به صورت دستی امکان پذیر نیست، یا اینکه ارزش انجام آن ها بسیار طولانی است.
اما اینکه یک برنامه نویس G-code توانا باشید که قادر به مقابله با ماکروها و از این قبیل باشید، آخرین پله در نردبان است. ممکن است برای اکثر کاربران CAM تعجب آور باشد، اما کارهای زیادی وجود دارد که یک برنامه نویس g-code می تواند انجام دهد که به سادگی با CAM امکان پذیر نیست. به طور کلی، برنامه نویسی G-Code برای این نوع کارها ایده آل است:
قطعات ساده می توانند با g-code راحت تر از CAM باشند. شما یک صفحه پوشش مستطیلی با 4 سوراخ در آن می خواهید. اگر با g-code مهارت دارید، قبل از اینکه بتوانید یک مدل CAD ایجاد کنید، آن را از طریق CAM اجرا کنید، gcode را روی دستگاه قرار دهید و آن را اجرا کنید، کار تمام است. با Conversational CNC، حتی لازم نیست در g-code مهارت داشته باشید. برای همه مواردی که فکر میکردید ماشینکاری دستی سریعتر است، g-code یا Conversational CNC دستگاه CNC را به انتخاب بهتری تبدیل میکند.
کارهای تخصصی زیادی وجود دارد که انجام آنها با CAM دشوار یا غیرممکن است. علاوه بر این، وظایف پایین دستی وجود دارد – چیزهایی که وقتی کار واقعاً روی دستگاه است، ظاهر می شوند که توسط CAM یا Post در نظر گرفته نشده بودند. گاهی اوقات این وظایف به GCode منتقل می شوند زیرا نرم افزار CAM آنها را انجام نمی دهد.
بهترین راه برای یادگیری G-Code چیست؟
بهترین راه برای یادگیری G-Code آهسته و پیوسته است.
برای خود یک دوره کامل پیدا کنید، درس ها را حذف کنید، تمرین ها را انجام دهید و به آن ادامه دهید. با سرعت خود کار کنید و تا زمانی که تمرین ها را انجام نداده اید و مطالب را درک نکرده اید، به درس بعدی نروید.
اگر نرم افزاری داشته باشید که به شما کمک کند با g-code بازی کنید، انجام تمرینات بسیار آسان تر است. نرم افزار، G-code را شبیه سازی می کند و همچنین آن را برای شما رمزگشایی می کند. می توانید g-code های مختلف را امتحان کنید و به صورت بصری ببینید که آنها چه کاری انجام می دهند. آزمایش کردن یکی از بهترین راه ها برای درک خوب کد g است.
دومین کاری که باید به غیر از دنبال کردن یک دوره و استفاده از شبیهساز مانند G-Wizard Editor انجام دهید این است که شروع به دنبال کردن برخی از مقالات در مورد CNC کنید. دریافت برخی ورودی های تصادفی در مورد موضوعات مختلف راه دیگری برای کمک به جریان آن است. چیزهایی را می بینید که سؤالاتی را ایجاد می کنند و شما را وادار می کنند به روش های جدیدی در مورد مفاهیم اساسی فکر کنید. این به همه ایده ها کمک می کند تا بهتر به هم متصل شوند.
G-Code سابقه بسیار طولانی دارد. اولین تلاشها برای استانداردسازی آن از استاندارد RS-274 انجمن صنعت الکترونیک انجام شد که به استاندارد NS-274NGC NIST تبدیل شد. کار استانداردهای اولیه EIA در دهه 1960 آغاز شد، اما اولین استاندارد تا سال 1980 منتشر نشد. اگرچه اکنون استانداردهایی وجود دارد (ISO نیز یکی از آنها تقریباً مشابه RS-274 است)، هنوز مشخص نیست که چند استاندارد وجود دارد. کنترلکنندههایی که وجود دارند کاملاً مبتنی بر استاندارد هستند. در واقع، بسیاری از کنترلها ادعا میکنند که برخی استاندارد هستند، اما وقتی به جزئیات نگاه میکنید، بسیار غیر استاندارد هستند.
استاندارد ها چگونه متفاوت هستند؟
استاندارد های G-Code به طرق مختلفی با هم متفاوت هستند. اکثر تولیدکنندگان به دلایل رقابتی و بازاریابی، زنگ ها و سوت های کوچک خود را اضافه کرده اند تا گویش خود را بهتر کنند. به عنوان مثال، هاس دارای یک سری کد g ویژه برای فرز جیبی و همچنین برخی پارامترها و قابلیت های خاص در برخی از G-Code های استاندارد است. درک قابلیتهای ویژه دستگاه شما مفید است، زیرا احتمالاً آنها برای صرفهجویی در زمان بر اساس بازخوردی که سازنده از مشتریان خود دریافت کرده است، در آنجا قرار داده شدهاند.
به طور کلی، ما شاهد دسته بندی های زیر از تفاوت بین استانداردهای G-Code هستیم:
- کدام G-Code ها پشتیبانی می شوند. همه کنترلرها از همه G-Code ها پشتیبانی نمی کنند. برای مثال، بسیاری از کنترلهای تراش اولیه از G71 و چرخههای مشابه پشتیبانی نمیکنند.
- نگاشت G-Code. گاهی اوقات همان تابع توسط اعداد g-code مختلف در کنترل های مختلف پشتیبانی می شود.
- پارامترها و برنامه نویسی ماکرو برنامه نویسی پارامتریک با ماکروها چیزی است که پس از برقراری استانداردهای اولیه پدیدار شد. Fanuc Macro B احتمالا رایج ترین استاندارد برای آن است. بسیاری از کنترلها در مورد برنامهنویسی ماکرو بسیار محدود هستند و تفاوتهای جزئیات زیادی در مورد نحوه عملکرد ماکروها وجود دارد.
- بسیاری از G-Code ها برای انجام کار خود به اطلاعات اضافی نیاز دارند، بنابراین از کلمات دیگر (حروف) برای جمع آوری آن اطلاعات استفاده می کنند. اینکه دقیقاً چه کلماتی چه اطلاعاتی را جمعآوری میکنند میتوانند از یک کنترل به کنترل دیگر متفاوت باشند.
- قالب بندی برخی از کنترل ها به G0 یا G00 اجازه می دهند. برخی بر G00 اصرار دارند. برخی اعداد را بدون اعشار مجاز میکنند، برخی دیگر بر اعشار یا حتی صفر انتهایی اصرار دارند. «1»، «1.» و «1.0» همه تغییراتی هستند که ممکن است در هنگام تعیین عدد 1 پذیرفته، رد یا لازم شوند.
ما بهزودی درباره معنای همه اینها صحبت خواهیم کرد، اما در حال حاضر، آگاه باشید که این تفاوتها وجود دارد. برای برنامه های ساده و استفاده از MDI، بدیهی است که بسیاری از این ها اهمیتی ندارند. اما، برای نوشتن G-Code دست نویس پیچیده یا تلاش برای درک اینکه چرا G-Code که برنامه CAM شما منتشر می کند کاملاً درست نیست، باید از جزئیات آگاه باشید.
نرم افزار CAM از چیزی به نام Post Processor برای مقابله با گویش های کد g استفاده می کند. نقش پردازشگر پست این است که یک زبان ایدهآل شده را که معمولاً درون نرمافزار CAM است، به یک گویش کد g خاص ترجمه کند.
تمرینات برای آموزش G code نویسی
- جستجو کنید که دستگاه های CNC شما از چه گویش کد g استفاده می کنند. آیا سازنده ادعا می کند که با یک استاندارد سازگار است؟
اگر یک ماشینکار دستی هستید، یک ماشین CNC را دقیقاً مانند یک ماشین دستی در نظر بگیرید که دارای تغذیه برق و DRO (بازخوانی دیجیتال) در هر محور دستگاه است. چیزهای بیشتری در این مورد وجود دارد، اما اگر به این دستگاه فکر میکنید، زمانی که نحوه انجام آن را یاد گرفتید، ایدهای از کارهایی که میتوانید آن را به سرعت انجام دهید به دست میآورید.
سیستم مختصات CNC برای G-Code و ماشینها
اولین چیزی که باید فهمید، سیستم مختصات CNC است.
هر ماشین جهت محوری خاص خود را دارد و شما باید با نحوه جهت گیری محورهای دستگاه خود آشنا باشید. در اینجا چند نوع رایج وجود دارد:
محورهای آسیاب برای یک مرکز ماشینکاری عمودی معمولی. توجه: فلشها حرکت جدول را در جهت کد g مثبت نشان میدهند. دستی حرکت دوکی و معکوس است!
محورهای تراش برای یک ماشین تراش معمولی 2 محوره…
سیلندرهای موجود در هر نقشه نشان دهنده دوک ماشین است. حتماً نگاهی به نحوه قرارگیری محورها بر روی دستگاه خود بیاندازید. ماشین تراش می تواند بسیار پیچیده تر از نسخه 2 محوره ساده ای باشد که ما در اینجا نشان داده ایم.
4و 5 محور و بیشتر
هنگامی که محورهای بیشتری دارید، تنظیمات بسیار پیچیده تری امکان پذیر است. به عنوان مثال، در اینجا یک راه اندازی 5 محور وجود دارد:
فرز 5 محوره با میز Trunion…
توجه داشته باشید که برای ارائه یک محور A و یک محور B به نمودار پایه آسیاب دو محور چرخشی اضافه کرده ایم. به طور کلی، A، B، و C محورهای چرخشی هستند که به ترتیب حول محورهای تشکیل شده توسط X، Y و Z می چرخند.
بیان مختصات در G-Code:
اکنون که می دانیم سیستم های مختصات چیست، چگونه مختصات را در G-Code بیان کنیم؟
خیلی ساده است: فقط حرف محور را بگیرید و مقدار را اضافه کنید. فاصله بین حرف و مقدار آن اختیاری است.
به عنوان مثال، موقعیتی که 1 اینچ از 0 در امتداد X، 2 اینچ در امتداد Y و 3 اینچ در امتداد Z باشد به صورت زیر نوشته می شود:
X1Y2Z3
شما عادت می کنید که همه آنها را به سرعت با هم اجرا کنید، اما می توانید آنها را با فاصله قالب بندی کنید تا خواناتر شوند:
X1 Y2 Z3
یا
X 1 Y 2 Z 3
باز هم، شما عادت می کنید که حروف را با اعداد نگه دارید، بنابراین من فاصله بیشتری از بین محورها اضافه نمی کنم:
X1 Y2 Z3
وقتی به آن عادت کردید در واقع ساده ترین خواندن آن است.
در مورد واحدها چطور؟
مثالی که من آوردم اینچ استفاده می شود، اما در واقع کنترلر را می توان طوری تنظیم کرد که از متریک یا امپریال استفاده کند. این به شما بستگی دارد که بدانید سیستم در کدام پیشفرض قرار میگیرد و واحدها را در صورت نیاز تغییر دهید. سعی کنید در وسط برنامه واحدها را تغییر ندهید، در همان ابتدا این کار را انجام دهید و سپس در همان واحدها بمانید. در غیر این صورت خیلی گیج کننده است. G-Codes برای تغییر واحدها فقط بر نحوه تفسیر دستگاه اعداد تأثیر می گذارد. آنها برنامه شما را تغییر نمی دهند. در مقاله آینده بیشتر در مورد تغییر واحدها صحبت خواهیم کرد، اما در حال حاضر، فقط آگاه باشید.
برای محورهای چرخشی (که فقط در ماشینهای 4 یا 5 محور استفاده میکنید)، ما از ابعاد برای واحدها استفاده نمیکنیم، بلکه از زاویهها معمولاً بر حسب درجه استفاده میکنیم. چرخاندن محور چهارم به موقعیت 90 درجه ممکن است به عنوان مثال A90 انجام شود.
مختصات افزایشی در مقابل مطلق:
گاهی اوقات رجوع به Incremental یا Relative به جای مختصات Absolute بسیار راحت است. بیایید فرض کنیم نوک ابزار من روی X0 Y0 Z0 است و میخواهم آن را به X1 Y2 Z3 منتقل کنم (ویرگولها را که در G-Code استفاده نمیشوند رها کردم، زیرا فقط سعی میکنم شما را به نحوه یادگیری مختصات در مدرسه، به عنوان مثال (0، 0، 0)، به نحوه انجام آن در G-Code X0 Y0 Z0 تغییر دهید. من می توانم حرکت را به صورت مطلق یا افزایشی انجام دهم و مهم نیست. “X1 Y2 Z3” این کار را انجام می دهد زیرا در هر صورت ما از X0 Y0 Z0 شروع کردیم.
اما، فرض کنید کاتر شما در نقطه ای قرار گرفته است و باید یک مربع 1 اینچی با گوشه تراز آن نقطه برش دهید. شاید از لبه یاب خود برای تعیین محل دقیق برش روی برخی از ویژگی های قطعه استفاده کرده باشید. این به راحتی با حرکات نسبی انجام می شود:
- X1
- Y1
- X-1
- Y-1
در اصل، 1 اینچ به راست، 1 اینچ به سمت بالا در Y، 1 اینچ به سمت چپ، و سپس 1 اینچ در Y به پایین حرکت کنید. اکنون یک مربع 1 اینچی داریم که گوشه پایین سمت چپ آن نقطه اولیه است.
موارد زیادی وجود دارد که حرکات نسبی مفید هستند، بنابراین توانایی جابجایی به جلو و عقب زیاد میشود. وقتی در مورد نحوه حرکت با G-Code صحبت می کنیم، نحوه ایجاد آن سوئیچ را به شما نشان خواهیم داد، اما در حال حاضر، فقط توجه داشته باشید که هر دو مختصات افزایشی و مطلق وجود دارد.
گاهی به مختصات نسبی با حروف محور خاص اشاره می کنیم. به عنوان مثال، IJK ممکن است XYZ نسبی در هنگام تعریف مراکز قوس باشد. در برخی از کنترلکنندهها، UVW ممکن است در کنار XYZ برای اشاره به مختصات نسبی بدون نیاز به تغییر جلو و عقب بین حالتهای نسبی و مطلق استفاده شود. به عبارت دیگر، XYZ همیشه به صورت مطلق و UVW همیشه نسبی استفاده می شود.
در حال حاضر، کافی است بدانیم که مختصات افزایشی وجود دارد. کمی بعد، ما یک فصل کامل فقط در مورد مختصات افزایشی در مقابل مطلق داریم.
افست:
آخرین مفهوم سیستم مختصات که میخواهیم به آن بپردازیم مربوط به Offsets است. آفست راه دیگری برای تفکر در مورد حرکات نسبی است. فرض کنید می خواهید 2 قطعه یکسان را ماشین کاری کنید. هر کدام در یک گیره روی میز شما در همان زمان نگه داشته می شوند. چگونه یک برنامه بسازید که بتواند هر دو قسمت را بدون نیاز به تغییر برنامه برای موقعیت هر قسمت انجام دهد؟
پاسخ این است که ما از Work Offset استفاده می کنیم. جزئیات بیشتر در مورد آنها بعداً، اما در حال حاضر، تصور کنید که Work Offsets به ما اجازه میدهد مبدا X0 Y0 Z0 را در بیش از یک مکان قرار دهیم. می توانیم یکی را روی ویز اول و دیگری را روی ویز دوم بگذاریم. اکنون فقط با تغییر افست کار، همان برنامه می تواند برای ساختن قطعه روی هر دو گیره کار کند.
انواع مختلفی از آفست در CNC وجود دارد، و اپراتور یا ماشینکار ماهر CNC متوجه میشود که افستها روشی بسیار مفید برای تحریک رفتار یک برنامه G-Code بدون نیاز به تغییر آن برنامه هستند. اکثر کنترلرهای CNC دارای صفحه نمایش افست هستند که در آن شما این کار را انجام می دهید. من این را ذکر می کنم زیرا هر زمان که فرصتی برای یادگیری در مورد افست دارید، برای این کار وقت بگذارید. آنها ابزارهای برق دیجیتال برای ماشینکار CNC هستند و بسیار مفید هستند
Planes:
مراجعه به Planes برای اهداف مختلف راحت است. صفحه یک فضای مسطح دو بعدی است که توسط دو محور تعریف می شود. به عنوان مثال، صفحه پیش فرض در اکثر آنها XY است. اگر یک کمان بدون تعیین تغییر در صفحه رسم کنید، در صفحه XY رسم می شود. برای هر ترکیب از محورهای خطی XYZ یک صفحه وجود دارد:
- XY
- YZ
- XZ
کدهای G17، G18 و G19 انتخاب می کنند که کدام Planes فعال باشد. هنگامی که بیشتر در مورد کمان صحبت می کنیم، بیشتر در مورد G17-G19 صحبت می کنیم.
نتیجه:
شما اکنون اصول اولیه را دارید:
- شما می دانید که چگونه با استفاده از قانون دست چپ، سیستم های مختصات را نسبت به دستگاه خود تجسم کنید.
- شما می دانید که چگونه مختصات را در G-Code بیان کنید.
- می دانید که از چه واحدهایی برای اندازه گیری مختصات استفاده می شود.
- می دانید که امکان مختصات نسبی و مطلق وجود دارد.
- میدانید که افستها به شما امکان میدهند سیستم مختصات را برای اهداف مفید مختلف تغییر دهید.
- شما در مورد Planes می دانید.
ما بهزودی مفهوم MDI را معرفی خواهیم کرد، که روشی ساده برای استفاده از G-Code است که انگار هنوز یک ماشینکار دستی هستید. این مقدمه خوبی برای اصول حرکت محورهای CNC شما است. اما ابتدا باید شما با ویرایشگر G-Wizard آشنا شوید تا یک شبیهساز CNC برای تمرین در طول این درسهای آموزشی داشته باشید.