Jag gjorde just ett litet test där jag delar upp en "move" i fraktioner baserat på tiden jag ämnar spendera åt rörelsen. Koden kör jag på en teensy 4.0 i 600MHz.
Galvocountern kommer upp i 3028 som lägst och toppar på 3150.
Är servom verkligen ett bra val? Jag har sett folk som gjort det och lyckats så jag betvivlar inte om det går eller blir bra men det känns dyrt, för det är ju inga RC servon vi pratar om.
Sen har ett servo viss tröghet genom mycket massa i statorn och är byggt för att flytta vikt till skildnad från en galvo motor ( eller vad den kallas ) som är byggd att endast flytta en lätt vikt, typ en spegel, och klarar acceleration långt mycket både snabbare och effektivare än ett servo någonsin kan. Ett servo borde dessutom ha mera energiförlust p.g.a. massan den flyttar runt.
Industriservon regleras inte så snabbt, några 1000Hz är det mesta jag har sett inom det normala spektrat.
Industriprylar kan man reglera i ms-skalan ungefär, där är en massa mjukvarukrafs som snurrar i dem och
knappt någon enda kund efterfrågar bättre respons än 1 ms.
Höghastighetspressar som går som tyskarnas MG42-kulspruta byggs fortfarande rent mekaniska för det har
inte funnits några servostyrningar som har varit snabba nog för att synkronisera de rörelserna. Nu med
linjärmotorer & kraftiga FPGA så skulle det kanske gå att få till men Siemens Simotion och de andra färdiga
lösningarna som finns är nog en 10-100 gånger för långsamma. Har bläddrat lite i Simotion-manualen och jag
har för mig att det var ms som var skalan, inte us.
Men är det verkligen frågan om us tidsupplösning.
Är det inte mer frågan om mekanisk upplösning.
Du skall vrida spegeln med mycket stor precision, dvs någon hundradels grad eller så på kort tid, med steg motor, eftersom den styrs diskret, så behöver du naturligtvis en hög upplösning i tid, eftersom den efter nedväxling måste drivas rätt många steg.
Med ett servo, försett med enkoder och tacho, så hanterar ju servodrivaren detta, helt utan inblandning av ditt styrkort.
Du skickar ju i princip ett kommando till servodrivaren, Snurra 95,252 varv med en hastighet av 10000 rpm.
Servodrivaren startar motorn, och efter ett tag så bromsar den motorn så den har snurrat exakt det antal varv som begärts.
Snabbhet, tja, en linjär rörelse på ett par meter/s är ju inga problem, dessutom går det få mycket kraftig acceleration.
har du nånsin sett hur en sls skrivare jobbar?
det ska ju inte ta lika lång tid som en vanlig "plastskrivare",
om varje "laserpixel" tar typ 1uS att smälta vill man ju utnyttja det.
TomasL skrev: ↑9 augusti 2021, 09:21:17
Men är det verkligen frågan om us tidsupplösning.
CNC är två eller flera servon som ska göra mikroskopiska linjer i olika riktningar i 2D eller 3D. Servona måste nå start-
och ändpunkterna samtidigt och enbart i "långsam" höghastighetsfräsning så handlar det om 10'000-tals mikrolinjer
per sekund.
Även en sketen 8-bitars Arduino spöar skiten ur det mesta på industrimarknaden för de släpper inte in kunderna i
de innersta reglerlooparna. Inte ens utvecklare inom ABB blir insläppta till bättre än ms timing i robotarnas OS,
vi kunder är ytterligare en loop ut och får jobba med några 10 ms.
Att man inte får tillgång till bättre precision än ms har nog mer med garanterad precision än något annat att göra om det nu stämmer. (inte för att jag tvivlar) Skall du in på ns territorium har tillverkare svårt att garantera att input, output och verklig rörense stämmer överens. Men laserskanners från 2k eur och uppåt jobbar i de regionerna. så det beror nog lite på tillämpning. Tröghet har en hel del med det att göra så visst kan man få bättre upplösning men det betyder ju inte nödvändigtvis att saker blir snabbare, bara mera precisa. Sen ska man upp i ganska dyra industrigrejor för att grejornas elektronik skall vara av bleeding edge standard. Många moderna stegmotordrivare har fortfarande intern elektronik som är 15+ år gammal... och det gäller många andra industrigrejor med. Men eftersom dagens utveckling går så snabbt innebär det också att man i ett hobbyprojekt kan nå iallafall upplösning om än inte precision som industrin har svårt att hålla takt med.
Sen är det en annan fråga vad som efterfrågas - det är inte nödvändigt eller ekonomiskt försvarbart att tillverka saker i högre precision än tillämpningen kräver. En maskin som skall dubbla precisionen kanske kräver 4 eller 8 gånger rigidare konstruktion vilket har motsvarande effekt på maskinens pris - och är sällan försvarbart. Få tillämpningar kräver bättre än 0.01mm precision då det som kräver precision ofta hanteras på annat sätt - typ borrhåls position vs innerdiameter. När man 3D printer märker man fort att 0.1mm upplösning känns grovt, att 0.05 känns fint och 0.01mm känns sjukt bra men efter 0.05mm så spelar det inte så stor roll eftersom FDM teknikens brister och begränsningar gör sig påminda. om man skulle sätta in mekanik som ger 0.000001mm presision på en 3d printer skulle den inte nå mycket bättre upplösning än 0.05mm iallafall då andra faktorer (som inkonsikvent fillament diameter) kommer vara den svaga länken. Samma gäller industrimaskiner och tidsupplösning.
I min tillämpning har jag som mål att nå mellan "industrihastighet" och "Allt vad min Teensy processor kan åstakomma". Med 65k x 65k punkter över en yta på 250mmx250mm blir det en del punkter över även vid hög upplösning. Med en "step/Dir approach" blir det många steg att processa men om jag kan märka ut viktiga punkter att nå samt interpolera resten baserat på tid så kan Teensyn fylla i bäst den orkar och jag kan på så sätt nå högre hastighet...
Jag har idag publicerat koden till min kontroller på Github: https://github.com/opengalvo/OPAL
Krashar lite då och då, läcker minne och har mängder med skavanker men istället för att alla sitter på sin kammare tills något är perfekt så släpper jag in folk redan nu...