LinuxCNC
Vyvíjeno v | C a G-kód |
---|---|
Typ softwaru | svobodný software |
Licence | GPLv2 |
Web | linuxcnc |
Některá data mohou pocházet z datové položky. |
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
[editovat | editovat zdroj]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
[editovat | editovat zdroj]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
[editovat | editovat zdroj]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
[editovat | editovat zdroj]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í.