Dalkove ovladani vrat

Petr Labaj labaj na volny.cz
Sobota Březen 23 14:05:43 CET 2024


Pro LinuxCNC se používá Linux s RT rozšířením.
Nejlepší latence se dají dosáhnout se systémem RTAI, hůř to vychází s 
Preempt-TR nebo Xenomai.
Podle různého HW se dá dosáhnout latence (resp. Jitteru, což je zde 
mnohem podstatnější)
někde na úrovní od 5us výš (výjimečné kousky HW i trochu níž).

Jsou různé přístupy, jak se to řeší.
1 - Nejnižší je, že procesor přímo přes bit-bang řídí krokování motorů.
Levné, použitelné pro nižší rychlosti do rychlosti kroků tak kolem 20-25 
kHz.
Typicky LinuxCNC nebo na Windows Mach 3,4 bez interpolátorů.

2 - Použití interpolátoru na vysoké úrovni, který řídí pohyby sám. 
Nadřízený systém mu
dodává jen údaje o dráhách.
Nevýhoda je, že tady dost záleží na tom, jak dobře je implementovaný ten 
interpolátor.
Protože to bývá deska s nějakým ARMem, tak tam jsou přece jen možnosti 
trochu nižší
než na tom velkém mateřském systému.
Výhoda je, že to poběží na libovolně mizerném PC.
Typicky Windows s Mach 3,4 s nějakým SmoothStepper nebo nebo jiným. 
Nejlevnější
připojitelné po USB (uživatelé pak naštvaně píšou, že mají problémy), 
dražší po Ethernetu.
LinuxCNC takto nepracuje.

3 - Nechá se řízení stále na PC, ale použije se interpolátor pro 
generování nejnižší
úrovně, tj. pro vlastní generování kroků, čtení enkodérů atd.
PC pak s ním komunikuje a úkoluje ho typicky na frekvenci 1kHz. Říká se 
tomu servocyklus.
Typicky systémy Mesa na LinuxCNC. Připojitelné jako karta do PCI/PCIex, 
pro Ethernetu, po LPT.

4 - Použití inteligentních serv, které se pak obsluhují také v 
servocyklu, podobně jako v bodu 3.

PL

*******************

Dne 23.3.2024 v 13:40 Miroslav Mraz napsal(a):
> Řekl bych, že na multitasking systému celkem nezáleží jak na hardware 
> přistupujete, samotné latence systému vám do toho hodí vidle.
> Někde na netu má dr. Píša přednášku, kde na Linuxu řídí motor PID 
> regulátorem a aby se dostali pod cca 1 ms museli upravit plánovač. Na 
> normálním Linuxu jako je Ubuntu jsou běžné latence 10 ms.
> Asi se tam dá čarovat s prioritou tasku, nastavením plánovače, ale mám 
> takový dojem, že posílat příkazy do nějakého malého MCU, kde je dobře 
> napsaný firmware, bude mnohem jistější.
>
> Mrazík
>
> On 23. 03. 24 12:50, Petr Labaj wrote:
>> USB transport je v tomto případě (pro bit-banging na rychlostech CNC) 
>> kvůli latenci nepoužitelný.
>> Možná s nějakým superrychlým USB3 už by to šlo, ale tam zase nepojede 
>> FT245.
>>
>> Pro ms rychlosti (tedy někde na úrovní max. stovek Hz) pro nějaký 
>> programátor možná ano.
>> Ale chtělo by to, aby ten programátor fungoval přes služby systému, 
>> nikoli přes přímý zápis na porty.
>> A to takto téměř jistě fungovat nebude.
>>
>> Existuje projekt (myslím nějakého Němce), který LPT na úrovní HW 
>> zápisů emuluje. Není to
>> přes FT245, ale přes nějaký MCU s příslušným firmware.
>> Zřejmě odchytáváním zápisů na I/O adresy, což způsobí výjimku, kterou 
>> on obslouží zavoláním
>> systémové obsluhy.
>> Na pomalé věci by to pak fungovat mohlo.
>>
>> PL



Další informace o konferenci Hw-list