Nyt on CNC-foorumin tukeminen helppoa!
Maksu onnistuu PayPalin kautta myös kortilla
Konemies kiittää

Työkalun vaihto.

Aloittaja jussi, 13.05.16 - klo:16:37

« edellinen - seuraava »

0 Jäsenet ja 1 Vieras katselee tätä aihetta.

jussi

Moi. Tarkoitus olisi tehdä työkalunvaihdosta sujuvampaa. onko joku tehnyt tai osaako sanoa, että onko edes teoriassa mahdollista. Niin ei tule tuhlattua aikaa mahdottomuuteen.
Eli se mitä haluaisin olisi seuraavaa.
Aloitus kotiasemaan ajo-> nollaus-> z-akselin nollaus kappaleen pintaan->x,y nollaus aloituskohtaan.
Sitten, kun ohjelmassa tulee työkalun vaihto kone ajaisi ennalta määritettyyn paikkaan ajaa touch-probeen ja tallentaa terän z-aseman jonnekkin ja siirtyy työkalunvaihto kohtaan.
Työkalun vaihdon jälkeen, kun ohjelmaa jatketaan ajaisi kone uudella terällä touch-probeen ja ottaisi muistista edellisen terän z-aseman tälle uudelle terälle ja jatkaisi siitä eteenpäin.
Tuon proben sellaisenaan sain jo toimimaan ja se tulisi olemaan kiinteässä paikassa.

Kremmen

Onko sulla:
- makasiinia koneessa ja/tai ohjaimessa  listaa työkalun pituuksista
- muistipaikkoja johon voi ohjelmoida työkoordinaatistojen X/Y/Z positioita
- jos edellinen, niin onko sulla käytettävissä myös EXT koordinaatisto eli työkoordinaatisto 0 (aina päällä). Fanuceissa on tämmöinen.

Jos kaikkiin edellisiin "kyllä" niin sitten homman voi automatisoida hienosti, muuten vähän riippuu.

Nothing sings like a kilovolt
Dr W. Bishop

Ville Vaho

Muuttujia emc ilmeisesti tukee? Ja g koodia?

Muuttujia on ainakin muissa koneissa kahta tyyppiä, pysyviä (eivät katoa ennen päällekirjoitusta) ja katoavia (katoavat kun virrat katkeaa/resetoidaan)

Jos emc tukee muuttujia jotka säilyy, ja paikkatietoa pystyy g koodilla käsittelemään, homma onnistuu varmasti pienellä makrolla kuten kaikkialla muuallakin. Aliohjelmalla vois asian kuvitella tapahtuvan.

Mutta kun emc on melkoisen avointa kirjaa, uskoisin että asia on jo ratkaistu tavalla tai toisella.
-vilderi

jussi

Lainaus käyttäjältä: Kremmen - 13.05.16 - klo:17:53
Onko sulla:
- makasiinia koneessa ja/tai ohjaimessa  listaa työkalun pituuksista
- muistipaikkoja johon voi ohjelmoida työkoordinaatistojen X/Y/Z positioita
- jos edellinen, niin onko sulla käytettävissä myös EXT koordinaatisto eli työkoordinaatisto 0 (aina päällä). Fanuceissa on tämmöinen.

Jos kaikkiin edellisiin "kyllä" niin sitten homman voi automatisoida hienosti, muuten vähän riippuu.
Siinäpä se juuri on, kun työkalu vaihdetaan käsin niin se on aina sitten mihin sattuu osumaan.
Nyt olen tehnyt niin, että kun ohjelma pysähtyy työkalun vaihtoon katson millä rivillä se on ja keskeytän ohjelman.
Sitten manuaalisesti ajan kauemmaksi kappaleesta vaihdan työkalun ja nollaan sen kappaleen pintaan.
sen jälkeen jatkan ohjelmaa siltä riviltä mihin se pysähtyi.

ttontsa

Esm sheetcam:llä tallennan jokaisen työkalun radat omiksi yhden työkalun sisältäviksi ohjelmiksi. Aukotukset, aukon viimeistely, reiän sovite. Poraus, senkkaus, irroitus, irroituksen viimeistelye etc.  Sheetcam:ssa työkierrot on samassa projektissa, rastittelee vaan samalle työkalulle soveltuvat työkierrot ja tallentaa ohjelman. Viimeistely/sovite työkierrot lähes aina omia ohjelmia. Paljon helpompi tuunata manuaalisesti muutaman rivin koodia ja kun sisältää yhden lastun niin ei kauaa ajele. Tunnetusti keskeltä ohjelmaa aloittaminen on karvan riskaabelia. Mycket mera helpompaa mielestäni ajaa 10 erillistä ohjelmaa kuin seuloa 347 rivisestä koodista..
Hitsaus&koneistus&Protopaja
www.tulinen.fi

ttontsa

Esm porat 3-16mm ja senkkiterät ajan 16mm cnc poraistukalla joka linuxcnc:ssä määritelty T2:ksi, kaikki kompensoinnit = 0. Sheetcam sohii tietenkin koodeihin tooltable:n mukaiset työkalunumerot T1, T2 ... Mulkkaan noi käsin aina koodissa T2:ksi. Ennen ohjelman ajoa kutsun  T2:n hipasen kipaletta ja nollaan Z:n

Bridgeportissa ei oo makasiinia, z:n liike on 150mm.  Polvi liikkuu käsikammella sen jonku 1/2m ja siinäkään ei ole mittalaitteita.

Karvan on itelläkin vielä hakusessa toimintatavat miten työkaluarsenaalin hoitas. Ottasko jokuset perustyökalut ja hakkais niille kompensoinnit kuntoon.

Yksittäis kappaleille toi toimintatapa on fiksu, mutta jos tarvii 20kpl sarjan jossa 10 työkalun vaihtoa alkaa vähän kypsyttämään.

Edelleen on selvittämättä miten ohjaus suhtautunee jos pisimmän ja lyhimmän työkalun pituus kompensointi on suurempi kuin z:n liikealue, 150mm...jämähtääkö paska ropelliin..
Hitsaus&koneistus&Protopaja
www.tulinen.fi

jussi

Sheetcam on myös minulla käytössä ja tuota ohjelma kerrallaan tapaa olen myös kayttänyt.
Monen kappaleen sarjoihin ei onneksi ole tarvetta, kun ihan hupikäytössä on laitteet.
Eikä terän vaihtoja niin valtavasti ole, mutta jostain syystä se z-nollaus vaihdon jälkeen ärsyttää suunnattomasti.:)

Kremmen

#7
Mä voisin kertoa kuinka stadin Hacklabin Lotta-jyrsimen koordinaatit ja työkalut käsitellään.
Se kone on toki 4-akselinen Leadwell MCV-OP jossa Fanuc series 0 CNC ja 16 työkalun makasiini, eli selostus ei suoraan sovellu Bridgeporttiin ja LinuxCNC:hen. Mutta jos vaikka periaatteen saa kiinni niin itse kukin voi soveltaa.

Työkoordinaatistot:
===================
Fanucissa on 6 valittavaa työkoordinaatistoa (01 - 06) vastaten koodeja G54 - G59. Koneen offsetsivustolla on kutakin koordinaatistoa varten muistipaikka akselin X, Y, Z ja A arvoille. Ja ajatus siis on, että kun työkappale on kiinnitetty pöytään, sen valittu origopiste mitataan (käyttäen mittauksessa konekoordinaatteja) ja ohjelmoidaan valitun työkoordinaatiston X,Y,A-arvoiksi suoraan. Z-akselin lukema mitataan eri tavalla ja siitä kohta lisää.

G-koodissa sitten ajon aikana kiinnitetään absoluuttikoordinaatiston (siis sen jota ohjelma käyttää) origo haluttuun työkoordinaatistoon antamalla sitä vastaava G-koodi. Oletusarvo on G54 mutta origo siirtyy ihan sen mukaan mitä ohjelmoija koodiin laittaa. Lotalla on jo ajettu työstöjä joissa kaikki työkoordinaatistot on olleet käytössä yhdessä ja samassa ohjelmasssa kun pitkästä alumiinikangesta on kaivettu esiin muotoja sarjassa. Tällöin on edullista tehdä varsinainen työstöohjelma aliohjelmaksi, ja pääohjelmassa vain alustetaan homma, sitten yksi toisensa jälkeen asetetaan työkoordinaatisto ja kutsutaan aliohjelmaa.

Työkoordinaatistojen 1-6 lisäksi ohjaimessa on työkoordinaatisto 0 (kutsutaan myös nimellä EXT) jota ei voi valita päälle eikä pois - se on aina päällä. Mitä tahansa sen XYZA-koordinaatteihin on ohjelmoitu, on aina mukana liikkeen laskennassa. Lotan tapauksessa kaikki muut arvot ovat nollia, mutta Z-koordinaattiin on ohjelmoitu "pisimmän työkalun" eli Lotan tapauksessa piipparin konekoordinaatti pöydän pinnassa. Tämä liittyy oleellisesti työkalujen pituuden kompensointiin ja siitä seuraavassa kohdassa tarkemmin.

Työkoordinaattien X- ja Y-arvot mitataan käytännössä helpoimmin piipparilla jolla ne saa vauhdikkaasti suoraan kappaleen kyljestä. Z-suunnan mittaukseen piippari ei sovellu kun kuula ei jousta sisään päin, mutta onneksi ei ole väliä kun Z mitataan suoraan korkeutena pöydän pinnasta. X ja Y siis luetaan suoraan konekoordinaattien arvona halutussa kohdassa, mutta työkalujen pituuskompensointiin käytetyn menetelmän takia Z-arvo luetaan positiivisena arvona pöydän pinnasta ylöspäin.
Lotalle on lisäksi soporkkana sellainen elämää helpottava käytäntö, että jos pöydässä on konepuristimia kiinni, niin niiden leuat on kalibroitu. Oikeanpuoleinen tai ainoa on koordinaatistossa 1 (G54) siten, että kiinteän leuan vasen laita on X ja sisäreuna Y. Jos puristimia on 2 pöydässä, niin vasen on koordinaatistossa 2 (G55) vastaavasti. Z-koordinaatti on puristimen pohjan korkeus pöydän pinnasta. Tämä helpottaa rouhinnassa kappaleen ajoa mittoihin, kun voi suoraan kirjoittaa ohjelmaan Z-lukeman kuinka "paksu" kappale halutaan siivun ajon jälkeen. Kappaleen pohja makaa tällöin puristimen pohjassa (työkoordinaatiston Z-tasossa 0) ja pinta on suoraan annetussa korossa.

Työkalun pituuden kompensointi:
===============================
G-koodin tuottaminen ja ajo on paljon helpompaa jos ei tarvitse kiinnittää erityistä huomiota siihen, miten pitkä kukin työkalu on. Mieluummin ohjelmoidaan työstävän pisteen liikettä ja annetaan koneen laskea karan korot työkalun todellisen pituuden mukaan. Sellaisia menetelmiä jotka mahdollistavat tämän on useita. Lotalle on valittu ns "pisimmän työkalun" menetelmä eli "longest tool". Tässä menetelmässä valitaan pisin työkalu referenssiksi johon muiden pituutta vertaillaan. Todellisuudessa menetelmä ei vaadi "pisimmän työkalun" käyttöä referenssinä, mikä vaan kelpaa kyllä. Lotalle oli luontevaa valita piippari.

Pisimmän työkalun menetelmä:
----------------------------
Piippari valitaan työkaluksi ja mitataan konekoordinaatistossa Z-lukema kun piippari koskettaa pöytää. Käytännössä tarvitaan joku mittapuikko tms koettimeksi ettei ruhjota vehkeitä. Meillä on 5 millin tarkkuushiottu pinni. Referenssityökalun koordinaatti pöydän pinnassa ohjelmoidaan työkoordinaatisto 0:n Z-arvoksi (muistatte ylempää: se oli se joka on aina päällä). Nyt vertailukohta on ohjelmoitu koneen muistiin.

Tämän jälkeen tehdään sama makasiinissa oleville työkaluille, jolloin saadaan lista Z-konekoordinaatteja, yksi kullekin työkalulle. Tarkoitus on verrata työkalun ja referenssin pituutta, joten nyt jokaisesta listan koordinaatista vähennetään piipparin koordinaatti. Jäljelle jää lista työkalujen pituusoffsetteja, eli erolukemia piippariin nähden. Esimerkki saattaa selventää asiaa:

1. Piippari mitataan pöydän pintaan ja saadaan lukema -320,75. Tämä ohjelmoidaan suoraan koordinaatiston 0 Z-arvoksi

2. Työkalu 1 mitataan ja saadaan lukema -350,25. Tästä vähennetään piipparin lukema jolloin saadaan offset. Offs = -350,25 - (-320,75)  =  -350,25 + 320,75  =  -29,5 eli työkalu 1 on vajaa 30 milliä LYHYEMPI kuin piippari.

3. Työkalu 2 mitataan ja saadaan lukema -210,0. Vähennetään taas piipparin lukema jolloin offset on -210,0 + 320,75 = 110,75 eli tällä kertaa työkalu oli reilu 10 senttiä PIDEMPI kuin referenssi.

Näin jatketaan kunnes kaikki työkalut on mitattu ja homma on valmis. Nyt mitä tahansa työkalua voi käyttää suoraan tietämättä sen todellisesta pituudesta mitään. Homman onnistuminen edellyttää, että työkalun pituusoffset kompensoidaan ohjelmassa oikein ja että CNC-ohjain laskee liikkeet asianmukaisesti käyttäen ohjelmoituja tietoja.

Yllä kuvattu menetelmä edellyttää, että koodissa työklaun pituus kompensoidaan käyttäen koodia G43 (kompensointi summaten eli positiiviseen suuntaan). Käytännössä tähän tapaan:



G... ... ...  (alustustoimet)
G28 G91 Z0.   (kara kotiin)
G90
T01 M06       (otetaan vaikka työkalu nro 1)
G55           (työkoordinaatisto nro 2 käyttöön - oletetaan että kappale on puristimen #2 leuoissa kohdistettuna vas. laitaan)
G00 X0. Y0.   (siirrytään XY-suunnassa origon yläpuolelle)
G43 Z100. H01 (siirrytään korkoon 100,0mm samalla kompensoiden työkalun 4 pituus positiiviseen suuntaan. Oletetaan tässä, että Z0.0 on kappaleen yläpinta)
Z15.          (lähestytään vielä)
G01 Z-2.      (eka työstökorko)
...           (jne jne)


CNC-ohjain (siis ainakin Fanuc series 0) laskee pystyliikkeen tähän tyyliin:
- liike lasketaan ohjausohjelmassa aina konekoordinaateissa
- konekoordinaatiston Z0.0 on kotiasema josta lähdetään alussa liikkeelle.
- liikematka on seuraavien tekijöiden summa:
- Nykyinen Z-koordinaatti (Zc) (konekoordinaatti)
- Pyydetty Z-koordinaatti (Zt) (annettuna valitun työkoordinaatiston origosta)
- työkoordinaatiston 0 (EXT) Z-koordinaatti (Z0) (referenssityökalun lukema pöydän pinnasta)
- valitun työkoordinaatiston Z-koordinaatti (Zw) (korkona pöydän pinnasta)
- valitun työkalun pituusoffset (Ot) (pituusero referenssityökaluun)

Käytetään edellistä koodinpätkää esimerkkinä ja kelataan läpi mitä laskennassa tapahtuu:
Annetaan edellä luetelluille muuttujille jotain helppoja lukuarvoja niin pystytään laskemaan:

Zc = 0.0                (aluksi kotona)
Zt = 100,0 ; 15,0 ; 2,0 (eli kolme siirtymää tuolla koodissa)
Z0 = -320,75            (piiparin lukema pöydästä)
Zw = 110,0              (kappaleen yläpinta pöydän pinnasta)
Ot = -29,5              (työkalun offset)

Eka siirto korkoon Z100,0 mm samalla kompensoiden työkalun pituus:
-Jos työkalu olisi piippari, niin pöydän pintaan päästäisi kun ajetaan Z = Z0 =-320,75,
-meillä on kuitenkin käytössä koordinaatisto G55 joten pitää summata sen origon korko; Z = Z0 + Zw = -320,75 + 110,0 = -210,75
-siirtymä pyydettiin kuitenkin korkoon +100,0mm työkoordinaatiston origosta, joten sekin on huomioitava; Z = Z0 + Zw + Zt = -110,75
-siirtymässä käskettiin kompensoida työkalun 1 pituus summaten joten summataan se; Z = Z0 + Zw + Zt + Ot = -140,25

Huomaa, että Z asema siirtyi alaspäin -110,75 --> -140,25 kun työkalun pituusoffset otettiin mukaan. Tämä johtuu siitä, että työkalu oli LYHYEMPI kuin referenssityökalu, jolloin karan piti tulla enemmän alaspäin jotta työkalun kärki olisi samassa kohdassa kuin referenssityökalun kärki.

Konekoordinaatti johon Z-suunnassa siirrytään on siis -140,25. Kun ekalla kerralla aloitetaan kotiasemasta 0,0 niin siirtymä on suoraan tuon pituinene. Seuraavilla kerroilla laskennassa korvataan Zt kulloisellakin tavoiteasemalla ja lasketaan uudelleen. Liikkeen pituus saadaan aina erotuksena olinpaikan ja tavoitepaikan välillä.

Siihen, kuinka tämä menetelmä siirrettäisi Bridgeport+LinuxCNC -yhdistelmälle en osaa antaa suoraan neuvoja. Varmaan LinuxCNC:ssä on mahdollisuus ohjelmoida noita samoja juttuja, mutta miten Bridgeport taipuu niihin en osaa sanoa.
Toivottavasti tämä kumminkin selvitti enemmän kuin hämmensi.
Nothing sings like a kilovolt
Dr W. Bishop

Powered by EzPortal
SMF spam blocked by CleanTalk