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

Servojen ohjaus

Aloittaja risto v, 31.10.15 - klo:15:13

« edellinen - seuraava »

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

risto v

Servotekniikka pahasti vielä hakusessa mutta foorumilla varmaan asiantuntemusta löytyy, eli olis joutilaana servo moottoreita Custom Servo Motors inc. ja niihin servovahvistimet. Tarkoitus olisi rakentaa cnc-plasma leikkuri. Moottorit on n.15-20vuotta vanhoja, miten niiden ohjauksen voisi toteuttaa eli mitä komponentteja tarvisi ja mikä ohjaus olisi järkevä ja helppokäyttöinen ?

Kremmen

Onko sulle servokäytön perusidea tuttu? Eli että "servo" on määritelmän mukaan systeemi, jossa ohjattavasta suureesta saadaan takaisinkytkentä ja systeemi minimoi ohjearvon ja takaisin saadun mitta-arvo erotuksen.
15-20 -vuotiaat moottorit ja servopakit on parhaassa iässään :) jollei niitä ole pidelty kaltoin. Pitää vaan saada rusnaasti lisää tietoa ennen kuin voi antaa kovin tarkkoja vinkkejä.
Järkeviä ohjauksia on monia, helppokäyttöisyys on pitkälti katsojan silmässä. Mach3 (ja nyttemmin kai jo Mach4 myös) on helpohko valmispaketti, mutta kaupallinen tuote. LinuxCNC on varsin monipuolinen mutta helpoksi sitä ei oikein kehtaa sanoa. Ilmainen se kyllä on joskin kehittyneemmissä systeemeissä on maksullisia lisäosia. Omassa jyrsimessäni on LinuxCNC, Mesan FPGA-korttien avustamana. Nuo laskevat kaikki nopeutta vaativat pulssitulot ja pwm-ohjaukset sekä huomattavan määrän koneen ohjaus I/O:ta.

Laita lisätietoa noista servoista. Valokuvia tyyppikilvistä, kuvia servovahvistimien naamatauluista ja kaikesta missä on jotain tekstiä tai symboleja. Niistä voi päätellä aika paljonkin joskus. Ja jos löytyy suorastaan manuaalit niin elämä on helppoa.

Kyselit että mitä komponenteja tarviisi. Vastaan ensin että mitä pitää olla, ja sitten voit tsekata mitä sulla jo on ja mitä vielä puuttuu.
-Moottori jokaiselle liikuteltavalle akselille. Plasmaleikkuri tarvii ainakin X- ja Y- akselit, Z-suunasta en niin tiedä, meneekö servolla vai jollain simppelimmällä systeemillä kun levyjähän tällä kai leikataan Eli korkeusasema ei (juuri) muutu työstön aikana.
- Servovahvistin jokaiselle moottorille.
- Mahdollisesti virtalähde ellei servovahvistimeen sisälly sellaista jo valmiina. Useimmiten ammattikäyttöön tarkoitetuissa vehkeissä vahvistimessa on sisäänrakennettu poweri.
- asema- ja nopeustiedon takaisinkytkentää varten servomoottorin perässä pitää olla pulssienkooderi joka kytketään cnc-ohjaukseen. Noissa servoissa se voi olla hyvinkin jo valmiiksi, mutta se pitää tietää. Joissain vanhoissa vehkeissä on vain takometri jolla saadaan analoginen nopeustieto, mutta ei mitään tietoa paikasta.
- joku tietokoneen tapainen jossa ajetaan varsinaista cnc-ohjelmaa. Mach ja LinuxCNC pyörii tavallisessa PC:ssä, mutta muitakin ratkaisuja löytyy.
- joku keino kytkeä cnc-tietokone, servovahvistimet ja enkooderit yhteen siten, että cnc-ohjain komentaa servoja ja mittaa enkooderilta todellista liikettä. Tässä on kovasti erilaisia ratkaisumalleja mutta ilman lisärautaa cnc-ohjaimessa jää suorituskyky pakosta aika vaatimattomaksi. Mach:in kanssa voi käyttää älykkäitä servoja jolloin asemasäädön silmukka sulkeutuu servossa. LinuxCNC:ssä yleensä silmukka sulkeutuu PC:ssä jolloin servon ohje lähtee PC:ltä jossain muodossa ja asematieto välitetään PC:lle takaisin. Silmukan digitaalinen signalointi on usein aika nopeaa jolloin apuprosessointi esim juuri vaikka Mesan FPGA-korttien muodossa on tervetullutta.
- sitten on keksittävä tapa hoitaa liityntä cnc-ohjaimelta varsinaiseen koneeseen. Vähänkään isommassa koneessa on kaikenlaista härpätintä jota pitää ohjata osana työstön työnkulkua. Pitää sytytellä ja sammutella polttimia ja ohjata monta muutakin juttua. Näitä varten tarvitaan I/O- signaaleja jotak yleensä hoidetaan jonkinlaisen breakout-kortin kautta. Kortti liittyy cnc-ohjaimeen jollain hyväksi katsotulla tavalla - perinteinen on ollut rinnakkaisportin kautta, mutta kehittyneempiäkin löytyy.

Siinä nyt alkuun. Monta muutakin juttua pitää hoitaa, mutta ehkä tuossa päällimmäiset.
Nothing sings like a kilovolt
Dr W. Bishop

cartti

Mitenkään lankaa kaappaamatta, niin mitä kaikkea Mesalta tarvitaan toimivaan järjestelmään? Katselin näitä kerran eikä oikein auennut asia kun siellätäällä luki että tarvitset lisäksi x kortin jne.

Onnistuuko Mesan, linuxcnc ja takaisinkytkennän kanssa torque mode jne?

Kremmen

Juu onnistuuhan vääntömomentin säätö Mesalla, tai siis tarkkaan ottaen ei ne Mesan kortit niitä säätöjä laske, vaan LinuxCNC.
Momenttisäätö on hyvä vaihtoehto jos servovahvistimet ottaa analogista +-10V momenttiohjetta sisään. Sitä varten pitää sopivan Mesan FPGA-kortin perään laittaa breakout joka osaa tuottaa analogilähdön FPGA-kortin pwm-signaalista. Näitä on Mesan valikoimissa useitakin erilaisia.
Mesan FPGA-kortille pitää ladata sopiva firmware jossa on (vähintään) tarvittava määrä servoja esimääriteltynä. Niistä sitten konfiguroidaan käyttöön niin monta kuin koneessa oikeasti on. Tämä konfigurointi varaa kortin I/O-signaaleista tarvittavan määrän servojen signalointia varten ja loput jää vapaaksi. Servosignaalit ovat enable, pwm ja enkooderitulolinjat. Ne pitää viedä sitten ulos/sisään sopivan breakoutin kautta.
LinuxCNC:ssä asetetaan sitten haluttu säätötapa, joko nopeus- tai momenttisäätö.

Nothing sings like a kilovolt
Dr W. Bishop

cartti

Käytössä on vain digitaaliset sisääntulot servovahvareille. Kuinka tuo linuxcnc tai erillinen kortti välissä siis juttelee tuon nopeus tai vääntötiedon vahvareille? Jonkinlainen pwm? +-10V löytyy tietoa kyllä vaikka kuinka, mutta diginä ei.

Sen verran yksinkertainen taidan myös olla etten ota mesan sivuilta kyllä mitään selkoa mitä kaikkea tuon toteuttamiseen vaaditaan.

Kremmen

LinuxCNC laskee liikeratoja ja muodostaa niistä koordinoituja asematietoja siten, että ns controlled point liikkuu pitkin laskettua rataa. Asematieto on LinuxCNC:n muistissa numeerinen ja siitä muodostetaan jollain logiikalla ohjaustieto toimilaitteille.
Jos toimilaite on stepperi niin LinuxCNC osaa suoraan generoida askelpulsseja stepperiohjaimelle ja ulostaa ne joko rinnakkaisportin tai muun vastaavan kautta.
Jos taas toimilaite on servo niin yleensä tarvitaan jotain apuelektroniikkaa sovitukseen jotta servo-ohjain ja LinuxCNC ymmärtävät toisiaan.

Asemansäätö servolla sisältää aina muodossa tai toisessa kolme sisäkkästä takaisinkytkettyä säätöslmukkaa; asemasäätö-, nopeussäätö-, ja momenttisäätösilmukan. Periaatteessa mikä tahansa näistä silmukoista voidaan sulkea joko cnc-ohjaimessa tai servovahvistimessa. Käytännössä moniakselikoneessa asemasäätösilmukka on mielekästä sulkea vain cnc-ohjaimessa koska muuten liikkeiden koordinaatio ei onnistu. Mutta mitään isoa periaatetta siihen ei muuten liity - esim minun jyrsimessäni on Yaskawan SIgma II-servot joihin saa asemasekvensserin suoraan servovahvistimen kylkeen kiinni.

Kaikkien cnc-ohjainten ydin on motion planner eli liikkeensuunnitteluyksikkö joka laskee liikeradat g-koodista tms ja mahdollisesti optimoi ratakorjauksia koneen tunnettujen ominaisuuksien kuten inertian ja kitkavoimien suhteen. Motion plannerin lähtötieto on ajan funktiona muuttuva kontrolloitu piste joka jaetaan koneen liikeakselien suuntaisiksi komponenteiksi. Kunkin akselin liikkuva koordinaatti toimii ohjearvona akselin asemasäätäjälle, joka komentaa akselin nopeussäätäjää liikuttamaan akselia niin että se hetki hetkeltä seuraa annettua ohjeasemaa. Asema- ja nopeussäätäjät saavat takaisnkytkentätiedon servomoottorin enkooderilta jonka pulsseja laskemalla tiedetään akselin asema. Nopeus saadaan derivomalla pulssilukemaa ajan suhteen (nopeushan on aseman ensimmäinen aikaderivaatta).
Nopeussäätäjä vertaa käskettyä nopeutta todelliseen ja muodostaa niistä ohjeen tarvittavaa nopeuskorjausta varten. Nopeus muutuu kiihdyttämällä ja pyörivässä systeemissä kiihdyttävä voima on vääntömomentti. Nopeussäätäjän lähtö on siis ohjearvo momenttisäätäjälle.
Momenttisäätösilmukan täytyy saada takaisinkytkentänä mittasignaali joka on suhteellinen servon akselin vääntömomenttiin. Vaikka olisi mahdollista välittää signaali cnc-ohjaimelle ja laskea momenttisäätö siellä, näin ei käytännössä tehdä. Momentin säätösilmkan aikavakio on kaikken lyhyin, van millisekunten luokkaa joten on selvintä laskea säätö suoraan servovahvistimessa missä tehoelektroniikka muutenkin asustaa.
Jos siis LinuxCNC:tä ajetaan "momenttisäätömoodissa", se laskee asema- ja nopeussäädön, mutta välittää servovahvistimelle momentin ohjearvon ja säätö lasketaan vahvistimessa. Klassinen tapa signaloida momentin ohejarvo on +-10V jännitesignaali jonka vaikkapa Mesan I/O-kortit osaavat muodostaa FPGA.kortin pwm-lähdöstä.

Oletko ihan varma. että servosi osaavat ottaa momentin ohjearvoa vain digitaalisena ja mikä siinä tapauksessa on signaalin speksi? Onko se PWM vai jokin taajuusssignali vai mikä?
Minkä merkkiset servot ne on ja onko niistä millaista dokumentaatiota?

Mesan sivut ei ole mikään selkeyden perikuva, mutta homma on aika yksinkertainen: Mesalla on joukko erilaisia FPGA-kortteja eri PC-väyliin. Näillä voidaan paitsi laajentaa I/O-signaalien määrää, myös laskea juurikin pwm-signaaleja cnc-ohjaimen säätäjien lähtöarvoista. Samalla FPGA voi vastaanottaa enkooderin pulssivirran ja auttaa PC:tä laskemalla servon aseman ja nopeuen valmiiksi ilman pääkoneen apuja. Mesan korteilla olevat Xilinxin FPGAt laskevat helposti niin monen servon signaloinnit kuin mitä kortin I/O-signaaleihin saa mahtumaan.
Noille FPGA-korteille on siten koko joukko erilaisia breakout-kortteja. Jotkut vain tuovat signaalit liittimille kaapelointia varten ja jotkut muokkaavat niitä. Jälkimmäisiin kuuluu pwm/analogi -muunnos jolla saadaan ulos analogisia jännitteitä pwm-signaaleista. En muista tarkkaan mutta olen melko varma, että sieltä löytyy myös muokkaimia jotka muuttavat yksipäisen signaalin differentiaaliseksi ja päinvastoin.
Noiden lisäksi Mesalla on kaikenlaista muutakin kuten omia servovahvistmia, jotain modbus-väyliä tai sen tapaisia ja niihin sovittimia jne. Mutta ne on vähän eri asiaa eikä niitä pidä sotkea perusservoihin.

Nothing sings like a kilovolt
Dr W. Bishop

cartti

Purkit ovat mcac808 ja dokumentaatio kiinatyyliin vajavaista. http://www.novanic.co.uk/catalog/files/256_MCAC808_E.pdf

Kaikki sisääntulot ovat siis optoilla. Tällä hetkellä käytössä on step/dir ja takaisinkytkentä enkooderilta servovahvarille. Nopeudet jää vain vaatimattomiksi kun tuo rinnakkaisportti ei jaksa tehdä pulsseja kovinkaan kiukkuisesti. 5000steppiä/kierros ja 2mm nousulla ruuvit ei auta asiaa. :)

Nyt kun pähkäilin tuota pdfää taas niin mietin voiko se olla niin että step high = cw ja dir high = ccw? Voiko se yleensäkään toimia noin saati löytyykö mistään raudasta/softasta tukea moiselle?

jyrki.j.koivisto

mcac808 huolii aivan normi step/dir pulssit tuon pdf:n mukaan.

Minua kiinnostaisi tietää että minkälaiset vaatimukset tuommoisella +-10v ohjauksella on. Riittääkö ulostuloon joku sopiva operaatiovahvistin? Servo ohjain ei taida tuota signaalia juurikaan kuormittaa.

Kremmen

Ja näyttää siltä, että se ei muuta huolikaan kuin vain tuon step/dir -inputin. Kiinalaiseen tyyliin dokkari on jonkin verran sekava, mutta ainakaan tulosignaalien liitinkuvasta ei löydy muita inputteja kuin optoerotetut digitaaliset step ja dir signaalit ja niiden lisäksi reset (tai enable jos sen haluaa niin päin ajatella).
Eli tuon perusteella ei näytä siltä, että servot ottaisi mitään analogisia signaaleja sisään. Kun ei missään ole myöskään mainittu, miten säätäjän toimintatapaa voisi valita, ei liene konstia ohittaa asema- ja nopeussäätöjä vaan purkki haluaa aina tehdä ne itse. Samaan vihjaa kiinteästi konfiguroitu lähtö INPOS eli että servo on asemassa. Tämähän ei ole relevantti nopeus- ja momentisäädöllä kun servovahvistimelle ei anneta silloin mitään määräpaikkaa ohjeeksi.

Vaikuttaa siis siltä, että nämä servovahvistimet on kiinteästi kofiguroitu sisältämään kaikki säätösilmukat eikä niistä pääse eroon. Vaikka siis LinuxCNC pystyy toimimaan servot momenttisäädöllä, niin nämä servot ei taida siihen pystyä.

-Martti
Nothing sings like a kilovolt
Dr W. Bishop

cartti

Ihmetyttää vain kovasti nuo valinnat dippikytkimillä mitkä on esitetty ensimmäisen sivun oikeassa alalaidassa. Speed ja torque mode? Täytyisi melkein kokeilla mitä se tekee jos dippaisi sen vaikka speed moodiin ja syöttää pwm 0-100% duty cyclellä. Taajuus vaan lienee mysteeri.

olli henttonen

ainakin noissa Deltan servoissa täytyy erillisellä ohjausohjelmalla kertoa servoille mitä singnaalia se tottelee ja oletuksena on normi low step/dir. Ohjelmalla tallennetaan servon ohjaimelle että oletusarvo on analoginen +-10v spaad/torgue ja vasta senjälkeen pelittää.
dyykkari

cartti

Tajusinkin juuri tuon eron step/dir ja cw/ccw välillä. Cw/ccw ottaa yhden askeleen siihen suuntaan riippuen kumpaan pinneistä antaa pulssin. Tämä ei siis lohduta yhtään lisänopeuden saamiseksi.

Lisähämmennystä kyllä tuo nuo maininnat tuosta pos.ff potikasta joka ei ainakaan step/dir moodissa tunnu vaikuttavan mihinkään. Manuskassa maininta:
* Speed control: input simulates 0V~+3.3V voltage signal (speed input by Pos.ff);
* Torque control: input simulates 0V~+3.3V voltage signal (torque input by Pos.ff);

Samoten säätöosiossa: 3) increase the Pos.ff to fulfill a minimum lag and overshoot.

ttontsa

#12
Totanoin

Noista purkeista et ymmärtääkseni saa enkooderiulostuloa kirveelläkään mesalle päin eli et saa systeemiä toimimaan closed loop:na ellet tee enkooderien rinnalle jotain hässäkkää mikä kytkee enkooderidatan myös linuxcnc:lle. Miksi siis haaveilla analogisesta speed tai torque ohjauksesta??

plug&go kitillä 5i25 (pci)+7i76 tai 6i25 (pcie)+7i76 voit ajaa servopurkkeja "steppereinä", eli step+dir muttet saa niitä takaisinkytketyksi. lisäksi saat karaohjauksen enkooderitulolla  ja 32 inputtia ja 16 out. pulssinopeus nousenee lpt:n nopeudesta khz..Mhz luokkaan.

kustannus n.199$

http://store.mesanet.com/index.php?route=product/product&path=69_73&product_id=215

***********************'

Ja analogiselle nopeusohjeelle +/-10V palikat 5i25 (pci)+7i77 tai 6i25 (pcie)+7i77, itse ajelen nyt Deltan servopakkeja nopeusohjeella analogisena ja full closed loop:na

kustannus 279$

http://store.mesanet.com/index.php?route=product/product&path=69_73&product_id=214

Hitsaus&koneistus&Protopaja
www.tulinen.fi

cartti

Enpä huomannut mesan storen puolelta katsoa edes näitä vaihtoehtoja. Itse pääsivulta vain ihmettelin tekstiseiniä ja raavin päätä mikä nyt olisikaan se oikea laite toteutukseen. Kiitos näistä. Ilmeisesti vaan ainut vaihtoehto on sitten luopua läppäristä ja niputtaa pöytäkone erillistä korttia varten.

ttontsa

Ei ole kokemusta, mutta ilmeisesti 7i92+7i76 yhdistelmällä saa stepperit ja step/dir moden servopurkit ethernet:n perään.
Hitsaus&koneistus&Protopaja
www.tulinen.fi

Powered by EzPortal
SMF spam blocked by CleanTalk