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 |
Ohjelman yleiset koodit ja sanat
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. |
- 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.
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
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