Stránka 2 z 3

Napsal: 31. 10. 2010, 11:26
od packa
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č?

Napsal: 31. 10. 2010, 11:33
od Mad_BOXs
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.

Napsal: 31. 10. 2010, 11:53
od robokop
prilis malo informaci

idealni to dat do g kodu ale to ty nechces
je k tomu neaky zavazny duvod proc ne?

Napsal: 31. 10. 2010, 11:57
od packa
je to parametr který by se více méně nastavil natvrdo a už se neměnil nebo minimálně, a nechci si tim komplikovat jednoduchost G kodu

Napsal: 31. 10. 2010, 12:02
od robokop
jezis tak co tu blbnes :D
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

re

Napsal: 31. 10. 2010, 1:08
od Radek-B
Naopak , G kodem by to bylo a je omezene. V prve rade je potreba popremyslet nad halem a dobre ho napsat.

RADEK

Napsal: 31. 10. 2010, 1:16
od packa
to si taky myslím jen nevím jak tuto funkci uchodit

Napsal: 1. 11. 2010, 8:42
od fupe
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?
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.
Jestli jenom v jednom, tak by mozna slo pouzit COMP.
Jak píše robocom, malo informací.
Martin

Napsal: 1. 11. 2010, 9:35
od packa
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č.

Napsal: 1. 11. 2010, 9:42
od fupe
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

Napsal: 1. 11. 2010, 9:46
od packa
jo už jsem na to koukal ale moc chitrej z toho nejsem , nějaký věci už jsem si v hal dělal , ale z těch popisu těchto funci moc chitrej nejsem, pokud by jsi nězo skusil napsat byl bych vděčný

Napsal: 1. 11. 2010, 12:18
od ledvinap
Podivej se na configs/sim/simulated_home.hal

Je tam reseny homing pro simulovanou masinu, vicemene staci jen vystup komparatoru pripojit na prislusny pin.

Napsal: 1. 11. 2010, 12:20
od fupe
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

Napsal: 1. 11. 2010, 1:17
od fupe
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.
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.
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

Napsal: 1. 11. 2010, 1:48
od ledvinap
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.
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.
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.
Spravne je pouzit axis.N.joint-pos-fb . Od teto hodnoty jsou jiz odecteny kompenzace a homing (narozdil od axis.N.motor-pos-fb).