Paralelní port [disabled]

Mex
Příspěvky: 6500
Registrován: 6. 2. 2014, 10:29

13. 1. 2020, 5:40

zz912 píše:
13. 1. 2020, 3:37
Kamarád bydlí cestou z práce, takže se mohu za ním stavit a nechat běžet PC přes noc do zítřka.
Rád bych se zeptal, co se děje při špatně nastavené latenci?
Je možné, aby špatně nastavená latence ovlivňovala jen jednu osu?
Nejde o to, že je špatně nastavená. Jde o to, že ten stroj ji má špatnou.
Latence znamená, že mezi okamžikem kdy má stroj něco provést a kdy to skutečně provede uplyne nějaká doba. No a pokud je ta doba dlouhá (tj. latence je vysoká, tj. špatná), tak se vůbec neprovedou operace, ke kterým mělo dojít. Protože než se provedou, tak už je další perioda a přijdou další úkoly.

Jen úplně letmým pohledem do konfigurace - máš nastavenou Base-periodu na 10 kHz (100000ns). Takže nejrychlejší možnou frekvenci STEP můžeš mít 5 kHz. Při 500 krocích na mm je to max 10mm/s, tedy F600.
Víc teď nemám čas se tím zabývat.
zz912 píše:
13. 1. 2020, 3:37
stroj jsem začal kreslit v roce 2014 a už bych rád začal frézovat.
Kdybys byl z centra světa (tj. z Brna), tak bych se klidně stavil ti to rozjet. Ale protože asi nejseš, tak nic.
zz912
Příspěvky: 167
Registrován: 25. 5. 2008, 7:16
Kontaktovat uživatele:

13. 1. 2020, 8:15

Stavoval jsem se u kamaráda a už hýřím nadšením. Ono to fakt vypadá, že to bude tou latencí. Když jel
G1 X200 F200 =>tak to ve skutečnosti ujelo 200mm
když jel
G1 X200 F700 =>tak to ve skutečnosti ujelo 150mm
Absolutně nechápal, proč jsem z toho tak nadšenej. Tohle je opakující se nenáhodná chyba, která lze jednoduše nasimulovat. Já se bál toho, že tam je nějaké záhadné náhodné rušení.
Zároveň to možná vysvětluje i to, proč to dělá jen osa X. Je to z toho důvodu, že osa X má 500 pulzů/otáčku a ostatní osy mají 400 a 50 pulzů na otáčku.

Rozumím tomu tak správně, že když je špatně nastavená Base-perioda vycházející z latence, tak to může "krást" pulzy?
Nechal jsem tam jet přes noc ten latency test a zítra uvidíme.
Tohle mi tam jede http://linuxcnc.org/docs/html/install/latency-test.html

Pamatuji si, že tehdá ten počítač měl Max Jitter 100 000ns a více. Proto se tam dodávala externí grafika a spadlo to na současných cca 29 000ns. Ovšem pak jsem do kolonky Base Period Maximum Jitter na druhém obrázku v
http://linuxcnc.org/docs/html/config/stepconf.html
napsal 17 000ns. Myslel jsem si, že lépe je menší hodnota a pokračoval dál. Asi jsem měl dát více že? Když jsem chtěl hrát na jistotu. Třeba 50 000ns?

No a teď mi vznikl druhý problém. Hal soubor už mám ručně přepsanej, aby mi tam jeli ty dva porty, tudíž už nesmím spustit Stepper Configuration Wizard.

Dělám to teď tak, že když vím co chci změnit, tak to změním přímo v textovým souboru hal a když si nejsem jistej, tak vygeneruji pomocí Stepper Configuration Wizard podobný hal soubor a porovnávám. Ovšem hodnotu 17 000 jsem nikde nenašel.

Tipoval bych, že až budu vědět kolik chci nastavit Maximum Jitter, tak to ovlivní tyto hodnoty?
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 100000
SERVO_PERIOD = 1000000
nebo i nějaké další?
zz912
Příspěvky: 167
Registrován: 25. 5. 2008, 7:16
Kontaktovat uživatele:

14. 1. 2020, 4:44

Takhle dopadl Latency Test, když jel přes celou noc.
Obrázek
Přílohy
HAL_Latency_Test.png
zz912
Příspěvky: 167
Registrován: 25. 5. 2008, 7:16
Kontaktovat uživatele:

14. 1. 2020, 5:41

Zkouším změnit hodnotu
"Base Period Maximum Jitter" v "Stepper Configuration Wizard" a nemohu najít, kde v HALu nebo v INI se to promítá.
Mex
Příspěvky: 6500
Registrován: 6. 2. 2014, 10:29

14. 1. 2020, 7:34

Já na ty kouzelníky moc nejsem. Ale pokud mu zadáš jiný max. jitter, tak by měl přepočítat jinou hodnotu periody Base-threadu.

Vykašli se na kouzelníka a použij hlavu.
Perioda Base-threadu (tj. ten rychlejší, který časuje generování kroků) musí být taková, aby bylo zaručeno, že se každé jeho volání dostane k lizu ještě předtím, než dojde na další volání.
No a protože máš maximální latenci kolem 53us, a něco trvá i zpracování toho threadu, tak při volání každých třeba 65-70us by se vše mělo stihnout.

Takže bych pro začátek nastavil BASE_PERIOD třeba na těch 65000. To odpovídá asi 15 kHz. Každý vygenerovaný puls STEP potřebuje 2 volání, takže se dostaneš s frekvencí STEP na maximálně cca 7.5 kHz.
Máš 500 pulzů/mm, tak to vychází na 15 mm/s, neboli na F900.
Nic moc, ale ten mainboard prostě není nic moc.
zz912
Příspěvky: 167
Registrován: 25. 5. 2008, 7:16
Kontaktovat uživatele:

14. 1. 2020, 8:33

Dovolil bych si pomalu zrekapitulovat Váš výpočet:

Původně bylo nastaveno:
BASE_PERIOD = 100 000 ns
BASE_PERIOD frekvence = 1/(100 000 ns * 10^-9) = 10kHz
STEP frekvence = 10kHz/2 = 5 kHz
pulzy na mm = 500 pulzů /mm
maximální posuv = 5000Hz / 500 = 10 mm/s = 600 mm/min

Nové doporučené nastavení:
BASE_PERIOD = 65 000 ns
BASE_PERIOD frekvence = 1/(65 000 ns * 10^-9) = 15kHz
STEP frekvence = 15kHz/2 = 7.5 kHz
pulzy na mm = 500 pulzů /mm
maximální posuv = 7500Hz / 500 = 15 mm/s = 900 mm/min

No tak tohle zatím vysvětluje, proč se ztrácely kroky při BASE_PERIOD = 100000 a F720, ale nevysvětluje to proč se ztrácely kroky při programu F300.

Má vliv na výpočty viz výše počet řízených os?

A co s parametrem:
SERVO_PERIOD = 1 000 000 ns ?
v HAL Latency testu vyšel 1 023 282 ns.
Mám ho zvýšit?
Mohlo by tohle poukazovat na zdroj problémů?
Mex
Příspěvky: 6500
Registrován: 6. 2. 2014, 10:29

14. 1. 2020, 8:51

Já jsem nikde nepsal, že je to zaručeně zdroj problémů.
Napsal jsem, že po letmém shlédnutí konfiguráku se mi nastavení toho parametru zdálo nešikovné. Já jsem ani celý ten konfigurák nečetl a nezkoumal, tolik času a motivace zase nemám.

Naopak Ty (na tomto fóru je zvykem tykání) jsi napsal, že při vysoké rychlosti F to spolehlivě začalo dělat chyby, při nízké ne. A teď je to zase jinak?

Ta Servo-perioda je OK, tu není třeba měnit.
zz912
Příspěvky: 167
Registrován: 25. 5. 2008, 7:16
Kontaktovat uživatele:

15. 1. 2020, 9:47

Já jsem nikde nepsal, že je to zaručeně zdroj problémů.
A ani se Ti to nesnažím nějak podsouvat. Výpočty schválně rozepisuji tak abych tomu sám porozumněl a popřípadě aby byla vidět nějaká chyba v mých úvahách.

Při vysokých rychlotech to opravdu dělá opakovatelnou chybu. Pokud změním BASE_PERIOD viz výpočty tak předpokládám, že vyřeším problém s vyššími rychlostmi.

Ovšem nevyřeší mi to ten původní problém, kdy se frézoval program s maximální F300.

Myslel jsem, že mám jeden problém. Bohužel to jsou problémy 2. Jeden v maximálních otáčkách, což vyřeším opravou BASE_PERIOD a druhý v malých otáčkách.

Zajímá mě vše, co může v Linuxu způsobovat ztrátu pulzů.
Uživatelský avatar
robokop
Site Admin
Příspěvky: 17550
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

15. 1. 2020, 10:11

pouzij mesu...
ja jiz zrejme z vypoctu vyse, softwarovy stepgen nema sanci generovat stabilne vyssi kmitocty
prenech to tudiz specializovanemu hardware
Vsechna prava na chyby vyhrazena (E)
zz912
Příspěvky: 167
Registrován: 25. 5. 2008, 7:16
Kontaktovat uživatele:

15. 1. 2020, 12:11

A jakou použít MESU na hračka stroj:
- 6 výstupů (3x DIR + 3x STEP)
- maximální rychlost F1000
- maximální pulzy na mm 500
?
Uživatelský avatar
robokop
Site Admin
Příspěvky: 17550
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

15. 1. 2020, 12:13

asi by mela stacit ta na lpt port
jde se to lpt pouziva na komunikaci s fpga

nevim jak to vychazi cenove
ale ja bych rozhdne az tak nesetril a pouzil tu ethernetovou variantu
ta ti umozni nohem operativneji rozmistit el. komponenty
Vsechna prava na chyby vyhrazena (E)
oscar
Příspěvky: 1044
Registrován: 2. 5. 2010, 8:50
Bydliště: Perníkovice

15. 1. 2020, 12:37

Uz se objevil nejaky lepsi zdroj tech karet? Nebo stale pouze zamori a vyprodane Portugalsko?
Uživatelský avatar
robokop
Site Admin
Příspěvky: 17550
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

15. 1. 2020, 1:01

no v posledni dobe to chodilo normalne
do par dnu tady
Vsechna prava na chyby vyhrazena (E)
Mex
Příspěvky: 6500
Registrován: 6. 2. 2014, 10:29

15. 1. 2020, 9:25

zz912 píše:
15. 1. 2020, 12:11
A jakou použít MESU na hračka stroj:
- 6 výstupů (3x DIR + 3x STEP)
- maximální rychlost F1000
- maximální pulzy na mm 500
Tyhle základní požadavky Ti splní jakákoli Mesa.
http://www.duzi.cz/shop_cnc/index.php?m ... &cPath=1_4
Třeba populární PCI karta 5i25, kterou ale český "distributor" nemá skladem.
Šikovná a levná je i ta LPT varianta 7i90, jak psal robokop. Ale ta je stejně jako levná Ethernetová 7i92/93 u nás nedostupná, takže jedině poslat někde zvenku. U výrobce v USA to vychází cenově o dost líp, ale chce to asi spojit nákup pro víc lidí, aby se pak šábli o poštovné.
Kdyby někdo něco nakupoval, tak já bych se moc rád přidal s jedním kouskem 7i93.
Odpovědět

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