Vlastní interpolátor

Odpovědět
KoudyDevCZ
Příspěvky: 2
Registrován: 1. 6. 2015, 8:13

1. 6. 2015, 8:29

Zdravím,

před pár měsíci jsem se pustil to výroby vlastní elektroniky a software pro řízení tří osého cnc ... jsem programátor takže to pro mě byla docela výzva a bezva experiment :) ...

rozhodl jsem se použít čip od NXP LPC1768 (mbed), teď už se dá konečně říct že to funguje jak má a jsem s tím celkem spokojenej ale když jsem chtěl tak nějak porovnat jak si vedu oproti "komerčním" řešením nebo třeba proti podobným projektům s arduinem a podobně tak jsem narazil na drobnou nesrovnalost nebo spíš něco tak úplně nechápu :)

Jde o maximální frekvenci, narazil jsem na to že je běžně u některých interpolátorů napsané že mají maximální frekvenci kroku 100KHz ale minimální délku pulzu třeba 25uS pokud se to ale snažím spočítat tak mi při 25uS vychází jen 40KHz jak to vlastně je?

Moje elektronika a software jede momentálně na minimální délce pulzu 25uS a já měl za to že zvládám jen 40KHz ....

Jinak cnc mi dává momentálně max 6000mm/minutu a na maximum zrychlím na 7,5mm, Elektronicky je nejmenší pohyb 0.0025mm ... mechanicky už to tak slavné nebude :). Jak jste na tom vy? A jak jsem na tom vlastně já? :)

Díky za odpovědi
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

1. 6. 2015, 9:46

A ty parametry 25us/100kHz jsi vyčetl kde?
Myslím, že ani hodně dobré CNC ještě neumí dilataci času. ;-) Takže to bude asi nějak jinak.
Třeba TinyG2 na SAM3X8E (tedy Cortex-M3, aby to bylo srovnatelné s tím tvým LPC) jede dost přes 100 kHz, délka pulzu se tam dá udělat v jednotkách us.

Prozradíš něco víc o tom svém řešení? To je přímo stand-alone interpeter G-kódu, nebo je to určeno jako podřízená jednotka nějakého vyššího zařízení typu Mach, LinuxCNC atd.?
bronek999
Příspěvky: 521
Registrován: 6. 3. 2014, 6:50

2. 6. 2015, 5:48

Pouzivam 16 mikrokrokov, stupanie 5mm a dostavam sa cez 100kHz. Tych 40kHz by ma brzdilo pri rychloposuvoch a to mam krokove motory a nie serva.
Ked uz chces porovnavat tak atmega328 je 8 bit beziaci na 16MHz a s grbl da 50khz.
A krmis ho priamo G kodom.
Kedysi som tiez riesil vlastny interpolator ale je to strata casu. Ked tak upravit nejaky free projekt, najskor som si portoval grbl pre STM32 a teraz riesim TinyG2. Vsade clovek najde nejaku chybicku ale nie zasadnu.
KoudyDevCZ
Příspěvky: 2
Registrován: 1. 6. 2015, 8:13

2. 6. 2015, 7:51

Díky za informace pánové! Přesně to jsem potřeboval :)

Ty parametry jsem zahlédl myslím na 4isp ...

Mám stand-alone interpeter, jen ne gcode ale něco podobného co jsem vytvořil v binární podobě (dá se to rychleji nahrávat i zpracovávat). Funguje to tak že mám řídící program na pc v tom se dá cnc nastavovat, ovládat manuálně nebo zapínat automat. Když chci poslat do cnc gcode tak se nejdříve gcode převede do mého formátu a pak se nahraje do interní paměti cnc... z té se dá kdykoliv spustit i bez pc. V paměti může být libovolné množství programů... Až budu doma tak třeba přiložím i pá obrázků nebo videí.

Těch mých 40KHz samozřejmě není limit jen jsem si na víc zatím netroufl :), mbed zvládne časovat irq až na 24Mhz takže by neměl být problém generovat třeba i 200KHz signál ... hlavně musím ještě trochu doladit výpočty pro akceleraci a spomalení (křivka je moc exponenciální) a když zrychluju na víc než 6m/min tak motor ztrácí krok :-/

Každopádně mi to jako ztráta času nepřijde víc než o to cnc mi jde o to si s tím pořádně pohrát a zkusit si to všechno udělat sám.....

No vypadá to že dneska budu ladit rychlost :D dost mě překvapuje že se dá s krokáčema při 16 mikrokrocích jet i na 100KHz! Na jaké vzdálenosti nabere plnou rychlost?
bronek999
Příspěvky: 521
Registrován: 6. 3. 2014, 6:50

2. 6. 2015, 10:49

100kHz / 6400 (krokov na otacku)=15.6 ot/s = necelych 1000 ot. za minutu. Na 3fazovy motor bez zataze sa da.
Zrychlenie neviem. Mam nastavenych 40 ale neviem z hlavy ake jednotky su to.tinyg2
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

2. 6. 2015, 5:31

Když jsem v jednom dřívějším projektu (ne z oblasti obrábění) potřeboval generovat pulzy pro krokáč, tak jsem to dělal pomocí HW. Používal jsem na to výstup čítače.
Dnešní ARMy mívají čítačů docela dost, takže není problém přiřadit každé ose klidně dva - jeden pro výstup pulzů a druhý pro čtení enkodéru.
Kdybych dneska nějaký interpolátor psal (jakože nebudu), tak bych se to určitě zase snažil udělat nějak takhle.

Nevím, kde předchozí přispěvatel vzal výpočet "100kHz / 6400 (krokov na otacku)=15.6 ot/s = necelych 1000 ot. za minutu" pro driver s mikrokrokováním 1:16. Pokud je to běžný 2f krokáč, tak by to mělo být 16x200=3200 pulzů na otáčku, u 3f se myslím používá 300 full kroků na otáčku, takže 16x300=4800 pulzů na otáčku.
Ale malé krokáče s dobrým driverem dokážou točit docela dost. A serva samozřejmě ještě mnohem víc. Takže pokud tvůj interpolátor není určen jen a pouze pro jedno konkrétní řešení, tak se s tou frekvencí "neomezuj". Víc je určitě líp.
bronek999
Příspěvky: 521
Registrován: 6. 3. 2014, 6:50

2. 6. 2015, 6:14

Driver 3DM683 s motorom 1.2 stupna 3 fazovy. Ten driver sa da programovat aj napr. 1000 krokov na otacku
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

2. 6. 2015, 7:04

Takže platí varianta B, motor 1.2 stupně má 300 full-kroků na otáčku, takže při tebou zmiňovaném mikrokrokování 1:16 je to 16x300=4800 pulzů na otáčku, tedy při 100 kHz je to 1250 RPM.
Odpovědět

Zpět na „Ostatní elektronika“