Menu

Näytä viestit

Tämä jakso sallii sinun katsoa tämän jäsenen kaikkia viestejä. Huomaa, että näet vain niiden alueiden viestit, joihin sinulla on nyt pääsy.

Näytä viestit Menu

Aiheet - Kremmen

#41
Ei sattuisi kellään olemaan tuollaista nurkissa joutilaana. Tuollainen (P)JVOP-131-tyyppinen ohjauspaneeli on ollut 3G3FV ja 3G3HV-sarjan tamuissa, paitsi tästä minulla olevasta se on poimittu irti. Pitäisi semmoinen jostain löytää kun parametreja ei oikein saa muuten syötettyä koneeseen. Maksan tietysti jonkun kohtuullisen hinnan, riippuen kohtuullisuuden tarkasta numeroarvosta.
#42
Ei raatilaisilla sattuisi kellään pyörimään nurkissa? Hakusessa olisi n. 0,3 - 0,5 kW kolmivaihekone ja sen perään kierukkavaihde max n. 200 r/min.
Tai mitään paikkaa mistä moisia kannattaisi kysellä?
#43
Niinkuin ei olisi muutakin tekemistä niin piti ottaa vielä liukumallinen ajoportti lähitulevaisuuden projektisuunnitelmiin. Mutta varmaan en maksa valmisporttien hintoja vaan aitona DIY-miehenä sudeistan sen itse. Esimerkkikuvia netissä tuntuu olevan huonosti, mutta mitä olen löytänyt niin hammastangolla tuntuvat yleensä liikkeen hoitavan. Eipä oikein tule mieleen muita vaihtoehtoja kuin ketju tai vaijeri, mutta mahtaako olla sen kummempia/halvempia (tai siis vähempi kalliita)?
Eli nyt mulla olisi hakusessa n. 6 metriä hammastankoa ja tietty vastaava hammaspyörä, tai sitten joku muu loistava ajatus portin liikutteluun. Kun kyseessä ei ole tarkkuusinstrumentti niin mekaniikkafirmojen laatutavaran hinnat tuntuu kovilta. Sattuisko kellään olemaan tietoa mistä kannattaisi moista tavaraa kysellä edukkaammin, tai olisko jollain suorastaan nurkissa joutilaana. Välitettävät voimat nyt ei kummoisia ole, mitä nyt muutaman sadan watin vaihdemoottori+kierukkavaihde enimmillän jaksaa. Mutta aika helpostihan tuollaisen portin pitäisi liikkua...kai.
#44
Käynnistin tälle aiheelle uuden viestiketjun niin pysyvät asiat paremmin ominaan. Tämä on siis jatkoa jännitelähdekeskusteulle jota käytiin aiheen "DIY jyrsin suunnittelua" alla haarassa "CNC-projekteja meiltä ja muualta".
Viimeisin versio jännitelähdedokkarista tässä liitteenä. Jahka saan haalittua vähän lisää tarvikkeita kasaan niin rupean kirjoittamaan proton rakennusosuutta tarkemmin.
#45
Tämä kysymys oikeastaan ramille, toivottavasti olet kuulolla.
Olen tässä taustalla työstänyt askelmoottorin pulssinmuodostuksen logiikkaa, ja se rupeaakin olemaan jo kohtalaisella mallilla. Voisin lähiaikoina pistää lohkokaaviota ja ehkä pseudokoodiakin tänne ruodittavaksi.
Kysymys kuitenkin liittyen laitetason stepperin ohjaukseen. ATXMegasta saadaan rautatuettu PWM-signaali dead-time -generoinnilla kaikille kahden moottorin silloille. Yhteensä siis 4 siltaa ja 16 kytkinelementin ohjausta. Tällä hetkellä ajatukseni on ohjata moottoreita kiinteällä PWM-taajuudella ja siniohjatulla pulssisuhteella 0-100%. Siniaallon porrastus (eli mikrosteppaus) liikkuisi välillä 1-256 askelta per jakso käänteisesti suhteessa aaskellustaajuuteen.
Mikä olisi hyvä PWM:n perusmodulaatiotajuus elektroniikkasuunnitelun kannalta? Ohjelman puolesta ei ole juuri väliä, mikä vaan kymmenistä kilohertseistä muutamaan megahertsiin on OK (teoreettinen yläraja taitaa mennä jossain 200 MHz tienoilla missä ei ole järkeä tähän hommaan). Olisi kuitenkin hyvä tietää karkeasti suuruusluokka johon sillat on suunniteltu, niin softan mitoitukset ja järkevyystarkastelut onnistuvat helpommin.
#46
Lähdin tällaista miettimään ja nyt kuulisin mielelläni ehdotuksia tai mallia miten homma hoidetaan "oikeissa" cnc-sorveissa.
Kysymys siis liittyy siihen, miten kartion sorvauksen parametrit syötetään sisään ja miten sorvi ne toteuttaa käytännössä. Alkuoletuksina voidaan pitää vähintään sitä, että sorvissa on X- ja Y-akselien liikkeet ohjaimen kontrollissa, sekä liikkeiden muunnos milleistä stepeiksi tietenkin.
Kartion mitathan voidaan määritellä muutamalla eri tavalla, ainakin antamalla alku- ja loppuhalkaisijat + pituus, tai jompikumpi halkaisija, kartiokulma ja pituus, tai jos haluaa tehdä vaikeasti, niin alku- ja loppuhalkaisija sekä kartiokulma. Kaikista saadaan aloitus- ja lopetuspiste liikkeille laskettua.
Nyt vaan on tietty niin, ettei aihio ole valmis kappale, joten sorvissa pyörii aloitetaessa jokin epämääräinen mötikkä josta kartio on tarkoitus kaivaa esille. Käsin sorvatessa tietty rouhittaisi ensin liika tavara pois ja sitten muutamalla tarkkaan tähdätyllä siivulla otetaan valmis kartio päivävaloon. Automaatti kuitenkin tarvii jotain apuja tähän, ettei se yritä mahdottomia siivuja. Kysymyksiä:
-Miten ohjaimelle kannattaa näyttää tunnettu (säteen suuntainen) X-koordinaatti josta lähtien kartion säteet voidaan laskea ja ohjata? Helpointa olisi tietysti ajaa terä pyörimisakselille ja nollata X. Kuinka helppoa tämä käytännössä vaan on? Minun kiinalaisssorvissani ei ole mitään apuja tällaiseen ainakaan.
-Miten ohjaimelle kannattaa antaa vinkkiä aihion mitoista? Jos sylinteristä lähdetään tekemään kartiota, niin kartiokulmasta riippuen kapeammassa päässä voi olla kovastikin poistettavaa tavaraa. Ohjain osaisi kyllä höylätä tämän pois osana työkiertoa kunhan vaan kehitetään keino kertoa sille mitä sorvissa on pyörimässä.
-Jos kartio sorvataan tasapaksusta jöötistä niin ohuempaan päähän on tulossa aikamoinen ohennus jälleen kulmasta riippuen. Miten tuo kannattaa käytännössä hoitaa  jottei tarvita teränvaihtoa kesken operaation? Jos terä on oikeakätinen (so syöttösuunta on vasemmalle) niin ainakaan minun palateräpitimet eivät sovellu uran sorvaamiseen, joten niillä ei voi aloittaa tuollaista operaatiota. Katkaisuterällä pääsee kyllä suoraan sisään, mutta se ei ole hyvä siivun ajoon. Pitääkö siis esivalmistella aihio niin, että ohut pää on jo valmiiksi yhtä ohut kuin kartion ohuempi pää, tai ohuempi? Tai vaihtoehtoisesti ajaa nin leveä ura, että normaaliterällä mahtuu aloittamaan?
Miten ammattilainen tekee tämän?
Muoks.
Lisäsin kuvan josta toivottavasti selviää mitä ajan takaa. Jos harmaasta jöötistä halutaan ulos valkoinen kappale, niin sen ympäriltä pitää poistaa tavaraa alueelta B. Ennekuin tavallisella terällä päästään loppuun asti, niin alue A on jotenkin hoidettava. Onko vakiintunut käytäntö olemassa / mikä on paras tapa hoitaa homma?
#47
Avasin uuden otsikon käyttöliittymäkeskustelua varten. Ohjataan aihe jatkossa tänne niin ei mene kaikki yhteen tuossa kehityskeskustelusäikeessä.
#48
Laitoinpa tällaisenkin tänne ketä kiinnostaa lukea ja kommentoida.
Oikeastaan aloin ensin ajattelemaan paperille, mutta päätin sitten vähän viilata tätä siistimmäksi ja laittaa tänne. Siinä on jorinaa askelmoottoreista, vauhtia on otettu melkein antiikista alkaen. Varsinainen asia on lopussa, eli miten olen ajatellut lähteä tekemään tuota ohjaimen askelmoottorinohjausta. Sitä saisi mielellään kommentoida, sillä välin jatkan mietiskelyä.
#49
ram on miettinyt elektroniikkaa ja kortin toteutusta. Onko liioittelua miettiä, että varaisi kortille mahdollisuuden käyttää steppereiden sijasta servoja? Omassa mielessä oli lähinnä tällöin ajatus tuupata servolle +/- 10V ohjetta DAC:in läpi ja käyttää niitä stepperille ajateltuja timerikanavia enkooderinlukuun. En tiedä onko tässä järkeä eikä kannata lähteä väkisin ahtamaan jos kortti on tulossa muutenkin täyteen, mutta kommentoikaa.
#50
Laitoin liitteeksi pienen reaaliaikakäyttöjärjestelmän demon niille joita asia kiinnostaa.
Demo on käännetty AVR Studiolla jonka projektitiedosto on mukana paketissa. Ajoalustana on käytetty Atmelin STK-500 kittiä, mutta koodi on helposti istutettavissa monenlaiseen ympäristöön, vaatimukset ovat vähäisiä. Kaikki tarvittava on paketissa ja kääntyy Studiolla suoraan.

Jouduin tekemään pienen rikoksen kun ZIP-tiedostot eivät ole sallittujen liiteformaattien joukossa. Liite on tekstitiedostoja sisältävä paketti jonka pitää pysyä kasassa, sen takia olen zipannut ne yhteen. Tiedoston pääte on kuitenkin TXT joka pitää muuttaa ZIP iksi ennen purkua. Pahoittelen tätä niksiä ja jos ylläpito sen kieltää niin jatkossa ei näin tehdä. Paketin sisältö kuitenkin on vain tekstiä joka on sallittu liitemuoto...

Ai niin. Käännettäessä "Build All" optiolla tulee 2 varoitusta tasks.c -tiedoston riviltä 422:
../tasks.c:422: warning: cast from pointer to integer of different size
Tuo ei ole huolestuttavaa koska typecast tapahtuu 32- ja 16-bittisten pino-osoittimien välillä. Molemmat pituudet riittävät hyvin mega-prosessorien pinoille.
#51
Tässä versio 0.1 vaihdelaatikon ohjelmiston lohkoista (kts liite).

Olen värikoodannut eri lohkot aikatasojen mukaan, eli kuvan alareunasta näkyy millä syklillä noita lohkoja olisi tarkoitus ajaa.
Kaikkein aikakriittisimmät toiminnot tapahtuvat suoraan raudassa ja täysin reaaliaikaisesti, vain niiden toimintaparametrit asetellaan softasta.

Seuraavassa lyhyesti miten toiminta on ajateltu:

Käyttäjä vuorovaikuttaa komentotulkin kanssa käyttäen apunaan syöttöön tarkoitettuja valitsimia ja kytkimiä, sekä näyttöä ja merkkivaloja. Komentotulkki huolehtii kokonaisuudessaan käyttäjäkokemuksesta mutta ei varsinaisesti puutu ohjattavan koneen toimintoihin.

Ajotilan ohjaus vastaanottaa komentotulkilta ohjeet työnkulkuun, sekä toimintokäskyt. Turvavalvonta huolehtii siitä, ettei konetta ohjata kiellettyihin ajotiloihin sekä tarvittaessa pysäyttää ajon. Ajotilan ohjaus suorittaa tarvittavat ohjauslähtöjen asetukset koneen siirtyessä aktiiviseen toimintatilaan ja päinvastoin.

Liikekoordinaattori laskee työkierron liikkeiden koordinaatit ja liikeradat, valitsee liikkeiden ohjausalgoritmit ja välittää ne akselisäätäjille. Liikekoordinaattori huolehtii myös liikkeiden synkronoinnin valmistelun ja välittää ne säätäjille. Turvavalvonta katkaisee liikkeiden ohjauksen koneen joutuessa kiellettyyn ajotilaan tai mikäli hätäseis aktivoidaan.

Akselisäätäjät ohjaavat steppereiden pulssigeneraattoreita koordinaattorilta saatujen liikekäskyjen mukaan. Karaenkooderi toimii liikkkeiden ohjearvokertoimen apumuuttujana ja synkronoinnin lähteenä jolloin liikkeet voidaan tahdistaa ja vaihelukita karan pyörimiseen.

Karaenkooderin luku ja dekoodaus sekä steppereiden PWM-signaalien generointi  tapahtuu prosessorin hardware-tasolla ohjelmiston toiminnasta riipumattomasti. Ohjelmisto ainoastaan asettelee raudassa tapahtuvan laskennan parametrit minkä jälkeen itse toiminnot ovat automaattisia.

Tämä selostus on hyvin ylimalkainen, joten monet yksityiskohdat jäävät vielä tämän perusteella lukijalle hämäriksi. Ennakkovastauksena yhteen peruskysymykseen, ohjelmisto on ajateltu toteuttaa käyttäen ajoympäristönä FreeRTOS 6.0.1 -reaaliaikakäyttöjärjestelmää (tai uudempia versioita sitä mukaa kuin niitä julkaistaan). FreeRTOS lienee maailman yleisimmin käytetty kontrollerikäyttis ja sisältää kaikki tässä tarvittavat piirteet, mukaanluettuna kellokeskeytykseen perustuva ns. pre-emptive skedulointi. Tämä piirre takaa aikakriittisille toiminnoille täsmällisen ajastuksen tarvitsematta huomioida sitä koodissa millään tavalla. Toisaalta käyttiksen koodista voidaan jättää kääntämättä kaikki tarpeettomat toiminnot jolloin sen resurssien kulutus minimoituu. Xmega128 on ehdottomasti riittävän iso ympäristö jotta tätä käyttistä voidaan siinä ajaa ilman mitään ongelmia.

Puuttuvia lohkoja jotka täydennetään myöhemmin: Kestomuistin käsittely konevakioiden ja muiden vakioasetusten talletukseen. Tämä toteutetaan käyttäen prosessorin EEPROM-muistia ja sille toteutetaan oma ohjainlohkonsa. Ulkoinen kommunikaatio sarjaportin avulla. Muitakin ehkä tunnistetaan kommenttien perustella ja ajan kanssa.

Tästä voitaisi siis aloittaa keskustelu niin saadaan hommaa eteenpäin.
#52
Tässä vastauksena ram:in kyselyyn jotain ajatuksia sähköisen vaihdelaatikon elektroniikan, erityisesti piirikortin tiimoilta.

Prosessoriksi on maalailtu Xmega128A1:tä joka onkin oikein messevä kapine. Jussi esitti yhdeksi vaihtoehdoksi Olimexin AVR-HX128A1 headerboardia joka olisi siitä hyvä, että vältytään TQFP-paketin jyrsimis- ja juottamisyrityksiltä. Tuossa tulee vielä mukana JTAG-liitin ja reaaliaikakello. Lisäksi kortti on hyvin dokumentoitu Olimexin sivuilla. Tosin kortilla on vain 8MHz oskillaattorikide vaikka prosessori kestäisi 16:kin. Toisaalta ehkä ihan OK, prosessoria voi aina ajaa sisäisellä 32MHz RC-oskillaattorilla ja käyttää tuota hitaampaa kidettä ajastuksiin. Ääni siis tälle vaihtoehdolle.

Käyttöliittymästä on keskusteltu ja keskustelu varmaan jatkuu vielä. Tällainen ehdotus minulta:
Laitetaan näyttölaitteiksi LCD-näyttö ja 3 kpl merkkivalolähtöjä (vi, ke, pu ledi tms). Näytöksi riittää 2-rivinenkin, joskaan 4-rivinen ei maksa paljoa enempää. LCD tulisi olla HD44780-standardin mukainen, eli 16-pinnisellä liittimellä. Näytöä ohjataan 4-bitin moodissa jolloin 1 portti riittää sen ohjaukseen.
Olen käyttänyt Peter Fleuryn toteuttamaa kirjastoa hyvällä menestyksellä. Siitä löytyy toteutusdokumentaatiota täältä: http://homepage.hispeed.ch/peterfleury/avr-lcd44780.html

Syöttölaitteiksi on ehdotettu koodikytkimiä joilla voidaan suoraan napista kääntämällä syöttää haluttu kierteen nousu. Oma ehdotukseni on ollut paneelienkooderi + painonappi. Kun prosessorissa riittänee I/O hyvin, niin miksipä ei laitettaisi molempia. Kuitenkin ennekuin tämä osa saadaan valmiiksi, pitää kyllä konseptoida vähän tarkemmin miten arvojen syöttö ja koneen toiminnan ohjaus missäkin tilanteessa toimii ja mitä vaihtoehtoja eri asioille on.

Syöttölaite josta ei tätä ennen liene puhuttu on analogipotikka. Sillä olisi näppärää ohjata syöttöliikettä käsinajossa. Kortille voisi piirtää tuloliitännät parille kanavalle, niin voi ohjata sekä X- että Y-akselia erikseen, jos haluaa.

Sarjaliittymää on myös toivottu kiinteiden parametrien syöttöön, eikä prosessorin resurssit ainakaan aseta rajaa, joten miksipä sellaista ei voisi piirisuunnitteluun sisällyttää. MAXilla ainakin on hyviä tasonmuuntimia sarjadatan ja modeemisignaalien tuottamiseen.

Digitaalituloja sekä lähtöjä kannattaa olla "riittävästi". Ainakin yhden portin kumpaankin suuntaan voisi varata. Suojaukset kannattaa olla kunnossa, olisiko optoerotus poikaa? Sekä tulot että lähdöt voisi miettiä toimimaan sekä aktiivisina että passiivisina ulkoa syötettyinä. Lähdöille sen verran potkua jollain ULN- tms voimistimella, että jaksavat vetää pientä relettä.

Karan enkooderituloon pitää saada kvadratuurisignaalit sekä indeksipulssi, tällä hetkellä C-portti tuntuu sopivalta. Häiriönsieto pitää olla kunnossa - varmahko ratkaisu olisi siirtää data differentiaalisena. Pitääkö tähän varautua linjavastaanottimin, esim RS485 tms?
Stepperilähdöt samoin timeriin kytketyiltä porteilta, esim D ja E. Pitää vielä tarkistaa oliko porteissa tietyt bitit varattu noille funktioille vai voiko ne mapata vapaasti.

Stepperivahvistimet voisi minusta integroida samalle kortille kun ne tarvitaan joka tapauksessa. Tässä haluaisin vielä vähän tarkemmin tutustua XMegan AWM-toimintoon eli tuohon kehittyneeseen aaltomuodon generointiin. On mahdollista, että prosessorin rauta pystyy suoraan generoimaan lähes mielivaltaista mikrosteppausta, jolloin voitaisi matkia inverttereiden käytämää PWM-tekniikkaa ja saada ylivoimaisen juohea askellus kaikilla nopeusalueilla. Jos tämä onnistuu niin vahvistimeksi riittää pelkät H-siltaan kytketyt tehofetit gate-drivereineen.

Olisko Jonnella aikaa miettiä tuota käyttöliittymää oman ehdotuksena pohjalta, huomioiden että nyt olemme ymmärtääkseni "päättäneet" toteuttaa sekä kartion että kierteen sorvauksen. Tarvitaan joku ihmisen ymmärrettävissä oleva (s.o riittävän ergonominen ja ei-virhealtis) tapa kertoa koneelle kumpaa ollaan tekemässä ja sitten syöttää kaikki tarvittavat tiedot sisään (tai valita ne talletetuista vakioarvoista).

Tämmöisiä alkuun. Kommentoikaa niin päästään keskustelemaan.
Powered by EzPortal
SMF spam blocked by CleanTalk