Zakázaná zóna na pracovní ploše

Odpovědět
Uživatelský avatar
Pipik
Příspěvky: 1037
Registrován: 9. 11. 2016, 3:32
Bydliště: České Budějovice

26. 10. 2024, 7:51

Zdravim

Jakým způsobem by se dalo v linuxcnc vymezit plocha, kam sice vřeteno dojede, ale jen pokud k tomu má svolení?

Na mašině je toolchanger, řádka nástrojů schovaných pod pokličkou. Mašinka si tam dojede, ale pokud by tam při vykonávání programu dojela aniž by se jednalo o výměnu nástroje, tak ten kryt zdemoluje.

V kostce - omezit pohyb po jedné ose pokud se nejedná o podprogram výměny nástroje. Vyhodit nějakou hlášku že se chystá do zakázané zóny, ideálně už varovat při spuštění programu že program přejíždí povolený limit (stejně jako varuje že by překročil fyzicku osu).

Jak to teď píšu, třeba by to šlo měnit flexibilně právě ten maximální softlimit. Nastavit limit jen na velikost pracovní plochy, a při volání výměny nástroje ten limit na chvíli zvednout a po skončení výměny ho zase snížit....? Jde to? Nejspíš jo, hádám. :)
Ten blbec, kterej to vyrobil, pač mu zapoměli říct že to nejde vyrobit :wink:
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22866
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

26. 10. 2024, 9:29

lze dynamicky predefinovat soft limity
je na to na netu navd
kdyz nenajdes dohledam nekde u sebe
Vsechna prava na chyby vyhrazena (E)
Uživatelský avatar
Pipik
Příspěvky: 1037
Registrován: 9. 11. 2016, 3:32
Bydliště: České Budějovice

27. 10. 2024, 1:41

Takže myšlenka se ubrala zřejmě správným směrem :)
Pohledám ;-)
Ten blbec, kterej to vyrobil, pač mu zapoměli říct že to nejde vyrobit :wink:
Uživatelský avatar
Pipik
Příspěvky: 1037
Registrován: 9. 11. 2016, 3:32
Bydliště: České Budějovice

27. 10. 2024, 3:40

Tak jediný co jsem zatím tak nějak našel je že z gkodu je přístup do hal, a to dokonce i pro zápis. Jsou na to dokonce gkody m62-m65 pro zapínání/vypínání pinů.
Možná by to byla cesta jak změnit softlimity - pro ty jsou mimochodem rovněž už automaticky vytvořeny piny a lze je průběžně měnit. Jen jak to udělat z gkodu (čili gskriptu pro toolchanger).
Ten blbec, kterej to vyrobil, pač mu zapoměli říct že to nejde vyrobit :wink:
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22866
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

27. 10. 2024, 5:35

Ano muzes to z g kodu ovlivnit. V halu je nekolik registru ktere se daji cist a psat z g kodu dle potreby viz referencni prirucka. Pocet tech promennych lze zvysit.
Softlimity jsou take dynamicky menitelne. Staci to tedy spravne propojit.
Vsechna prava na chyby vyhrazena (E)
Uživatelský avatar
Pipik
Příspěvky: 1037
Registrován: 9. 11. 2016, 3:32
Bydliště: České Budějovice

27. 10. 2024, 6:11

Co jsem se dočetl, tak G příkazy mohou maximálně tak číst stav pinů, ne zapisovat (ani jsem nehledal jaké). Kdežto uživatelské m-příkazy (čili m100-199) mohou do pinů i zapisovat, v podstatě do jakýchkoli. Takže by v podstatě jen mělo stačit definovat vlastní m-příkazy (viz *.ini) a ty pak prostě volat ze subrutiny výměny nástroje. Čistě teoreticky prostě jednou řádkou rovnou zapsat novou hodnotu do max_soft_limitu, čili bez kličkování že by se volal nějaký pin a ten by byl v halu propojený na změnu té hodnoty pinu softlimitu.
Vyzkoušíme pokud tudy cesta vede. Vypadá to velmi schůdně i čistě.
Ten blbec, kterej to vyrobil, pač mu zapoměli říct že to nejde vyrobit :wink:
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22866
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

27. 10. 2024, 6:28

Tak si znovu precti ten manual. Jsou to konkretne m kody.

https://linuxcnc.org/docs/html/gcode/m- ... de:m62-m65

https://linuxcnc.org/docs/html/gcode/m- ... #mcode:m68

Tim mkem to lze take udelat.
Musis mit ve spravne slozce spravny soubor
Muzes volat primo shell prikazy takze treba halcmd setp .....
Vsechna prava na chyby vyhrazena (E)
Uživatelský avatar
Pipik
Příspěvky: 1037
Registrován: 9. 11. 2016, 3:32
Bydliště: České Budějovice

3. 11. 2024, 2:03

Ok, tak to je více než trapně jednoduchý... :D
Napíšu sem řešení pro lamy, kdyby to někdo hledal a fakt nebyl zběhlý -

V souboru *.ini je třeba nastavit cestu k uživatelským M-kódům, pokud už nemáte.
Buď v sekci DISPLAY nebo v sekci RS274NGC připsat třeba řádku

USER_M_PATH = /home/<uzivatel>/linuxcnc/configs/<nazev_configu>/subroutines

V adresáři /home/<uzivatel>/linuxcnc/configs/<nazev_konfigu>/ vytvorit adresar "subroutines" (je ale na vas jak se bude jmenovat nebo kde vlastne bude). V tomto novém adresáři vytvořit soubor "M100" (velké M a číslo od 100-199). Nastavit soubor jako spustitelný!!! (si najděte jak se to dělá, ale zkuste třeba pravý myšítko - vlastnosti)
V tomto souboru napsat řádku volající halcmd - můžete tak číst či měnit libovolný pin či signál, nebo vlastně dělat cokoli, třeba otevřít obrázek z pornhubu.
Takže třeba

halcmd setp ini.x.max_limit 500
halcmd setp ini.0.max_limit 500

Je třeba nastavit obě hodnoty, neptejte se mě proč, ale pokud to neuděláte, povolí vám tam sice vjet ale bude řvát že tam nemáte bejt. Číslo 0 je číslo osy, obvykle má osa X číslo 0, osa Y číslo 1 ...atp. Pokud jste si nastavili osy v jiném pořadí, respektujte to.

Stačí pak v libovolném gkodu nebo z třeba z MDI řádky prostě zavolat M100 a vykoná se script co jste si vytvořili.

Sranda :lol:

A jen info - gkod nebude pokračovat, dokud vykonávání toho scriptu neskončí. Takže až se dodíváte na ten pornhub co jste si z vašeho gprogramu pomocí příkazu M100 zavolali (čili asi net prohlížeč), tak hned jak ho zavřete, bude frézování pokračovat ;-)
Ten blbec, kterej to vyrobil, pač mu zapoměli říct že to nejde vyrobit :wink:
Uživatelský avatar
zz912
Příspěvky: 1475
Registrován: 25. 5. 2008, 7:16

3. 11. 2024, 2:18

Je třeba nastavit obě hodnoty, neptejte se mě proč,
To je kvůli složitějším kinematikám. U kartézké kinematiky to nedává smysl, aby ty hodnoty byli jiné.
LinuxCNC - MESA 7i96
zz912.webnode.cz
Odpovědět

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