- G-kod definira geometriju i kretanje CNC strojeva i 3D printera.
- M-kod kontrolira pomoćne funkcije kao što su vreteno, rashladna tekućina i izmjena alata.
- CAD/CAM i sliceri automatski generiraju G i M kodove, ali njihovo razumijevanje je ključno.
- Savladavanje ovih kodova sprječava pogreške, poboljšava točnost i optimizira proizvodnju.
Ako surađujete s CNC strojevi ili 3D printeriPrije ili kasnije, naići ćete na poznati G-kod i njegovog nerazdvojnog pratitelja, M-kod. Mnogima zvuči kao marsovski jezik, ali u stvarnosti su to jednostavno visoko strukturirane instrukcije koje stroj savršeno razumije. Razumijevanje onoga što govore i kako se kombiniraju ključno je za prestanak rada "naslijepo" i za stvarnu kontrolu nad strojnom obradom ili ispisom.
Zamislite svoj stroj, koliko god skup ili moderan bio, kao sasvim "jednostavan": on zna samo pomicanje na X, Y, Z koordinate, rotiranje vretena ili izvlačenje materijala kada date naredbu. Sve ostalo obrađuju G-kod i M-kod. U ovom ćemo članku mirno razložiti što su, kako su nastali, kako se razlikuju, kako se danas koriste s CAD/CAM-om i rezačima, koje tipične pogreške uzrokuju, pa čak ćemo pogledati i primjere složenijih programa, kako za CNC tokarilice, tako i za 3D ispis.
Što je CNC obrada i zašto se toliko oslanja na G-kod i M-kod?
CNC obrada je, u osnovi, upotreba računalno numerički upravljani strojevi (Tokarilice, glodalice, obradni centri itd.) koriste se za izradu dijelova s preciznošću koju bi bilo nemoguće postići ručno i ponovljeno. Numeričko upravljanje definira položaje, brzine i putanje; stroj se pokorava.
Među njegovim prednostima, ističe se jedna izuzetno visoka preciznost, učinkovitost u uklanjanju materijala, mogućnost rada s vrlo složenim geometrijama i brutalna ponovljivost: ako je program dobro napravljen, možete proizvesti 10 ili 10 000 gotovo identičnih komada.
Prije nego što su postojala računala kakva danas poznajemo, strojovođe su koristile bušene kartice ili trake za kodiranje uputa. Bušenje rupa u ispravnom redoslijedu bio je spor i krhak proces: ako bi kartica bila oštećena ili izgubljena, posao bi bio uništen i proizvodnja bi bila zaustavljena.
Pojavom numeričkog upravljanja i prvih računala, operateri su počeli uvoditi linije koda ručnoTo je bilo poboljšanje, ali za složene dijelove s mnogo operacija postalo je izuzetno zamorno i sklono pogreškama u tipkanju ili izračunu.
Danas je situacija vrlo drugačija: koristimo CAD softver za dizajn i CAM programe za automatsko generiranje putanja alata. Sam CAM proizvodi G-kod i M-kod datoteke spreman za rad stroja. To ne znači da razumijevanje onoga što je unutra nije ključno za pregled, optimizaciju, ispravljanje i, kada je potrebno, ručno programiranje.
Kako CNC programiranje upravlja strojevima
U tipičnom tijeku rada, programer priprema okruženje za obradu u CAM-u: model dijela, model čeljusti ili alata, odabir alata i putanje alata za svaku operaciju (gruba obrada, završna obrada, bušenje, narezivanje navoja itd.). Iz svega toga, softver generira CNC program sastavljen od blokova instrukcija.
Svaki blok je obično redak teksta s G-kod, opcionalno M-kod i razni parametri: X, Y, Z koordinate, radijusi, pomaci (F), brzina vretena (S), broj alata (T) itd. Upravljačka jedinica interpretira ove blokove sekvencijalnim redoslijedom i pomiče stroj ili mijenja njegovo stanje prema onome što je zapisano.
U praksi, program obično kombinira instrukcije kretanja (G-kod) i pomoćne funkcije (M-kod) zajedno s nekim naredbe Dodatni znakovi poput F, S, T ili N koriste se za numeričke pravce. Logika je sljedeća: G-kod diktira "kako" se stroj krećeM-kod diktira "što" stroj radi u smislu funkcija hardver.
Iako CAM štedi puno posla, kada je dio sofisticiran, naknadna obrada može biti potrebna. ručno pregledajte cikluse, kompenzacije i napredak ili sigurnosne sekvence. U složenim projektima nije neuobičajeno da generiranje, prilagođavanje i validacija koda traju danima ili čak tjednima.
Što je G-kod u CNC-u i 3D printanju
G-kod, također poznat kao RS-274 ili ISO-kod, je standardni jezik programiranje geometrijski CNC strojeva (Razlike između strojnog koda i bajtkoda"G" dolazi upravo iz "geometrije": opisuje kako bi se stroj trebao kretati u prostoru i s kojim parametrima.
U tradicionalnim CNC strojevima (tokarilice, glodalice, laseri itd.) G-kod označava putanje, radne ravnine, brzine pomaka i ostale informacije vezane uz kretanje alata u odnosu na obradak. U 3D ispisu radi potpuno isto, ali primijenjeno na osi pisača i ekstruder.
Tipična G-kodna naredba počinje slovom G nakon kojeg slijedi broj, na primjer G00, G01, G02, G03, G17itd. Svaka kombinacija ima vrlo specifično značenje. Često linija uključuje više parametara kao što su X, Y, Z, R, F, S ili E (u 3D printanju za ekstruder).
Iako postoje standardi (ISO 6983, DIN 66025, Siemensovi dijalekti, FANUC, Haas, između ostalih), svaka upravljačka jedinica može dodajte proširenja ili varijacijeOsim toga, neki detalji formatiranja razlikuju se među proizvođačima: na primjer, jedan stroj može prihvatiti G3, a drugi može zahtijevati G03 ili dopustiti izostavljanje određenih nula i razmaka.
U svim slučajevima, osnovna ideja je ista: niz blokova koji, kada se izvrše redom, Oni čine cijelu putanju alata a time i konačni oblik otisnutog komada ili predmeta.
Slova i uobičajeni parametri u G-kodu
Osim slova G, jezik koristi i druga slova za označavanje važni parametriU klasičnoj CNC obradi nalazimo, između ostalog:
- X, Y, ZKartezijeve koordinate koje pozicioniraju alat ili obradak u tri dimenzije. X i Y su obično horizontalna ravnina, Z dubina ili visina.
- A: rotacija ili okretanje oko X osi (u višeosnim strojevima).
- R: polumjer luka pri izvođenju kružne interpolacije.
- Ja, Jinkrementalne komponente središta luka u kružnim interpolacijama.
- N: broj programske linije ili bloka.
- F: posmak, odnosno brzina rezanja ili pomaka u operacijama obrade.
- S: brzina vretena, u okretajima u minuti.
- Talat koji se koristi u kombinaciji s uputama kao što je M06.
U FFF/FDM 3D printanju, slovo se također vrlo često pojavljuje. E za označavanje količine ekstrudiranog filamenta, zajedno s naredbama pozicioniranja G0/G1 na X, Y i Z.
Glavni G-kodovi u CNC obradi
Neki od najčešći G kodovi Sljedeće su specifikacije za CNC glodalice i tokarske strojeve:
- G00 – Brzo pozicioniranje: Pomaknite alat što je brže moguće na određenu koordinatu, bez namjere rezanja. Ovo se koristi za približavanja i povlačenja gdje je jedino važno stići brzo i bez sudara.
- G01 – Linearna interpolacija: Naređuje kretanje u ravnoj liniji između dvije točke s određenom brzinom posmaka F. To je klasična naredba za ravne rezove i konturnu obradu.
- G02 – Kružna vremenska interpolacija: Crtajte lukove ili krugove u smjeru kazaljke na satu, obično koristeći X, Y (ili X, Z / Y, Z ovisno o aktivnoj ravnini) i polumjer R ili središte I, J.
- G03 – Kružna interpolacija u smjeru suprotnom od kazaljke na satu: Isto kao G02, ali obrnuto, vrlo korisno za profiliranje okruglih dijelova, kružnih utora ili zakrivljenih džepova.
- G04 – Pauza ili ostanak: Prisiljava stroj da se zaustavi na određeno vrijeme. To se koristi kako bi se omogućila stabilizacija vretena, hlađenje alata ili djelovanje rashladne tekućine.
- G17, G18, G19 – Odabir ravnine: G17 aktivira XY ravninu, G18 XZ ravninu, a G19 YZ ravninu, što je bitno pri radu u višeosnom načinu rada ili pri interpolaciji lukova izvan standardne ravnine.
- G21 / G20: Oni definiraju sustav jedinica, obično G21 za milimetre i G20 za inče.
- G43 – Kompenzacija duljine alata: Uzima u obzir da svaki alat ima različitu duljinu i primjenjuje odgovarajući korektor tako da stvarna dubina obrade bude onakva kakva je željena.
Specifični kodovi su također uobičajeni kod tokarilica, kao što su G71 za uzdužne cikluse grube obrade, G70 za završnu obradu profila ili G76 za cikličko narezivanje navoja, koji vam omogućuju definiranje konture i automatsko generiranje poznatih "ljestvi" međuprolaza.
Napredni primjer G-koda na CNC tokarilici
Da bismo vidjeli pravi potencijal ovih ciklusa, razmotrimo ovaj tipičan scenarij: počinjemo s cilindričnim blokom i želimo grubo izrađivanje velikih količina materijala s nekoliko linija, ostavljajući višak materijala za završni prolaz i završnu obradu koncem.
U programu tokarilice mogli bismo započeti definiranjem početne veličine materijala standardnom instrukcijom u simulatoru, identificiranjem programa brojem kao što je O0001, odabirom metričkog sustava s G21 i postavljanjem načina posmaka po okretaju s G99.
Zatim se naručuje izmjena alata nečim poput M06 T0101 (alat 1 s pomakom 1), okretaji vretena definirani su u G97 načinu rada (konstantni okretaji u minuti) s S1800 M03 za rotaciju u smjeru kazaljke na satu, a brzo se pozicionira s G00 blizu obratka (na primjer X26 Z2).
Zatim, pomoću G01 možete suočiti se s ciglom prolazeći kroz središte (X-1 F.05), vratite se u siguran položaj i uđite u poznati ciklus grube obrade G71. Ovaj ciklus je definiran u dva retka, koji specificiraju dubinu rezanja U, povlačenje R, početni blok P i završni blok Q konture, dodatke U i W te pomak F.
Konturne linije između, na primjer, N1 i N2 opisane su u nastavku: čeona obrada do X0, posmak u Z, luk G03 sa specifičnim radijusom, cilindrično tokarenje i konusno tokarenje. Važno je da je profil monotono rastući ili opadajući u promjeru kako bi ciklus ispravno radio.
Nakon što je gruba obrada pomoću G71 završena, pokreće se G70 P1 Q2 tako da se, s finom brzinom i pomakom, napravi završne detalje prateći istu konturu. Zatim možete poslati kolica u referencu s G28 U0 W0, zaustaviti vreteno s M05, promijeniti alat za narezivanje navoja T0303 i aktivirati ciklus G76 za generiranje navoja s više prolaza i parametrima dubine, kuta, koraka (npr. F1.5) i unutarnjeg promjera.
Konačno, kolica se vraćaju u sigurni položaj (G28 U0 W0) i program se završava s M30 (kraj i premotavanje) ili M00 (zaustavljanje bez premotavanja). Cijeli ovaj proces može se opisati s vrlo malo programskih redaka zahvaljujući fiksnim ciklusimašto uvelike pojednostavljuje svakodnevni rad.
Što je M-kod i koju ulogu igra
M-kod je poznat kao "razni" kod ili kod "strojnih funkcija". Dok se G-kod bavi geometrijom i kretanjem, M-kod kontrolira Pomoćne radnje: pokretanje ili zaustavljanje vretena, uključivanje rashladne tekućine, promjena alata, zaustaviti ili prekinuti program itd.
Formalno, to su naredbe koje počinju slovom M nakon kojeg slijedi broj, kao što je M00, M03, M05, M06, M08, M30Svaki od njih djeluje kao prekidač koji nešto uključuje ili isključuje ili uzrokuje promjenu kontrole u drugo stanje.
Važan detalj je da se, u pravilu, u svakom bloku koristi samo jedan blok. jedan M kodStavljanje dva ili više u isti redak obično je loša ideja jer se mnoge funkcije međusobno isključuju: vreteno se ne može istovremeno pokretati i zaustavljati u istoj naredbi bez da se stroj "zaglavi".
Za razliku od G-koda, koji je standardiziraniji, M-kodovi Znatno se razlikuju između proizvođača.Značenje kodova M03 ili M05 obično je isto u gotovo svim slučajevima, ali drugi kodovi (izmjena palete, hvataljka, posebni ciklusi) mogu se promijeniti, pa čak i format (M3 vs M03) može uzrokovati pogreške ako je kontrola stroga.
Najčešće korišteni M kodovi u CNC-u
Među najčešćim M-kodovima Programi koje ćete vidjeti u CNC-u su:
- M00 – Zaustavljanje programa: Kontrolirano pauzira izvršavanje dok operater ne pritisne za nastavak. Koristi se za inspekcije, ručne promjene ili jednokratne intervencije.
- M02 / M30 – Kraj programa: Oni označavaju da je program završen. M30, na mnogim kontrolerima, osim što zaustavlja, premotava na početak programa kako bi ga završio.
- M03 – Vreteno u pokretu (u smjeru kazaljke na satu): Vreteno se pokreće u smjeru kazaljke na satu, obično uz S vrijednost okretaja u minuti.
- M04 – Vreteno u pokretu (suprotno od kazaljke na satu): Isto kao M03, ali se okreće u suprotnom smjeru, korisno za određene operacije ili posebne konfiguracije.
- M05 – Zaustavljanje vretena: Usporava rotaciju, što je nužan korak prije promjene alata ili završetka operacije rezanja.
- M06 – Izmjena alata: Upućuje stroj da izvrši automatsku izmjenu alata na alat naznačen u T. Neophodno u obradnim centrima sa spremnikom alata.
- M08 – Rashladno sredstvo UKLJUČENO: Uključite sustav hlađenja (mlaz, kiša itd.) kako biste održali temperaturu i poboljšali površinsku obradu.
- M09 – Rashladno sredstvo ISKLJUČENO: Prekida protok rashladne tekućine, što je vrlo korisno neposredno prije izmjene alata ili na kraju operacije.
Iako su mnogi od ovih kodova slični od jednog stroja do drugog, obavezno ih je pregledati poseban priručnik za kontrolu jer neki M modeli mogu imati potpuno različite funkcije ovisno o proizvođaču.
G-kod i M-kod u FDM/FFF 3D printanju
Nešto vrlo neobično događa se u 3D printanju: iako govorimo o drugačijoj tehnologiji, srž upravljanja temelji se na isti koncept kao G-kod i M-kod nego u CNC-u. Firmware pisača (Marlin, Klipper, RepRap, itd.) interpretira linije i pomiče motore, zagrijava vrući dio, uključuje ventilatore ili vrši niveliranje kreveta.
Pisač ne razumije STL, OBJ ili 3D mreže; zna samo da mora pomaknite glavu na neke koordinateProces uključuje nanošenje materijala (ekstrudiranje) određenom brzinom i temperaturom. Rezač prevodi 3D geometriju u tisuće redaka G-koda.
Jednostavan primjer naredbe za pisač bio bi nešto poput G0 X15, koja pomiče X-os 15 mm u pozitivnom smjeru. Kombiniranjem X, Y, Z i E s naredbama G0/G1 postiže se sljedeće: nacrtajte svaki sloj djela na krevetu.
Uz G-kod koji opisuje komad, rezači uvijek generiraju početni i završni kod (početni G-kod i završni G-kod) koji se izvršava prije i nakon svakog zadatka ispisa. Ovi se skripti ponavljaju u svim zadacima osim ako ih ne promijenite.
Početno podešavanje obično uključuje vraćanje u početnu točku (G28), grijanje kreveta i vrućeg dijela (M140, M104, M109) te automatsko niveliranje ako je prisutan senzor. ekstruzija linije za pročišćavanjeitd. Kada se završi, grijači (M104 S0, M140 S0), motori (M84), ventilatori (M106 S0) se isključuju, a ponekad se pomiče i Z os kako bi se dio odmaknuo od hotenda.
Zašto mijenjati početni i završni G-kod u 3D ispisu
Iako većina rezača donosi prilično generičke zadane skripte Budući da rade s mnogim pisačima, često ih je vrijedno prilagoditi kako biste ih maksimalno iskoristili. Neki tipični razlozi su:
- Dodajte niz od automatsko niveliranje kreveta ako vaš pisač ima senzor.
- Uključite linije za prethodno pročišćavanje kako biste očistili ekstruder i poboljšali prianjanje prvog sloja.
- Konfigurirajte zvukove ili upozorenja kada je ispis završen.
- Bolja kontrola hlađenje vrućeg dijela i kreveta kako biste izbjegli savijanje ili kapanje niti.
- Na pisačima bez EEPROM-a, resetirajte Z pomake, PID parametre ili postavke koje se gube kada se isključi napajanje.
U programima za rezanje poput Cure to je prilično jednostavno: otvorite postavke pisača, postavke uređaja i vidjet ćete dva tekstualna okvira za početak G-koda i kraj G-kodaTamo možete uređivati, lijepiti isječke koda i prilagođavati ga svom specifičnom modelu.
Uobičajene G-kodne naredbe u skriptama 3D printera
Neke naredbe koje se obično pojavljuju Ovi skripti (ne potpuni programi) su:
- G92 E0: Resetirajte ekstruder na nulu tako da od tada nadalje, naredbe ekstruzije budu relativne u odnosu na tu točku.
- G28: Dovodi sve osi u njihov ishodište (homing), što je bitno prije početka ispisa.
- G1 XYFE: Kombinira X/Y kretanje, F pomak i E ekstruziju, obično za crtanje linija pročišćavanja ili pomicanje na određeni položaj na krevetu.
- G1 Z: Podesite visinu Z-osi kako biste spriječili da vrući dio udari u krevet ili gotovi dio.
- G1 FE: Naredbe za uvlačenje filamenta na kraju, kako bi se spriječilo kapanje.
- M106 S: Konfigurirajte brzinu ventilatora sloja, od 0 (isključeno) do maksimuma.
- M104 S0 / M140 S0: Isključuju ekstruder i krevet kada je posao završen.
- M84: Deaktivirajte sve motore kako bi osi bile slobodne.
Uz ove naredbe, svaki firmware dodaje vlastite kodove za niveliranje kreveta, napredne pauze, promjene filamenta itd. Zato je to toliko važno. znati točno što vaš pisač razumije.
Ključne razlike između G-koda i M-koda
Iako se uvijek pojavljuju zajedno i nadopunjuju se, G-kod i M-kod imaju različite uloge unutar CNC programiranja i 3D ispisa. Njihove razlike možemo sažeti u nekoliko točaka:
- Svrha: G-kod kontrolira putanje alata, položaje, orijentacije i brzine napredovanja. M-kod upravlja pomoćnim funkcijama kao što su vretena, rashladna sredstva, izmjene alata i prekid programa.
- Vrsta instrukcije: G-kod je geometrijske prirode, on diktira kako se stroj kreće; M-kod je operativan, fokusira se na stanja stroja koja ne uključuju nužno kretanje.
- Standardizacija: G-kodovi su relativno standardizirani u industriji, tako da G00, G01, G02 itd. obično znače istu stvar na različitim strojevima. Nasuprot tome, mnogi M-kodovi su više ovisi o proizvođaču i njihova značenja se mogu mijenjati.
- Težina u preciznosti: G-kod izravno utječe na dimenzijsku točnost dijela; neispravno parametrizirani G01 može uništiti konturu. M-kod ima neizravniji utjecaj (na primjer, uključivanje ili isključivanje rashladne tekućine utječe na toplinsku stabilnost i površinsku obradu).
- Složenost: G-kod blokovi su obično gušći, s mnogo koordinata, radijusa i napretka, dok je M-kod obično jednostavniji, ali vrlo važan za sigurnost i sekvenciranje.
U konačnici, program se može promatrati kao orkestar u kojem G-kod označava note i melodijuA M-kod odlučuje kada svaki instrument ulazi, kada nastupa tišina i kada se zavjesa zatvara.
Druge komplementarne naredbe u CNC programiranju
Osim G i M, postoje tri slova koja su bitna i u CNC i u 3D printanju: F, S i T. To nisu neovisni kodovi, već parametri koji prate pokrete ili funkcije:
- F (Dovod): Definira brzinu pomaka, na primjer u mm/min ili mm/okr, ovisno o tome je li aktivan G94 ili G95 (ili G99 na nekim upravljačkim elementima). Previsoka vrijednost F oštetit će alate; preniska će smanjiti vrijeme ciklusa i može rezultirati lošom završnom obradom.
- S (Brzina vretena): Označava brzinu vretena u okretajima u minuti kada se kombinira s M03 ili M04. Također može predstavljati i druge brzine u određenim kontekstima.
- T (Alat): Odaberite alat koji će se koristiti u izmjeni alata M06, pri čemu je ključno da odgovara stvarnom položaju alata u skladištu.
Primjer CNC naredbe za kretanje može biti G01 X-100. Y-50. Z35. F10, koja naređuje linearni pomak brzinom posmaka od 10 jedinica u minuti (ovisno o sustavu). Ako dodamo M03 S3000, naznačili bismo da na toj poziciji želimo da se vreteno okreće pri 3000 okretaja u minuti u smjeru kazaljke na satu.
Strastveni pisac o svijetu bajtova i tehnologije općenito. Volim dijeliti svoje znanje pisanjem, a to je ono što ću učiniti na ovom blogu, pokazati vam sve najzanimljivije stvari o gadgetima, softveru, hardveru, tehnološkim trendovima i još mnogo toga. Moj cilj je pomoći vam da se snađete u digitalnom svijetu na jednostavan i zabavan način.
