Náhrada výměnných kol posuvu za krokový motor s elektronikou

Odpovědět
lubbez
Příspěvky: 3155
Registrován: 21. 6. 2012, 9:26
Bydliště: Praha

3. 11. 2020, 5:23

Začnu tím přerušením a počítáním. Pokud budu pracovat s procesorem s hodinama 16 MHz, tak mi 1000 pulzový enkodér (snímám náběžnou i sestupnou hranu) při 600 ot/min generuje přerušení každých 50uS, k tomu je nutno přičíst režii na obsluhu toho přerušení a ve výsledku už nezbývá čas na normální práci. U STM s hodinama 75 MHz je to jiné. Tady nemá smysl probírat podrobnosti, neb každý zvolí ve výsledku jiné řešení.
Absence pulzu Z se sice dá nějakým počítáním generovat, ale je tu pár úskalí. Už si myslím, že je závit hotovej, odjedu suportem, zastavím vřeteno vezmu matici nebo kalibr kroutím sem a tam a pak potřebuju závit třena ještě dolíznout. V tu chvíli už ten čítač musí počítat dopředu i dozadu a celkově program narůstá. Proto volím Z. :-)
Samotné řezání dělám takto. Najedu si nožem na začátek závitu a označím tlačítkem OK. Najedu na konec závitu a opět označím tlačítkem OK. Na displeji se mi ukáže délka závitu v mm, ale já samozřejmě počítám v krocích motoru. Každý pohyb směrem od vřetena je delší o 200 kroků a pak se 200 kroků vrátím, abych vymezil vůli trapézové matice šroubu.
Tlačítkem návrat rychle přejedu s nožem na začátek závitu vč. vymezení vůle, pustím vřeteno. Otáčení vřetena hlídám samostatným pinem. Pokud je vše OK aktivuje se systém přerušení jedno čeká na tlačítko "závit", pro sychr počkám na druhý pulz Z a pouštím hlavní přerušovací smyčku. Ta generuje signál STEP podle předem nastavených parametrů. Na konci závit se suport zastaví a já ručně vyjedu nožem ze záběru a opět tlačítko "návrat" a na začátek pak nastavým nový úběr mám samozřejmě DRO a opět tlačítko "závit". Tohle opakuju až do požadované hloubky závitu. Krom toho mám ještě tlačítko "odjezd suportu" a "návrat", abych si mohl ten závit překontrolovat fyzicky. Celé to funguje na stroji TOS Mn80. Prakticky to emuluje ozubená kola a stoupání závitu je nezávislé na otáčkách vřetena. Pokud vřeteno vypnu, zastaví se i suport a nedojde k poškození ani nože ani závitu.
Kromě závitů mám možnost ještě prostě pohybovat suportem, rychlost řídím potenciometrem a samozřejmě tam mám stavitelný elektronický doraz. U této funkce měním krokování motoru ze 400 step/ot na 1600 step/ot aby byl pohyb plynulý. Používám driver Leadshine M542 a napájení cca 38V.
edit. Samozřejmě by bylo možné omotorovat i suport a pak by už to bylo NC. O to však nestojím, přesněji krásnou starou Mn80 takhle nezprasím. :-) Kdybych chtěl CNC soustruh, tak si ho postavím, na lineárech a s kuličkáčena. Ovšem živit se sériovkou mě opravdu nebaví. Tady jsem si chtěl pouze dokázat, že to dám a to se povedlo. Paradoxně největší výhoda je ten prostý elektrická posuv suportu a stavitelný doraz. Je až neuvěřitelné, jak se změní kvalita povrchu změnou posuvu.
atlan
Příspěvky: 3345
Registrován: 7. 2. 2011, 9:12

3. 11. 2020, 7:13

Rampa, no najdi si na nete alebo tu na fore.
Ked budes potrebovat tocit krokacom 1000ot nemozes tam z fleku trepnem signal 1khz,lebo sa motor neroztoci len bude piskat. Potrebujes postupne zvysovat frekvenciu z 0 na 1khz.
Tak ze bez rampy sa krokac vie rozbehnut z fleku na napr 500hz.

To cinske res nemecke servo by malo zabezpecit rozbeh same, len noz by musel zacinat dalej od zavitu, co nieje problem.

System som mal podobny ako kolega nadomnou, ale prrsiel som na zadavanie hodnoty dlzky pohybu noza cez klavesnicu praktickejsie.

Viem ze mi treba sustruzit na dlzke 5mm vlozim ze sa manposunut o 5mm. Mam tam tlacidlo na odsun a prusun suportu kazdemu viem priradit hodnotu, standartne 60mm koli meraniu posuvkoi, a 2mm pre rezanie zavitu od zarovnaneho cela hriadele sa noz vzdiali o 2mm.

Nema zmysel robit cnc ked robis jednokusy. Navyse miesto na pc a klavesnicu....

Velke sustruhy maju prevodovku a radis posuvy tam, male to nemaju a prehadzovat kolesa je otrava. Navyse strasna strata casu.

Z ma vyhodu ze nemusis stale sledovat encoder, vies ze si rezal zavit v dlzke 500krokov, proste sa o 500krokov vratis rychloposuvom, pockas na Z index a spustis rezanie zavitu s dlzkou 500krokov.

Navyse Z ti automaticky nuluje citac ak to mas v rezime uhlomera, na 2000im encodery ked tym par krat zamavas hore dole sa to rozhodi
Z vies doronitvaj dodatocne staci niekde na vretene magnet a snimac, ale preco komplikovat ked predavaju abz snimace.

Este jedna vec, uP je casto v preruseni, a este musi generovat step signal pre krokac, ja generujem impulzy step UARTom. Tym padom neriesim obsluhu step, len poslem jedno cislo na uart a vybavene, citac pouzivam na merainie otacok.
Tlatoani
Příspěvky: 75
Registrován: 8. 8. 2020, 8:42

3. 11. 2020, 10:13

Díky pánové za věnovaný čas, je vidět že máte za sebou kvanta zkušeností. Vypíchnul jsem pár bodů u kterých mam dotaz.
lubbez píše: 3. 11. 2020, 5:23 ...........generuje přerušení každých 50uS, k tomu je nutno přičíst režii na obsluhu toho přerušení a ve výsledku už nezbývá čas na normální práci. .................
Co dalšího je v době soustružení kromě řízení krokáče od procesoru potřeba? Napadá mě zobrazování a i bez toho se dá obejít.


atlan píše: 3. 11. 2020, 7:13 Rampa, no najdi si na nete alebo tu na fore.
Ked budes potrebovat tocit krokacom 1000ot nemozes tam z fleku trepnem signal 1khz,lebo sa motor neroztoci len bude piskat. Potrebujes postupne zvysovat frekvenciu z 0 na 1khz.
Tak ze bez rampy sa krokac vie rozbehnut z fleku na napr 500hz…..
Aha, jasné, stručné, srozumitelné.


atlan píše: 3. 11. 2020, 7:13 Nema zmysel robit cnc ked robis jednokusy. Navyse miesto na pc a klavesnicu....
Jde mi o možnost definovat zakřivení nebo soustružit kužel.


atlan píše: 3. 11. 2020, 7:13 Navyse Z ti automaticky nuluje citac ak to mas v rezime uhlomera, na 2000im encodery ked tym par krat zamavas hore dole sa to rozhodi
Díky čemu se to rozhodí? Dělá to enkoder nebo jde o procesor a to že nemusí stíhat?


atlan píše: 3. 11. 2020, 7:13 Este jedna vec, uP je casto v preruseni, a este musi generovat step signal pre krokac, ja generujem impulzy step UARTom. Tym padom neriesim obsluhu step, len poslem jedno cislo na uart a vybavene, citac pouzivam na merainie otacok.
UART neboli Universal Synchronous / Asynchronous Receiver and Transmitter (jako u RS232) který pošle požadovanou rychlost otáčení krokáče a jeho driver se postará? Nějak mě nenapadá jak by šlo využít sled 0 a 1 při UART vysílání pro řízení krokáče, snad měnit vysílací kmitočet a nějak zařídit okamžik startu vysílání.
atlan
Příspěvky: 3345
Registrován: 7. 2. 2011, 9:12

4. 11. 2020, 6:13

Mam enc s 2000 dielikmi, to je velmi jemne delenie a ked to zakmita pri rucnom otacani, tak vygenerujes viac impulzov jednym smerom, kedze nedojde k ovplyvnemiu kanala B len A

Uartom posielam 10101010 a tym padom mozem pouzivat na drivery nastavenie 1/4 tym padom rovnomernejsi tichsi chod, bez rrzonancie. Akurat rychlost uartu by mala zodpovedat otackam vretena a velkosyi stupania.
V praxi ne rychlost uartu vyssia a nenim ju.

uP musi rragovat na encoder, generovat impulzy pre krokac a este obsuhovat displej, v mojom pripade este merat rychlost vretena.
bronek999
Příspěvky: 521
Registrován: 6. 3. 2014, 6:50

4. 11. 2020, 5:03

atlan píše: 4. 11. 2020, 6:13 Mam enc s 2000 dielikmi, to je velmi jemne delenie a ked to zakmita pri rucnom otacani, tak vygenerujes viac impulzov jednym smerom, kedze nedojde k ovplyvnemiu kanala B len A

Uartom posielam 10101010 a tym padom mozem pouzivat na drivery nastavenie 1/4 tym padom rovnomernejsi tichsi chod, bez rrzonancie. Akurat rychlost uartu by mala zodpovedat otackam vretena a velkosyi stupania.
V praxi ne rychlost uartu vyssia a nenim ju.

uP musi rragovat na encoder, generovat impulzy pre krokac a este obsuhovat displej, v mojom pripade este merat rychlost vretena.
Ale ten enkoder ma preto AB vystup aby si vedel osetrit aj spatne otacanie. V podstate je tam to iste ako v gulickovej PC mysi, len viac dielikov.
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

4. 11. 2020, 5:17

bronek999 píše: 4. 11. 2020, 5:03 Ale ten enkoder ma preto AB vystup aby si vedel osetrit aj spatne otacanie. V podstate je tam to iste ako v gulickovej PC mysi, len viac dielikov.
To jo.
Ale kluci na to používají procesory AVR, které jsou pomalé a nemají pro to žádnou HW podporu. Takže při rychlejších zákmitech se jim ztrácejí pulzy a pak jim to nesedí.
Tlatoani
Příspěvky: 75
Registrován: 8. 8. 2020, 8:42

4. 11. 2020, 9:46

lubbez píše: 1. 11. 2020, 10:32 Tohle je počáteční rozvaha
stoupání šroubu je 3mm 2000 IRC puls/ot
na otočku je 400 kroků kroky motoru
jeden krok motoru je tedy 0,0075mm
počet kroků počet přerušení
stoupání 0,2 mm 26,66666667 75
stoupání 0,25 mm 33,33333333 60
stoupání 0,35 mm 46,66666667 42,85714286
stoupání 0,4 mm 53,33333333 37,5
stoupání 0,45 mm 60 33,33333333
stoupání 0,5 mm 66,66666667 30
stoupání 0,6 mm 80 25
stoupání 0,7 mm 93,33333333 21,42857143
stoupání 0,8 mm 106,6666667 18,75
stoupání 1 mm 133,3333333 15
stoupání 1,25 mm 166,6666667 12
stoupání 1,5 mm 200 10
stoupání 1,75 mm 233,3333333 8,571428571
Rád bych se vrátil ke klíčové myšlence a to počítání. Jak se lubbezi vypořádáváš s desetinným číslem?

Moje chápání funkce vysvětlím pro stoupání 1,5mm (žádný desetinný čísla a tak je to jednoduché).
Na jedno otočení vřetena přijde od enkoderu 2000 pulsů a při tom se chceš nožem posunout o 200 kroků krokáče. Na to stačí po každém příchodu 10 pulsů (v tvé tabulce hodnota nazvaná jako počet přerušení) otočit krokáčem o jeden krok.
Horší případ nastane u stoupání 1,25mm, tam si musíš vybrat zda chyba bude do plusu nebo do mínusu (166*0,0075mm=1,245mm nebo 167*0,0075mm=1,2525mm, chyba -0,005mm nebo +0,0025mm).
Pro stoupání 0,7mm je desetinné číslo jak u počtu kroků tak u počtu přerušení a chyba ještě větší.

Dle mého se to dá řešit
a) Skoro bez chyby tak, že spočítáš počet pulsů od enkoderu na celou soustruženou délku, počítáš pulsy a kašleš na Z
b) Kompenzuješ chybu v dalším závitu stoupání, neboli chybu z předchozího otočení vřeteně kompenzuješ v dalším otočení vřetene, používáš Z a stále přepočítáváš počet přerušení
c) Kašleš na chybu a používáš Z který ti nuluje čítač pulsů.

Jak ty desetinný čísla řešíš?
atlan
Příspěvky: 3345
Registrován: 7. 2. 2011, 9:12

5. 11. 2020, 7:00

Z pouzivascle pri kazdom starte.
Desatiny riesis priebezne. Ked ti vijde impulz pre krokac kazdych 10imp, tak medzi tie 10 potom strcis dalsie imp pre krokac, ak treba vyriesit destiny, alebo skratis tj jeden implz na 10 a druhy na 8 aby si to kompenzoval potom zase na 10

Potom si povedz ci ti vadi chyba 0.005mm na zavite podla sirky matky.
Tlatoani
Příspěvky: 75
Registrován: 8. 8. 2020, 8:42

5. 11. 2020, 7:34

Jasně, průběžně kompenzuji. Snažim se eliminovat chybu celkové délky na úkor lokálních chyb.
lubbez
Příspěvky: 3155
Registrován: 21. 6. 2012, 9:26
Bydliště: Praha

5. 11. 2020, 9:26

Jistě že kompenzuji, je to naprosto primitivní. Proměnná pro kroky má desetinntá čísla, ale já beru jen celé kroky, a k tomu zbytku pod čárkou přičtu při další otáčce opěte celé číslo vč. desetinných. Tím pádem maximální absolutní odchylka na celou délku závitu může být +- jeden krok.
Tlatoani
Příspěvky: 75
Registrován: 8. 8. 2020, 8:42

5. 11. 2020, 12:14

Chytře vymyšlené.

1) Jak zjišťuješ zda jsi na konci soustružení?
Představoval bych si, že si předem spočítáš kolik kroků musí udělat krokáč aby se nůž dostal nakonec a pak jen počítáš zda už je udělal.

2) Jak zjišťuješ pozici nože v podélné ose?
Předpokládám, že ručně ustanovíš 0 pozici a od té počítáš kroky na jednu či druhou stranu, nabízí se mi kladné a záporné číslo pro vyjádření směru. Na zařízeních často bývá koncový čidlo které po sepnutí aretuje 0 pozici. To pro absolutní měření. Nebo se nabízí relativní měření od místa kde zmáčkneš nulovací tlačítko. Mít pouze relativní nastavení a odečet je dle mého nebezpečný, nůž se může dostat mimo limit a tak vidím spíš absolutní odečet s zapamatováním pozice kde bylo tlačítko stačené.
bronek999
Příspěvky: 521
Registrován: 6. 3. 2014, 6:50

5. 11. 2020, 8:48


Takto to mam spravene ja.
Snimac AB, pocitam absolutnu poziciu, ked sa vreteno toci spat tak odpocitavam.

Rozmyslam zavity spravit tak aby som nemusel zastavovat vreteno. Ked nie je noz v zabere tak otacky su relativne stabilne a mal by som vediet dopredu kedy rozbehnut krokac s rampou aby som sa trafil na zaciatok zavitu...a priebezne to kompenzovat.
Predpokladam ze vy pred kazdym prejazdom vreteno zastavite, ako riesite koniec zavitu?
atlan
Příspěvky: 3345
Registrován: 7. 2. 2011, 9:12

5. 11. 2020, 9:05

Ja vreteno nezastavujem, na konci zavitu klasicky drazka upichovakom alebo na prasaka V drazka od zavitovacieho noza.

Ano ide to rezat aj tak ako rozmyslas, lenze ked ti to spomaly, tak pri druhom prejazde to uz mas rozhodene, a potrebujes synchro impulz abyto to vobec behalo, ale to sa da ak si povies ze napr 10imp od zaciatku bude synchro.
bronek999
Příspěvky: 521
Registrován: 6. 3. 2014, 6:50

5. 11. 2020, 9:19

Stale akosi nechapem preco potrebujete synchro impulz.
if (!(polohaAB % 1000)) // toto je kazda cela otacka
atlan
Příspěvky: 3345
Registrován: 7. 2. 2011, 9:12

5. 11. 2020, 9:51

Ano aj zvolena 0 moze byt synchro ;)
Odpovědět

Zpět na „Ostatní elektronika“