Linuxcnc doladěni systému.

Mardako
Příspěvky: 136
Registrován: 14. 5. 2017, 2:04

12. 11. 2021, 10:21

Ahoj
Tak jsem se opět ponořil do čtení Linuxu .
Vůbec jsem se za půl roku nikam neposunul.
pořád řeším tu rampu a teď bych rád přidal i závitování.
Pokusil jsem se připojit enkodér v halu .
V Hal scope vidím signály, ale chová se to nějak divně.
Když jsem pustil příkaz na závitování G33.1 Z10 K5 tak se osa Z rozjede, ale po chvilce se zastaví a znovu rozjede.
Můžete se mi prosím kouknout někdo na ty soubory jestli tam není něco úplně blbě?
10.11_hal.txt
(15.33 KiB) Staženo 86 x
10.11_ini).txt
(4.02 KiB) Staženo 72 x
Uživatelský avatar
zz912
Příspěvky: 1348
Registrován: 25. 5. 2008, 7:16

12. 11. 2021, 11:29

Mardako píše: 12. 11. 2021, 10:21 G33.1 Z10 K5
Stoupání 5mm, při jakých otáčkách?

Mrkni na:
http://linuxcnc.org/docs/2.8/html/gcode ... code:g33.1

Ten example je v palcích, takže v mm by to mělo vypadat takto:

Kód: Vybrat vše

G33.1 Example
--------------------------------------------------------
G90 (set absolute mode)
G0 X25.400 Y25.400 Z2.540 (rapid move to starting position)
S100 M3 (turn on the spindle, 100 RPM)
G33.1 Z-19.05 K1.27 (rigid tap a 20 TPI thread 0.750 deep)
M2 (end program)
LinuxCNC - MESA 7i96
zz912.webnode.cz
Mardako
Příspěvky: 136
Registrován: 14. 5. 2017, 2:04

13. 11. 2021, 10:09

Udělal jsem si prográmek

%
(ZAVITOVANI M 8 ZAVITNIK )
(T31 D=8. CR=0. - ZMIN=-20. - RIGHT HAND TAP)
N10 G90 G94 G17 G91.1
N15 G21
N20 G53 G0 Z0.
(VRTN2)
N25 T31 M6
N30 S100 M3
N35 G54
N40 M8
N45 G0 X40. Y9.61
N50 G43 Z15. H31
N55 G0 Z5.
N60 G33.1 Z-20. K1. ---------na tomhle místě se program zastaví se spuštěným vřetenem
N65 G0 Z5.
N70 X10. Y9.61
N75 G33.1 Z-20. K1.
N80 G0 Z5.
N85 X10. Y40.
N90 G33.1 Z-20. K1.
N95 G0 Z5.
N100 X40. Y40.
N105 G33.1 Z-20. K1.
N110 G0 Z5.
N115 X40. Y40. Z15.
N120 M9
N125 G53 Z0.
N130 M30
%

Asi to čeká na signál z enkoderu od vřetena. A to jse mysle, že už to mám dobře :(


V halu mám zakomentované některé řádky, které jsem musel vypnout. jinak se program nespustil.
Ale asi by tam měli být.
Asi v té enkoderové části bude něco blbě, protože když zapnu HAL METER tak
abs.spindle.sign mění hodnotu TRUE FALSE i několikrát za vteřinu
A zrovna tak bliká ukazatel rychlosti a neukazuje spravně otáčky. I při 2000 ukazuje sotva 200
a lita nahoru dolu
54FEB742-12B0-449E-B028-8C93037E1BCA.jpeg
# ---Encoder feedback signals/setup---

setp hm2_5i23.0.encoder.04.counter-mode 0
setp hm2_5i23.0.encoder.04.filter 1
setp hm2_5i23.0.encoder.04.index-invert 0
setp hm2_5i23.0.encoder.04.index-mask 0
setp hm2_5i23.0.encoder.04.index-mask-invert 0
setp hm2_5i23.0.encoder.04.scale [SPINDLE_9]ENCODER_SCALE
setp hm2_5i23.0.pwmgen.04.output-type 1 # uprava
setp hm2_5i23.0.pwmgen.04.scale [SPINDLE_9]OUTPUT_SCALE # uprava


net spindle-revs <= hm2_5i23.0.encoder.04.position
net spindle-vel-fb-rps <= hm2_5i23.0.encoder.04.velocity
net spindle-index-enable <=> hm2_5i23.0.encoder.04.index-enable
Uživatelský avatar
zz912
Příspěvky: 1348
Registrován: 25. 5. 2008, 7:16

14. 11. 2021, 6:26

Obávám se, že už jsme se dostali do fáze, kdy Ti bez přítomnosti u stroje nejsem schopný pomoci. Ono To chce dělat po malých krůčcích. Nejdřív třeba naučit vřeteno točit správnými otáčkami (fyzické otáčky = požadované otáčky), poté zkontrolovat otáčky pomocí enkodéru, pak zvládnout vyhodnocení správných otáček, pak zvládnout rampu, pak si pohrát s lowpass filtrem atd.
LinuxCNC - MESA 7i96
zz912.webnode.cz
Mardako
Příspěvky: 136
Registrován: 14. 5. 2017, 2:04

15. 11. 2021, 11:11

Ahoj
Tak hlásím další úspěch
Vřeteno se točí správným směrem
Otáčky to počítá taky dobře.
Dokonce to i závituje.

Jenom jsem nepochopil proč v souboru Ini
musím nastavit počet kroku enkoderu 4096
Když mám enkoder 1024.

Když jsem to takhle nastavil tak stoupání závitu vypadalo dobře.

Rampa zatím nejde poněvadž jsem to trochu smazal
, ale jak bude trochu času budu bádat dál.
A teď co bylo špatně :
Když jsem zapojoval enkodér do Meda karty, tak jsem u B signálu prohodil plus a minus.
Když jsem porovnával signály na Halscope A a B ,
tak oba byly nad sebou ve stejném čase.
Když jsem dráty prohodil, tak se signál B posunul asi do půlky A a najednou to začalo počítat.
Taková blbost a trápil se s tím půl roku.

Jenom signál Z se chová divně.
Když pustím vřeteno na 200 otáček, tak to nezaznamená každou otáčku.
To je asi blbě ?

Škoda že jsi tak daleko. Tady u nás nikdo v okolí kdo by se v linuxu vyznal není.
Co takhle to poladit přes vzdálenou plochu?
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

16. 11. 2021, 12:00

Mardako píše: 15. 11. 2021, 11:11 Jenom jsem nepochopil proč v souboru Ini
musím nastavit počet kroku enkoderu 4096
Když mám enkoder 1024.
Každá "čárka" na enkodéru znamená 4 enkodérové polohy: nástupná hrana A, nástupná B, sestupná A, sestupná B.
Takže enkodér s 1024 čárkama má 4096 přesných poloh.

Nevím, jak to máš zapojené a nakonfigurované. A nechce se mi to studovat.
Pokud ale máš index Z zapojený jako běžný vstup, který čteš v servo-cyklu (tedy pravděpodobně 1000x za sekundu), tak se zřejmě při vyšších otáčkách může stát, že ten pulz je kratší než perioda čtení a občas ho přehlídneš.
Uživatelský avatar
zz912
Příspěvky: 1348
Registrován: 25. 5. 2008, 7:16

16. 11. 2021, 6:54

Mex píše: 16. 11. 2021, 12:00 Nevím, jak to máš zapojené a nakonfigurované. A nechce se mi to studovat.
Pokud ale máš index Z zapojený jako běžný vstup, který čteš v servo-cyklu (tedy pravděpodobně 1000x za sekundu), tak se zřejmě při vyšších otáčkách může stát, že ten pulz je kratší než perioda čtení a občas ho přehlídneš.
Ovšem je to blbě, že ho nevidí? Možná mu vše funguje tak jak má, akorát ho HALscope + komunikace s Mesou nestihne zobrazit. K čemu všemu se ten Z-signál používá? Vím že se používá u běžných os na zpřesnění referování, ale k čemu je dobrý u vřetene? Má Z-signál nějaký vliv na závitování?
LinuxCNC - MESA 7i96
zz912.webnode.cz
Uživatelský avatar
zz912
Příspěvky: 1348
Registrován: 25. 5. 2008, 7:16

16. 11. 2021, 8:34

To Mardako:

Až si budeš hrát s rampou, tak tam máš 2x spindle-at-speed

jednou "spindle-at-speed" definuješ jako near:

Kód: Vybrat vše

loadrt near      names=spindle-at-speed,spindle-at-pos
a jednou jako signál:

Kód: Vybrat vše

net spindle-at-speed           =>  motion.spindle-at-speed
LinuxCNC - MESA 7i96
zz912.webnode.cz
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

16. 11. 2021, 1:55

zz912 píše: 16. 11. 2021, 6:54
Mex píše: 16. 11. 2021, 12:00 Nevím, jak to máš zapojené a nakonfigurované. A nechce se mi to studovat.
Pokud ale máš index Z zapojený jako běžný vstup, který čteš v servo-cyklu (tedy pravděpodobně 1000x za sekundu), tak se zřejmě při vyšších otáčkách může stát, že ten pulz je kratší než perioda čtení a občas ho přehlídneš.
Ovšem je to blbě, že ho nevidí? Možná mu vše funguje tak jak má, akorát ho HALscope + komunikace s Mesou nestihne zobrazit.
To asi není omezením HALscope, že se něco nestihne zobrazit.
To je problém větší - nestihne se to ani změřit.
Jak říká známý Shanonův-Kotělnikův teorém: když chci zaznamenat frekvenci f, musím ji samplovat frekvencí větší než 2f.
A to ti pánové ještě mluvili o pravidelném signálu, třeba o sinusovce.
U nějakých jehel je to samozřejmě ještě patřičně horší.
Mardako
Příspěvky: 136
Registrován: 14. 5. 2017, 2:04

16. 11. 2021, 6:43

zz912 píše: 16. 11. 2021, 6:54
Mex píše: 16. 11. 2021, 12:00 Nevím, jak to máš zapojené a nakonfigurované. A nechce se mi to studovat.
Pokud ale máš index Z zapojený jako běžný vstup, který čteš v servo-cyklu (tedy pravděpodobně 1000x za sekundu), tak se zřejmě při vyšších otáčkách může stát, že ten pulz je kratší než perioda čtení a občas ho přehlídneš.
Ovšem je to blbě, že ho nevidí? Možná mu vše funguje tak jak má, akorát ho HALscope + komunikace s Mesou nestihne zobrazit. K čemu všemu se ten Z-signál používá? Vím že se používá u běžných os na zpřesnění referování, ale k čemu je dobrý u vřetene? Má Z-signál nějaký vliv na závitování?
Předpokládám, že ten index potřebuji k orientaci vřetena pro výměnu nástroje.?


Mexi a co ten index to se nepočítá?
Každá "čárka" na enkodéru znamená 4 enkodérové polohy: nástupná hrana A, nástupná B, sestupná A, sestupná B.
Takže enkodér s 1024 čárkama má 4096 přesných poloh.


Není to tedy Z+2 4098?
Tohle jsem nikde nečetl.
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

16. 11. 2021, 6:51

Mardako píše: 16. 11. 2021, 6:43 Mexi a co ten index to se nepočítá?
Každá "čárka" na enkodéru znamená 4 enkodérové polohy: nástupná hrana A, nástupná B, sestupná A, sestupná B.
Takže enkodér s 1024 čárkama má 4096 přesných poloh.


Není to tedy Z+2 4098?
Tohle jsem nikde nečetl.
Ne. Index má svou vlastní stopu a je signálech A, B nezávislý,
A stejně tak jeho vyhodnocování nijak nevstupuje do počítání pulzů.
Takže přesných poloh je jen 4096 na otáčku.
Naposledy upravil(a) Mex dne 16. 11. 2021, 6:52, celkem upraveno 1 x.
Uživatelský avatar
zz912
Příspěvky: 1348
Registrován: 25. 5. 2008, 7:16

16. 11. 2021, 6:52

Mexi a co ten index to se nepočítá?
Nepočítá.
https://en.wikipedia.org/wiki/Incremental_encoder
Obrázek
LinuxCNC - MESA 7i96
zz912.webnode.cz
Uživatelský avatar
zz912
Příspěvky: 1348
Registrován: 25. 5. 2008, 7:16

16. 11. 2021, 7:01

Mex píše: 16. 11. 2021, 1:55 To asi není omezením HALscope, že se něco nestihne zobrazit.
To je problém větší - nestihne se to ani změřit.
Jak říká známý Shanonův-Kotělnikův teorém: když chci zaznamenat frekvenci f, musím ji samplovat frekvencí větší než 2f.
A to ti pánové ještě mluvili o pravidelném signálu, třeba o sinusovce.
U nějakých jehel je to samozřejmě ještě patřičně horší.
Je mi jasné že komunikace mezi PC a Mesou to nestihne. Ovšem samotné FPGA by to stihnout mělo a taky by to měl LinuxCNC stihnout při malých otáčkách. Nerozumím k čemu je tohle spojení:

Kód: Vybrat vše

net spindle-index-enable <=> hm2_5i23.0.encoder.04.index-enable
LinuxCNC - MESA 7i96
zz912.webnode.cz
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

16. 11. 2021, 7:35

zz912 píše: 16. 11. 2021, 7:01 Je mi jasné že komunikace mezi PC a Mesou to nestihne. Ovšem samotné FPGA by to stihnout mělo a taky by to měl LinuxCNC stihnout při malých otáčkách.
A jak se v tom projeví rychlost toho FPGA?
Uživatelský avatar
zz912
Příspěvky: 1348
Registrován: 25. 5. 2008, 7:16

16. 11. 2021, 7:47

Kdybych připojil signály A B přímo do vstupů na MESE a MESA ty signály posílal do PC s LCNC, kde bych použil HAL komponentu ENCODER, tak to taky nebude fungovat. Co se čtení A B signálů tak předpokládám, že si to řeší FPGA a posílá už jen zpracované hodnoty. Z toho dedukuji že kdyby to bylo k něčemu dobré, tak by to FPGA mohlo k něčemu Z-signál využít, ale nenapadá mě k čemu.
LinuxCNC - MESA 7i96
zz912.webnode.cz
Odpovědět

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