Ubuntu 10.04 EMC2 a gamepad logitech
loadrt and2 count=2 #count určuje počet načtených komponentu AND2
loadrt not
net machineon halui.machine.on => and2.0.in0 #-stroj on/off tlačítko 9
net machineon halui.machine.on => not.0.in
net not-machineon not.0.out => and2.1.in0
net button9 input.0.btn-tl2 => and2.0.in1
net button9 input.0.btn-tl2 => and2.1.in1
net machineoff and2.0.out => halui.machine.off
net machineon and2.1.out => halui.machine.on
addf and2.0 servo-thread
addf and2.1 servo-thread
addf not.0 servo-thread
pokud chceš takto ovladat víc funcí tak musíš dát count AND2 dát čtyří(pro každé tlačítko používáš dvě) a u NOT dáš coun 2 a dál to čísluješ postupně :and2.2.out ,and2.3.
loadrt not
net machineon halui.machine.on => and2.0.in0 #-stroj on/off tlačítko 9
net machineon halui.machine.on => not.0.in
net not-machineon not.0.out => and2.1.in0
net button9 input.0.btn-tl2 => and2.0.in1
net button9 input.0.btn-tl2 => and2.1.in1
net machineoff and2.0.out => halui.machine.off
net machineon and2.1.out => halui.machine.on
addf and2.0 servo-thread
addf and2.1 servo-thread
addf not.0 servo-thread
pokud chceš takto ovladat víc funcí tak musíš dát count AND2 dát čtyří(pro každé tlačítko používáš dvě) a u NOT dáš coun 2 a dál to čísluješ postupně :and2.2.out ,and2.3.
- Radek-B
- Příspěvky: 2137
- Registrován: 13. 9. 2006, 11:09
- Bydliště: V:Karlovice
- Kontaktovat uživatele:
Hmmm, on/off jde udelat i elegantneji, ale dobre si to pochopil. Myslel jsem ze od EMC utikas k Machu
. Taky by mne zajimalo cos vymyslel pro jednotlacitkovy spinac vretene. Slo by to treba takto. (pozor na uz pouzity not.0) dal by to chtelo osetrit stav OFF po zapnuti stroje, a take nutnost dvakrat stisknout pro vypnuti pri zapnuti vretene z MDI nebo programu, nejlepsi je si celou logiku nakreslit. Ale pro nastrel funkce bude toto dobre.
do ini sekce hal dopsat : HALFILE = o.hal
vytvorit soubor o.hal :
loadusr -W pyvcp -c pyvcp o.xml
loadrt toggle count=1
loadrt not count=1
addf toggle.0 servo-thread
addf not.0 servo-thread
show pin
net bit1 pyvcp.button-vreteno => toggle.0.in
net bit2 toggle.0.out => pyvcp.led-vreteno halui.spindle.start not.0.in
net bit3 not.0.out => halui.spindle.stop
#loadusr -w halcmd -kf
vytvorit soubor o.xml :
<xml>
<pyvcp>
<vbox>
<hbox>
<label><text>"vreteno ON/OFF:"</text></label>
<led>
<halpin>"led-vreteno"</halpin>
<size>20</size>
</led>
</hbox>
<vbox>
<hbox>
<label><text>" "</text></label>
<button>
<text>"Button:"</text>
<halpin>"button-vreteno"</halpin>
</button>
</hbox>
</vbox>
</vbox>
</pyvcp>

do ini sekce hal dopsat : HALFILE = o.hal
vytvorit soubor o.hal :
loadusr -W pyvcp -c pyvcp o.xml
loadrt toggle count=1
loadrt not count=1
addf toggle.0 servo-thread
addf not.0 servo-thread
show pin
net bit1 pyvcp.button-vreteno => toggle.0.in
net bit2 toggle.0.out => pyvcp.led-vreteno halui.spindle.start not.0.in
net bit3 not.0.out => halui.spindle.stop
#loadusr -w halcmd -kf
vytvorit soubor o.xml :
<xml>
<pyvcp>
<vbox>
<hbox>
<label><text>"vreteno ON/OFF:"</text></label>
<led>
<halpin>"led-vreteno"</halpin>
<size>20</size>
</led>
</hbox>
<vbox>
<hbox>
<label><text>" "</text></label>
<button>
<text>"Button:"</text>
<halpin>"button-vreteno"</halpin>
</button>
</hbox>
</vbox>
</vbox>
</pyvcp>
- Přílohy
-
- O_soubory.zip
- (675 bajtů) Staženo 240 x
modernizace/repase CNC strojů a zařízení
automatizace/konstrukce
automatizace/konstrukce
ne macha nechci s tím jsem si užil své, na emc mi mašina běha o sto procent lépe jen jsem už na ty linuxi asi starej
chvíli mi mtrvalo pochopit kombinaci komponentu v hal ale číslicová logika jako taková pro mě není problém tak jsem nato šel od lesa a že to není třeba až tak elegantní není až tak důležitý hlavně že to funguje. vřeteno jsem řešil obdobně a zovna tak jsem chtěl řešit starta pause programu ale tam mi to nechodí píše to něco ohledně manual- automat režimu, jak to ošetřit? po spuštění programu v compu to už chodí .
do configu jsem si dělal poznámky jako pro blbý, až zas do toho po čase polezu abych na to nečučel ja husa do flašky.
muj config:
# Include your customized HAL commands here
# The commands in this file are run after the AXIS GUI (including PyVCP panel) starts
setp halui.jog-speed 1600 #- max rychlost přejezdů
setp halui.jog-deadband 0.3 #-mrtvý chod pák os
setp input.0.abs-x-scale 127.5
setp input.0.abs-y-scale -127.5
setp input.0.abs-rz-scale -127.5
setp input.0.abs-z-scale -127.5
setp input.0.abs-x-offset 127
setp input.0.abs-y-offset 127
setp input.0.abs-rz-offset 127
setp input.0.abs-z-offset 127
net velX input.0.abs-x-position => halui.jog.0.analog
net velY input.0.abs-y-position => halui.jog.1.analog
net velZ input.0.abs-rz-position => halui.jog.2.analog
net velA input.0.abs-z-position => halui.jog.3.analog
net FOminus input.0.btn-tl => halui.feed-override.decrease #tlač5 rychlost obr plus
net FOplus input.0.btn-y => halui.feed-override.increase #tlač7 rychlost obr minus
net stiskpaka1 input.0.btn-select => halui.joint.0.home #-tlačítko1paky home axis X
net stiskpaka1 input.0.btn-select => halui.joint.1.home #-tlačítko1paky home axis Y
net stiskpaka1 input.0.btn-select => halui.joint.2.home #-tlačítko1paky home axis Z
net stiskpaka1 input.0.btn-select => halui.joint.3.home #-tlačítko1paky home axis A
#net button6 input.0.btn-z => halui......... #-tlačítko6 volnééé
#net button8 input.0.btn-tr => halui........ #-tlačítko8 volnééé
loadrt and2 count=4 #count určuje počet načtených komponentu AND2 ovládání jednim tlačítkem
loadrt not count=2 #count určuje počet načtených komponentu NOT ovládání jednim tlačítkem
net machineon halui.machine.on => and2.0.in0 #-stroj on/off tlačítko levé horní
net machineon halui.machine.on => not.0.in #-stroj on/off tlačítko levé horní
net not-machineon not.0.out => and2.1.in0 #-stroj on/off tlačítko levé horní
net button9 input.0.btn-tl2 => and2.0.in1 #-stroj on/off tlačítko levé horní
net button9 input.0.btn-tl2 => and2.1.in1 #-stroj on/off tlačítko levé horní
net machineoff and2.0.out => halui.machine.off #-stroj on/off tlačítko levé horní
net machineon and2.1.out => halui.machine.on #-stroj on/off tlačítko levé horní
addf and2.0 servo-thread #-stroj on/off tlačítko levé horní
addf and2.1 servo-thread #-stroj on/off tlačítko levé horní
addf not.0 servo-thread #-stroj on/off tlačítko levé horní
net vřetenoon halui.spindle.start => and2.2.in0 #-vřeteno on/off tlačítko pravé horní
net vřetenoon halui.spindle.start => not.1.in
net not-vřetenoon not.1.out => and2.3.in0
net button10 input.0.btn-tr2 => and2.2.in1
net button10 input.0.btn-tr2 => and2.3.in1
net vřetenooff and2.2.out => halui.spindle.stop
net vřetenoon and2.3.out => halui.spindle.start
addf and2.2 servo-thread
addf and2.3 servo-thread
addf not.1 servo-thread
chvíli mi mtrvalo pochopit kombinaci komponentu v hal ale číslicová logika jako taková pro mě není problém tak jsem nato šel od lesa a že to není třeba až tak elegantní není až tak důležitý hlavně že to funguje. vřeteno jsem řešil obdobně a zovna tak jsem chtěl řešit starta pause programu ale tam mi to nechodí píše to něco ohledně manual- automat režimu, jak to ošetřit? po spuštění programu v compu to už chodí .
do configu jsem si dělal poznámky jako pro blbý, až zas do toho po čase polezu abych na to nečučel ja husa do flašky.
muj config:
# Include your customized HAL commands here
# The commands in this file are run after the AXIS GUI (including PyVCP panel) starts
setp halui.jog-speed 1600 #- max rychlost přejezdů
setp halui.jog-deadband 0.3 #-mrtvý chod pák os
setp input.0.abs-x-scale 127.5
setp input.0.abs-y-scale -127.5
setp input.0.abs-rz-scale -127.5
setp input.0.abs-z-scale -127.5
setp input.0.abs-x-offset 127
setp input.0.abs-y-offset 127
setp input.0.abs-rz-offset 127
setp input.0.abs-z-offset 127
net velX input.0.abs-x-position => halui.jog.0.analog
net velY input.0.abs-y-position => halui.jog.1.analog
net velZ input.0.abs-rz-position => halui.jog.2.analog
net velA input.0.abs-z-position => halui.jog.3.analog
net FOminus input.0.btn-tl => halui.feed-override.decrease #tlač5 rychlost obr plus
net FOplus input.0.btn-y => halui.feed-override.increase #tlač7 rychlost obr minus
net stiskpaka1 input.0.btn-select => halui.joint.0.home #-tlačítko1paky home axis X
net stiskpaka1 input.0.btn-select => halui.joint.1.home #-tlačítko1paky home axis Y
net stiskpaka1 input.0.btn-select => halui.joint.2.home #-tlačítko1paky home axis Z
net stiskpaka1 input.0.btn-select => halui.joint.3.home #-tlačítko1paky home axis A
#net button6 input.0.btn-z => halui......... #-tlačítko6 volnééé
#net button8 input.0.btn-tr => halui........ #-tlačítko8 volnééé
loadrt and2 count=4 #count určuje počet načtených komponentu AND2 ovládání jednim tlačítkem
loadrt not count=2 #count určuje počet načtených komponentu NOT ovládání jednim tlačítkem
net machineon halui.machine.on => and2.0.in0 #-stroj on/off tlačítko levé horní
net machineon halui.machine.on => not.0.in #-stroj on/off tlačítko levé horní
net not-machineon not.0.out => and2.1.in0 #-stroj on/off tlačítko levé horní
net button9 input.0.btn-tl2 => and2.0.in1 #-stroj on/off tlačítko levé horní
net button9 input.0.btn-tl2 => and2.1.in1 #-stroj on/off tlačítko levé horní
net machineoff and2.0.out => halui.machine.off #-stroj on/off tlačítko levé horní
net machineon and2.1.out => halui.machine.on #-stroj on/off tlačítko levé horní
addf and2.0 servo-thread #-stroj on/off tlačítko levé horní
addf and2.1 servo-thread #-stroj on/off tlačítko levé horní
addf not.0 servo-thread #-stroj on/off tlačítko levé horní
net vřetenoon halui.spindle.start => and2.2.in0 #-vřeteno on/off tlačítko pravé horní
net vřetenoon halui.spindle.start => not.1.in
net not-vřetenoon not.1.out => and2.3.in0
net button10 input.0.btn-tr2 => and2.2.in1
net button10 input.0.btn-tr2 => and2.3.in1
net vřetenooff and2.2.out => halui.spindle.stop
net vřetenoon and2.3.out => halui.spindle.start
addf and2.2 servo-thread
addf and2.3 servo-thread
addf not.1 servo-thread
- Radek-B
- Příspěvky: 2137
- Registrován: 13. 9. 2006, 11:09
- Bydliště: V:Karlovice
- Kontaktovat uživatele:
Kdyz pochopis zaklady, tak casem te zacnou napadat lepsi reseni, to si zvladl velmi dobre. Tady je trosku blbe ze tech moznosti pouziti a kombinaci je strasne moc, da se s tim celkem kouzlit. Radil bych si to nakreslit na papir a rict si co presne ta logika ma delat a co kam ma vest. Podle toho pak psat hal.
JInak dobra pomucka je psani prikazu HALvrstvy primo ve spustenem EMC. Lze si tak velmi jednoduse overit co to dela.
Piny se setuji prikazem setp a signaly sets. Viz obrazek.
U start a stop programu bych nic nevymyslel, proste bych ty piny primo priradil primo tlacitkum na JOY. Pise ti to zrejmne ze start programu nelze provest v manualnim modu a tato hlaska je spravne. Mel by sis vyhradit tlacitka pro prepinani modu a teprve na to navazat na ovladani programu, ci pohybu os.
v MANUALU nelze spoutet program , zadavat rucne data, lze rucne pojizdet.
v MDI nelze spoutet program , lze rucne zadavat data, nelze rucne pojizdet.
ATD... a ty hlasky ze neco v nejakem modu nelze jsou normalni a je to tak spravne.
RADEK
JInak dobra pomucka je psani prikazu HALvrstvy primo ve spustenem EMC. Lze si tak velmi jednoduse overit co to dela.
Piny se setuji prikazem setp a signaly sets. Viz obrazek.
U start a stop programu bych nic nevymyslel, proste bych ty piny primo priradil primo tlacitkum na JOY. Pise ti to zrejmne ze start programu nelze provest v manualnim modu a tato hlaska je spravne. Mel by sis vyhradit tlacitka pro prepinani modu a teprve na to navazat na ovladani programu, ci pohybu os.
v MANUALU nelze spoutet program , zadavat rucne data, lze rucne pojizdet.
v MDI nelze spoutet program , lze rucne zadavat data, nelze rucne pojizdet.
ATD... a ty hlasky ze neco v nejakem modu nelze jsou normalni a je to tak spravne.
RADEK
Naposledy upravil(a) Radek-B dne 26. 9. 2010, 8:07, celkem upraveno 2 x.
modernizace/repase CNC strojů a zařízení
automatizace/konstrukce
automatizace/konstrukce
jo to že musí být mod automat jsem pochopil take jsem to tak měl udělané pak to funguje , jen jsem chtěl funkci - přepnout na automat a rozjet program chtěl hodit na jedno tlačítko a další stisk pauza, jenže z pauzy se program opět nahazuje pauzou takže to není to pravé ořechové . múžeš mi ještě poradit jak v tom mém configu nabastlím kontolku vřetena?
- Radek-B
- Příspěvky: 2137
- Registrován: 13. 9. 2006, 11:09
- Bydliště: V:Karlovice
- Kontaktovat uživatele:
Nad tu logiku prepinani se clovek musi nekdy i nekolikrat vyspat
Pust si ten muj hal a xml , tu ledku tam velmi brzo pochopis. V podstate ji staci pripojit na vystupni pin treba spindle.start anebo brake.
Start/pause stop je pekne osetren (presne jak potrebujes) v DCM_modulu pro JOY, ktery se da stahnout zde. Tam je to udelano na urovni zdrojoveho kodu v C++. K EMC jsou k dispozici zdrojove kody takze pokud umis anebo znas nekoho kdo umi programovat , tak ti muze vytvorit hal modul primo na miru ve zdrojovem kodu. (ziskas tim hal prvek s piny, parametry presne jak potrebujes)
http://www.c-n-c.cz/viewtopic.php?t=243 ... c&start=90
RADEK

Pust si ten muj hal a xml , tu ledku tam velmi brzo pochopis. V podstate ji staci pripojit na vystupni pin treba spindle.start anebo brake.
Start/pause stop je pekne osetren (presne jak potrebujes) v DCM_modulu pro JOY, ktery se da stahnout zde. Tam je to udelano na urovni zdrojoveho kodu v C++. K EMC jsou k dispozici zdrojove kody takze pokud umis anebo znas nekoho kdo umi programovat , tak ti muze vytvorit hal modul primo na miru ve zdrojovem kodu. (ziskas tim hal prvek s piny, parametry presne jak potrebujes)
http://www.c-n-c.cz/viewtopic.php?t=243 ... c&start=90
RADEK
modernizace/repase CNC strojů a zařízení
automatizace/konstrukce
automatizace/konstrukce
udělal jsem si návrat všech nebo libovolné osy do nul ted se mi jedná o to že bych potřeboval aby se mi první referovala osa Z a až potom ostatní , jediný problém je že nevím pod čím najdu indikaci že z je v nulách- jaký je nato příkaz v hal????
HOME_OFFSET = 0 nastavuje kam se posune osa po najeti na HOME
HOME_SEARCH_VEL = 30.000000 rychlost pro hledani polohy HOME pro osu
HOME_LATCH_VEL = 1.250000 rychlost doměření HOME
HOME_SEQUENCE = 2 pořadí v jakem bude provedeno HOME pro osu pri prikazu HOME ALL
HOME_SEARCH_VEL = 30.000000 rychlost pro hledani polohy HOME pro osu
HOME_LATCH_VEL = 1.250000 rychlost doměření HOME
HOME_SEQUENCE = 2 pořadí v jakem bude provedeno HOME pro osu pri prikazu HOME ALL
Martin
nebudes...
jj do ini. tady je cela osa :
[AXIS_0]
TYPE = LINEAR
HOME = 0
MAX_VELOCITY = 180
MAX_ACCELERATION = 1600.0
SCALE = 200
FERROR = .1
MIN_FERROR = .01
MIN_LIMIT = -999
MAX_LIMIT = 999
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -30.000000
HOME_LATCH_VEL = -1.250000
HOME_SEQUENCE = 1
jj do ini. tady je cela osa :
[AXIS_0]
TYPE = LINEAR
HOME = 0
MAX_VELOCITY = 180
MAX_ACCELERATION = 1600.0
SCALE = 200
FERROR = .1
MIN_FERROR = .01
MIN_LIMIT = -999
MAX_LIMIT = 999
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -30.000000
HOME_LATCH_VEL = -1.250000
HOME_SEQUENCE = 1
Martin
home All axis mi řeši vynulování všech os v aktualni pozici protože nemám zapojeny koncáky pro home axis.
mě šlo a to když dám přez bamepad příkaz G0 X0 Y0 Z0 A0 nebo G28 pro návrat domu tak aby bylo zaručeno že Zetko vyjede nad matroš a až potom ostatní osy.
ještě jedna otázka když mám zapojeny koncáky pro home xyz - dám home All stroj se mi zreferuje na koncáky ,jak si potom stroj vynuluju kde potřebuju? ( nemám osazeny koncáky tak nemám jak vyzkoušet)
mě šlo a to když dám přez bamepad příkaz G0 X0 Y0 Z0 A0 nebo G28 pro návrat domu tak aby bylo zaručeno že Zetko vyjede nad matroš a až potom ostatní osy.
ještě jedna otázka když mám zapojeny koncáky pro home xyz - dám home All stroj se mi zreferuje na koncáky ,jak si potom stroj vynuluju kde potřebuju? ( nemám osazeny koncáky tak nemám jak vyzkoušet)
To je přece krasně popsaný v dokumentaci k EMC na http://www.linuxcnc.org/docview/html/
Martin
Martin