Jak už jsem zde zmínil na fóru, chystám se postavit si menší CNC řezačku polystyrenu. K řízení chci použít PC bez paralerního portu, tudíž jsem se rozhodl si naprogramovat HW driver, který přijímá data po sériové lince (v budoucnu možná ještě změním). V současné fázi se mi na stole všechny motory pěkně hýbou - zbývá mi postavit nějaké menší provizorní zařízení/router na kterém otestuju veškerou funkčnost.
Řeším však, čím můj driver krmit - EMC se ukázal jako nevhodný - nelze z něj nějak rozumně dostat absolutní polohu cíle (jde to, ale není to dvakrát košer řešení) a získat polohu na více "kroků" či směrů dopředu (abych mohl bufferovat) už není možné vůbec (napadá mě šílená možnost, ale je to zbytečně komplikované). Navíc když bych nepoužil EMC, mohl bych zůstat u Windows, což je pro mě pohodlnější.
Hledám proto nějaký program, či lépe knihovnu (nejlépe s C/C++ rozhraním) která by uměla interpretovat daný G kód na seznam úseček (+ dalších instrukcí - jako např. čekání). Chvilku už Googlím, ale nacházím pouze interprety pro Adurino, což zrovna nechci. Neznáte něco podobného? Psát vlastní interpret nechci - možná by to pro základní účely nebylo obtížné, ale rád bych nějaké univerzálnější řešení třeba i do budoucna, které zvládá cykly, podroprogramy apod.
Prosím, než začnete můj "projekt" (dá-li se to tak nazvat) odsuzovat (jak je to zde na fóru bežné), tak věřte, že nejsem strojař. Jsem programátor - proto jsem se do toho pustil. Nehodlám dělat zázraky, CNC stavím pro hobby účely, pro zábavu a pro získání nových zkušeností. Nepotřebuju CNC pro sériovou výrobu.
Předem děkuji za odpověď
Interpret G-kódu pro PC
- robokop
- Site Admin
- Příspěvky: 22950
- Registrován: 10. 7. 2006, 12:12
- Bydliště: Praha
- Kontaktovat uživatele:
Nic moc univerzalniho co se tyce g kodu neni tedy se nic nestane kdyz ten interpretr napises podle sebe
G kod by mel byt standardem ale je tolik ruznych omezeni a interpretaci ze strany ridicich systemu ze kazdy CAM software proste musi mit postprocesor aby upravil vystup tak aby mu masina rozumela
G kod by mel byt standardem ale je tolik ruznych omezeni a interpretaci ze strany ridicich systemu ze kazdy CAM software proste musi mit postprocesor aby upravil vystup tak aby mu masina rozumela
Vsechna prava na chyby vyhrazena (E)
- Radek-B
- Příspěvky: 2137
- Registrován: 13. 9. 2006, 11:09
- Bydliště: V:Karlovice
- Kontaktovat uživatele:
Neni potreba ani mechanika
http://www.cnc-hotwire.de/" onclick="window.open(this.href);return false;
http://www.youtube.com/watch?v=PVuPHD1LpL8" onclick="window.open(this.href);return false;
http://www.youtube.com/watch?v=-3QKOnt6SsU" onclick="window.open(this.href);return false;
par odkazu
RADEK

http://www.cnc-hotwire.de/" onclick="window.open(this.href);return false;
http://www.youtube.com/watch?v=PVuPHD1LpL8" onclick="window.open(this.href);return false;
http://www.youtube.com/watch?v=-3QKOnt6SsU" onclick="window.open(this.href);return false;
par odkazu
RADEK
modernizace/repase CNC strojů a zařízení
automatizace/konstrukce
automatizace/konstrukce
To Radek-B: Takto zamýšlím řezačku vyrobit - jen přidám na každou stranu ještě třetí motor - aby mi při řezání hodně kosých profilů rám nestahoval řezný drát do boku. Na tomto řešení se mi líbí, že není problém předělat v budoucnu řezačku až do monstózních rozměrů (kdyby bylo třeba).
Pokud by ses do toho chtel pustit poradne, tak je EMC asi celkem rozumny vychozi bod. Jedna z moznosti je pouzit jen interpreter G-codu (generuje frontu pozadovanych pohybu a je celkem nezavisly na zbytku, v EMC (ne EMC2) byla snad i standalone verze). A pak jednotlive povely predzpracovat na PC a poslat pres serial.yaqwsx píše: Řeším však, čím můj driver krmit - EMC se ukázal jako nevhodný - nelze z něj nějak rozumně dostat absolutní polohu cíle (jde to, ale není to dvakrát košer řešení) a získat polohu na více "kroků" či směrů dopředu (abych mohl bufferovat) už není možné vůbec (napadá mě šílená možnost, ale je to zbytečně komplikované). Navíc když bych nepoužil EMC, mohl bych zůstat u Windows, což je pro mě pohodlnější.
Daleko zajimavejsi by bylo pouzit z EMC i motion planer. Interne je pro kazdy krok v interpreteru spoctena potrebna rychlost, akcelerace a tak, tyto udaje by se mohly odesilat posilat pro zpracovani v MCU. Vyhodou je, ze uz je vyresena akcelerace, blending a podobne.
Podle me by nemuselo byt zas tak slozite tyto hodnoty prepocitat na koeficienty pro kvadraticky DDA (pro kazdou osu jeden, krokovat DDA v case, vystupem by byly primo step pulzy pro motor). Zvolit nejakou rozumnou frekvenci odesilani (treba 1ms) a pokazde odeslat nove koeficienty. Delka fronty nebude moc problem (v zasade staci jen flow-control), emc2 jet v simulacnim modu (a mozna semtam umazat cekani).
Problem budou pohyby, ktere musi reagovat na nejaky vnejsi vstup, ale v tvem pripade by stacilo asi resit jen homing, na to by spec. prikaz nemusel byt takovy problem.
Docela si dovedu predstavit, ze by EMC2 sel prelozit i pro windows (cygwin).
Podivej se na interpretery co se pouzivaji pro RepRap. Byvaji celkem jednoduche a nektere jsou i celkem slusne napsane. Treba teacup interne vytvari frontu usecek a ty se pak asynchronne interpretuji. Pro arduino to sice psane je, ale je to celkem ciste C (az na step generator?), takze preportovani na PC by melo byt na chvilicku (asi jen zmenit rutiny pro cteni vstupu ... )Hledám proto nějaký program, či lépe knihovnu (nejlépe s C/C++ rozhraním) která by uměla interpretovat daný G kód na seznam úseček (+ dalších instrukcí - jako např. čekání). Chvilku už Googlím, ale nacházím pouze interprety pro Adurino, což zrovna nechci. Neznáte něco podobného? Psát vlastní interpret nechci - možná by to pro základní účely nebylo obtížné, ale rád bych nějaké univerzálnější řešení třeba i do budoucna, které zvládá cykly, podroprogramy apod.
Na rizeni rezacky by to mohlo stacit.
Pokud chces rezat, tak je nejsnazsi pouzit to EMC(pres paralelni port). Investovany cas do programovani se ti rozhodne nevrati.Prosím, než začnete můj "projekt" (dá-li se to tak nazvat) odsuzovat (jak je to zde na fóru bežné), tak věřte, že nejsem strojař. Jsem programátor - proto jsem se do toho pustil. Nehodlám dělat zázraky, CNC stavím pro hobby účely, pro zábavu a pro získání nových zkušeností. Nepotřebuju CNC pro sériovou výrobu.
Pokud si chces hrat, tak si vyber cestu s primerenou obtiznosti ktera te neco nauci.
Pokud bydes mit na kazde strane 3 motory, tak bys mozna ani nepotreboval 'pilu', proste napinat drat jednim motorem. Mozna by to bylo zabavnejsi (vetsi vyzvayaqwsx píše:To Radek-B: Takto zamýšlím řezačku vyrobit - jen přidám na každou stranu ještě třetí motor - aby mi při řezání hodně kosých profilů rám nestahoval řezný drát do boku. Na tomto řešení se mi líbí, že není problém předělat v budoucnu řezačku až do monstózních rozměrů (kdyby bylo třeba).

- robokop
- Site Admin
- Příspěvky: 22950
- Registrován: 10. 7. 2006, 12:12
- Bydliště: Praha
- Kontaktovat uživatele:
jeste bych dodal ze i g kod s pevnymi pozicemy vyznamu jednotlivych bytu v radku je korektni a mnoho starsich systemu tak funguje
tj treba pevne poradi souradnic a pevny format cisla XXXX.XX a vse bez mezer
takovy interpreter by byl tedy naprosto koser a neni problem do nej dostat data z jakehokoli camu a napises ho daleko rychleji nez jen nastudujes jak funguje to EMC
viz treba gravos umi jen par zakladnich Gcek ale temer ho to neomezuje
ta chytrost musi byt totiz trosku jinde
tj treba pevne poradi souradnic a pevny format cisla XXXX.XX a vse bez mezer
takovy interpreter by byl tedy naprosto koser a neni problem do nej dostat data z jakehokoli camu a napises ho daleko rychleji nez jen nastudujes jak funguje to EMC
viz treba gravos umi jen par zakladnich Gcek ale temer ho to neomezuje
ta chytrost musi byt totiz trosku jinde
Vsechna prava na chyby vyhrazena (E)