Spuštění M příkazu tlačítkem E-stop

hans
Příspěvky: 128
Registrován: 29. 10. 2006, 8:54
Bydliště: Jablunkov
Kontaktovat uživatele:

17. 1. 2014, 2:16

Zdravím,

na své frézce mám dvě vřetena, jedno hlavní frézovací a druhé pomocné vrtací, které se pomocí pístu vysouvá pod hlavní vřeteno. Hlavní frézovací vřeteno se ovládá klasicky příkazy M3 a M5, to pomocné se ovládá příkazy M150 pro start a M151 pro zastavení. Rychlost otáček mám nastavenou natvrdo v měniči, protože rychlost otáček nepotřebuji ovládat. V případě stlačení nouzového tlačítka (E-stop) se mi zastaví posuvy a hlavní vřeteno, ale pokud je puštěné pomocné vřeteno, tak se mi nezastaví.
Lze nějak udělat to, aby v případě zmáčknutí e-stop se spustil příkaz M151 a zastavil mi toto vřeteno?
Přikládám hal a ini soubory i soubory s eMkovými příkazy.

Díky za pomoc!
Přílohy
hal_ini_Mcodes.rar
ini hal a M soubory
(3.87 KiB) Staženo 232 x
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22952
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

17. 1. 2014, 2:44

das tam AND podminku na to vreteno do ktere bude vstupovat signal pro spusteni toho vretena a signal ze estop je vporadku
Vsechna prava na chyby vyhrazena (E)
gnat
Příspěvky: 985
Registrován: 24. 2. 2009, 9:14
Bydliště: doma
Kontaktovat uživatele:

17. 1. 2014, 3:33

estop ovládaný softwarově ? to se smí ? to bych neriskoval ani doma na té stolní mikrofrézce.
SABLE-2015
RaS
Příspěvky: 8590
Registrován: 26. 3. 2009, 9:12
Bydliště: Úvaly

17. 1. 2014, 5:25

proč estop softwaerově o tom tady nikdo nepsal.. jen přidá podmínku pro to pomocné vřeteno že musí být spuštěné za předpokladu že je neaktivní estop.. tuhle podmínku přidá na výstup kterej spíná to vřeteno, s estopem jako takovým to nemá nic společného.. jen naloaduje v halu jeden and se dvěma vstupy a přidá ho před výstup na ovládání pomocného vřetene, výstup zapojí na výstup který spíná vřeteno a jeden vstup na původní výstup a druhej vstup na negovanej estop ..
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
hans
Příspěvky: 128
Registrován: 29. 10. 2006, 8:54
Bydliště: Jablunkov
Kontaktovat uživatele:

20. 1. 2014, 2:48

Díky za odpověď. Snažím se to nastavit, ale nedaří se. Estop je udělaný v halu zatím takto:

loadrt and2
addf and2.0 servo-thread

#ESTOP
net estop-A0 iocontrol.0.user-enable-out => and2.0.in0
net estop-A1 hm2_5i20.0.gpio.001.in_not => and2.0.in1
net estoploop and2.0.out => iocontrol.0.emc-enable-in

Tu konfiguraci mám odněkud staženou a uniká mi její smysl, hlavní je že funguje, až na to vypnutí malého vřetene. Podle toho, co píšete, by to mělo vypadat asi takto:

loadrt and2 count=2 (protože už jedna funkce and2 se v konfiguraci používá)

net estop-A0 iocontrol.0.user-enable-out => and2.1.in0
net estop-A1 hm2_5i20.0.gpio.001.in_not => and2.1.in1
net estoploop and2.1.out => setp hm2_5i20.0.gpio.023.out 0 (pin 023 zapíná / vypíná vřeteno)

Takhle mi to ale píše, že estoploop už je přiřazená někde jinde, takže nevím, jak to správně zadat.
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22952
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

20. 1. 2014, 2:51

Tam nejak motas net a setp ne?
Vsechna prava na chyby vyhrazena (E)
Bas
Příspěvky: 20
Registrován: 14. 10. 2009, 4:08

20. 1. 2014, 3:55

Ahojky Hanzi

Tím co jsi psal v posledním příspěvku jsi jen předělával původní Estop na druhou načtenou krabičku

# --- NAČÍTÁNÍ KRABIČEK ---
loadrt and2 count=2 ...... tím count=2 říkáš, že má načíst dvě krabice AND2

pak musíš obě nadefinovat

# --- NASTAVENÍ KRABIČEK ---
addf and2.0 servo-thread
addf and2.1 servo-thread

A pak propojit podle požadovaného schématu....

Koukni sem http://www.c-n-c.cz/viewtopic.php?f=34&t=10774" onclick="window.open(this.href);return false; do toho souboru MCFH32halsx.pdf je tam schéma mého HALu. A dole je klasický Estop (ze kterého vycházíš) jak to funguje.

# --- ESTOP --- z mého Hall
net estop-A0 iocontrol.0.user-enable-out => and2.0.in0
net estop-A1 hm2_5i23.0.gpio.024.in_not => and2.0.in1
net estoploop and2.0.out => iocontrol.0.emc-enable-in

setp hm2_5i23.0.gpio.040.is_output true
net estoploop => hm2_5i23.0.gpio.040.out
setp hm2_5i23.0.gpio.040.invert_output true

Snad tě aspoň nasměruju
Nemůžeš propojovat další signály se stejným názvem (estoploop) ale můžeš se na něho napojit (tím že použiješ jen název signálu)
a to sept takle použít taky nemůžeš.
Lumír
Bas
Příspěvky: 20
Registrován: 14. 10. 2009, 4:08

20. 1. 2014, 6:50

Snažil jsem se to rozepsat... pošlu to sem a sám jsem zvědav jak to dopadne a co řeknou místní GURU

# --- NAČÍTÁNÍ KRABIČEK ---
loadrt and2 count=2 ...... tím count=2 říkáš, že má načíst dvě krabice AND2

pak musíš obě nadefinovat

# --- NASTAVENÍ KRABIČEK ---
addf and2.0 servo-thread
addf and2.1 servo-thread

# --- ESTOP --- původní e-stop tam nic neměň
net estop-A0 iocontrol.0.user-enable-out => and2.0.in0
net estop-A1 hm2_5i20.0.gpio.001.in_not => and2.0.in1
net estoploop and2.0.out => iocontrol.0.emc-enable-in


net estoploop and2.1.in0 ...tím napojíš and2.1in0 na původní výstup z e-stopu (jen ten signál rozdvojíš... já s ním spínám relé které povoluje start posuvů, vřetena a dalších věcí)
setp estop-mv and2.1.in1 ...a s tím si nevím rady... jestli musíš nasetovat předem nebo rovnou stačí setovat M150/M150 (to "estop-mv" je jen název signálu), možná tam ten řádek vůbec nemusí být a nebo má mít trochu jiný tvar
... jak tak nad tím přemýšlím asi bys to měl jen nasetovat na nulu!
setp and2.1.in1 0 .. aby se ti náhodou neroztičilo jen tak po startu


# male vreteno start / stop - M150-M151
setp hm2_5i20.0.gpio.023.is_output true
setp hm2_5i20.0.gpio.023.invert_output true
net malevreteno and2.1.out => hm2_5i20.0.gpio.023.out ...tím propojíš and2.1.out s výstupem na malé vřeteno a signál nazveš "malevreteno"


A soubory: ...těma bys měl setovat vstup in1 do and2.1...
M150

#!/bin/sh

halcmd setp and2.1.in1 0

exit 0

M151

#!/bin/sh

halcmd setp and2.1.in1 1

exit 0

protože dle: http://www.linuxcnc.org/docs/devel/html ... nd2.9.html" onclick="window.open(this.href);return false;
je and out=1, když in0=1 i in1=1 v opačném případě je out=0

Lumír
hans
Příspěvky: 128
Registrován: 29. 10. 2006, 8:54
Bydliště: Jablunkov
Kontaktovat uživatele:

21. 1. 2014, 3:00

Lumíre,
děkuji za pomoc.

Ten řádek setp estop-mv and2.1.in1 jsem vypustil a začalo to fungovat. Jediná nevýhoda je, že se při vymáčknutí e-stopu vřeteno znova rozjede. Ale pokud to obsluha ví, už s tím bude počítat a neřešil bych to.

To Robokop: Motám motám, ono to tak bývá při metodě pokus - omyl :D
Bas
Příspěvky: 20
Registrován: 14. 10. 2009, 4:08

21. 1. 2014, 6:04

Ahoj,
tak to jsem sám rád, že se to povedlo...
L
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22952
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

21. 1. 2014, 7:30

do toho se dostanes
ono je to jen par stavebnich kamenu
Vsechna prava na chyby vyhrazena (E)
Bas
Příspěvky: 20
Registrován: 14. 10. 2009, 4:08

24. 1. 2014, 1:58

ahoj,
... no zas tak pár možných kamenů to není... to bych si dovolil odporovat!!!
seznam kamínků je až dole: http://www.linuxcnc.org/docs/devel/html/" onclick="window.open(this.href);return false;
Je jich mraky!!!!!!!!!!vyznat se v nich a uměl je použít je na každém z nás...
já třeba mám velké problémy vymyslet a zvláště nakreslit si, nějakou tu PC logiku (prostě mezi ty konektory a LCD nevidím a bez Martina bych se nikam nedostal)

Nicméně tohle to jsem řešil před rokem a HANZI:
tak to přehoď až za tlačítko v EMC2 "ON"
vyměň ten řádek:
net estoploop and2.1.in0 ... a nahraď ho za:
net machine-is-enabled => and2.1.in0 #ten symbol uprostřed je jen orientační... hall ho nebere v potas a je jen pro tebe, ale to snad víš...
a nebo:
net machine-is-on => and2.1.in0 ... správný signál vysleduješ ve druhém sloupci emc "show Hal Configuriation" /Siglans když si je naházíš do druhé zálošky
WATCH je budeš moct sledovat jak se chovají.... když je budeš v EMC přepínat... přihoď si tam i estoploop a uvidíš...

tím jsi tu krabičku and2.1 přehodil úplně někam jinam a je to úplně jiné schéma....
Ale bude se to vřeteno spínat jen podle Mcodů a jestli je EMC ON, takže bude fungovat Estop jak by měl....
L (Ale možná se pletu...... :-))
RaS
Příspěvky: 8590
Registrován: 26. 3. 2009, 9:12
Bydliště: Úvaly

24. 1. 2014, 7:25

pak se mu vřeteno sice neroztočí jakmile nahodí estop, ale jakmile ještě potom dá ON ne? alespoň myslím že to tak bude, to mu neřeší zas tak problém.. on by potřeboval aby se mu to po estopu už nenahodilo nikdy samo.. musel by tam mít nějakej logickej blok kterej bude reagovat třeba na změnu signálu ovládajícího to vřeteno..
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
robokop
Site Admin
Příspěvky: 22952
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

24. 1. 2014, 7:52

takze neco co reaguje na hranu
treba edge?
Vsechna prava na chyby vyhrazena (E)
RaS
Příspěvky: 8590
Registrován: 26. 3. 2009, 9:12
Bydliště: Úvaly

24. 1. 2014, 8:32

něco takovýho, já teď z hlavy nevím jak se ty bloky jmenujou chce to projít a vyzkoušet.. prostě dá signál "zapni vřeteno" na to bude reagovat krabička reagující na změnu signálu a na estop off pokud estop spadne už nikdy nebude tenhle blok aktivní resp až zase po signálu zapni vřeteno, prostě se nestane to že nahodí estop a zase pojede vřeteno..
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
Odpovědět

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