G-koodi

Helsinki Hacklabin wikistä
Versio hetkellä 2. helmikuuta 2021 kello 23.27 – tehnyt Haarald (keskustelu | muokkaukset)
Siirry navigaatioon Siirry hakuun

Left column Finnish!

Right column English

G-koodisyntaksia noudattava CNC-ohjelma koostuu matalan tason toiminnoista joita kutsutaan lauseiksi (block). Lauseet puolestaan rakentuvat sanoista (code). Sanat ovat joko "valmistelevia" G-koodeja tai "sekalaisia" M-koodeja.
G-koodisyntaksi on lähes rakenteeton sillä mitään ohjelmakontrollin ohjausrakenteita kieleen ei kuulu. Aliohjelmakutsu käyttäen M-koodisanoja on olemassa mutta ei juuri muuta.
G-koodi on tulkattua koodia siinä mielessä, että kooditulkki jäsentää aina yhden kokonaisen lauseen kerrallaan ja optimoi sisällön suorituksen ennen sen käynnistämistä. Lotan Fanuc-ohjain toimii siten, että lauseessa mahdollisesti olevista ristiriitaisista käskysanoista viimeksi kirjoitettu jää voimaan ja toteutetaan.
On erityisesti syytä tiedostaa, lähes kaikki G-koodisanat ovat modaalisia eli ne jäävät voimaan kunnes samaan modaaliryhmään kuuluva toinen koodi astuu niiden tilalle. Samoin lauseesta puuttuva argumentti saa sen arvon joka sillä on viimeksi ollut jossain aikaisemmassa lauseessa. Näin ollen muuttumatonta argumenttia ei tarvitse toistaa lause lauseelta.

A CNC program that follows G-code syntax consists of low-level functions called blocks. Sentences, in turn, are built from words (code). The words are either "preparatory" G-codes or "Miscellaneous" M-codes.
The G-code syntax is almost unstructured because no program control controls are included in the language. A subroutine call using M codewords exists but little else.
G-code is interpreted code in the sense that the code interpreter always parses one whole sentence at a time and optimizes the execution of the content before it is launched. Lota's Fanuc controller works in such a way that the last of the conflicting command words in a sentence remains valid and executed.
In particular, it should be noted that almost all G codewords are "modal", meaning that they remain in effect until another code belonging to the same modal group replaces them. Similarly, an argument that is missing from a sentence gets the value it last had in an earlier sentence. Therefore, the unchanged argument does not need to be repeated sentence by sentence.

Esimerkki yksinkertaisesta NC-lauseesta:
N001 G01 X500.000 Y60.000 Z0.000 M03
Rivinumero 001; koordinoitu liike työstönopeudella koordinaatteihin XYZ samalla käynnistäen kara pyörimään myötäpäivään

Esimerkki modaalisesta NC-lauseesta:
G01 X500. Y60. Z0. M03
X510.
X520.
Koordinoitu liike työstönopeudella koordinaatteihin 500/60/0, sen jälkeen 510/60/0 ja 520/60/0 koska G01 on modaalinen.

Example of a simple NC block:
N001 G01 X500.000 Y60.000 Z0.000 M03
Line number 001; coordinated movement at machining speed to XYZ coordinates while starting the spindle to rotate clockwise

Example of a modal NC block:
G01 X500. Y60. Z0. M03
X510.
X520.
Coordinated movement at machining speed to coordinates 500/60/0, then 510/60/0 and 520/60/0 because G01 is modal.

Lotan tunnistamat G-koodisanat

Useimmat G-koodilauseet muodostuvat valmistelevasta G-koodista, sekä siihen liittyvistä yhdestä tai useammasta argumentista. Lauseissa käytetään myös "sekalaisia" M-koodisanoja ohjaamaan koneen toimintoja päälle ja pois.
Koska useimmat G-koodisanat ovat modaalisia, usein riittää pelkkä argumenttien mainitseminen läskylauseessa, jolloin voimassa oleva modaalinen käsky toistetaan kyseisillä argumenteilla. Tästä edellä yksinkertainen esimerkki.

G-koodisanojen argumentit

Argumentti Ohjaa koodeja Toiminto
P_ --- Lyhennetty asemakoordinaatin esitystapa. Sama kuin X_ Y_ Z_ missä _ tarkoittaa koordinaatin numeroarvoa. Myös vaihtoehtoiset koordinaatit kuten IJK, UVW jne.
X, Y, Z Modaali 01 koodit Paikkakoordinaatit liikettä varten
A, B, C Modaali 01 koodit Kulmakoordinaatit X, Y, Z-akselien ympäri tapahtuvaa kiertoa varten (4. akseli)
I, J, K G02, G03 Suhteelliset paikkakoordinaatit ympyränkaaren keskipisteen sijoitamiseksi
U, V, W Modaali 01 koodit X, Y, Z-akselien suuntaiset suhteelliset paikkakoordinaatit liikettä varten
S M03, M04 Karan kierosluvun ohjearvo
F Modaali 01 koodit Syöttöliikkeen nopeus mm/min
H Modaali 01 koodit Työkalun pituus- ja sädekompensointi
T --- Työkalun valinta
R modaali 09 koodit

G02, G03

Liikkeen paluutaso katkoporauksessa ja vastaavissa

Säteen määrittely ympyräinterpolaatiossa

Q Modaali 09 koodit Porauksen askelsyvyys katkoporauksessa tms
P G04 Taukoaika ms
N --- Lauseen rivinumero (ei pakollinen)

Varsinaiset G-koodisanat

G-koodi Modaaliryhmä Toiminto
G00 01 Pikaliike annettuihin koordinaatteihin
G01 01 Koordinoitu liike työstönopeudella annettuihin koordinaatteihin
G02 01 Ympyräinterpolaatio myötäpäivään
G03 01 Ympyräinterpolaatio vastapäivään
G04 00 Tauko
G05 00 Suurnopeussyklillä koneistus
G09 00 Täsmällinen paikoitus
G15 17 Polaarikoordinaattimoodin peruutus
G16 17 Polaarikoordinaatimoodin asetus
G17 02 XY-tason asetus ympyräinterpolaatioon
G18 02 ZX-tason asetus ympyräinterpolaatioon
G19 02 YZ-tason asetus ympyräinterpolaatioon
G20 06 Mittayksiköt tuumina
G21 06 Mittayksiköt milleinä
G22 00 Esimerkki
G23 00 Esimerkki
G27 00 Kotiasemaan ajon tarkistus
G28 00 Ajo kotiasemaan
G29 00 Paluu kotiasemasta
G30 00 Paluu 2. kotiasemaan
G31 00 Toiminnon ohitus
G33 01 Kierteitys
G39 00 Nurkan kierto ympyräinterpolaation avulla
G40 07 Työkalun säteen kompensoinnin peruutus
G41 07 Työkalun säteen kompensointi vasemmalle
G42 07 Työkalun säteen kompensointi oikealle
G43 08 Työkalun pituuskompensointi summaten (+ suuntaan)
G44 08 Työkalun pituuskompensointi vähentäen (- suuntaan)
G45 00 Työkaluoffsetin kasvatus
G46 00 Työkaluoffsetin vähennys
G47 00 Työkaluoffsetin 2x kasvatus
G48 00 Työkaluoffsetin 2x vähennys
G49 08 Työkalun pituuskompensoinnin peruutus
G50 11 Skaalauksen peruutus
G51 11 Skaalauksen asetus
G52 00 Työkoordinaatiston siirto
G53 00 Liikkeen referointi konekoordinaatteihin
G54 14 Työkoordinaatiston 1 valinta
G55 14 Työkoordinaatiston 2 valinta
G56 14 Työkoordinaatiston 3 valinta
G57 14 Työkoordinaatiston 4 valinta
G58 14 Työkoordinaatiston 5 valinta
G59 14 Työkoordinaatiston 6 valinta
G60 00 Yksisuuntainen paikoitus
G61 15 Tarkka pysäytystila
G62 15 Automaattinen nurkan ohitustila
G63 15 Kierteitystila
G64 15 Leikkuutyöstötila
G65 12 Makrokäsky, makrokutsu
G66 12 Kustom-makron modaalinen kutsu
G67 12 Kustom-makron modalisen kutsun peruutus
G68 16 Koordinaatiston kierto
G69 16 Koordinaatiston kieron peruutus
G73 09 Katkoporaus-työkierto 1
G74 09 Vastakierteitys-työkierto
G76 09 Tarkkuusavarrus
G80 09 Työkierron peruutus
G81 09 Pisteporaus-työkierto
G82 09 Vastaporaus-työkierto
G83 09 Katkoporaus-työkierto 2
G84 09 Kierteitys-työkierto
G85 09 Avarrustyökierto
G86 09 Avarrustyökierto
G87 09 Vasta-avarrustyökierto
G88 09 Avarrustyökierto
G89 09 Avarrustyökierto
G90 03 Absoluuttikoordinaattien valinta
G91]] 03 Suhteellisten koordinaattien valinta
G92 00 Absoluuttikoordinaatiston origon asetus
G94 05 Syöttö yks/minuutti
G95 05 Syöttö yks/karan kierros
G96 13 Vakio-pintanopeussäätö päälle
G97 13 Vakio-pintanopeussäätö pois päältä
G98 10 Työkierrossa välipaluu alkupisteen tasalle
G99 10 Työkierrossa välipaluu R-koordinaatin tasalle

Lotan tunnistamat M-koodisanat

M-koodi Toiminto
M00 Pakollinen tauko. Ohjelma pysähtyy tähän kunnes käyttäjä painaa [CYCLE START] jolloin ohjelma jatkaa
M01 Ehdollinen tauko. Sama kuin edellä, mutta vain mikäli paneelin [OPT STOP] on painettuna aktiiviseksi
M02 Ohjelman lopetus. Suoritus päättyy ja ohjelma kuitataan ajetuksi.
M03 Kara liikkeelle myötäpäivään. Kara lähtee pyörimään nopeudella joka on aiemmin asetettu argumentilla S
M04 Kara liikkeelle vastapäivään.
M05 Kara seis.
M06 Työkalun vaihto - suorituskäsky. Edeltävä valinta käyttäen käskysanaa T toteutetaan tällä toiminnolla.
M08 Leikkuuneste päälle. Edellytää, että paneelissa on valittu (COOLANT) [CLNT AUTO] aktiiviseksi
M09 Leikkuuneste pois
M19 Karan orientointi. Kiertää karan asentoon jossa työkalun vaihto tapahtuu. Samaa asentoa käytetään mm. vasta-avarruksessa jne
M29 Jäykkä kierteitystila päälle
M30 Ohjelman lopetus ja paluu alkuun
M40 4. akselin lukitus
M41 4. akselin vapautus
M94 Akselin peilauksen peruutus
M95 X-akselin peilaus
M96 Y-akselin peilaus
M98 Aliohjelman kutsu
M99 Aliohjelmasta paluu



Ylös