Arvprogrammjuhtimine

**Arvprogrammjuhtimine** ehk **APJ** ehk **CNC** on tööpinkide ja masinate tähtedest ja numbritest koosneva programmiga juhtimine. Tänapäeval toimub arvprogrammjuhtimine põhiliselt G-koodi kasutades.

CNC-masin töötleb materjali (metallist, plastikust, puidust, keraamikast või komposiidist) vastavalt kodeeritud programmeeritud juhistele, mille sätib masina operaator. Numerical control | technology | Britannica

## Arvprogrammjuhtimise olemus
Tänapäeval kasutatakse arvprogrammjuhtimist masinaehituses ja metallitööstuses väga laialdaselt. Esimesed arvprogrammjuhtimisega algelised seadmed loodi 1950. aastatel lennukitööstuses. Need olid kohmakad ja arvutiprogrammid vajasid mahukat matemaatilist ettevalmistust. Tänapäeval toodetakse mitmesuguseid eriotstarbelisi arvprogrammjuhtimisega tööpinke. Pingitootjad on välja arendanud APJ-pinkidele moodultehnika, mis võimaldab koostada eri otstarbega ja erinevate detailide töötlemiseks ette nähtud tööpinke. Tänapäeval on selliste pinkide märksõnadeks tootlikkus, paindlikkus ja kvaliteet. Kuid areng jätkub. Uued kiiremad protsessorid, täpsemad andurid ja muundurid võimaldavad infot üha kiiremini töödelda. Juba praegu on võimalik pingi mälus salvestada palju erinevaid programme ja detailide jooniseid.

## Kirjeldus
Liikumine kontrollib mitut telge, tavaliselt vähemalt kahte (X ja Y) ja tööriista spindlit, mis liigub Z-s (sügavus). Ülitäpse liikumise saavutamiseks juhivad Tööriista asukohta otsese ajamiga samm-mootorid või servomootorid. Avatud kontuuriga juhtimine töötab seni, kuni jõude hoitakse piisavalt väikestena ja kiirused pole piisavalt suured. Täpsuse ja kiiruse tagamiseks kaubanduslikel metallitöötlemismasinatel on neil integreeritud suletud ahelaga juhtimine. Numerical control | technology | Britannica

## G-kood
Automatiseeritud pingile käskude edastamiseks kasutatakse programmeerimiskeelt nimega “G-kood”. G-koodis on defineeritud lõikeriista trajektoor, selle liikumise kiirus jpm. G-koodi kasutatakse paljude tööpinkide seadistamiseks, näiteks treipink, freespink, 3D-printer ja mõõteriistad. https://et.wikipedia.org/wiki/G-kood

### Programmeerimiskeskkond
Tänapäeval genereeritakse G-kood CADi ja CAMi abil erinevates K-koodi redaktorites. G-koodi redaktorid, mis sarnanevad XML-redaktoritega, kasutavad värve, taandeid ja teisi vahendeid, et abistada kasutajaid. G-koodi arenduskeskkondadele integreeritud redaktorid tulenevad tavalise programmeerimise kasutusest.
What is G-code? - Definition from WhatIs.com (techtarget.com)

## Robotid tootmises
Tänapäeval kasutatakse enamikku roboteid tootmistegevuses: rakendused võib jagada kolme kategooriasse: materjali käitlemine, töötlemistoimingud ning kokkupanek ja kontroll. Materjalikäitlusrakendused hõlmavad materjali ülekandmist ning masina laadimist ja mahalaadimist. Materjali ülekandmise rakendused nõuavad, et robot liigutaks materjale või tööosi ühest kohast teise. Paljud neist ülesannetest on suhteliselt lihtsad, mis nõuavad, et robotid võtaksid osad ühelt konveierilt kätte ja paigutaksid teise. Muud ülekandetoimingud on keerukamad, näiteks osade asetamine kaubaalustele, mille robot peab arvutama. Masina laadimisel ja mahalaadimisel kasutatakse robotit osade laadimiseks ja mahalaadimiseks tootmismasinas. Selleks peab robotil olema haarats, mis suudab oli haarata. Tavaliselt peab haarats olema konstrueeritud spetsiaalselt konkreetse detaili geomeetria jaoks.
https://www.britannica.com/te HYPERLINK "https://www.britannica.com/technology/automation/Robots-in-manufacturing"chnology/automation/Robots-in-manufacturing

## APJ pingi juhtsüsteemide liigitus

Juhtsüsteem on APJ tööpingi põhiosa. Selle kaudu realiseeritakse aga mõnikord ka luuakse juhtprogramm. Juhtsüsteeme liigitatakse erinevate tunnuste alusel. Liigitamist järgmiste tunnuste alusel:

:1. Juhtsüsteemi tüübi järgi. Juhtsüsteemi tüüp määrab ära, kuidas toimub liikumine ühest punktist teise. Eristatakse:

* Täisnurkne juhtsüsteem- liikumine toimub paralleelselt või risti koordinaattelgedega.
* Positsioonjuhtimine- liikumine toimub tasapinnal või ruumis positsioneerimisega igas juhtprogrammis määratud punktis; lõikeriista liikumisel trajektoori ei kontrollita.
* Lineaarne juhtsüsteem- liikumine toimub mööda sirget programmis määratud punktide vahel.
* Kontuurjuhtsüsteem- Liikumine ühest punktist teise toimub täpselt mööda trajektoori, mis vastab kirjeldatud kontuurile. Liikumist kontrollib kasutatav interpolaator. Kui juhtsüsteem kasutab lineaarinterpolaatorit siis selle juhtsüsteemi abil saab sooritada ainult lineaarliikumist.

:2. Interpolaatori tüübi järgi eristatakse:

* Interpolaatorita (tänapäeval esineb harva).
* Lineaarse interpolaatoriga.
* Kaarja interpolaatoriga.
* Kõrgemat järku funktsioone kirjeldava paraboolinterpolaatoriga.

:3. Programmeerimise võimaluste järgi eristatakse:

*Töö absoluutses koordinaadistikus.
*Töö suhtelises koordinaadistikus.
*Töö universaalses koordinaadistikus.

:4. Programmi lause kuju järgi eristatakse:

*Fikseeritud pikkusega
* Ilma adressaatideta.
* Adressaatidega.
* vaba pikkusega.
* Kombineeritud struktuuriga (kombinatsioon neljast loetletud variandist).

:5. Informatsiooni kodeerimise koodi järgi:

* ISO 7-bitine kood- kasutusel eriti laialdaselt Euroopas, kuid ka mujal väljaspool USA-d
* EIA- kood- levinud põhiliselt USA-s

:6. Juhtprogrammi infokandja järgi:

* 8 realine perfolint- tänapäeval esineb harva.
* magnetlindiga kassett-tänapäeval esineb harva.
* Flopikettad.
* USB liidesega irdmälu.
* APJ pingi arvuti kõvaketas.

:7. Korrektsioonide andmise võimaluste järgi:

* Pole võimalik.
* On võimalik korrigeerida lõikeriista pikkust, asendit või selle variante.
*Lõikerežiimide korrigeerimise võimalused. Antakse tavaliselt protsentides, mille ulatust on võimalik korrigeerida.
* Kasutatavad spetsiaalrežiimid.
* Alamprogrammide kasutamise võimalus.
*Koordinaatide peegeldamise ja asendamise võimalus.
*Ekvidistandi automatiseeritud arvestamise ja korrigeerimise võimalus.
*Mitmesugused keerme lõikamise ja korrigeerimise võimalused.

:8. Töörežiimi järgi:

*Info sisestamise režiim.
*Info väljastamise režiim.
*Info korrigeerimise režiim.
*Poolautomaatne töörežiim.
*Automaatne töörežiim.
*Graafiline interaktiivne režiim.

:9. Juhtsüsteemi mälumaht sõnades või megabaitides.

:10. Juhtsüsteemi diskreetsus, juhtsüsteemi minimaalne ja maksimaalne võimalik nihutus diskreetsuse ühikutes.

## 4 Juhtsüsteemi tüüpi

Juhtsüsteemi tüüp määrab ära kuidas toimub liikumine ühest punktist teise. Erinevate juhtsüsteemide erisused on järgmises tabelis.


**APJ pinkidel kasutatavate juhtsüsteemide tüübid**

Juhtsüsteemi tüüp
Tööriista trajektoor
Tööriista kontakt detailiga
Rakendusala


Täisnurkne juhtimine
Interpolaatorit ei kasutata, liikumine paralleelne koordinaattelgedega
Lõikeriist on pidevas kontaktis detailiga
Silindriliste pindade treimine, freesimine paralleelselt telgedega


Positsioonjuhtimine
Interpolaatorit ei kasutata. Liikumine tugipunktide vahel toimub lühimat teed mööda.
Tööriist on kontaktis detailiga ainult töötlemise positsioonis
Puurimine, punktkeevitus, lehtmaterjali töötlemiskeskused augustamisel


Lineaarne juhtimine
Ülekande vahetamisega või lineaarse interpolatsiooniga
Lõikeriist on pidevas kontaktis detailiga
Kooniliste pindade treimine, sirgete freesimine


Kontuurjuhtimine
Ring või kõrgemat järku interpolaatoriga
Tööriist on pidevas kontaktis detailiga
Kujupindade treimine ja freesimine, kontuuride töötlemine, gaas ja laserlõikamine, traaterosioontöötlemine



## Programmeerimise viisid

On olemas mitu erinevat juhtprogrammi koostamise meetodit. Need on järgmised:

* Käsitsi juhtprogrammi koostamine. On kõige vanem, kõige töömahukam ja kõrget kvalifikatsiooni nõudev meetod. Juhtprogramm kirjutatakse käsitsi paberile ja viiakse perforaatori abil perfolindile, mida APJ pink kasutab programmikandjana. Muudatused programmis nõuavad uue perfolindi ettevalmistamist ja sisestamist. Tänapäeval leiab selline meetod vähe kasutamist.
*Programmeerimine editor režiimis arvutis. APJ pingi juhtsüsteemi püsimällu viiakse juhtprogramm online režiimis. Lihtsustub programmi muutmine. Töötlemisprotsessi on võimalik paremini simuleerida.
*Õpetav programmeerimismeetod. Programmeerija liigutab tööriista, seadme teekonnamõõtsüsteem mõõdab trajektoori ja koordinaadid salvestatakse juhtsüsteemi mällu. Detailide valmistamiseks ebatäpne. Leiab rakendust värvimisrobotite töö programmeerimisel.
* Kõrgema programmeerimiskeele kasutamine. See on APJ pingi juhtsüsteemist sõltumatu programmeerimismeetod. Vajab postprotsessorit, mis genereerib programmi konkreetse APJ pingi juhtsüsteemile sobivaks.
*Graafiline interaktiivne programmeerimine. APJ pingi operaatoripuldilt sisestatakse detaili geomeetriainfo, määratakse kindlaks tehnoloogiarežiim ja pingi juhtsüsteem ise genereerib juhtprogrammi. Kasutatakse keskmise keerukusega detailide töötlemise programmeerimiseks.
*CAD/CAM programmeerimine. Detaili joonis on CAD keskkonnas. CAM keskkonnas lisatakse tehnoloogiainfo ja genereeritakse juhtprogramm. Kasutatakse keeruliste detailide töötlemiseks.

## Arvjuhtimisprogrammi ülesehitus

Arvjuhtimisprogramm koosneb lausetest, programmi algust ja lõppu tähistavatest sümbolitest. Laused koosnevad sõnadest. Sõna omakorda koosneb adressaadist ja arvsõnast. Kui arvsõna ees puudub miinusmärk, loetakse tema väärtus positiivseks. Lauses on kindel sõnade järjekord. Mõned sõnad võib lausest ära jätta, kui neid on programmis eelnevalt kasutatud ja nad kehtivad vaikimisi.

Juhtprogrammi lause koostis on reglementeeritud DIN-normidega. Tänapäeval on juhtprogrammi koostamisel kasutusele võetud spetsiaalne keel CL DATA (Inglise: Cutter Location Data). Programmi struktuur on järgmine:

%PM[Programmi nimi],[kommentaar]

N01 [Lause number 01. Näiteks N17 G01 X19 Z4.80 F300 S150 T3 on lause. Tähed lauses on adressaadid ja numbrid arvsõnad]

N02 [Lause number 02.]

N03 [Lause number 03.]

*Lause numbrid ei pruugi kasvada alati ühe ühiku võrra. tavaliselt võetakse lausete numbrite kasvamise sammuks 5 ühikut. Seda selleks, et sellisel juhul on võimalik alati kahe lause vahele kirjutada kolmandat lauset. Seega võiks järgmine lause olla näiteks:*

N08 [Lause number 08. Laused 04, 05, 06 ja 07 on praegusel juhul tühjad laused ning neid pole vaja märkida.]

N13 [Lause number 13.]

Adressaatide jaotust gruppidesse näitab järgmine tabel:

Juhtprogrammis on tavaliselt ka mitmesuguseid juhtsümboleid ja märke. Juhtsümbolid tähistavad programmi algust, lausete lõppu, võimaldavad programmi töötlemisel märgitud osade vahelejätmist ja programmi kommentaaride lisamist jne. Juhtsümbolid ja märgid on esitatud järgmises tabelis.

## Ettevalmistavad funktsioonid

Ettevalmistavad funktsioonid määravad arvjuhtimissüsteemi töörežiimi. Ettevalmistavad funktsioonid on esitatud järgmises tabelis.

## Abifunktsioonid

Abifunktsioonid juhtprogrammi lauses annavad käske pingi ajamitele, võimaldades automatiseerida operaatori käsitsitööd. Olenevalt pingi kasutusalast on abifunktsioonid rühmitatud klassidesse vastavalt DIN 66 025-2: 1988–09.

### Klass 0: universaalsed abifunktsioonid

Funktsioonid on modaalse toimega, välja arvatud M00, M01, M02, M06, M30, M60.

Funktsioonid M00, M01, M02, M48 ja M60 kehtivad ühes lauses.

### Klass 1: freespingid, puurpingid, töötlemiskeskused

Funktsioonid on modaalse toimega ja kehtivad ühes lauses, välja arvatud M05, M09, M19, M71...M78.

### Klass 2: treipingid, treimistöötlemiskeskused

Funktsioonid on modaalse toimega ja kehtivad ühes lauses.

### Klass 3: lihvpingid ja mõõtmismasinad (funktsioonid määramata)

### Klass 4: gaas-, plasma-, vesijoaga lõikeseadmed, traaterosioonpingid

### Klass 5: adaptiivjuhtimisega seadmed (funktsioonid määramata)

### Klass 6: seadmed mitmes koordinaadistikus töötlemisega ja detailide teisaldamise võimalustega

## APJ pingi koordinaadistik

### Treimise koordinaadistik

Treimine toimub 2D koordinaadistikus. Pikiettenihkeks on Z- telg ja ristiettenihkeks on X- telg. Spetsiaalsed APJ treipingi konstruktsioonid näevad ette detaili töötlemist mitmes erinevas koordinaadistikus.

### Freesimise koordinaadistik

## Püsitsükkel

Püsitsükkel kujutab endast mittemuudetavat väikest programmi. Püsitsüklid võimaldavad programmeerida sageli korduvaid operatsioone ühe ettevalmistava funktsiooni kasutamisel ühes või kahes lauses. Erinevad pingitootjad kasutavad püsitsüklite kirjeldamiseks erinevaid ettevalmistavaid funktsioone. Ka erinevad juhtsüsteemid kasutavad sama tsükli väljakutsumiseks erinevaid ettevalmistava funktsiooni tähistusi.

### Püsitsüklid treimisel

#### Püsitsüklid pikitreimisel

Püsitsükkel pikitreimisel on modaalne ja talle peab eelnema samasse gruppi kuuluv ettevalmistav funktsioon. Mitme läbimiga töötlemisel tuleb sisestada ainult muutuvad parameetrid. Püsitsükli formaadid on järgmised:

* Silindrilise pinna puhul: N... G20 X(U)... Z(W)... F...
* Koonilise pinna puhul: N... G20 X(U)... Z(W)... R... F... (Kus R On X- telje suunaline koonilisus millimeetrites.)

#### Püsitsüklid ristitreimisel

### Püsitsüklid keerme lõikamisel

#### Mitme läbimiga keerme lõikamise püsitsükkel

Püsitsükli formaat:

N... G78 P1... Q1... R1...

N... G78 X(U)... Z(W)... R2... P2... Q2 F...

Kus esimeses lauses:
* P1 ja P2 on arvutuslik parameeter, mis määrab läbimite arvu ja profiili nurga.
* Q1 On ühel läbimil eemaldatav keskmine kihipaksus mikromeeterites (μm).
* R1 viimistlusläbimil eraldatav kihipaksus (mm)

Teises lauses:
* R2 on suhteline koonilisus (silindrilise pinna puhul R=0).
* P2 on keerme profiili kõrgus millimeetrites.
* Q2 on esimesel läbimil eemaldatava kihi paksus.
* F on keermesamm millimeetrites.

### Avade töötlemise püsitsüklid

#### Avade töötlemise püsitsüklid treimisel

Püsitsükli formaat:

N... G76. R...

N... G76 X(U)... Z(W)... P... Q... R... F...

Esimeses lauses:

* R on lõikeriista suhteline tagastumine murdelaastu tekitamiseks millimeetrites.

Teises lauses:

* X(U), Z(W) on kontuuri nurgapunkti K absoluutsed koordinaadid või teljesuunalise tsükli lähtepunkti suhteline koordinaat.
* Z(W)... on ava sügavus- sihtpunkti absoluutsed koordinaadid.
* P... on X- telje suunaline suhteline samm mikromeetrites (μm). P<lõikeriista tera laiusest.
* Q on Z- telje suunaline lõikesamm mikromeetrites (μm)
* R... Z- telje suunaline tagastumise samm.
* F... on ettenihe.

Veel avade töötlemise püsitsüklist:

* X(U) ja P ärajätmisel on G76 kasutatav puurimistsüklina (puur on positsioneeritud X0 asendis).
* Soone töötlemisel tuleb jälgida, et P oleks tera laiusest väiksem.
* Esimesel sammul Z- telje suunalist tagastumist ei toimu.
* Tagastumise väärtus on alati positiivne.

#### Avade töötlemise püsitsüklid freesimisel

Avade töötlemise tsüklid on G73 ja G89.

Süsteemsed ettevalmistavad funktsioonid on G98/G99.

* G98... töötlemissügavuse saavutamisel pöördub lõikeriist lähtetasandile.
* G99... töötlemissügavuse saavutamisel pöördub lõikeriist tagastumise tasandile, mis on määratud R parameetriga.

Kui funktsioonid G98 või G99 on määramata, siis liigub lõikeriist alati tagasi lähtetasandile. G99 kasutamisel peab parameeter R olema alati määratud. G98 puhul võib parameeter R jääda määramata. Parameetril R on erinev tähendus programmeerimisel absoluutsetes (G90) ja suhtelistes (G91) koordinaatides. Absoluutkoordinaatides programmeerimisel (G90) määrab parameeter R tagastumise tasandi kauguste lähtetasandi suhtes.

## Tehnoloogilised nullpunktid detaili töötlemiseks

Allpool olevas tabelis on ära toodud tehnoloogiliste nullpunktide tähised ja seletused. Need sümbolid ja tähised pole normeeritud, kuid on laialt kasutuses.

## Tehnoloogia määramine

### Tehnoloogia määramine treimisel

Detaili töötlemise programm treimisel kujutab endast lõikeriista (lõikeriistade) liikumist fikseeritud punktist koordinaatidega määratud kindlasse punkti. Seda lõikeriista punkti, mille liikumist kirjeldatakse, nimetatakse lõikeriista tsentriks. Treimisel on treitera tsentriks treitera tipp. Lõikeriista ja detaili omavahelise suhtelise liikumise tulemusena läbib lõikeriista tsenter teekonna, mida nimetatakse lõikeriista liikumise trajektooriks.

Lõikeriista liikumise trajektoor koosneb:

* tööliikumistest,
* tühiliikumistest,
* abiliikumistest.

Tööliikumised on seotud detaili pinna töötlemisega. Tühiliikumised on seotud lõikeriista positsioneerimisega. Abiliikumised on seotud lõikeriista manipuleerimisega, et detaili töötlemine saaks aset leida.

Detaili töötlemise programmi koostamiseks tuleb kindlaks määrata:

* Tööpingi koordinaatsüsteem – tööpingi nullpunkt;
* Detaili koordinaatsüsteem – detaili nullpunkt;
* Lõikeriista koordinaatsüsteem – lõikeriista nullpunkt.

Töötlemisvaru tuleb jagada kooriv- ja puhastöötluse vahel, määrata lõikeriistad ja tehnoloogilised režiimid. Olgu meil toorik, mille läbimõõt on 78 millimeetrit ja pikkus 152 millimeetrit. Töötlemisvaru otspindades 1 millimeeter ja välispinnal 3 millimeetrit läbimõõdu kohta. Töötlemine toimub kahel paigaldusel.

* esimene paigaldus- otspinna töötlemine ja välispinna töötlemine läbimõõtu 75 millimeetrit pikkusele 110 millimeetrit.
* teine paigaldus- otspinna töötlemine ja tooriku koorivtöötlus nelja läbimiga, detaili puhaskontuuri töötlemine koordinaatidega määratud tugipunktide vahel.

Esimesel paigaldusel eemaldame otspinnast 1&nbsp;mm ja töötleme välispinna läbimõõtu 75 millimeetrit pikkusele 110 millimeetrit. Järgneb teine paigaldus. Toorik seatakse üles töödeldud otspinna järgi. Järgneval koorivtöötlusel eemaldatav töötlemisvaru tuleb jagada läbimite vahel, nagu näha joonisel.

Seejärel tuleb määrata koorivtöötluse igal läbimil lõikeriista tugipunktid detaili koordinaatides.

Tugipunktid on näha kõrvaloleval joonisel ja tugipunktide koordinaadid on esitatud allolevas tabelis.

## Viited

## Kirjandus
* Ajakiri Tehnikamaailm 8/2004. Kuidas ise ehitada CNC pinki, lk 68–70.

What is G-code? - Definition from WhatIs.com (techtarget.com) 
Arvjuhtimine
Numerical control | technology | Britannica
Robotid tootmises
https://www.britannica.com/technology/automation/Robots-in-manufacturing  
Arvprogrammjuhtimine
Arvprogrammjuhtimise meetodid | Fractory