CNC-Harrastus

CNC-KONEEN SUUNNITTELU, RAKENTAMINEN JA TESTAUS => Ohjausjärjestelmän suunnittelu ja rakentaminen => Tehoasteet ja moottorit / Servotekniikka => Aiheen aloitti: jussi - 16.06.10 - klo:17:47

Otsikko: Mesa 5i20
Kirjoitti: jussi - 16.06.10 - klo:17:47
Nyt kun pluto kortti vaihtoi hiippakuntaa :-[ katse kohdistuu mesan kortteihin.
Onko kellään kokemuksia tuosta 5i20 kortista ja tietoo saako sitä jostain ostettua ilman luottokorttia esim. paypallilla
Otsikko: Vs: Mesa 5i20
Kirjoitti: awallin - 17.06.10 - klo:19:39

jyrsimessä on 1kpl 5i20 käytössä. kytkentää ja linkkejä tuolla:
http://www.anderswallin.net/2008/09/servo-setup/

silloin kun tuota piti asennella ja testailla niin Jeff Eplerin ja muiden EMC2 gurujen kanssa kehitin tuota pyVCP-paneli ideaa jolla saa ulostulot ja sisäänmenot helposti näkyville ja voi kuivaharjoitella että kaikki toimii (esim pwm servo-vahvistimelle, enkooderi-laskurit, ja muut I/O:t). Esimerkkipaneli:
http://www.anderswallin.net/2007/09/pyvcp-m5i20-hostmot-4-test-panel/

vielä 2007-2008 oli käytössä vanha m5i20 HAL-ajuri. Nyt on olemassa uusi hostmot2 joka on konfiguroitavampi, eli voi valita FPGA:n rajoissa kuinka monta pwm-ulostuloa, enkooderi-laskuria jne haluaa. Joku oli tekemässä myös 3-vaihe moottoreille sini-kommutointi fpga-koodia (eli johdotetaan hall-signaalit ja enkooderi fpga-kortille ja kortti ajaa 3 tai 6kpl PWM-signaalilla H-siltaa joka ohjaa AC-servon kolmen kelan virtoja)

myös rakenteilla olevaan sorviin olen ajatellut käyttää m5i20 korttia.
Luottokortilla olen tilannut suoraan mesa:lta, voin tarkistaa mitä maksoi viimeksi (syksy09?). Jotain lähetyskulua + 22%ALV ja tulli noihin yleensä tulee... :(

AW
Otsikko: Vs: Mesa 5i20
Kirjoitti: jussi - 18.06.10 - klo:00:11
Noita sinun sivuja oon kattellu aiemminkin sieltä toi 5i20 jäi mieleen.Kyselin mesalta myyjiä eu alueella ruotsissa olis lähin. Täytyy sieltä kysellä.ajattelin jos laittais ton kaveriksi 7i30 kortin olis valmis paketti siltä osin.
Otsikko: Vs: Mesa 5i20
Kirjoitti: awallin - 24.06.10 - klo:16:20
tarkistin äsken viimevuoden m5i20 tilaukseni, suoraan mesa:lta kaliforniasta kortti 199 + lähetys 49.50 dollaria joka viimevuoden kurssilla oli 169euroa, lisäksi FedEx veloitti ALV:in ja tullin 37euroa.
eli yhteensä kortille tuli hintaa 206euroa. (hiukka enempi maksaa varmaan tämänpäivän USD-kurssilla)
50-pin lattakaapelit ja mahdolliset isolaattorit yms liitännät teen itse, mutta ei se itse tekeminen välttämättä ole halvempaa kuin mesa:n liitäntäkorttien/kaapeleiden tilaaminen.

kun työstökoneeseen, työkaluihin, ja materiaaleihin menee yleensä moninkertainen määrä tähän n.200euroon verrattuna niin voi vaan ihmetellä miten jotkut jaksaa rinnakkaisportti I/O:lla (stepperit ilman enkoodereita tms lelut) edelleen rimpuilla... ;D

AW
Otsikko: Vs: Mesa 5i20
Kirjoitti: petko - 25.06.10 - klo:08:42
Lainaus käyttäjältä: awallin - 24.06.10 - klo:16:20
kun työstökoneeseen, työkaluihin, ja materiaaleihin menee yleensä moninkertainen määrä tähän n.200euroon verrattuna niin voi vaan ihmetellä miten jotkut jaksaa rinnakkaisportti I/O:lla (stepperit ilman enkoodereita tms lelut) edelleen rimpuilla... ;D
AW
Mitä mieltä olet rinnakkaisportti -> VSD-A -> servomoottori - yhdistelmästä?
Otsikko: Vs: Mesa 5i20
Kirjoitti: awallin - 25.06.10 - klo:10:19
Lainaus käyttäjältä: petko - 25.06.10 - klo:08:42
Mitä mieltä olet rinnakkaisportti -> VSD-A -> servomoottori - yhdistelmästä?

1.
Rinnakkaisportin suurin puute on maks pulssi/askel nopeus. Tämä rajaa aina *pienimmän askeleen ja pikaliikkeen nopeuden suhdetta*. En ole seurannut kehityksen kehitystä viimeaikoina, mutta joskus aikoinaan rinnakkaisportista ehkä oli mahdollista saada ulos 20 kHz steppejä (käytännössä luotettavasti 10 kHz).
Jos ollaan optimistisia ja sanotaan että ei-taipuvilla työkaluilla ja lämpötilasäädetyssä työpajassa (jne jne) tehdään 0,01mm toleranssilla hyvinä päivinä osia niin askeleen pituudeksi halutaan selvästi alle tämän. Vaikka 0,001mm. Tästä pikaliike olisi 20kHz:lla  20 000*0,001 = 20mm/s = 1200mm/min.
Riittää ehkä harrastelijalle, ei ammattilaiselle (eikä harrastelijalle joka havittelee youtube-kuuluisuutta).
Mesa:lla tai muulla hardware askel-generaattorilla maksimi askel taajuus on 1 MHz tai enemmän.

2.
enkooderit/seurantavirhe. Mesa kortilla ja servoilla enkooderi-tieto tulee suoraan PC:lle ja koneen ruudulla voidaan kokoajan näyttää komennettua paikkaa, todellista paikkaa, ja seurantavirhettä. Askelmoottori-koneistajalle varmaan monelle on tuttu tämä "voi prkl!" kun pidemmän ajon loppuvaiheella kone hukkaakin steppejä ollaan metsässä tms. muualla mistä oikeasti piti, työkalut katkeaa jne  8)
Eli mielestäni on hyvä idea jos kontrolleri (EMC2, Mach tms) oikeasti lukee enkoodereita ja tietää missä kone on.
VSD-A tai geckodrive servo-vahvistimissa joita ajetaan step/dir signaaleilla tämä enkooderi-counteri on siellä sisällä, ja jos seurantavirhe kasvaa liian isoksi(säädettävissä?) mennään virhetilaan (virta katki, ilmoitus PC:lle, jotain vastaavaa).
EMC2:ssa seurantavirhe skaalautuu syöttönopeuden mukana, ts. pikaliikkeiden aikana sallitaan hieman isompi seurantavirhe kuin hitaasti koneistettaessa.(tämä tuskin mahdollista step/dir servovahvistimilla?)

3. PID-loopit
EMC2:ssa PID-loopit pyörivät PC:llä joten niiden toimintaa on helppo seurata ja säätää.
Jos/kun VSD-A tai vastaavan servovahvistimen mukana tulee hyvät tuunaus-ohjeet/ohjelmat, ja tarvittavat kaapelit niin tämän PID-loopin säädön voi yhtä hyvin tehdä siellä servo-vahvistimella. Usein servo-vahvistimella pyörivän PID-loopin päivitysnopeus on nopeampi/parempi kuin 1-4 kHz johon EMC2:lla pystytään. Myös nopea virran-rajoitus on parempi tehdä mahd. lähellä tehoastetta/moottoria.


Jos olen ymmärtänyt oikein miten nämä hommat tehdään ammattikoneissa niin niissä käytetään juuri moottorille tehtyä sopivaa servovahvistinta joka syö step/dir signaaleja.
MUTTA rinnakkaisportti-harrastelijoista poiketen maks step-nopeus (1.) on paljon isompi 1-5 MHz jolloin resoluutio/pikaliikenopeus ongelma häviää JA enkooderitieto menee aina myös ohjaimelle (2) jotta oikeasti tiedetään  missä ollaan.
Se missä PID-loopit "oikeasti" pitäisi pyöriä (3.) on sitten hieman vähemmän suoraviivainen asia. Ainakin harrastelijakoneissa mielestäni "tyhmä" H-silta tyyppinen servovahvistin, mesa-kortti, ja PID-loopit PC/EMC2:ssa toimii hyvin. Jonkun muun mielestä ne pitää varmaan ehdottomasti olla lähempänä rautaa (päivitysnopeus, virranrajoitus, jne)


AW
Otsikko: Vs: Mesa 5i20
Kirjoitti: petko - 25.06.10 - klo:11:05
Lainaus käyttäjältä: awallin - 25.06.10 - klo:10:19
1.
Rinnakkaisportin suurin puute on maks pulssi/askel nopeus. Tämä rajaa aina *pienimmän askeleen ja pikaliikkeen nopeuden suhdetta*. En ole seurannut kehityksen kehitystä viimeaikoina, mutta joskus aikoinaan rinnakkaisportista ehkä oli mahdollista saada ulos 20 kHz steppejä (käytännössä luotettavasti 10 kHz).
Jos ollaan optimistisia ja sanotaan että ei-taipuvilla työkaluilla ja lämpötilasäädetyssä työpajassa (jne jne) tehdään 0,01mm toleranssilla hyvinä päivinä osia niin askeleen pituudeksi halutaan selvästi alle tämän. Vaikka 0,001mm. Tästä pikaliike olisi 20kHz:lla  20 000*0,001 = 20mm/s = 1200mm/min.
Riittää ehkä harrastelijalle, ei ammattilaiselle (eikä harrastelijalle joka havittelee youtube-kuuluisuutta).
Mesa:lla tai muulla hardware askel-generaattorilla maksimi askel taajuus on 1 MHz tai enemmän.

2.
enkooderit/seurantavirhe. Mesa kortilla ja servoilla enkooderi-tieto tulee suoraan PC:lle ja koneen ruudulla voidaan kokoajan näyttää komennettua paikkaa, todellista paikkaa, ja seurantavirhettä. Askelmoottori-koneistajalle varmaan monelle on tuttu tämä "voi prkl!" kun pidemmän ajon loppuvaiheella kone hukkaakin steppejä ollaan metsässä tms. muualla mistä oikeasti piti, työkalut katkeaa jne  8)
Eli mielestäni on hyvä idea jos kontrolleri (EMC2, Mach tms) oikeasti lukee enkoodereita ja tietää missä kone on.
VSD-A tai geckodrive servo-vahvistimissa joita ajetaan step/dir signaaleilla tämä enkooderi-counteri on siellä sisällä, ja jos seurantavirhe kasvaa liian isoksi(säädettävissä?) mennään virhetilaan (virta katki, ilmoitus PC:lle, jotain vastaavaa).
EMC2:ssa seurantavirhe skaalautuu syöttönopeuden mukana, ts. pikaliikkeiden aikana sallitaan hieman isompi seurantavirhe kuin hitaasti koneistettaessa.(tämä tuskin mahdollista step/dir servovahvistimilla?)

3. PID-loopit
EMC2:ssa PID-loopit pyörivät PC:llä joten niiden toimintaa on helppo seurata ja säätää.
Jos/kun VSD-A tai vastaavan servovahvistimen mukana tulee hyvät tuunaus-ohjeet/ohjelmat, ja tarvittavat kaapelit niin tämän PID-loopin säädön voi yhtä hyvin tehdä siellä servo-vahvistimella. Usein servo-vahvistimella pyörivän PID-loopin päivitysnopeus on nopeampi/parempi kuin 1-4 kHz johon EMC2:lla pystytään. Myös nopea virran-rajoitus on parempi tehdä mahd. lähellä tehoastetta/moottoria.


Jos olen ymmärtänyt oikein miten nämä hommat tehdään ammattikoneissa niin niissä käytetään juuri moottorille tehtyä sopivaa servovahvistinta joka syö step/dir signaaleja.
MUTTA rinnakkaisportti-harrastelijoista poiketen maks step-nopeus (1.) on paljon isompi 1-5 MHz jolloin resoluutio/pikaliikenopeus ongelma häviää JA enkooderitieto menee aina myös ohjaimelle (2) jotta oikeasti tiedetään  missä ollaan.
Se missä PID-loopit "oikeasti" pitäisi pyöriä (3.) on sitten hieman vähemmän suoraviivainen asia. Ainakin harrastelijakoneissa mielestäni "tyhmä" H-silta tyyppinen servovahvistin, mesa-kortti, ja PID-loopit PC/EMC2:ssa toimii hyvin. Jonkun muun mielestä ne pitää varmaan ehdottomasti olla lähempänä rautaa (päivitysnopeus, virranrajoitus, jne)


AW

8)
Anteeksi edellisen postaukseni pieni provosointi.
Awallilta taidettiin saada tuossa yllä aika kattava kuvaus mahdollisista PC->CNC ongelmista ja samaan syssyyn myös ratkaisuja mahdollisiin ongelmiin.
Kiitokset !
Otsikko: Vs: Mesa 5i20
Kirjoitti: jussi - 27.06.10 - klo:10:38
Nyt löytyi tsekistä toimittaja maksuun käy paypal ja toimituskulut edullisia.
tässä linkki muillekkin jos kiinnostaa mesan kortit.http://www.duzi.cz/shop_cnc/ (http://www.duzi.cz/shop_cnc/)
Otsikko: Vs: Mesa 5i20
Kirjoitti: Jussik - 27.06.10 - klo:13:51
Terve

Kysymystä AW:lle:
Mitenkäs 7I48 kortin conffaus 5i20 emc:ssä menisi.
Pystyykö conffaamaan ilman fpga:n uudelleen ohjelmointia?
Eli siis pelkällä ini tiedosto muutoksella?

Olisi kätevä kun saa 6 servoa yhden lattakaapelin päähän.
Myös vähän halvempi kun pitää saada just toi 6-akselia koneeseen.

Otsikko: Vs: Mesa 5i20
Kirjoitti: awallin - 28.06.10 - klo:09:10
Lainaus käyttäjältä: Jussik - 27.06.10 - klo:13:51
Mitenkäs 7I48 kortin conffaus 5i20 emc:ssä menisi.
Pystyykö conffaamaan ilman fpga:n uudelleen ohjelmointia?
Eli siis pelkällä ini tiedosto muutoksella?

http://linuxcnc.org/docs/2.4/html/drivers_hostmot2.html

INI tiedostossa kerrotaan mikä HAL-tiedosto ajetaan niin että saadaan ajurit, kytkennät yms yms oikein ylös.

Tätä HAL-tiedostoa joudut editoimaan ja hostmot2 ajurin latauksen yhteydessä kertomaan että haluat 6kpl PWM-ulostuloa (DA muuntimille 7i48 kortilla) sekä 6kpl enkooderi-laskuria.
ajuri sitten "lennossa" heittää nämä FPGA:lle (ei periaatteessa tarvitse tehdä kuin kerran, mutta ei se haittaa paljoakaan jos fpga:n ohjelmoi uusiksi aina kun ohjelmaa käynnistetään).
Jos/kun ajuri latautuu oikein ilmestyy sitten HAL-pinnejä jotka vastaavat 6kpl PWM-ulostuloa ja enkooderi sisäänmenoa jotka sitten voit johdottaa minne ne kuuluu.

Eli joudut opettelemaan jonkunverran HAL-tiedoston formaattia, mitä sinne kuuluu jne, INI-tiedoston lisäksi.


Sellainen aputyökalu joka ottaisi HAL-tiedoston ja piirtäisi siitä graafisen kytkentäkaavion on jo pidemmän aikaa ollut suunnitteilla (tyyliin LabVIEW / Simulink, jos nämä tuttuja...) . Helpottaisi näkemään eri koneiden kytkennät, ja varmasti hyvä apu aloittelijoille/kokeneille. Tekstitiedoston parsiminen netlistiksi ei varmaan ongelma, ja jollain esim Qt-widgetillä sitten piirto?
Otsikko: Vs: Mesa 5i20
Kirjoitti: tero - 28.06.10 - klo:14:01
Lainaus käyttäjältä: petko - 25.06.10 - klo:08:42
Mitä mieltä olet rinnakkaisportti -> VSD-A -> servomoottori - yhdistelmästä?
AW on oikeassa step/dir:n rajoituksista. Tosin ongelmat vältetään jos enkooderin signaalit viedään myös EMC:lle, jolloin saat kaikki takaisinkytkennän edut myös PC:n päähän. Ohjaimen virherajat voit asettaa suuremmaksi kuin EMC:ssä, jolloin ohjaimen ei pitäisi faultata ennen EMC:tä.
Otsikko: Vs: Mesa 5i20
Kirjoitti: panttu - 28.06.10 - klo:22:02
Lainaus käyttäjältä: awallin - 25.06.10 - klo:10:19
1.
...
Riittää ehkä harrastelijalle, ei ammattilaiselle (eikä harrastelijalle joka havittelee youtube-kuuluisuutta).
Mesa:lla tai muulla hardware askel-generaattorilla maksimi askel taajuus on 1 MHz tai enemmän.

2.
enkooderit/seurantavirhe. Mesa kortilla ja servoilla enkooderi-tieto tulee suoraan PC:lle ja koneen ruudulla voidaan kokoajan näyttää komennettua paikkaa, todellista paikkaa, ja seurantavirhettä. Askelmoottori-koneistajalle varmaan monelle on tuttu tämä "voi prkl!" kun pidemmän ajon loppuvaiheella kone hukkaakin steppejä ollaan metsässä tms. muualla mistä oikeasti piti, työkalut katkeaa jne  8)
Eli mielestäni on hyvä idea jos kontrolleri (EMC2, Mach tms) oikeasti lukee enkoodereita ja tietää missä kone on.
VSD-A tai geckodrive servo-vahvistimissa joita ajetaan step/dir signaaleilla tämä enkooderi-counteri on siellä sisällä, ja jos seurantavirhe kasvaa liian isoksi(säädettävissä?) mennään virhetilaan (virta katki, ilmoitus PC:lle, jotain vastaavaa).
EMC2:ssa seurantavirhe skaalautuu syöttönopeuden mukana, ts. pikaliikkeiden aikana sallitaan hieman isompi seurantavirhe kuin hitaasti koneistettaessa.(tämä tuskin mahdollista step/dir servovahvistimilla?)

...
AW
Mikä tuo pulssitus (setp/dir) ja lukunopeudet (a/b) noissa mese korteissa on? Tuossa 5i20 taitaa olla nopeus vain 200k gate ja IO:ta 72pinniä, eli yhtä pinniä kohden ei jää paljoakaan käytettäväksi kaistaa sekunnissa ja siinäkin tapauksessa, että vain muutokset veisi kaistaa, niin nopeudet olisivat sittenkin melko pienet tuolla, vaikka ajettaisiin vain yhtä akselia, vai oliko noissa korteissa joku step generaattori, joka tuon mahdollistaisi ja lukupuolella laskuri, jonka arvo lähetetään vain PC:lle?

Onko tuolle PWM signaalille oltava servon käytössä, joku oma paikka, vai ohjaako se servoa tuon analogian kautta +-10V?
Otsikko: Vs: Mesa 5i20
Kirjoitti: Miguel- - 29.06.10 - klo:07:09
Tuo 200k tarkoittaa sisäistä porttimäärää, joista rakennetaan kytkennät (fpga on ohjelmoitava analogiapiiri, joka koostuu ohjelmoitavista porteista ym.). Ajastimet tuossa raksuttaa 100MHz vauhdilla, joten tuolla nopeudella pitäisi pystyä vaihtamaan IO:n tilaa jos väylä PC:lle ja itse PC ovat tarpeeksi nopeat (fpga toimii rinnakkaisesti, eli IO:n määrä ei vaikuta nopeuteen).
Otsikko: Vs: Mesa 5i20
Kirjoitti: awallin - 29.06.10 - klo:08:30
Lainaus käyttäjältä: panttu - 28.06.10 - klo:22:02
Mikä tuo pulssitus (setp/dir) ja lukunopeudet (a/b) noissa mese korteissa on?

EMC:n manuaali ei oikein kerro...
http://www.linuxcnc.org/docs/devel/html/drivers_hostmot2.html
joten tässä tekemistä jollekin jolla on >100MHz oskilloskooppi/funkt.-generaattori ja eikun kokeilemaan miltä näyttää jossain 1MHz jälkeen.
Tosiaan FPGA:n sisäinen kello on 100MHz noissa step/dir-generaattorissa ja enkooderi-counterissa, joten arvaisin että päästään johonkin järkevään osaan tästä kellosta. Varovainen arvio olisi 1 MHz step-ulostulo tai enkooderi-pulssien nopeus.

Lainaus käyttäjältä: panttu - 28.06.10 - klo:22:02
vai oliko noissa korteissa joku step generaattori, joka tuon mahdollistaisi ja lukupuolella laskuri, jonka arvo lähetetään vain PC:lle?

juuri näin, eli ohjelmallisesti (VHDL-koodia) määritellään minkälainen elektroniikkapiiri (step-generaattori, enkooderi-laskuri, pwm-generaattori, jne) halutaan luoda FPGA piirille. Kun tämä ohjelmoidaan sinne niin se toimii sitten 100MHz taajuudella FPGA:lla ihan niinkuin "oikea" logiikkapiiri tekisi.
PCI-väylän yli EMC2 sitten lukee/kirjoittaa johonkin rekisteriin FPGA:lla jolla voidaan lukea laskurin arvo tai asettaa step-nopeus jne. Tätä ei voi tehdä hurjan nopeasti, yleensä kerran millisekunnissa (yleensä tämän nimi on "servo-thread" EMC2 esimerkeissä) eli 1 kHz taajuudella, mutta muistaakseni 4 kHz:kin toimi OK meidän jyrsimessä,

Jos EMC2:lla ja mesa-kortilla ohjataan servoja niin joka millisekunti siis tapahtuu jotain tyylliin:
lue enkooderi -> laske PID-loopilla moottorin ohjaussignaali -> kirjoita step/dir tai PWM-out rekisteriin ohjaussignaali

tästä 1 kHz servo-threadistä "täysin" riippumatta sitten tuo FPGA:lla oleva "elektroniikka"(vai onko se ohjelma  ::) ) ylläpitää tuolla 100MHz taajuudella enkooderi-laskuria ja ulostuloja.

Lainaus käyttäjältä: panttu - 28.06.10 - klo:22:02
Onko tuolle PWM signaalille oltava servon käytössä, joku oma paikka, vai ohjaako se servoa tuon analogian kautta +-10V?
Itse mesa kortista tulee vain joko 5V tai 3.3V logiikkasignaalia ("kanttiaaltoa"). Jotkut servovahvistimet syövät suoraan tätä, esim Jon Elson/pico-systems vahvistimet tai Mesa:n omat vahvistimet. Jos tarvitaan +/- 10V on tämä generoitava PWM+DIR signaaleista (esim 7i33 tai oma alipäästö-suodatus viritys)
Otsikko: Vs: Mesa 5i20
Kirjoitti: Jussik - 01.07.10 - klo:16:56
AWallin:

Jos se menee pelkästään HAL tiedosto muutoksella niin sitten ei oikeestaan oo mitään hätää.
Rupesin vain miettimään ettei tarvi FBGA ohjelmointia uusimaan.

Halliin tein silloin ne C-pätkät kahden servon syncronointiin, niin sen avustuksesta vielä kiitoksia.