NC ohjelman rakenne ja NC koodit


Sisällysluettelo



Tavoitteena on ymmärtää työstörata sekä ohjelman modulimainen rakenne. Lisäksi selvitetään ohjelmassa sallitut merkit sekä valmistelevat ja kytkevät koodit. Työstörata Selkeyden vuoksi on hyvä laatia NC-ohjelma työstörata-ajattelua soveltaen. Voidaan ajatella, että ohjelman kukin moduli eli työstörata koostuu yhden työkalun liikkeistä työkalun vaihdosta työkalun vaihtoon. Näin NC-ohjelma voi koostua yhdestä tai useammasta työstöradasta. Työstöradat on luotava itsenäisiksi kokonaisuuksiksi, jotta niitä voidaan tarvittaessa ryhmitellä uuteen järjestykseen. Työstöratojen järjestys ilmaisee kappaleen vaiheistuksen. Tuotannossa voi joskus tapahtua niin, että työkalujen järjestystä muutetaan. Ohjelman toimintojen täydellisyys ja itsenäisyys määräävät silloin, kuinka paljon työtä joudutaan tällöin tekemään.

Työstörata on kaiken NC-ohjelmoinnin perusta. Se selkeyttää ohjelmaa, koska kaikki tietyn työkalun käsittävät toiminnot ovat yhdessä kohtaa ohjelmassa. Myös uudet NC-ohjelmointijärjestelmät on laadittu työstörata periaatteelle. Työstöratoja voidaan siirtää itsenäisinä moduleina listatussa ohjelmassa eri paikkaan. Käsittelyraja syntyy työstöratojen rajalle. Vain työkalukutsu voi häiritä tätä myöhemmin tehtävää järjestelyä.

NC-koneistajan on helpompi seurata ohjelman toimintaa itse koneella. Niin koneistuskeskuksille kuin myös sorveille tunnetaan vain muutama erityyppinen työstörata. Tietyt työkalut kykenevät vain tiettyihin työstöratoihin ja niiden toteuttamiseen. Työstöradalla on itsenäinen tavoite, esimerkiksi tasata otsapinta, rouhia liika materiaali pois, porata reikiä ja tehdä kierteitä. Jo ennen varsinaisen ohjelmakoodin kirjoittamista NC-ohjelmaa suunniteltaessa on hyvä miettiä, millä työkaluilla kappale koneistetaan ja mitkä ovat eri työstöratojen tavoitteet. Näin jo ohjelman suunnitteluvaiheessa voidaan tarkistaa koko kappaleen koneistus suunnittelemalla tarpeelliset työstöradat. Tämän jälkeen voidaan suunnitella niiden sisälle erilliset liikkeet, laskea liikkeiden koordinaatit sekä kirjoittaa ohjelma.

Missä järjestyksessä kappaleen koneistamiseksi tarvittavat työstöradat sitten laaditaan? Suurimman osan järjestyksestä määräävät työkalut. Poraus on tehtävä ennen kierteitystä ja kierteen suun viisteytys porauksen ja kierteytyksen välissä. Rouhinta on suoritettava ennen viimeistelyä, reiän avaus ja ympyränkaari-interpolointi ennen laakeripesän avartamista. Mutta yleisiäkin sääntöjä voidaan mainita. Raskaimmat koneistamiset tehdään ensin. Tällainen on esimerkiksi kappaleen yläpinnan jyrsiminen teräpäällä. Jos kappale niiden aikana liikkuu, voidaan koneistus pysäyttää, eikä lastuaminen ole edennyt pitkälle hitaampiin ja kalliimpiin työvaiheisiin saakka. Näin ei mahdolliselle hylkykappaleelle ole koitunut kaikkia lähes valmiin kappaleen kustannuksia. Myös jäysteiden syntyminen voi määrätä työkalujärjestystä. Mikäli vain suinkin kyetään jäysteitä ja ylimääräistä työtä estämään työkalujen käyttöjärjestyksellä, niin se on syytä tehdä.

NC-koulutuksessa on hyvä soveltaa työstörataa. Tällöin oppilaan ei tarvitse heti alussa kokea suurta epätoivoa koko kappaleen hallitsemattoman ohjelmoinnin vuoksi. Oppilaat voivat jopa jakaa kappaleen ohjelman erilaisiin työstöratoihin. Sen jälkeen ohjelmoidaan vaikkapa oppilaspareittain nämä työstöradat. Näistä tuloksista voidaan sitten koota kokonainen NC-ohjelma.

Työstörata auttaa jaksottamaan ohjelmointityötä. Ajatukset voidaan keskittää yhteen työstörataan kerrallaan. Tauko tai ruokatunti voidaan pitää sen jälkeen, kun taas yksi työstörata on saatu ohjelmoitua. Tämän jälkeen voidaan keskittyä uuteen työstörataan. Näin ajatuksia ei tarvitse hajottaa kovin laajalle alueelle.

NC-ohjelmointi on hyvin pikkutarkkaa työtä. Virheitä tai epäloogisuutta ei sallita kertaakaan. Yksikin ajatuskatko, joka vaikuttaa ohjelmaan, voi aiheuttaa suuria vahinkoja. Työkalun voi törmätä pikaliikkeellä, jolloin ainakin työkalu tai jopa kone rikkoontuu, tai työkappale voi irrota ja lentää vahingoittaen ihmisiä tai koneita ja laitteita.

Kullakin työstöratatyypillä on tietyt liikkeet ja toiminnot, joiden aikana voi sattua kaikkein suurimmat vahingot. Kun esimerkiksi poraustyöstöradat laaditaan yrityksessä toistuvasti samalla tavalla, tottuvat koneistajat seuraamaan virhealttiita vaiheita. Tästä voidaan mainita seuraava esimerkki. Työstöradan ensimmäinen liike sisälsi aina työkalun pituuden kompensoinnin ottamisen. Tuo ensimmäinen liike tapahtui aina Z-arvoon 50. Tällöin koneistaja näki heti, ottiko kone kompensoinnin oikein. Mikäli työkalu näytti menevän lähemmäksi kuin 50 mm, hänellä oli hieman aikaa hidastaa liikettä prosenttikytkimellä tai jopa pysäyttää kone. NC-ohjelmoija ei myöskään unohda eikä sekaannu ajatuksissaan niin usein, kun hän laatii toistuvasti kurinalaisia, samantapaisia työstöratoja samanlaisin periaattein.

Työstörata-ajattelu ikään kuin standardisoi yrityksen NC-ohjelmat. Se sopii kaikille NC-koneille. Valitettavasti vain NC-koneiden mukana toimitettavat ohjelmointikäsikirjat eivät tue lainkaan työstöratoja. Ne esittelevät lähinnä erilaisten NC-sanojen käyttöä ja eri tilanteiden ohjelmointia. Tämän lisäksi on hyvä oppia rakentamaan moduloituja ja siistejä ohjelmia.

Myös ohjelman alku ja loppu voivat olla itsenäisiä työstöratojen tapaisia kokonaisuuksia. Pyöröpöydän kääntäminen taas voi olla itsenäinen kokonaisuus työstöradan tapaan, tai se voidaan sisällyttää tietyn työkalun työstörataan yhtenä akselin liikkeenä.

NC-ohjelmissa on nykyisin käytettävissä erilaisia aseteltavia muuttujia. Tällaisia kutsuttavia arvoja voivat olla joko käyttäjän asettelemat muuttujat tai sitten systeemimuuttujat. Näiden muuttujien käyttäminen helpottuu myös työstöratojen avulla. Kussakin työstöradassa käytetyistä muuttujista voidaan pitää kirjaa.

Työstörataan kuuluu lyhyt kommentti, joka sisältää lyhyen kuvauksen työstöradan tavoitteesta sekä käytettävän työkalun.

Esimerkki työstöradasta (Kira KV 5 MC varustettuna Fanuc 11 MF -ohjauksella)

N100 T07 - työkalun kutsu
N105 M06 - työkalun vaihto
N110 S850 F220 M03 - lastuamisarvojen määrittäminen
( KIERTEEN M16 REIAN PORAUS PO14 ) - työstöradan kommentti
N115 G00 G43 Z50. H07 M08 - pituudenkompensoinnin ottaminen
N120 G99 G81 X0. Y0. Z-12.5 R3. - reiän paikka ja työkierron määrittely
N130 G80 M09 - työkierron peruutus ja lastuamisnesteen sulkeminen
N135 G28 Z50. M05 - paluu z-akselin suunnassa työkalun vaihtopisteeseen
N140 G49 G00 X-100. Y200. - pituuden kompensoinnin peruutus, väistöasemaan ajo

Alkuun

Ohjelman yleiset koodit ja sanat

NC-ohjelman koodit ja sanat ovat kansainvälisesti standardoidut, ISO 840-1973, ISO 841-1974, ISO 1056-1976, ISO 1057-1973. Yleensä sama sana tarkoittaa samaa asiaa jokaisella NC-koneella. Suurin osa valmistelevista G-koodeista ovat kullekin konetyypille samat. Koordinaattikoodit ilmaisevat tietenkin aina koordinaattitietoa. Eniten eroa on eri koneiden välillä kytkevien M-koodien osalla. M-koodit ilmaisevat konekohtaisia kytkentäfunktioita, ja niissä on eroja jopa eri yritystenkin hankkimien samanlaisten koneiden välillä.

NC-ohjelman yhtä riviä kutsutaan NC-lauseeksi. Usein sen lopussa on EOB, (end of block). Koneista riippuen tämä kaksi kirjoittumatonta koodia sisältävä lauseen loppu voi olla CR+LF tai toisin päin LF+CR. Kirjoituskonetermein CR merkitsee vaunun palautusta (carriage return) ja LF rivin siirtoa (line feed). Parhaiten nämä asiat ymmärtää matriisikirjoittimen käyttäytymisestä.

Esimerkki NC-lauseesta:

N001 G01 X500.000 Y60.000 Z0.000 M03

NC-sanaksi kutsutaan NC-lauseen kutakin koodia. NC-sana käsittää osoitekirjaimen ja sitä seuraavan numeroarvon.

Esimerkkejä NC-sanoista:

N001
G01
M05
X123.456

Normaalisti NC-sanat kirjoitetaan NC-lauseeseen seuraavassa järjestyksessä:

N G X Y Z I J K Q R D H F S T M

Seuraavassa esitetään NC-osoitteet ja niiden merkitys:

O - ohjelman numero
N - lausenumero
G - valmistelevat toiminnot, liiketila
X, Y, Z - liikekoordinaatit koordinaattiakseleiden suuntaan
A, B, C - lisäakseleiden liikekoordinaatit
U, V, W - lisäakseleiden liikekoordinaatit
R - ympyräkaaren säde, kulman pyöristys
I, J, K - kaaren keskipisteen koordinaatit, viisteet
F - syöttönopeus
S - karan pyörimisnopeus
T - työkalun numero
M - kytkentätoiminto
B - pyöröpöydän asema
H - pituuden kompensointinumero
D - säteen kompensointinumero
P, X - viive
P - aliohjelman numero, toistettavan lauseen lausenumero
L - toistokertojen määrä
P, Q, R - kiinteän työkierron parametrit.
 
Lisäksi NC-ohjelmissa esiintyy seuraavia merkkejä:

- luvut 0 – 9
- desimaalipiste .
- + ja - -merkit
- / -merkki valinnaisena lauseenohituksena
- % -merkki ohjaamaan reikänauhanlukijaa
- tabulointimerkki
- LF tai CR tai kummatkin kuvaaman lauseen loppua
- blanko eli välilyöntimerkki sanojen välissä
- ( ) -merkit ilmaisemaan kommenttia.

Alkuun

Valmistelevat G-koodit G-koodit jaetaan kahteen tyyppiin. Tällöin puhutaan koodien modaalisuudesta. Valmistelevista G-koodeista on jokaisesta tiedettävä sen voimassaoloaika. Myös koneesta on tiedettävä, mitkä G-koodit sillä on voimassa koneen käynnistyksen tai resetoinnin jälkeen. Resetoinnilla tarkoitetaan oletusasetusten palauttamista.

G-koodi on ei-modaalinen, kun se on voimassa vain niissä lauseissa, joissa se on annettu ja modaalinen, kun se voimassa niin kauan kuin toinen samaan ryhmään kuuluva G-koodi annetaan.

Seuraavat G-koodit ovat käytettävissä (koodit numeerisessa järjestyksessä sekä kunkin koodin modaalisuusluokka, maininta modaalisuudesta ja lyhyt kuvaus koodin toiminnasta).

G00 01 modaalinen paikoitus pikaliikkeellä
G01 01 modaalinen suoraviivainen syöttöliike
G02 01 ympyränkaari-interpolointi myötäpäivään
G03 01 ympyränkaari-interpolointi vastapäivään
G04 00 viive
G07 00 näennäisakselin interpolointi
G09 00 tarkkuuspaikoitus
G10 00 parametrien asetus alkaa
G11 00 parametrien asetus päättyy
G15 17 modaalinen ohjelmointi napakoordinaatein päättyy
G16 17 ohjelmointi napakoordinaatein alkaa
G17 02 modaalinen XY-tason valinta interpolointitasoksi
G18 02 modaalinen ZX-tason valinta interpolointitasoksi
G19 02 modaalinen YZ-tason valinta interpolointitasoksi
G20 06 ohjelmointi tuumamitoin
G21 06 ohjelmointi metrisin mitoin
G22 04 modaalinen työalueen rajojen tarkastelu päälle
G23 04 modaalinen työalueen rajojen tarkastelu pois päältä
G27 00 referenssipisteeseen paluun tarkistus
G28 00 ajo referenssipisteeseen
G29 00 paluu lastuamiseen referenssipisteestä
G30 00 ajo toiseen, kolmanteen tai neljänteen referenssipisteeseen
G31 00 ohitustoiminta
G33 01 kierteen sorvaus
G37 00 automaattinen työkalun pituuden mittaus
G40 07 modaalinen työkalun säteenkompensoinnin peruutus
G41 07 modaalinen työkalun säteenkompensointi vasemmalle
G42 07 modaalinen työkalun säteenkompensointi oikealle
G43 08 työkalun pituuden kompensointi päälle
G44 08 työkalun pituuden kompensointi päältä
G45 00
G46 00
G47 00
G48 00
G49 08 modaalinen työkalun pituuden kompensoinnin peruutus
G50 11 työkalun liikkeiden skaalaus päättyy
G51 11 työkalun liikkeiden skaalaus alkaa
G52 00 paikalliskoordinaatiston asetus
G53 00 konekoordinaatistoon paluu
G54 14 modaalinen 1. työkappalekohtaisen koordinaatiston valinta
G55 14 2. työkappalekohtaisen koordinaatiston valinta
G56 14 3. työkappalekohtaisen koordinaatiston valinta
G57 14 4. työkappalekohtaisen koordinaatiston valinta
G58 14 5. työkappalekohtaisen koordinaatiston valinta
G59 14 6. työkappalekohtaisen koordinaatiston valinta
G60 00 paikoitus yhdeltä suunnalta, tarkkuuspaikoitus
G61 15
G62 15
G63 15 kierteitystila, karan pyöriminen ja Z-akseli synkronoidut
G64 15 modaalinen normaali lastuamisen tila
G65 00 aliohjelman kutsu
G66 12 aliohjelman modaalinen kutsu A
G66.1 12 aliohjelman modaalinen kutsu B
G67 12 aliohjelman modaalisen kutsun A/B peruutus
G68 16 koordinaatiston kierto
G69 16 koordinaatiston kierron peruutus
G73 09 poraustyökierto, syvänreiän poraus
G74 09 poraustyökierto, vastapäivään kiertävän kierteen kierteitys
G76 09 poraustyökierto, viimeistelyavarrus
G80 09 poraustyökierron peruutus
G81 09 poraustyökierto, poraus
G82 09 poraustyökierto, upotus
G83 09 poraustyökierto, syvänreiän poraus
G84 09 poraustyökierto, kierteitys
G85 09 poraustyökierto, kalvinta, avarrus
G86 09 poraustyökierto, avarrus
G87 09 poraustyökierto, takatasaus
G88 09 poraustyökierto, avarrus
G89 09 poraustyökierto, avarrus
G90 03 modaalinen absoluuttinen ohjelmointi
G91 03 modaalinen inkrementaalinen ohjelmointi
G92 00 koordinaatiston asetus, karan maksimi kierrosluvun asetus
G93 05
G94 05 syöttönopeus ohjelmoidaan minuuttia kohden
G95 05 syöttönopeus ohjelmoidaan kierrosta kohden
G96 13 vakiolastuamisnopeus päälle
G97 13 modaalinen vakiolastuamisnopeus pois päältä
G98 10 modaalinen poraustyökierroissa, paluu lähtötasolle
G99 10 modaalinen poraustyökierroissa, paluu R-tasolle

Seuraavassa koodit ovat koottuina ryhmittäin. Ryhmän koodin voimassaolo kumoutuu samalla kun ryhmän uusi koodi tulee voimaan.

Sekalaiset toiminnot:
G04 00 viive
G07 00 näennäisakselin interpolointi
G09 00 tarkkuuspaikoitus
G10 00 parametrien asetus alkaa
G11 00 parametrien asetus päättyy
G27 00 referenssipisteeseen paluun tarkistus
G28 00 ajo referenssipisteeseen
G29 00 paluu lastuun referenssipisteestä
G30 00 ajo toiseen, kolmanteen tai neljänteen referenssipisteeseen
G31 00 ohitustoiminta
G37 00 automaattinen työkalun pituuden mittaus
G45 00
G46 00
G47 00
G48 00
G52 00 paikalliskoordinaatiston asetus
G53 00 konekoordinaatistoon paluu
G60 00 paikoitus yhdeltä suunnalta, tarkkuuspaikoitus
G65 00 aliohjelman kutsu
G92 00 koordinaatiston asetus, karan maksimi kierrosluvun asetus

Liiketilat:
G00 01 modaalinen paikoitus pikaliikkeellä
G01 01 modaalinen suoraviivainen syöttöliike
G02 01 modaalinen ympyränkaari-interpolointi myötäpäivään
G03 01 modaalinen ympyränkaari-interpolointi vastapäivään
G33 01 kierteen sorvaus

Interpolointitason valinta:
G17 02 modaalinen XY-tason valinta
G18 02 modaalinen ZX-tason valinta
G19 02 modaalinen YZ-tason valinta

Ohjelmointitavan valinta:
G90 03 modaalinen absoluuttinen ohjelmointi
G91 03 modaalinen inkrementaalinen ohjelmointi

Työalueen tarkastus:
G22 04 modaalinen työalueen rajojen tarkastelu päälle
G23 04 modaalinen työalueen rajojen tarkastelu pois päältä

Syöttönopeuden ohjelmointi:
G93 05
G94 05 syöttönopeus ohjelmoidaan minuuttia kohden
G95 05 syöttönopeus ohjelmoidaan kierrosta kohden

Mittajärjestelmän määrittäminen:
G20 06 ohjelmointi tuumamitoin
G21 06 ohjelmointi metrisin mitoin

Työkalun säteen kompensoinnin käsittely:
G40 07 modaalinen työkalun säteenkompensoinnin peruutus
G41 07 modaalinen työkalun säteenkompensointi vasemmalle
G42 07 modaalinen työkalun säteenkompensointi oikealle

Työkalun pituuden kompensoinnin käsittely:
G43 08 työkalun pituuden kompensointi päälle
G44 08 työkalun pituuden kompensointi päältä
G49 08 modaalinen työkalun pituuden kompensoinnin peruutus

Poraustyökierrot:
G73 09 poraustyökierto, syvänreiän poraus
G74 09 poraustyökierto, vastapäivään kiertävän kierteen kierteitys
G76 09 poraustyökierto, viimeistelyavarrus
G80 09 poraustyökierron peruutus
G81 09 poraustyökierto, poraus
G82 09 poraustyökierto, upotus
G83 09 poraustyökierto, syvänreiän poraus
G84 09 poraustyökierto, kierteitys
G85 09 poraustyökierto, kalvinta, avarrus
G86 09 poraustyökierto, avarrus
G87 09 poraustyökierto, takatasaus
G88 09 poraustyökierto, avarrus
G89 09 poraustyökierto, avarrus

Poraustyökierron paikoitustason valinta:
G98 10 modaalinen poraustyökierroissa, paluu lähtötasolle
G99 10 modaalinen poraustyökierroissa, paluu R-tasolle

Työkalun liikkeiden mittakaavamuunnokset:
G50 11 skaalaus päättyy
G51 11 skaalaus alkaa

Aliohjelmien käsittely:
G66 12 aliohjelman modaalinen kutsu A
G66.1 12 aliohjelman modaalinen kutsu B
G67 12 aliohjelman modaalisen kutsun A/B peruutus

Vakiolastuamisnopeuden käsittely:
G96 13 vakiolastuamisnopeus päälle
G97 13 modaalinen vakiolastuamisnopeus pois päältä

Työkappalekoordinaattien käsittely:
G54 14 modaalinen 1. työkappalekohtaisen koordinaatiston valinta
G55 14 2. työkappalekohtaisen koordinaatiston valinta
G56 14 3. työkappalekohtaisen koordinaatiston valinta
G57 14 4. työkappalekohtaisen koordinaatiston valinta
G58 14 5. työkappalekohtaisen koordinaatiston valinta
G59 14 6. työkappalekohtaisen koordinaatiston valinta

G61 15
G62 15
G63 15 kierteitystila
G64 15 modaalinen normaali lastuamisen tila

Koordinaatiston kierron ja liikkeiden kierron käsittely:
G68 16 koordinaatiston kierto
G69 16 koordinaatiston kierron peruutus

Ohjelmointi napakoordinaatein:
G15 17 modaalinen ohjelmointi napakoordinaatein päättyy
G16 17 ohjelmointi napakoordinaatein alkaa

Alkuun

Kytkevät M-koodit M-koodit eroavat eri koneilla huomattavasti enemmän toisistaan kuin G-koodit. Koneen toimittaja ja lisälaitteiden valmistaja voi ottaa käyttöön vapaita M-koodeja melkeinpä mielivaltaisesti. Tämän vuoksi pitää kunkin koneen sallitut kytkentäkoodit opetella, samoin kuin niiden toiminta. Seuraavassa kuitenkin luettelo yleisesti käytetyistä M-koodeista.

M00 - ohjelman loppu
M01 - valinnainen pysäytys
M02 - ohjelman loppu
M03 - karan käynnistys myötäpäivään
M04 - karan käynnistys vastapäivään
M05 - karan pysäytys
M06 - työkalun vaihto
M08 - jäähdytys päälle
M09 - jäähdytys pois päältä
M10 - oheislaitteen lukinta
M11 - oheislaitteen lukinnan avaus
M19 - karan pysäytys vakiokulmaan
M30 - ohjelman loppu

Alkuun