Hlídání ztráty kroku

Odpovědět
Salaman
Příspěvky: 65
Registrován: 6. 1. 2014, 6:15

12. 5. 2014, 6:55

Na jedné ose mám dva šrouby se dvěma krokovýma motorama. Jde mi o to, že když jeden z motorů ztratí krok, tak druhý zpříčí celý most. Napadlo mě snímat a porovnávat proud obou motorů, kdyby nastal výraznější rozdíl mikroprocesor oba motory odpojí ještě dřív než by se mohlo deformovat vedení. Má s tím někdo zkušenost?
nexus06
Příspěvky: 75
Registrován: 25. 1. 2009, 8:06
Bydliště: praha

12. 5. 2014, 7:08

Hlídání elektronicky ne, ale mám to řešeno tak, že na každém šroubu mám řemenici a jsou vzájemně spojené řemenem, který ztrátu kroku eliminuje. Dokonce až tak dobře, že když mi rupla spojka, tak jsem nemohl přijít na to kde je problém. Jen ten zvuk se mi prostě nelíbil. Zjistil jsem to až ve chvíli kdy jsem sundal řemen, že se jeden ze šroubů netočí.
Uživatelský avatar
packa
Příspěvky: 6960
Registrován: 7. 2. 2007, 6:42
Bydliště: Královehradecký kraj

12. 5. 2014, 7:11

to budeš mít asi problém to vyhodnotit, přecijen zajedou trochu víc do záběru a proud se ti dost změní , ale porovnávat to diferencialně oba motory by asi šlo , ale spíš bych se snažil odstranit důvod té ztáty kroku !
A taky se běžně spřahují ty dva motory řemenem aby k tomu nemohlo dojít , a pak bys ještě mohl dát dva enkodery a ty vyhodnocovat .
teensy
Příspěvky: 8
Registrován: 29. 6. 2014, 7:19

29. 6. 2014, 9:29

motory nejsou pokaždé stejně zatížené a jeden dokočí krok s drobným zpožděním proti druhému a tím by ti vznikl rozdíl měřených hodnot - falešná indikace ztráty kroku.
Chce to toleranci minimálně půl celého kroku (ne mimrokroku, ty nelze ztratit). Napadá mne řešení, které by mohlo fungovat:

Na folii vytiskni laserovou tiskárnou kruh rozdělený do tolika segmentů, kolik má krokový motor fyzických kroků. Liché segmenty budou tmavé, sudé zůstanou průhledné. To co budu dále popisovat uděláš s oběma motory. Kruh napíchneš na hřídel rotoru, na stator připevníš dva optočleny fázově posunuté o půl kroku. Zatímco optočlen A bude přesně uprostřed černého pole, optočlen B bude cca na hraně mezi tmavým a světlým polem (nemusí to být přesně). Když se hřídel motoru otáčí, dostáváš z optočlenů tuto sekvenci signálů:

A: 0 1 1 0 0 1 1 0 0 ... atd
B: 0 0 1 1 0 0 1 1 0 ... atd

v podstatě jsem teď popsal princip, jakým polohu snímají staré myši s kuličkou a nebo rotční enkodéry (které jsou nevím proč tak drahé a navíc mají větší počet pulzů na otáčku než krokový motor takže signál z nich by se musel předdělit). Podstatné je to, že každá změna signálu [AB] odpovídá cca půl kroku. Pokud motor točí jedním směrem, pohybujeme se po výše uvedené sekvenci doprava, pokud začneme točit druhým směrem, vracíme se po sekvenci doleva. Důležité je, že projdeme postupně všemi stavy přesně v tom pořadí jak jsou uvedené v tabulce a žádný nevynecháme (i kdybychom ty optočleny nalepili nepřesně a nebo se rotor zastavil a chvěl okolo místa, kdy jeden otočlen přechází z tamvé do světlé, projeví se to jako přechod mezi dvěma sousedními stavy, nebude to skákat o dva).

Dokud jsou dva motory synchronní, bude jejich stav AB buď stejný a nebo sousední (pokud se jeden z motor dočasně fázově zpozdil o méně než jeden celý krok). Jakmile ale zjistím, že se druhý motor nachází o dva stavy vpravo nebo vlevo, tak jsem právě detekoval ztrátu kroku a mašinu zastavím. No a protože dva stavy vlevo nebo dva stavy vpravo jsou čistě náhodou binární negací stavu se kterým porovnávám, je indikace ztráty kroku velice jednoduchá. Strok zastavím ve chvíli, kdy AB prvního motoru odpovídá negovanému výstupu AB druhého motoru
teensy
Příspěvky: 8
Registrován: 29. 6. 2014, 7:19

29. 6. 2014, 10:47

každopádně bych ti radil to samé co packa, spřáhni to ozubeným řemenem. Určitě je lepší ztrátě kroku předcházet než ji detekovat. Ještě jednodušší to mají ti, co místo kuličkového šroubu mají po obou stranách stolu ozubený hřeben. Ozubená kola zabírající do hřebenu mohou mít společnou osu, takže je vyloučeno aby se jedno ozubené kolo točilo jinak než druhé (pokud je osa dostatečně tuhá v krutu).

a také se zamysli nad tím, zda jsi správně definoval úlohu, skutečně tě zajímá jen případ, kdy oba motory přestanou být ve fázi ? Tedy diferenciální ztráta kroku mezi dvěma motory ? Není lepší hlídat ztrátu kroku každého jednotlivého motoru samostatně ? Hodilo by se i pro dvě zbývající osy.

řešení které jsem zmínil v předchozí odpovědi, lze použít i pro detekci ztráty kroku samostatně pracujícího krokového motoru. A to tak, že se výstupy AB z optočlenů popsané v předešlé odpovědi, porovnávají s výstupy binárního up/down CMOS čítače, který nasčítává/odčítává pulsy vstupující do driveru krokového motoru. Takový čítač v podstatě udává řídící logikou "žádanou" relativní pozici vůči okamžiku, kdy byl stroj spuštěn. To je ale pro tento účel nezajímavé. Čítač může být jen 8-bitový a tedy přetékat každých 256 pulsů. Pokud driver používá mikrokrokování, např. 16x, tak mne čtyři nejméně významné bity čítače vyjadřují mikrokroky a teprve pátý bit celé kroky. Pakliže si z celého čítače vytáhnu jen čtvrtý bit (mění se s kažým půlkrokem) a pátý bit (mění se s každým krokem) mám téměr signály AB, pouze v jiném kódování, na rozdí

4.bit: 0 1 0 1 0 1 0 1 ... atd
5.bit: 0 0 1 1 0 0 1 1 ... atd

pokud několika hradly změním kombinaci 01 na 11, a opačně kombinaci 11 na 01, tak dostávám úplně stejné signály AB, jaké vylézají z optočlenů, pakliže je motor synchronní s řídící logikou. Pokud proti řídící logice zaostává o méně než celý krok, tak podobně jako vpředchozí odpovědi, dostávám stavy sousední. Jakmile ale objevím, že signály AB lezoucí z hradel za čítačem odpovídají negovanému signálu AB lezoucího z optočlenů, znamená to, že jsem právě ztratil krok.
teensy
Příspěvky: 8
Registrován: 29. 6. 2014, 7:19

1. 7. 2014, 8:55

a ještě přihodím mechanické řešení. Motory můžeš spřáhnout s vůlí, kdy řemen žádné síly nepřenáší s slouží pouze k detekci rozfázování. Při rozfázování motorů dojde k vymezení vůle, ty na to budeš upozorněn, a navíc řemen začne zabírat, což stroj ochrání proti zkřížení. Řešení je následující:

Oba kuličkové šrouby spřáhneš ozubeným řemenem tak, že řemenice A bude s prvním šroubem spojena pevně, zatímco na druhém kuličkovém šroubu bude řemenice B nasazena volně a od šroubu galvanicky oddělená teflonovým ložiskem (nebude zabírat, bude se protáčet). Na druhý šroub nasadíš ještě jednu řemenici C, která bude se šroubem spojena pevně, ale nebude na ní nasazený žádný řemen. V řemenici B vyvrtáš otvor o průměru např. 10 mm, v řemenici C vyvrtáš souosý otvor o průměru 5 mm a nabušíš do něj kolík, který prochází otvorem řemenice B. Kolík prochází otvorem řemenice B a má po obou stranách vůli několik mm.

Dokud se oba motory pohybují synchronně, je kolík volně uprostřed díry a řemen nezabírá (není zatížen). Jakmile jeden z motorů ztratí korok, kolík se dotkne stěny, což můžeš vyhodnotit galvanicky (jako sepnutý kontakt) a navíc řemen začne přenášet moment z prvního motoru na druhý, takže tvůj stroj bude ušetřen destrukce sebe sama :)
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22432
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

1. 7. 2014, 10:37

A co to treba udelat poradne?
Tj. Ztraty kroku nebudou a rovnaky na ohejbaky netreba
Vsechna prava na chyby vyhrazena (E)
Uživatelský avatar
origosch
Příspěvky: 1287
Registrován: 19. 4. 2007, 10:39
Bydliště: Kladno

1. 7. 2014, 11:03

Ano, odstranit příčinu a ne následek.
[URL=https://matchnow.life]Super casual Dating[/URL]
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

1. 7. 2014, 11:24

robokop píše:A co to treba udelat poradne?
Tj. Ztraty kroku nebudou a rovnaky na ohejbaky netreba
A jaké je to "pořádnější" řešení, než tady bylo navrženo (mechanické spojení ozubeným řemenem nebo enkodéry, případně oboje)?
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22432
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

1. 7. 2014, 12:06

Napr. Kvalitne udelana mechanika, spravne dimenze pohonu. Pouziti servomotoru.
Vsechna prava na chyby vyhrazena (E)
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

1. 7. 2014, 12:25

robokop píše:Napr. Kvalitne udelana mechanika, spravne dimenze pohonu. Pouziti servomotoru.
Hm. Servomotor je totéž, co použití enkodéru, tedy zavedení zpětné vazby (ale krokáče už tazatel má, takže přidání enkodéru vyjde levněji než přestavba na serva).
A správně dimenzovaná mechanika je sice fajn, ale tazatel předpokládám chce řešit havarijní stavy, a ne nějakou průběžnou ztrátu kroku. Takže mu jde o to realizovat něco jako záchrannou brzdu nebo bezpečnostní ventil (upadlý drát, porucha motoru, uvolnění spojky, odpálený driver atd.).
I raketoplán používá (používal) dodatečné bezpečnostní prvky, a to byl jistě dimenzován správně a z nejlepších/nejdražších komponent.
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22432
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

1. 7. 2014, 1:33

Servo a krokac s encoderem muze vypadat skoro stejne ale stejne to neni
Uz prave proto ze servo vnitrne umi hlidat veci jako ztratu polohy prekroceni momentu atd...
Tedy je to vyresene prave timto a systemoveji,

Ani servo vsak nevyresi zverstva jako pouziti zavitovych tyci, zkroucenou masinu a podobne veci ktere jsou duvodem ztrat kroku
Vsechna prava na chyby vyhrazena (E)
Odpovědět

Zpět na „Krokové motory“