Open Source OS na miniaturním průmyslovém počítači
Mnohé z aplikací v oblasti měření, sběru dat a řízení procesů, jako jsou různé moduly I/O, komunikační konvertory a miniaturní „terminálové“ servery nebo i řídicí jednotky v zařízeních spotřební elektroniky, vyžadují specializovaný spolehlivý a přitom levný řídicí systém. Tradičním řešením je zde aplikace jednočipového mikropočítače. Takových mikropočítačů se v současné době vyrábí mnoho typů, populárních i méně známých. Jejich programové vybavení je uloženo v paměti typu EPROM nebo flash – buď na čipu procesoru, nebo v samostatném pouzdru. Tyto mikropočítače nepotřebují žádný operační systém (OS), neboť vzhledem k jednoduchosti hardwaru přebírá funkce OS přímo uživatelský program.
Obecným trendem hromadné výroby je neustálé zlevňování technických prostředků a zdražování lidské (zvláště duševní) práce. Řešením je opuštění specializovaných řešení a používání jednotného hardwaru a standardního softwaru. Nejrozšířenějším počítačovým hardwarem je počítač typu PC. Na jeho základě také vznikl miniaturní univerzální průmyslový počítač.
Proč open source OS
Při úvahách o aplikaci miniaturního průmyslového počítače typu PC zákonitě vyvstane otázka vhodného OS. Přímá aplikace operačního systému používaného v kancelářských počítačích není možná. Tyto systémy vyžadují velký diskový a paměťový prostor a jsou navrženy s ohledem na uživatelský komfort. Většinu z nich nelze bez spolupráce uživatele ani spustit. Uživatelský komfort a univerzalita jsou navíc zaplaceny menší stabilitou a spolehlivostí – to byla také nejčastější námitka proti využití počítačů PC v oblasti řízení technologických procesů vůbec.
Operační systém pro bezobslužný průmyslový počítač tedy musí být uživatelsky upraven. Jednou z možných cest je řešení používané ve Windows CE – uživatelské doplnění standardního jádra bezobslužného operačního systému.
Druhou cestou jsou tzv. open source operating systems (otevřené OS), které umožňují sestavit OS z volně přístupných zdrojových kódů a kompilovat unikátní operační systém přímo vývojářem. Tato cesta vývojáři softwaru umožňuje, aby měl nad svým programem úplnou kontrolu a optimalizoval jej k účelu, pro který je určen.
Důležitá je otevřenost takového systému – jeho případné změny může uskutečnit
jakýkoliv zkušený programátor, neboť má k dispozici všechny zdrojové kódy. U proprietárního systému toto není možné a licenční ujednání (End User License Agreement – EULA) všechny změny softwaru obvykle zakazuje. Open source software se tudíž také někdy označuje jako „svobodný software„.
Znalost a obliba otevřených OS mezi vývojáři průmyslových aplikací neustále vzrůstá. Nejznámějším ze současných open source OS je Linux.
Důvodem této skutečnosti jsou výhody, které se uplatnily již při nástupu Linuxu ve velkých serverech: stabilita, daná průhledností systému, který si uživatel může přizpůsobit svým potřebám.
Dnes již nikdo nepovažuje OS Linux za hračku pro počítačové nadšence. Naopak, volně šiřitelné OS unixového typu představují špičkovou platformu pro vývoj síťových aplikací a všichni seriózní výrobci výpočetní techniky dodávají softwarovou podporu pro své výrobky i pro Linux. Týká se to hlavně zásuvných PC karet a rozšiřovacích modulů pro měření, sběr dat i komunikaci. Linux se stal obecně známým pojmem i mimo komunitu počítačových odborníků.
Hardware miniaturního univerzálního průmyslového počítače typu PC
Mechanické uspořádání
Miniaturizace průmyslového počítače se ubírala dvěma základními cestami.
První z nich je zmenšování jednodeskového PC (Single Board Computer – SBC),
které obsahuje veškerý hardware. Od poloviny 90. let dvacátého století je k dispozici řada desek, jejichž velikost je odvozena od půdorysu disketové mechaniky pro 8", 5", 3" diskety. Větší formáty mají dost místa na některé standardní konektory pro PC periferie, popř. na desce jsou miniaturní přímé konektory, ke kterým se standardní periferní zařízení v případě potřeby připojují konverzními kabely (obr. 1). Nejmenší formáty mají podobu DIMM nebo SO-DIMM modulů a jsou určeny především pro použití v zákaznických základních deskách.
Druhou cestou je modulární PC. Asi jediným skutečným standardem je zde PC/104 a PC/104plus. Tento standard definuje rozměr desky (90 × 96 mm), systémovou sběrnici a její konektor, který umožňuje „stohování“ procesorových a rozšiřujících desek (obr. 2).
Pro většinu těchto desek jsou dodávány i odpovídající skříňky, zdroje a další příslušenství (obr. 3).
Problémem je tepelná ztráta zařízení a jeho chlazení. Pro průmyslové aplikace jsou z důvodu spolehlivosti preferovány systémy bez točivých částí. Konstrukce tedy musí zajistit dostatečné pasivní chlazení i při vyšších teplotách, které jsou v průmyslových aplikacích obvyklé.
Procesor a čipová sada
Z důvodu snadnějšího chlazení by měl procesor miniaturního průmyslového počítače mít co nejmenší tepelný ztrátový výkon při odpovídající výpočetní kapacitě. Těmto požadavkům nejlépe odpovídají specializované „průmyslové“ čipy, které nabízejí výrobci jako National Semiconductors nebo Via. Tyto čipy sdružují do jednoho či dvou pouzder procesor, grafiku a další periferie při minimalizaci spotřeby energie.
Podobně i „velcí“ výrobci platformy x86, jako Intel a AMD, nabízejí morálně starší procesory v průmyslovém provedení – v miniaturním pouzdru, vyrobené v jemnějším litografickém rastru, a tedy s menší spotřebou. Novým „hráčem„ na tomto trhu je Transmeta. Daní za malou spotřebu je však nižší taktovací kmitočet, tedy menší výkon.
Paměti typu flash
Pro miniaturní průmyslové počítače je využití pamětí typu flash (flash disc) typické. Důvodem je hlavně potřeba vyloučit točivé součásti a uspořit prostor. Paměti typu flash jsou nabízeny:
- v pouzdru DIL, které se zasouvá do vyčleněné objímky na desce,
- ve standardu Compact Flash,
- ve standardu PCMCIA Flash disk.
Pamětí typu flash v pouzdu DIL je na trhu několik modelů od různých výrobců. Typickým představitelem je rodina produktů Disk-On-Chip od firmy M-Systems.
Compact Flash je standard velmi populární v oblasti spotřební elektroniky. Jedná se o paměť s rozhraním IDE, které lze připojit na standardní řadič IDE (Integrated Drive Electronics). Přenosová rychlost je, zejména při zápisu, menší než u točivých disků.
Paměti podle standardu PCMCIA Flash disk se historicky vyskytovaly ve dvou variantách: buď jako paměťový čip přímo zobrazovaný do paměťového prostoru PC, nebo nověji jako disk typu IDE včetně řadiče. Zasunutím do počítače tedy přibude do přístroje další řadič IDE s jedním diskem.
Při potřebě skutečně velké kapacity diskové paměti je však stále ještě nutné vrátit se k točivému disku. V takovém případě mohou být řešením miniaturní a otřesuvzdorné točivé disky ve formátu 2,5" a 1,8", jež jsou určeny pro notebooky.
Linux na miniaturním průmyslovém PC
Slovem „Linux„ se dnes běžně označuje kompletní OS. Výraz „Linux„ v užším a přesnějším slova smyslu je však označením pro samotné jádro OS, protože právě jen linuxové jádro pochází od Linuse Torvaldse. Jádro Linuxu je standardně tvořeno jediným binárním souborem, který se při spuštění systému nahraje do paměti a spustí. Nověji přibyla podpora modulů (ovladačů), které lze aktivovat a deaktivovat za chodu systému.
Distribuce Linuxu (linuxová distribuce) je softwarový balík obsahující celý OS připravený k použití – tj. linuxové jádro doplněné uživatelskými programy z projektu GNU (projekt kladoucí si za cíl vytvořit volně šiřitelnou náhradu OS Unix – obr. 3). Distribuce je většinou uložena na instalačním médiu (CD-ROM, DVD-ROM, diskety), lze ji však také dodat po síti pomocí protokolu FTP.
Protože vývoj jádra nezávisí na vývoji distribucí, lze v jakékoliv distribuci původní jádro nahradit novějším z příslušné vývojové větve (2.2.x, 2.4.x, 2.6.x). Tato možnost se často využívá při přenosu distribuce na novější hardware.
Při implementaci Linuxu na miniaturním průmyslovém PC lze postupovat některou z těchto cest:
kompletní sestavení vlastní originální distribuce na základě kompilovaných zdrojových textů: ač se tento způsob zdá na první pohled ideální a odpovídající duchu využití otevřeného kódu, v praxi se téměř nepoužívá pro velkou pracnost, malou spolehlivost a nekompatibilitu výsledného softwaru,
adaptace některé ze „stolních„ distribucí, jako jsou RedHat, SuSE, Mandrake, Debian, Slackware aj.: stolní distribuci je pro použití v miniaturním PC v každém případě třeba miniaturizovat; výhodou tohoto postupu může být využití velké distribuce jako vývojového prostředí,
adaptace některé z mnoha existujících miniaturních distribucí určených pro specifické aplikace, jako jsou např. firewaly,
instalace specializované vestavné (embedded) distribuce, která již zahrnuje rozšíření o reálný čas nebo další komponenty využitelné v konkrétní aplikaci.
Velmi podrobný seznam existujících specializovaných distribucí lze najít v sekci „distributions„ na stránkách www.linux.org (http://www.linux.org/dist/index.html).
Uživatelská licence
Častým důvodem zájmu o Linux je snaha dosáhnout menších nákladů na zařízení při využití bezplatné licence. Jak je to tedy s volnou licencí Linuxu ve skutečnosti?
Převážná většina linuxových distribucí je šířena pod licencí GPL (General Public Licence). Znamená to zhruba tolik, že „tyto programy včetně zdrojových kódů lze bezplatně použít pro osobní potřebu a dále je šířit jako součást svých vlastních softwarových děl, ovšem pouze za předpokladu, že tato díla budou také volně šiřitelná včetně zdrojových kódů na základě licence GPL a že u převzatého kódu zůstane původní poznámka o autorovi a původu. Autor neručí za žádné škody vzniklé užíváním tohoto softwaru.„
Jestliže tedy někdo ve svém kódu použije cizí kód podléhající licenci GPL, musí tento nový kód také podléhat GPL. Dále by dotyčný měl, mimo jiné, zveřejnit kompletní zdrojový kód svého softwaru, např. na svých internetových stránkách.
Hlavním smyslem licence GPL tedy je zamezit komercionalizaci a zcizování kódu jiných autorů.
Existují i další „open-source„ licence, z nichž asi nejznámější je tzv. licence BSD. Hlavní rozdíl mezi licencemi BSD a GPL patrně tkví ve skutečnosti, že licence BSD méně omezuje další použití kódu – nevyžaduje, aby odvozené dílo bylo také zveřejněno pod licencí BSD.
Vytvoření vlastního minisystému
Sestavení vlastní distribuce Linuxu
Nejčastěji užívanou metodou sestavení vlastní distribuce Linuxu vhodné pro instalaci na miniaturním průmyslovém počítači je, jak již bylo uvedeno, adaptace některé hotové distribuce, nejčastěji „stolního„ Linuxu. S trochou nadsázky lze říci, že pro tuto adaptaci existují dvě základní strategie. Strategie „shora dolů“ spočívá v postupné redukci funkční stolní distribuce o nevyužívané soubory při sledování „co to udělá“. Strategie „zdola nahoru„ naopak znamená přidávat komponenty OS při sledování „co tomu ještě schází“.
Při využití strategie „shora dolů“ je velmi obtížné dosáhnout nejmenší možné velikosti distribuce. Oblíbenější tedy je strategie „zdola nahoru„, spočívající v kopírování pouze nezbytných součástí z některé živé distribuce s přídavkem vlastních komponent. Tato strategie také lépe vyhovuje „automatizovanému„ sestavení distribuce s využitím sady skriptů. Ta se vyplatí v případě, že se používá mini-Linux pro několik účelů, na různém hardwaru nebo na různých zaváděcích médiích.
Pro miniaturní distribuce Linuxu je obvyklejší kompaktní jádro sestavené na míru použitému hardwaru než jádro modulární, které po spuštění zavádí samostatné moduly s ovladači.
Periferní zařízení a komunikační rozhraní
Standardní sada rozhraní miniaturních průmyslových počítačů PC je obvykle stejná jako u stolních počítačů. Patří sem sériové a paralelní porty a 10/100 Ethernet s krouceným párem vodičů. Navíc se mohou objevit rozhraní RS-422/485, adaptéry pro sběrnici CAN, I2C, různé karty a adaptéry I/O, adaptéry PCMCIA, hlídací obvody (watchdog) atd. Jak již bylo uvedeno, Linux je kompatibilní s převážnou většinou známého hardwaru a periferií pro platformu PC, včetně různého průmyslového hardwaru.
Existují dva základní způsoby obsluhy periferních zařízení.
Pro zařízení, která využívají přerušení, nebo mají přímý přístup na systémovou sběrnici, je obvykle nutné, aby byl příslušný ovladač součástí jádra Linuxu. Jak již bylo uvedeno, pro miniaturní distribuce je běžné monolitické jádro se začleněnými ovladači. Problémy nastávají s některými výrobci hardwaru, kteří pro ochranu svého duševního vlastnictví dodávají ovladače pouze v binárním tvaru s určením pro konkrétní verzi jádra.
Obsluha jednoduššího rozhraní nevyžaduje ovladač a lze ji zajistit aplikací. Často však je i zde nutné zprostředkovat této aplikaci služby jádra.
Sdílení zařízení několika aplikacemi je možné zařídit „abstraktním„ ovladačem v jádru nebo aplikačním procesem (démonem, serverem).
Práce v reálném čase
Schopnost řízení v reálném čase je pro mnoho aplikací v oblasti řídicí techniky důležitým kritériem vhodnosti OS.
Standardní linuxové jádro přibližně do verze 2.4 vykazuje poměrně dlouhou periodu preemptivního plánovače a doba odezvy aplikací i doba reakce na přerušení jsou taktéž dosti dlouhé. Proto vzniklo několik externích projektů, které zlepšují odezvu pro potřeby aplikací reálného času – obvykle tím způsobem, že mezi hardware a standardní Linux „vsunou„ systém obsluhy v reálném čase IRQ a plánovač reálného času. Novinky v této oblasti přináší řada jader 2.6, jejíž doba odezvy na přerušení i periodu plánovače je výrazně kratší.
Správa systému a aplikací
Pro správu (administraci) systému lze použít ovládání pomocí lokální klávesnice a monitoru nebo s využitím terminálu připojeného přes sériové rozhraní. Pro prostředí OS unixového typu je však charakteristický vzdálený terminálový přístup po síti, nejčastěji při použití programu Telnet. Ať již je použit vzdálený nebo lokální přístup, uživatel se ocitne v příkazovém interpretru (shell), který běží jako proces v OS. Odtud lze pomocí různých utilit zkoumat stav systému a aplikací, aplikace ukončovat, spouštět a restartovat, editorem upravovat skripty a textové konfigurační soubory a dále kopírovat, přesouvat a mazat soubory apod. Jednou z největších předností Linuxu je právě velmi propracovaná správa systému a aplikací. Systém lze na dálku takřka plnohodnotně ovládat, upravovat aplikace, dokonce i jádro. Je-li distribuce dobře navržena, není fyzická přítomnost u zařízení nutná téměř po celou dobu jeho života. To je velkou výhodou např. u rozsáhlých systémů sběru dat.
Specifika provozování Linuxu s pamětí typu flash
Pro miniaturní průmyslový počítač je paměť typu flash většinou jedinou externí pamětí a Linux je z ní také obvykle zaváděn. Problém může vzniknout u pamětí typu flash, které nemají vestavěno rozhraní IDE. Týká se to zejména pamětí v pouzdru DIL, jež jsou připojovány systémem rozšíření základního systému vstupů a výstupů (extended BIOS), podobně jako přídavné řadiče disků nebo grafické či síťové karty. Univerzální zaváděč OS (např. známý LILO nebo GRUB) takto připojené disky nevidí. Zavaděč tedy musí být modifikován; to bývá kamenem úrazu. Podpora výrobce flash disku nemusí být použitelná pro všechny druhy BIOS.
Disky typu Compact Flash tyto problémy nemají, ale na některá miniaturní PC je vůbec nelze připojit. Nevýhodou je i jejich vyšší cena.
Jistou nectností pamětí typu flash obecně je postupné opotřebení a destrukce paměťových buněk opakovanými zápisy.
Způsoby zvýšení spolehlivosti
Pominou-li se obecné zásady pro sestavení spolehlivého programu, je třeba se zmínit především o možnosti použít hardwarový hlídací obvod watchdog, který je typickou součástí hardwaru průmyslových PC. Tomuto obvodu se může hlásit specializovaný démon, popř. sama kritická aplikace – pokud se ve stanoveném limitu neohlásí, watchdog znovu spustí systém nebo vyvolá přednastavené přerušení.
Lze také softwarově, zvláštním sledovacím démonem, hlídat chod kritické aplikace a v případě havárie ji znovu spustit.
Paměti typu flash je lépe používat v režimu pouze pro čtení (read-only), protože zaručují jen omezené množství bezchybných zápisů.
Minidistribuci Linuxu je nutné koncipovat tak, aby se počet nutných zápisů na disk pokud možno redukoval. Vhodnou metodou je např. využití disku RAM přepisovaného do paměti typu flash jednou denně.
Příklady řešení
Komunikátor HART
Zařízení bylo vyvinuto firmou FCC Průmyslové systémy s. r. o.
Základem hardwaru je miniaturní průmyslový počítač PC Advantech PCM-4823 s procesorem AMD 486 na 133 MHz a 32 MB EDO RAM ve skříňce MBPC-200 (40 × 166 × 114 mm) – stroj z dolního konce výkonnostního spektra této řady produktů. Operační systém i aplikace jsou uloženy v paměti flash typu DiskOnChip o kapacitě 8 MB, pro který má tento hardware patici v základní výbavě.
Požadavkem zadavatele bylo umožnit připojení tří různých dohlížecích systémů průmyslové automatizace od tří výrobců k jediné sadě průmyslových čidel prostřednictvím jediného multiplexoru s protokolem HART. Výstup multiplexoru i vstupy všech tří systémů jdou po sběrnici RS-485 a dohlížecí systémy se dotazují protokolem Modbus.
Komunikátor HART odečítá data z výstupu multiplexoru HART (výrobek třetí strany) a funguje jako řízený (slave) přístroj v síti Modbus na třech různých sériových portech ve vztahu ke třem různým dohlížecím systémům. Software pracující na zařízení si udržuje tabulku čidel připojených k multiplexoru a paralelní obsluhu všech čtyř portů zajišťuje jediný několikavláknový program (démon).
Most pro sběrnici CAN
Firma FCC Průmyslové systémy dodala také hardware a miniaturizovaný OS Linux včetně potřebných úprav ovladačů pro rozhraní CAN v linuxovém jádru podle zadání zákazníka.
Zařízení je důležitým prvkem integrace několika dílčích systémů od různých výrobců v oblasti průmyslové komunikace po sběrnici CAN.
Základem hardwaru je miniaturní průmyslový počítač PC Advantech PCM-4823 s procesorem AMD 486 taktovaným na 133 MHz a 32 MB EDO RAM ve skříňce MBPC-200 (400 × 166 × 114 mm). Operační systém a aplikace jsou uloženy v paměti flash typu DiskOnChip o velikosti 8 MB, pro který má tato hardwarová základna patici v základní výbavě.
Komunikační brána pro síť měřičů tepla
Na obr. 4 je komunikační brána umístěná v objektu sídlištního výměníku tepla, ke které jsou přes síť M-Bus připojeny měřiče odebraného tepla umístěné v jednotlivých domech. Komunikační brána sbírá data z jednotlivých měřičů, sestavuje z nich souhrnnou tabulku a tu pak na vyžádání odešle po firemním intranetu do programu fakturace tepla v dispečinku.
Celý systém zahrnuje přes padesát komunikačních bran a více než jeden tisíc měřičů. Hardwarová konfigurace komunikační brány je podobná jako v předchozích příkladech. Veškeré úpravy a vylepšení operačního systému i aplikačního programu byly od doby instalace před dvěma lety prováděny výhradně v režimu dálkové správy.
Bc. František Ryšánek,
FCC Průmyslové systémy s. r. o.
(rysanek@fccps.cz)
|