Interpolace mimo PC - jak na to?

Odpovědět
yaqwsx
Příspěvky: 137
Registrován: 9. 9. 2011, 1:12

10. 9. 2011, 5:52

Jak už jsem zde na fóru jednou zmínil, chystám se na stavbu hobby CNC řezačky polystyrenu. Zatím jsem ve fázi sběru informací a podkladů. Nařízení bych chtěl použít EMC. Původně jsem chtěl použít klasické real-time řízení přes paralelní port. Více by se mi však zamlouvalo pouze posílání bodů a rychlosti (popř. dalších dat) po sériové lince (ať už RS-232 či USB) a intepolaci a řízení motorů nechat na desce. Důvod? Všechna starší PC v mém okolí se už odprovodila na onen svět. Senat si nějaké PC není problém, ale je to zase další "harampádí" domů. Rád bych použil to co už doma je - nic z toho nemá paralelní port a ani se mi ta zařízení o něj nechce rozšiřovat. Navíc při použití sériové linky je i méně kabeláže.
Vyrobit desku není problém. Jak však nastavit/upravit EMC, aby takto fungovalo mi už moc jasné není. Pročítal jsem si dokumentaci, dokonce i nahlížel do zdrojáků, ale nějak nemám představu "co a jak".
Dle slov robokopa v tomto tématu by to neměl být velký problém.

Jak na to? Jak nastavit/co se bude muset přeprogramovat?
Naposledy upravil(a) yaqwsx dne 14. 9. 2011, 6:49, celkem upraveno 1 x.
Uživatelský avatar
Radek-B
Příspěvky: 2137
Registrován: 13. 9. 2006, 11:09
Bydliště: V:Karlovice
Kontaktovat uživatele:

11. 9. 2011, 8:28

http://axis.unpy.net/01198594294" onclick="window.open(this.href);return false;

RADEK
modernizace/repase CNC strojů a zařízení
automatizace/konstrukce
Uživatelský avatar
packa
Příspěvky: 7058
Registrován: 7. 2. 2007, 6:42
Bydliště: Královehradecký kraj

12. 9. 2011, 9:49

to stím arduinem není špatný nápad , ale jak je to potom s latencí?
pokud jsem to dobře pochopil tak záměr autora byl získat analogové vstupy ??
yaqwsx
Příspěvky: 137
Registrován: 9. 9. 2011, 1:12

14. 9. 2011, 7:03

Pořádně jsem se začetl do dokumentace a konečně chápu, jak to vlastně v EMC2 funguje. Už vím, že potřebuji vytvořit HAL komponentu, která mi bude po sériové lince posílat data a současně zpět získávat odezvu. Vím i jak ji napsat.
Stále však nevím, čím mou komponentu "nakrmit". Jediný zdroj dat, na který jsem narazil je komponenta motmod. Pokud dobře čtu, tak ale neposkytuje všechny údaje - např. rychlost (a třeba i informaci, jestli na konci aktuální přímky zpomalovat či ne, apod). Dále nevím, jestli pin motor-pos-cmd určuje cílový bod aktuálního pohybu přímky nebo už je to nějaká interpolovaná hodnota. Navíc z této komponenty asi nedostanu trasu dopředu, abych mohl bufferovat.
Jediné řešení, které mě zatím napadlo, je napsat si vlastní obdobu motmod, která bude získávat data přímo od motion planner. Toto řešení je však jednak pracné a ne zrovna "košer".

Jak získat tyto údaje (rychlost, informace o akceleraci, body trasy dopředu)? Je jiné řešení než napsání alternativy motmodu?
Uživatelský avatar
packa
Příspěvky: 7058
Registrován: 7. 2. 2007, 6:42
Bydliště: Královehradecký kraj

14. 1. 2012, 8:37

prosím o info zda se někdo dopracoval k úspěšné výrobě interpolační jednotky k EMC2?
případně jaké používáte karty ? třeba mesa a jaké?
yaqwsx
Příspěvky: 137
Registrován: 9. 9. 2011, 1:12

14. 1. 2012, 9:36

Nakonec jsem myšlenku EMC s externím interpolátorem vzdal. EMC na to není stavěné - čistě pomocí HAL komponenty nejsem schopen pořádným způsobem získat potřebná data (např. cílový bod, a už vůbec ne několik dalších bodů dopředu). Tyto data by šla získat droubnou úpravou kódu motion planneru, ale to už mi přišlo jako "přílišné znásilňování" EMC. V podstatě by z EMC zůstalo pouze GUI a interpret G-kódu.
Projekt interpolátoru jsem však nezavrhl - jen jsem se rozhodl naprogramovat si i vlasní GUI pro PC (což je časově méně náročné než úprava kódu EMC a dává mi to větší volnost). Celkem hodně jsem pokročil. Kdybych neměl na krku brzký termín odevzdání seminárky do školy, tak už bych interpret pomalu instaloval do nějaké první mašinky a testoval naostro. Zatím mi leží na stole a je připojen k "ploteru" z merkuru osazeným krokovými motory z tiskárny a fixou Centropen. V podstatě dělám něco podobného jako Gravos. Vím, že se teď do mě pustíte, proč něco takového dělám a za těch pár kaček si to nekoupím - mě jde o získání zkušeností. Důležitější je pro mě cesta než výsledek.
Zatím můj interpret podporuje 4 lineární osy, 2 rotační. Nejvíce času zabraly, a také byly nejzajímavější části vývoje, rozjezdy/brždění. S těmy jsem si chilku hrál, než jsem dosáhl uspokojivých výsledků. Po chvilce vývoje jsem zavrhl lineární rampy a nahradil jsem je rampám odpovídajícím sinovému zrychlení. Průběh trasy počítám na několik úseků dopředu - ve snaze co nejlépe optimalizovat rychlost - a zdá, že se daří. V současné době mi však chybí ještě dopsat spousta věcí. Většina jsou sice maličkosti, ale najdou se tu i větši, jako např. intepret G-kódu (zatím pro účely testování mi program načítá seznam bodů), řešení nestandardních situací a chybových stavů, rád bych také implementoval místo RS-232 USB - ano, četl jsem zde, že to není vhodná sběrnice pro tyto účely, ale je to hobby a USB je na používání pohodlnější a blbuvzdornější.
Uživatelský avatar
packa
Příspěvky: 7058
Registrován: 7. 2. 2007, 6:42
Bydliště: Královehradecký kraj

14. 1. 2012, 9:56

ten tvůj projekt vypadá docela slybně , určitě ještě narazíš na kupu dalších problémů ale ty se většinou taky nějak pořeší ,
intepret G-kódu by jsi možná mohl použít z knihoven arduina pro reprapa s nějakou modifikací
funguje to docela obstojně sám jej mám postaveného ,
postupně bys tu mohl něco zveřejnit třeba by se do toho pustilo i víc lidí a dotáhlo by se tok uspokojivým výsledkům :D

má nědo nějaké poznatky ohledně :mesy 7i43?
podle všeho by to mělo být obdobné 5i20 jen přez USB
yaqwsx
Příspěvky: 137
Registrován: 9. 9. 2011, 1:12

14. 1. 2012, 11:05

Díky. Interpolátor plánuji kompletně zvěřejnit, jen ještě nemá potřebnou úroveň - kdybych ho teď zveřejnil, musel bych se za něj stydět.
Na intepret kódu jsem se zde kdysi dávno ptal. Od té doby jsem však udělal velký skok a zjistil jsem, že napsat ho nebude možná až tak velký problém. Samozřejmě, že z počátku implemetuji pouze omezenou instrukční sadu, ale do dudoucna by šla určitě rozšířit.
Když jsem tu zmínil mou seminárku - není tu někdo, kdo umí s Autodesk Simulation? Viz. http://www.c-n-c.cz/viewtopic.php?f=45&t=8224
Uživatelský avatar
Radek-B
Příspěvky: 2137
Registrován: 13. 9. 2006, 11:09
Bydliště: V:Karlovice
Kontaktovat uživatele:

14. 1. 2012, 1:09

http://dank.bengler.no/-/page/show/5470_grbl?ref=mst" onclick="window.open(this.href);return false;

Tu je hezky priklad jak to udelat v jednocipu i s jednoduchou interpretaci kodu.
Autor pomerne sqvele a napadite zvladl akceleracni rampy vcetne jerku, ale look ahead v jeho podani se ponekud nepovedl. Zrejmne to bude tim ze si to pochvalil prilis
brzo :D . To znam osobne.

Radek
modernizace/repase CNC strojů a zařízení
automatizace/konstrukce
Odpovědět

Zpět na „LinuxCNC - drive pod nazvem EMC2“