Řízení navíjáku
Moderátor: Moderátoři
Řízení navíjáku
Na fotce dole je celý naviják. Filament do něj vstupuje "brzdící" teflonovou trubičkou, jde do průběžnýho měření tloušťky filamentu a pak přes natáčecí rolnu do vodítka, který by mělo rovnat na cívce závit vedle závitu. Měření tloušťky není do regulace nijak zapojený, motor cívky má pouze ruční regulaci otáček. Motor bude zapínám pokud filament v gravitačním oblouku poklesne pod dolní optozávoru a vypne se pokud vyleze nad horní optozávoru.
Aby se optimálně navíjela cívka závit vedle závitu, použil jsem vodítko ze závitovky M10 kterým hejbe krokáč Nema 17, 200kr/ot. Vodítko má stavitelný reverzační mikrospínače. Na cívce je halovka která během jedné otáčky cívky dá 5 impulzů pro ovládání krokového motoru vodítka. Při každém impulzu z halovky se pošle do krokáče několik desítek impulzů, které posunou o kousek vodítko. Pokud dojede vodítko k bočnici, krokáč se zreverzuje a 2 otáčky cívky vodítko stojí aby se správně rovnaly závity filamentu u bočnic.
Tohle vše mi chodí ale mám s tím problém poměr otáčení cívky k vodítku a nevím, kde je zakopanej pes.
Filament má průměr 1,75 mm, to znamená, že za jednu otáčku navíjecí cívky se musí vodítko posunout o 1,75 mm. Závit vodítka M10 má stopupání 1,5 mm na otáčku. Z toho plyne, že se musí závit otáčet 1,75 / 1,5 = 1,1666 rychleji než navíjecí cívka. Takže krokáč musí dostat během jedné otáčky cívky 200 x 1,1666 = 233,33 kroků. No a teď do toho vstupuje krokáč a nastavení jeho driveru. Ten se dá nastavit na plnej, poloviční, čtvrtinovej, osminovej a šestnáctinovej krok. Předpokládám, že těch mých 233 kroků bude pro plnej krok, pro půlkrok musím poslat 466, čtvrtkrok 933 atd. Mám zvolený čtvrtkrok, takže těch 933 musím podělit 5 impulsy z hallovky, takže po každým najetí na hallovku musím poslat do krokáče 187 kroků. (Čtvrtkrok jsem zvolil aby na počítání stačil 8 bitů registr)
Nojo, ale problém je, že mi to nerovná závity jak bych si představoval. Nemohl by prosím někdo zkontrolovat ty mý početní úvahy jestli není něco špatně? Pokud to bude správně asi mi ztrácí krokáč kroky, třeba ho krmím moc velkým kmitočtem. Halovka má v sobě šmiťák, v programu je navíc protizákmit ošetřený dvojtým čtením s mezerou 50uS, takže halovka si vymejšlet nemůže.
Protože celý řízení jsou převážně bitový operace se vstupama a výstupama, použil jsem 89C2051 a "regulaci" napsal v A51.
Díky za případnou konzultaci a pomoc.
- Přílohy
-
navíjení.jpg- (100.9 KiB) Staženo 268 x
Proč mi nemůže všechno chodit hned ?!!
- frantajetel11
- Příspěvky: 1922
- Registrován: 13 lis 2008, 00:00
- Bydliště: Kladno
Závitovka je klasika z železářství, podle měrky má opravdu stoupání 1,5 mm.
Mezi krokáčem a závitovkou žádná spojka není, je tam červík na plošku hřídelky motoru, takže se protočit nemůže.
Proč mi nemůže všechno chodit hned ?!!
p.s. Při dosažení konc. polohy by se také vodítko mělo přesunout do optimální polohy pro opačný směr ukládání závitů.
frantajetel11 píše:Já se jenom zeptám:
Jak máš vyřešený zvětšování průměru na cívce s přibývajícím materiálem?
Nevím jak moc je ta struna na cívce ochlazená... Při konstantních otáčkách by tu strunu víc a víc natahovala. Nebo je to už studený a je tam nějaká kluzná spojka?
Nijak ale nepřímo zapínáním a vypínáním motoru cívky
V tomhle problém není, princip používá více lidí.
https://www.youtube.com/watch?v=uWDkBzS0XFI
Ten systém s servem je ale blbost, nemůže nikdy fungovat stejně ve všech vrstvách cívky, předělal jsem ho na lineární vodítko, viz fotka v prvním příspěvku.
Problém u mě je v vodítku, který špatně rovná filament na cívku. Buď je špatně ten můj výpočet kroků k správnýmu posuvu vodítka nebo v krokáči. Proto jsem chtěl, jestli by ten výpošet někdo nezkontroloval.
Před chvílí jsem mluvil s autorem 3D tiskáren Rebel a on je problém s akcelerací té soustavy krokáč-závitovka-vodítko. Vůbec mě nenapadlo, že se krokáč musí rozbíhat postupně, pokud se mu dá přímo prda prvního celýho kroku, tak ji nemusí vykonat, což se mi asi děje. Zkusím nastavit u driveru podstatně víc mikrokroků, s nima by to dělat nemělo. Ale zase se nesmím dostat počtem kroků za maximum, co krokáč ještě umí s přijatelným kroutícím momentem vykonat.
Jdu si zase zaprogramovat.
edit to masar: Skutečná odchylka čeho? Jak se mi to blbě skládá? Vypadá to vodítko jede pomaleji a občas je tendence navršit hlavně u kraje víc smyček návinu na sebe odhadem tak 2-3.
Proč mi nemůže všechno chodit hned ?!!
- jova1
- Příspěvky: 1384
- Registrován: 20 pro 2007, 00:00
- Bydliště: Chýnov - to je kousek od Tábora
- Kontaktovat uživatele:
Jednoduše bys to ověřil pokud by jsi přepnul driver na plné kroky.
Na ztrátu kroků při rozběhu motoru bych to v tomto případě neviděl. Mohlo by se to dít při velkých otáčkách v řádu stovek za minutu. Tolik ti to zřejmě netočí
Kód: Vybrat vše
KROKAC:
MOV B,#HALL_PULZ ;kolik pulzu po detekci hallu
N_STEP:
SETB STEP ;pulz Step=H
CALL DELAY_50uS ;trvani H
CLR STEP ;pulz Step =L
CALL DELAY_02mS ;trvani L
DJNZ B,N_STEP ;dokud neni B=0
RET
Delay jsou dělaný odčítáním registrů ve smyčce. Otáčení cívky a závitovky je hodně pomalý a FW to bez problému stíhá, tak jsem ani neřešil jednotlivý zpoždění přes intervenci od časovačů.
Ale zrovna v tomhle podprogramu jsem měl chybu v instrukci MOV B, zapoměl jsem dát před HALL_PULZ označení přímýho operandu # a ono se to chovalo jako nepřímá adresa a do B se cpal nesmyslný obsah adresy 187. Pak to dost blblo.
Nyní už posuv vodítka jede jak má. Odladil jsem ho na šupléru s ručním otáčením cívky. Otáčením cívky jsem vygeneroval 50 x hlášení od Hall (pro 10 otáček cívky) a měřil zda se vodítko posune o 17,5 mm. Je to divný, musel jsem místo 187, co vypadlo z výpočtu pro čtvrtkrok zadávat o 4 pulzy víc, tedy 191. Nevím proč, při krokování po instrukcích se nic neztrácí, nechápu. Ale chodí to dobře, tak to dál zkoumat nebudu.
Zítra k tomu zkusím připojit optozávory pro gravitační oblouk. Doufám, že tam nebude zakopanej nějakej další pes. Mám obavu, jestli bude stačit jen jeden snímací optotranzistor na dolní a jeden na horní závoře. Většina dává osvit dvou až tří paralelně zapojených trandů a svítí na to laserovou diodou tvaru čáry. No uvidíme.
Proč mi nemůže všechno chodit hned ?!!
1:1 muselo být pokud jsi generoval jednotlivý fáze programově přes jednoduchý drivery, ve kterých byly jen výkonový tranzistory.
Proč mi nemůže všechno chodit hned ?!!
kbulda píše:Proč jsi nepoužil závitovou tyč M 12 ? Ta má stoupání záviti 1,75 mm.
Já vím, jenže M12 dvojtá matka s pružinovým vymezením vůle ve vodítku vycházela už hrozně veliká. Dokonce jsem chtěl použít jen zavitovku M8. Ten přepočet 1,5:1,75 tedy 1,1666 není až takovej problém.
to Atlan: jak jsem psal, střída nemá žádnej vliv. Podle datasheetu umí DRV8825 zpracovat pulzy až 1,9uS, já mám 25x delší. Ale můžu odzkoušet natáhnout H a zkrátit L.
Jdu vyzkoušet jak to bude navíjet filament ve více vrstvách, hlavně přechod u bočnice na vyšší vrstvu. Jako zdroj použiju koupenej filament na cívce a převinu ho na druhou.
edit to Atlan: zkusil jsem pulzy otočit, 50uS v L a 200uS v H a driveru je to šumák. Ale stačí těch celkových 250uS zkrátit na 200uS a krokáč už nebere. Takže pro sichr jsem to natáhl 100uS v H a 200uS v L. Pokud jsem dal obojí 200uS tak krokáč hnusně drnčí.
Proč mi nemůže všechno chodit hned ?!!