LinuxCNC - ja se moc v tomhle silenem svete nevyznam

Odpovědět
tmxatcoxlab
Příspěvky: 200
Registrován: 12. 8. 2010, 3:24

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!
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22432
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

21. 7. 2014, 6:04

komponenta flipflop by to mozna resila nekoukal jsem do detailu
nebo tam bude jinej klopak kterej by to dal ale bude to asi vic psani jak v tom vlastnim programovani komponent
Vsechna prava na chyby vyhrazena (E)
RaS
Příspěvky: 8593
Registrován: 26. 3. 2009, 9:12
Bydliště: Úvaly

21. 7. 2014, 6:55

přímo tady na fóru je komplet konfigurace pro mpg.. jednoduchá, funkční
Naposledy upravil(a) RaS dne 21. 7. 2014, 7:16, celkem upraveno 1 x.
věčný rýpal,který musí mít poslední slovo, odpůrce low-cost zařízení končících v naprosté většině případů v hromadě šrotu
uživatelé hýbátek, kteří mají z mých příspěvků celoživotní trauma nechť si mé příspěvky VYPNOU
Uživatelský avatar
CZ_Pascal
Příspěvky: 870
Registrován: 14. 1. 2008, 8:24
Bydliště: Brno

21. 7. 2014, 6:58

Na psani vlastnich komponent neni nic spatneho.

Ftip je prave v tom ze cely LinuxCNC je takova malinko nedodelana skladacka, ktera se da ale s trochou snahy vytunit k absolutni dokonalosti, kterou zadny "okamzite pripraveny" system nemuze z podstaty veci nikdy dosahnout. (protoze nelze pojmout vsechny mozne a nemozne konfigurace/stroje ktere lidi provozuji)

Samozrejme by se to dalo i pomoci uz pripravenych komponent ( a ti co neumi napsat vlastni komponentu to pomoci kombinace "milionu" dalsich rozchodi)

Nicmene pokud si umis napsat komponentu "na míru" tak je to znacka ideal, protoze mas jednoduchej hal konfigurak a jednoduchou komponentu ktera umi presne to co potrebujes.
(daji se psat i slozitejsi komponenty přímo v C-čku)

Z trochu jineho soudku by bylo napsat si funkcionalitu v C-čku primo nekam do zdrojáku, čímž by sis zkomplikoval zivot pri prechodu/aktualizaci na novejsi verze.
Z hlediska vyuziti zdroju bys mozna jeste malinko ziskal na rychlosti, ale utrpela by modularita / oddělení funkcionality do samostatných prvků.

Vubec se toho neboj -> kdyz ti to spolehlive funguje tak je to OK.
tmxatcoxlab
Příspěvky: 200
Registrován: 12. 8. 2010, 3:24

21. 7. 2014, 8:59

2 RaS: na jednoduche a funkcni konfigurace jsem zde na foru narazil, a na jine veci jsem pouzil jen jejich kusy
2 CZ_Pascal: s temi aktualizacemi je to samozrejme pravda, musim si hlidat zdrojaky a ne jen apt-get upgrade
proste mi prislo divny ze mi nejde udelat std. componentama takovou jednoduchou vec: 3 cupliky -> 3 hodnoty. vidite ze moje tri radky kodu jsou uplne trivialni, proto nechapu proc mi to nejde udelat normalne.
porozumim tomu ze kdyz mam nejakou slozitou zalezitost /slozita logika/ tak je lepsi udelat componentu /jsem se dozvedel dneska od fupeho/ a nee to lepit pomoci 'kombinace 'milionu' dalsich' component, ale takovadle ptakovina? 3cuple -> 3cisla?
zkratka se obavam, ze kdyz nebudu vedet jak zalezitost resit std. componentama, tak si budu psat svoje vlastni moduly. abych se nemusel zlobit se svoji znalosti std. comp. tak to zalepim svym vlastnim modulem, kterej zanasi do myho linuxcnc nesystemovou/nedistribucni berlicku. pochybuju ze budu psat do linuxcnc, aby do gitu pridali takovoudle ptakovinu o 3 cuplikach a 3 hodnotach a to vse ve 3 radcich kodu.
pokud neuvidim hal na tema 1..X cupliku -> 1..X hodnot, budu si myslet ze bych mel mit svou stranecku v linuxcnc_manual_pages ;] zkratka, neco mi nejde a tak si bastlim modul o trech IFech a trech =, je to spravne?
snad jsem se vyjadril srozumitelne.
Odpovědět

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