LinuxCNC
LinuxCNC (dříve Enhanced Machine Controller nebo EMC2) je v informatice volně dostupný, open source systém, který umožňuje řídit CNC stroje z libovolného PC. Je vyvíjen dobrovolnými vývojáři na linuxcnc.org. Jedná se o modifikovanou linuxovou distribuci Ubuntu (32bitová), která obsahuje potřebný real-time kernel.

Účel 
LinuxCNC je software pro číslicové řízení strojů jako jsou frézky, soustruhy, plazmové řezačky, střižné a lisovací stroje a roboty. Dokáže řídit až 9 os nebo kloubů (např. sférický robot) CNC stroje použitím G-Code (RS-274NGC). Nabízí několik GUI přizpůsobených specifickému druhu použití.

V současné době funguje téměř výhradně na architektuře x86. Umožňuje použití jak servopohonů, tak i krokových motorů.

Platformy 
Vzhledem k potřebě přesného real time řízení vyžaduje EMC platformu podporující výpočty v reálném čase. Ke své funkci využívá linuxové jádro s real time rozšířeními (RTAI). Politikou EMC2 je tvoření balíčků a nabízení podpory na Ubuntu LTS.

Návrh 
LinuxCNC využívá modelu "čtení, plánování, vykonávání" pro komunikaci s hardwarem. Pro vysvětlení, v první fázi se čte aktuální pozice os, dále se počítá nová cílová pozice a v poslední fázi se výsledek kalkulace zapíše na hardware. Neexistuje žádná vyrovnávací paměť příkazů a není povolené ani externě zahájené čtení nebo zápis.

Tento model se nehodí na všechna rozhraní. Například nevhodnou volbou je USB a RS232. USB má špatné realtime schopnosti a RS232 je příliš pomalé pro řízení motorů. Pro řízení motorů se tedy využívá Ethernet, ISA a paralelní port (v režimu SPP nebo EPP).

LinuxCNC má požadavky na řízení v reálném čase. Interval mezi čtením a zápisem musí být pevný a co nejrychlejší. Typické stroje provádí realtime kalkulace v 1 milisekundovém opakujícím se vlákně. Čtení z a zápis do hardware musí být malou části tohoto intervalu (např. 200 mikrosekund), jinak by se ubíral programům čas na vykonávání jejich činnosti a zároveň by se mohla snížit odezva ovládacích prvků na obrazovce.

Konfigurace 
LinuxCNC používá softwarovou vrstvu nazývanou HAL (Hardware Abstraction Layer).

HAL umožňuje řízení různého hardware, odesílání řídících signálů skrze paralelní nebo sériový port, během ovládání servo nebo krokových motorů, solenoidů a jiných aktuátorů.

LinuxCNC dále obsahuje software programovatelných logických kontrolérů (PLC), který se obvykle používá pro komplexní řízení obráběcích stanic. Software PLC je založen na open source projektu Classicladder and běží v real time prostředí.

Odkazy

Související články 
 Ubuntu
 číslicové řízení

Externí odkazy 
 (anglicky) Home – Oficiální stránky projektu
 (česky) CZ fórum – Fórum zabývající se CNC stroji

Svobodný software v C