PLS hELP po dosažení požadované polohy osy sepnout výstup
to by bylo řešení, ale když to jde na urovni EMC tak se mi do toho echce, avíc by tento signal pausnul G kod A po provedení ukonu py zas kod nahodil a pokračoval
Tímto vyplívá další otazka, jak vytvořit v hal čítač?
Tímto vyplívá další otazka, jak vytvořit v hal čítač?
A jak potom budeš přenastavovat tu hodnotu toho čítače? Takhle by si to mohla obsluha operativně přenastavovat. Neznám koncepci toho řešní, jestli to je vůbec potřeba, tak potom srry za tuto připomínku.
bednar.dk@seznam.cz
SolidWorks 2011
Zakázková výroba jednoúčelových strojů
konstrukce strojů, automatizace,
http://www.indops.cz" onclick="window.open(this.href);return false;
SolidWorks 2011
Zakázková výroba jednoúčelových strojů
konstrukce strojů, automatizace,
http://www.indops.cz" onclick="window.open(this.href);return false;
- robokop
- Site Admin
- Příspěvky: 22981
- Registrován: 10. 7. 2006, 12:12
- Bydliště: Praha
- Kontaktovat uživatele:
jezis tak co tu blbnes
napis to tam a nevymyslej
jen si pridelavas praci
napis si ten g-kod parametricky jestli tam potrebujes neco menit a mas to cele hotove
v tom halu si jen pridelavas praci a komplikujes zivot

napis to tam a nevymyslej
jen si pridelavas praci
napis si ten g-kod parametricky jestli tam potrebujes neco menit a mas to cele hotove
v tom halu si jen pridelavas praci a komplikujes zivot
Vsechna prava na chyby vyhrazena (E)
Co použít v HALu funkci NEAR a následně třeba ONESHOT. Otázkou je jestli potřebuješ aby to spínalo v obou směrech, nebo jenom v jednom atd.packa píše:jde mi o to když se ocitne osaX v bodu, treba 250 aby se sepnul vystup
a to v manual i automat modu
třeba použít tento pin v halui
halui .axis.0.pos-relative xxxx
ale nevím jak to dál vyhodnotit?
Jestli jenom v jednom, tak by mozna slo pouzit COMP.
Jak píše robocom, malo informací.
Martin
tyto příkazy halu jsem snad nikde ani nenašel nebyk by odkaz na jejich funkce?
jinak se jedná o průjezd tímto zadaným bodem v jakém koliv směru, při spuštěném programu i v ručním režimu,něco jako by tam byl fizicky spínač.
jinak se jedná o průjezd tímto zadaným bodem v jakém koliv směru, při spuštěném programu i v ručním režimu,něco jako by tam byl fizicky spínač.
tak treba tady http://linuxcnc.org/docs/html/
jsou to ty Realtime components and kernel modules. proste s 9 na konci.
Jestli chces zkusim ti to napsat, ale ted musím trochu pracovat, tak snad po obede bnudu mit chvili.
V EMC jde skoro všechno, jenom se to musí "nadrátovat"
Martin
jsou to ty Realtime components and kernel modules. proste s 9 na konci.
Jestli chces zkusim ti to napsat, ale ted musím trochu pracovat, tak snad po obede bnudu mit chvili.
V EMC jde skoro všechno, jenom se to musí "nadrátovat"
Martin
Tak jestli ti sta4i přesnost na cca 0.05mm tak tady je řešení.
custom.hal
# Include your customized HAL commands here
# This file will not be overwritten when you run stepconf again
loadrt near count=1
loadrt oneshot count=1
addf near.0 servo-thread
addf oneshot.0 servo-thread
setp near.0.in2 250 # X pozice pro sepnuti v mm 2.vstup
setp near.0.difference .05 # Maximalni povoleny rozdil souradnic
setp oneshot.0.width 0.5 # delka pulzu v sec.
net rel-pos halui.axis.0.pos-relative near.0.in1 # 1. vstup pro porovnani dvou hodnot
net signal near.0.out oneshot.0.in # impuls pro generator pulzu.
net vystup oneshot.0.out parport.0.pin-08-out #kam to ma posilat ten impulz
Problem je v tom, ze halui není RT komponenta. To znamená že se aktualizuje jen jednou za čas. Sice velmi krátký čas, ale přesto se pozice osy mění "skokově" po nejakých setinách mm. Proto je tam ta hodnota difference, která připouští, že obě hodnoty nejsou uplně stejné ale jejich rozdíl je menši než Diff.
Zkoušel sem to na svém EMC a chovalo se to použitelně. Chce to vyzkouset, kam az muzes zmenšit ten Diff aby to ještě spolehlivě zaznamenalo požadovanou pozici na ose. Ale jestli je to navíječka, tak snad těch pár stovek milimetru nevadi. Kdyby ano, dej vědet vymyslime něco jinýho....
Martin
custom.hal
# Include your customized HAL commands here
# This file will not be overwritten when you run stepconf again
loadrt near count=1
loadrt oneshot count=1
addf near.0 servo-thread
addf oneshot.0 servo-thread
setp near.0.in2 250 # X pozice pro sepnuti v mm 2.vstup
setp near.0.difference .05 # Maximalni povoleny rozdil souradnic
setp oneshot.0.width 0.5 # delka pulzu v sec.
net rel-pos halui.axis.0.pos-relative near.0.in1 # 1. vstup pro porovnani dvou hodnot
net signal near.0.out oneshot.0.in # impuls pro generator pulzu.
net vystup oneshot.0.out parport.0.pin-08-out #kam to ma posilat ten impulz
Problem je v tom, ze halui není RT komponenta. To znamená že se aktualizuje jen jednou za čas. Sice velmi krátký čas, ale přesto se pozice osy mění "skokově" po nejakých setinách mm. Proto je tam ta hodnota difference, která připouští, že obě hodnoty nejsou uplně stejné ale jejich rozdíl je menši než Diff.
Zkoušel sem to na svém EMC a chovalo se to použitelně. Chce to vyzkouset, kam az muzes zmenšit ten Diff aby to ještě spolehlivě zaznamenalo požadovanou pozici na ose. Ale jestli je to navíječka, tak snad těch pár stovek milimetru nevadi. Kdyby ano, dej vědet vymyslime něco jinýho....
Martin
I tak by to šlo, ale musíš použít výstup comp.0.equal na místo comp.0.out , jinak by to spínalo jen v jednom směru. Proto sem se ptal kdy to ma spinat. Pak mě ještě napadlo, že není potřeba používat halui, ale brát pozici třeba z axis.0.motor-pos-fb, což je zpětná vazba o pozici motoru.ledvinap píše:Podivej se na configs/sim/simulated_home.hal
Je tam reseny homing pro simulovanou masinu, vicemene staci jen vystup komparatoru pripojit na prislusny pin.
Teď mě ale došlo, že tam asi bude posun při houmování a pak by se muselo operovat ještě s motor-offset. Takže beru zpět a použil bych to halui.
Martin
Otazka je jak se ma vystup chovat. Nestaci, ze se sepne, kdyz je pozice vetsi nez limit? Tam by stacil ten comp. Jinak je spravne near, pak se to bude chovat jako spinac na masine.fupe píše: I tak by to šlo, ale musíš použít výstup comp.0.equal na místo comp.0.out , jinak by to spínalo jen v jednom směru. Proto sem se ptal kdy to ma spinat.
Spravne je pouzit axis.N.joint-pos-fb . Od teto hodnoty jsou jiz odecteny kompenzace a homing (narozdil od axis.N.motor-pos-fb).Pak mě ještě napadlo, že není potřeba používat halui, ale brát pozici třeba z axis.0.motor-pos-fb, což je zpětná vazba o pozici motoru.
Teď mě ale došlo, že tam asi bude posun při houmování a pak by se muselo operovat ještě s motor-offset. Takže beru zpět a použil bych to halui.