LinuxCNC - ja se moc v tomhle silenem svete nevyznam
Napsal: 21. 7. 2014, 5:53
technickej dotaz. chci si menit velikost inkrementu pro posuv osy koderem. zmenu inkrementu budu ovladat takto: zmacknu cuplik1 -> posuv bude 0.1mm, cuplik2 -> posuv 0.01mm, cuplik3 -> 0.001mm. cupliky jsou bez aretace.
udelal jsem pidi componentu vyber3 /jako ze 3 cupliku/, na trech vstupech jsou cupliky, na trech vstupem jsou inkrementy ktery chci:
component vyber3;
pin in bit b0;
pin in bit b1;
pin in bit b2;
pin in float i0;
pin in float i1;
pin in float i2;
pin out float out;
FUNCTION(_) {
if ( b0 == true ){ out = i0; }
if ( b1 == true ){ out = i1; }
if ( b2 == true ){ out = i2; }
}
kousek HALu:
net cupl-incr-0 <= hm2_7i43.0.gpio.044.in_not
net cupl-incr-1 <= hm2_7i43.0.gpio.045.in_not
net cupl-incr-2 <= hm2_7i43.0.gpio.046.in_not
#nakrmim componentu vyber3
net cupl-incr-0 => vyber3.0.b0
net cupl-incr-1 => vyber3.0.b1
net cupl-incr-2 => vyber3.0.b2
#inkrementy
setp vyber3.0.i0 0.1
setp vyber3.0.i1 0.01
setp vyber3.0.i2 0.001
vysledek je tedy ten, ze po stisku knofliku se mi zmeni vystup na mnou zadanou hodnotu, nasledne pouziji v axis.XX.jog-scale. prace mi zabrala nekolik minut a funguje to.
a ted problem:
mam dojem, ze psat si componentu NENI systemove reseni.
puvodne jsem si hral s componentou toggle /toggle zmeni hodnotu ikdyz vstup je zmenem jen po dobu co drzim cuplik/, touggle.X.out pustit dal na nejaky OR2, AND2, NOT, a pak MUX4-8 nebo co /nebo SELECT8 - nevim/. stravil jsem na toggle or2 and2 xor2 mux asi pul dne a nedal to dohromady.
myslim si, ze jsem logice, pristupum a filozofii linuxcnc dostatecne neporozumel. myslim si, ze psat si componentu jen pro sebe je spatne, toto musi byt reseno standardnima componentama.
mohl by se nekdo zkuseny k dilematu, ze componentu mam za par minut funkcni ale pomoci standardnich component to nedam dohromady, vyjadrit?
pripadne poslat priklad jak by to melo ve standardnich komponentach vypadat, tzn. 3 knofliky bez aretace a z toho vystup 3 hodnot, co knoflik to float. prosel jsem ruzna fora i manualy ale vysledku jsem se pres standardni componenty nedobral. zrejme premyslim jinak nez linuxcnc, potreboval bych trosku umravnit.
diky za toto forum!
udelal jsem pidi componentu vyber3 /jako ze 3 cupliku/, na trech vstupech jsou cupliky, na trech vstupem jsou inkrementy ktery chci:
component vyber3;
pin in bit b0;
pin in bit b1;
pin in bit b2;
pin in float i0;
pin in float i1;
pin in float i2;
pin out float out;
FUNCTION(_) {
if ( b0 == true ){ out = i0; }
if ( b1 == true ){ out = i1; }
if ( b2 == true ){ out = i2; }
}
kousek HALu:
net cupl-incr-0 <= hm2_7i43.0.gpio.044.in_not
net cupl-incr-1 <= hm2_7i43.0.gpio.045.in_not
net cupl-incr-2 <= hm2_7i43.0.gpio.046.in_not
#nakrmim componentu vyber3
net cupl-incr-0 => vyber3.0.b0
net cupl-incr-1 => vyber3.0.b1
net cupl-incr-2 => vyber3.0.b2
#inkrementy
setp vyber3.0.i0 0.1
setp vyber3.0.i1 0.01
setp vyber3.0.i2 0.001
vysledek je tedy ten, ze po stisku knofliku se mi zmeni vystup na mnou zadanou hodnotu, nasledne pouziji v axis.XX.jog-scale. prace mi zabrala nekolik minut a funguje to.
a ted problem:
mam dojem, ze psat si componentu NENI systemove reseni.
puvodne jsem si hral s componentou toggle /toggle zmeni hodnotu ikdyz vstup je zmenem jen po dobu co drzim cuplik/, touggle.X.out pustit dal na nejaky OR2, AND2, NOT, a pak MUX4-8 nebo co /nebo SELECT8 - nevim/. stravil jsem na toggle or2 and2 xor2 mux asi pul dne a nedal to dohromady.
myslim si, ze jsem logice, pristupum a filozofii linuxcnc dostatecne neporozumel. myslim si, ze psat si componentu jen pro sebe je spatne, toto musi byt reseno standardnima componentama.
mohl by se nekdo zkuseny k dilematu, ze componentu mam za par minut funkcni ale pomoci standardnich component to nedam dohromady, vyjadrit?
pripadne poslat priklad jak by to melo ve standardnich komponentach vypadat, tzn. 3 knofliky bez aretace a z toho vystup 3 hodnot, co knoflik to float. prosel jsem ruzna fora i manualy ale vysledku jsem se pres standardni componenty nedobral. zrejme premyslim jinak nez linuxcnc, potreboval bych trosku umravnit.
diky za toto forum!