Realizace řízení v reálném čase pod operačními systémy MS Windows 2000/XP

Podobné dokumenty
Doba odezvy na vznik přerušení IRQ v závislosti na výkonu PC a operačním systému MS Windows NT/2000/XP

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Návrh a realizace úprav zvyšující determinovatelnost zpracování zvoleného požadavku IRQ v MS Windows NT/2000/XP využívající obvody PIC-8259A

Obsluha periferních operací, přerušení a jeho obsluha, vybavení systémových sběrnic

Správa požadavků na přerušení v MS Windows NT/2000/XP využívající obvody PIC-8259A

KAPITOLA 1 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ

1 Osobní počítač Obecně o počítačích Technické a programové vybavení... 4

POČÍTAČOVÉ ŘÍZENÍ TECHNOLOGICKÝCH PROCESŮ

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Určení real-time odezvy OS Microsoft Windows CE

Windows a real-time. Windows Embedded

POČÍTAČOVÉ ŘÍZENÍ TECHNOLOGICKÝCH PROCESŮ

Instalace OS, nastavení systému

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Činnost počítače po zapnutí

Metody připojování periferií BI-MPP Přednáška 2

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

FVZ K13138-TACR-V004-G-TRIGGER_BOX

Firmware řídící jednotky stejnosměrného generátoru

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí

POČÍTAČOVÉ ŘÍZENÍ TECHNOLOGICKÝCH PROCESŮ

Implementace systémů HIPS: historie a současnost. Martin Dráb

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Komunikace procesoru s okolím

Seznámení s prostředím dot.net Framework

Prostředí pro výuku vývoje PCI ovladačů do operačního systému GNU/Linux

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

Prostředky automatického řízení Úloha č.5 Zapojení PLC do hvězdy

TVORBA SYSTÉMOVÝCH MODULŮ PRO PODPORU ŘÍZENÍ V OPERAČNÍM SYSTÉMU MS WINDOWS NT

Procesy a vlákna (Processes and Threads)

Management procesu I Mgr. Josef Horálek

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Operační systém. Mgr. Renáta Rellová. Výukový materiál zpracován v rámci projektu EU peníze školám

Architektura Intel Atom

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

Vypracoval: Ing. Antonín POPELKA. Datum: 30. června Revize 01

VYUŽITÍ KNIHOVNY SWING PROGRAMOVACÍHO JAZYKU JAVA PŘI TVORBĚ UŽIVATELSKÉHO ROZHRANÍ SYSTÉMU "HOST PC - TARGET PC" PRO ŘÍZENÍ POLOVODIČOVÝCH MĚNIČŮ

Řízení IO přenosů DMA řadičem

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Systémy pro sběr a přenos dat

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

NÁVOD K OBSLUZE. Obj. č.: Zkrácený návod k obsluze

BIOS. Autor: Bc. Miroslav Světlík

T-DIDACTIC. Motorová skupina Funkční generátor Modul Simatic S7-200 Modul Simatic S7-300 Třífázová soustava

OBJEDNÁVÁNÍ DÁRCŮ KRVE PŘES INTERNET Naděžda Kalužová, Zdeněk Slanina

architektura mostů severní / jižní most (angl. north / south bridge) 1. Čipové sady s architekturou severního / jižního mostu

VÝVOJ ŘÍDICÍCH ALGORITMŮ HYDRAULICKÝCH POHONŮ S VYUŽITÍM SIGNÁLOVÉHO PROCESORU DSPACE

Dílčí projekt: Systém projektování textilních struktur 1.etapa: tvorba systému projektování vlákno - příze - tkanina

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

Software pro vzdálenou laboratoř

Systémy pro měření, diagnostiku a testování prototypů II. Odůvodnění vymezení technických podmínek podle 156 odst. 1 písm. c) ZVZ

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

OPS Paralelní systémy, seznam pojmů, klasifikace

Principy komunikace s adaptéry periferních zařízení (PZ)

JUMO LOGOSCREEN 600. Dotyková budoucnost záznamu: Obrazovkový zapisovač

RadioBase 3 Databázový subsystém pro správu dat vysílačů plošného pokrytí

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

AGP - Accelerated Graphics Port

Obslužný software. vizualizaci zařízení

úvod Historie operačních systémů

Práce v textovém editoru

Fyzikální laboratoř. Kamil Mudruňka. Gymnázium, Pardubice, Dašická /8

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Přerušovací systém s prioritním řetězem

Počítač jako elektronické, Číslicové zařízení

Obsah SLEDOVÁNÍ PRÁCE... 4

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Operační systémy: funkce

SKŘÍŇ PC. Základní součástí počítačové sestavy je skříň.

1 Strukturované programování

A4300BDL. Ref: JC

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Uživatelský manuál A4000BDL

Simluátor Trilobota. (projekt do předmětu ROB)

VirtualBox desktopová virtualizace. Zdeněk Merta

Disková pole (RAID) 1

Instalace a připojení čtečky čipových karet v systému CryptoPlus Eval

ADS DOCHÁZKOVÝ SOFTWARE

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE

Profilová část maturitní zkoušky 2014/2015

TCP-Wedge ZDARMA. Přidává podporu TCP/IP: Sběr dat z adres portu IP na libovolné síti TCP/IP - ethernet / internet.

Periferní operace využívající přerušení

2.2. Nadstandardním záručním servisem s pohotovostí do (24 hodin, 48 hodin) se rozumí:

Témata profilové maturitní zkoušky

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Služba ve Windows. Služba (service) je program

Modulární monitorovací systém Gradient Digitální systém pro záznam, archivaci a vyhodnocení telefonie.

Lekce 7 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Sítě SFN Systém pro analýzu a vizualizaci pokrytí a rušení vysílacích sítí

SEKVENČNÍ LOGICKÉ OBVODY

Informatika teorie. Vladimír Hradecký

Transkript:

Realizace řízení v reálném čase pod operačními systémy MS Windows 2000/XP Anotace Článek popisuje princip řešení doplňku operačních systémů technologie MS Windows NT k řízení v reálném čase, jenž vychází z možnosti provádět časově kritické operace v nižších vrstvách operačního systému, konkrétně v obsluze přerušení. Jsou tak využity časovače přídavného zařízení (běžné multifunkční měřicí karty) ke generování přesné vzorkovací periody v řádu až desítek mikrosekund ve formě požadavků IRQ. Úvod Počítače architektury PC jsou neustále v permanentním zájmu tvůrců řídicích systémů. Poměrně nízká cena, neustálý růst výkonu, velká podpora moderních softwarových i hardwarových komponent a nepřeberné množství výrobců jsou pádnými argumenty pro jejich použití. Důležitým faktorem je také skutečnost, že v současnosti jsou téměř nezbytnou a mnohdy jedinou platformou podnikových informačních systémů. Aplikace osobních počítačů tak nabízí možnost snadno vybudovat zcela uniformní celopodnikový systém. Tím je možné ušetřit nemalé peněžní prostředky. K tomu, aby se tento požadavek podařilo zcela naplnit, je také třeba sjednotit používané operační systémy. Na platformě PC zcela zjevně dominují operační systémy typu MS Windows NT (tímto souhrnným názvem jsou zde pro jednoduchost označeny operační systémy Microsoft Windows NT, Microsoft Windows 2000 a Microsoft Windows XP). V této souvislosti se objevuje zcela legitimní požadavek na použití uvedených operačních systémů také k provozu aplikací pracujících v reálném čase. Této skutečnosti si je vědom i samotný výrobce systému, který mimo to, že již nabízí specializované verze operačních systémů MS Windows NT Embedded a MS Windows XP Embedded, se navíc podílí na vývoji kvalitního doplňku reálného času RTX (Real Time extension; autorem je firma VenturCom). V určitých případech nemusí zmíněný doplněk uživateli zcela vyhovovat. Ne snad proto, že by v něm nebylo možné některé úlohy realizovat, spíše naopak může vyžadovat jednodušší, levné a již specializované řešení, které bude ihned k dispozici bez nutnosti studovat nové prostředí a dotvářet potřebné algoritmy. Jedno takové specializované řešení doplněk pro oblast řízení v reálném čase popisuje předkládaný článek. Reálný čas na architektuře MS Windows NT Je obecně známo, že operační systémy Windows NT nejsou koncipovány jako systémy reálného času. Na toto téma již bylo publikováno mnoho příspěvků, jenž detailně objasňují všechny důvody. Nebudeme zde znovu probírat, která kritéria Windows NT nesplňují a proč je nelze považovat za systém reálného času, pouze se zaměříme na ty aspekty, jež zásadně komplikují jejich použití v aplikacích specializovaných na řízení a regulaci v reálném čase. Pro potřebu těchto aplikací lze na systému minimálně vyžadovat: okamžitý přístup k hardwaru vstupně výstupní jednotce, přesný, rychlý a za všech okolností spolehlivý časovač, který zajistí opakované probuzení řídicí úlohy ve stanovený okamžik (vzorkovací perioda regulace). nepřerušitelnost celé periodické operace, skládající se ze získání regulované veličiny výpočtu algoritmu regulace a aplikace akční veličiny. K tomu, aby čtenář pochopil, jak operační systémy Windows NT naplňují či nenaplňují zmíněné požadavky, je nutné se v krátkosti seznámit s jejich architekturou.

Předně je třeba uvést, že systém rozlišuje dva pracovní režimy: uživatelský režim a režim jádra. Bez výjimky všechny spuštěné aplikace (procesy) běží v uživatelském režimu, odkud nelze přímo přistupovat k hardwaru. Procesy jsou tak odkázány na ovladače zařízení s nimiž komunikují prostřednictvím služeb subsystému Win32 API. Každý proces (spuštěná aplikace) vlastní nejméně jedno početní vlákno, které vykonává kód procesu. Jednotlivá vlákna všech procesů jsou střídavě zpracovávána procesorem. O tom, které vlákno má běžet, rozhoduje plánovač podle aktuálních potřeb vláken a přidělených priorit. Například vlákno s nejvyšší prioritou může být na stanovenou dobu uspáno nebo může čekat na uvolnění zdroje, čímž se umožní běh vláken s nižší prioritou. Na obdobném principu pracují časové a synchronizační funkce Win32 API (zkráceně časovače). Vlákno se jednoduše po vykonání příslušné operace uspí a čeká, dokud jej časovač znovu neprobudí. Pro tyto účely systém nabízí hned několik nástrojů, které lze teoreticky nastavit s přesností až na jednu milisekundu. V praxi však uvedené přesnosti za určitých okolností dosahuje pouze Multimediální časovač. Nicméně i tento časovač nelze pro reálný čas použít. Důvodem je, že samotný plánovač podléhá ještě jinému prioritnímu uspořádání, tzv. úrovním IRQL (Interrupt ReQuest Level). Systém rozlišuje 32 těchto úrovní, kde nejvyšší prioritu má úroveň IRQL 31 a nejnižší IRQL 0. A právě plánovač (tím i veškerá vlákna) běží prioritně na nejnižší úrovni IRQL 0 nebo IRQL 1. Na vyšších úrovních běží všechny obsluhy přerušení a úlohy z fronty DPC (Deferred Procedure Call), které opět zakládají obsluhy přerušení. Tyto úlohy převážně nejsou kritické, avšak často bývají časově náročné. obrázek 1 Prioritní uspořádání úloh v architektuře systémů technologie MS Windows NT Jinak řečeno jakákoliv obsluha hardwarového přerušení včetně jí odložených činností je provedena přednostně před libovolným vláknem. Probuzení vlákna se tak v závislosti na intenzitě úloh svázaných s obsluhou periferních zařízení (spouštění aplikací, síťová komunikace, otevírání dokumentů apod.) může odložit i o stovky milisekund. Z tohoto principu je také zřejmé, že i když časovač probudí vlákno ve stanovený okamžik, neznamená to, že daná úloha se již bezodkladně vykoná celá, neboť kdykoliv může hardware opět generovat přerušení a tím nekompromisně odložit její vykonání.

Ze zkráceného popisu je zřejmé, že požadavky kladené na systémy reálného času systém Windows NT nenaplňuje. Přístup hardware není přímý a vyžaduje existenci ovladače. Neexistuje spolehlivý časovač a úloha může být během své činnosti kdykoliv přerušena. Funkční princip řešení doplňku Zmíněné nedostatky lze obejít přenesením časově kritických operací do nižších vrstev operačního systému, přesněji do obsluhy přerušení hardwarového časovače. Právě na této možnosti je postaveno zde prezentované řešení, které využívá schopnosti většiny multifunkčních měřicích karet dostupných v současné době, a to generovat přerušení obvykle jako důsledek ukončení měření jednoho vzorku či sady vzorků. Reakcí na toto přerušení je zahájení obsluhy přerušení speciálně navrženého ovladače, která již vykoná celý kód algoritmu řízení. Uživatelská aplikace potom plní úlohu pouze jakéhosi zprostředkovatele; uživatel pomocí ní vybírá typ a parametry regulátoru, popř. vizualizuje či jinak zpracovává data s informacemi průběhu regulace. Nejlépe tento princip vysvětluje následující text a obr. 2: 1. Ovládací aplikace nejprve podle voleb uživatele předá ovladači data o typu regulátoru, včetně všech parametrů použitých vstupů apod. 2. Následně ovladač zavede příslušnou obsluhu přerušení, nastaví obvody měřicí multifunkční karty a inicializuje časovač tak, aby zajistil žádanou vzorkovací periodu. 3. Od této chvíle naprosto přesně a zcela nezávisle na stavu počítače spouštějí časovače měřicí karty opakovaně A/D převod, obrázek 2 Princip činnosti doplňku načež karta generuje požadavek na přerušení. 4. U tohoto požadavku vyšetří hardware spolu s operačním systémem prioritu, a jestliže ji vyhodnotí jako nejvyšší, ihned zahájí jeho obsluhu. 5. Obsluha přerušení přečte již naměřenou hodnotu vstupu, vykoná příslušný výpočet a ihned nastaví výstup. 6. Jestliže ovládací aplikace dříve požádala o průběžné informování, rutina před svým ukončením navíc zapíše stavy jednotlivých veličin do vyrovnávací paměti. 7. Po naplnění vyrovnávací paměti předá aplikace její obsah přes úlohu fronty DPC nazpět ovládací aplikaci, která již data podle požadavků uživatele zpracuje. Z pohledu potřeb reálného času přináší toto řešení mnoho výhod. Uvedeme ty nejzajímavější: Jelikož časování je generováno nezávislými hardwarovými čítači, je možné nezávisle na systému volit vzorkovací periodu běžně s přesností jedné mikrosekundy. Navíc u většiny karet čítače samy zahájí A/D převod a až poté generují přerušení; tím je vzorkování naprosto přesné a současně nevzniká časová prodleva při čekání na ukončení převodu.

Protože veškerá činnost ovladačů běží v režimu jádra, je možné přímo a zcela bez omezení přistupovat k hardwaru počítače, tedy k registrům i paměti měřicí karty. Obsluha přerušení se vykonává na vysoké úrovni IRQL, takže systémové úlohy předávající data o průběhu řízení včetně činnosti vláken, jež je zpracovávají,nemohou vlastní regulaci nijak ovlivnit. Jak už to bývá, výhody na jedné straně jsou doprovázeny nevýhodami na straně druhé. Také tento princip přináší mnohé komplikace, které je nutné vyřešit či výrazně omezit. Základní komplikace popsaného řešení jsou: Realizace je programátorsky velmi náročná. Tvorba ovladačů vyžaduje erudovaného programátora znalého jazyka C, architektury Windows NT a principů funkce I/O systému. Nezbytné kompilátory spolu s kvalitní dokumentací a příklady lze získat zdarma jako soupravu DDK (Device Driver Kit) na webovém serveru firmy Microsoft. Ladění ovladače navíc vyžaduje další počítač s nainstalovanou speciální verzí operačního systému (Check Build). (Veškeré podrobnosti jsou uvedeny v dokumentaci DDK.) V ovladačích není podpora aritmetiky reálných čísel, která je pro tvorbu řídicích algoritmů téměř nezbytná. Vlastní algoritmus je vykonáván ovladačem, tudíž úprava existujícího nebo doplnění nového algoritmu vyžaduje zásah do ovladače. Ovladač je svázán s konkrétním typem měřící karty, takže jiný typ karty vyžaduje opět tvorbu nového ovladače. Každý typ regulátoru může mít jiné nastavitelné parametry tedy změna či dotvoření algoritmu vyžaduje také obdobný zásah do komunikačního protokolu a do ovládací aplikace. Vzorkování hardwarovými čítači a generování přerušení sice jsou naprosto přesné, avšak nezaručuje okamžité zahájení svázané obsluhy. Jak již bylo zmíněno, jednotlivé obsluhy jsou zpracovávány podle úrovní IRQL, takže vlastní vykonání algoritmu může být opožděno po dobu vykonávaní obsluh s vyšší prioritou. Tím současně vzniká nepříjemný problém, kdy je vypočítáván akční zásah na základě relativně staré hodnoty. Je evidentní, že problém je tím významnější, čím nižší prioritu má obsluha a čím více se vyskytují přerušení s vyšší prioritou. Realizace a struktura doplňku V předchozí kapitole byl uveden funkční princip řešení spolu s problémy, které s sebou přináší. Následující text se již zaměřuje na popis realizovaného doplňku, který funkčně odpovídá popsanému principu. Doplněk není koncovým řešením, ale jen specializovaným polotovarem nabízejícím sadu vzájemně spolupracujících knihoven a modulů, jež umožňují snadno vybudovat koncové řešení.doplněk řeší mnohé z uvedených problémů. Jiné problémy (např. problém s rozptylem doby odezvy na vznik přerušení) jsou plně vyřešeny na úrovních jednotlivých modulů a knihoven. Minimalizace rozptylu doby odezvy na vznik přerušení Z letmého popisu lze mylně usoudit, že celý problém spočívá pouze ve zvýšení úrovně IRQL. Bohužel tomu tak není. Vše je výrazně složitější a závislé na mnoha faktorech. Přesněji na jádrem realizovaném mechanizmu správy přerušení, který není jednotný a je výrazně ovlivněn hardwarem počítače (jmenovitě řadičem přerušení) a verzí operačního systému (ve Windows NT pracuje jinak než ve Windows 2000 a Windows XP). Na platformě PC se vyskytují dva typy řadičů. Starší, obvykle označovaný zkratkou PIC (Programmable Interrupt Controller) vychází z kaskádovitě zapojených obvodů 8259A, jež se používaly již s procesorem Intel

8080. Přes své stáří byl do příchodu procesorů Pentium 4 výhradně používán na všech jednoprocesorových systémech. Novější je řadič APIC (Advanced Programmable Interrupt Controller), který byl vyvíjen především pro potřebu víceprocesorových systémů. Z našeho pohledu je zajímavé, že případě, kdy se v počítači používá starší typ řadiče, je úroveň IRQL příslušné obsluhy jednoznačně dána kanálem přerušení. Vždy je tudíž jasné, na které úrovni bude ten či onen požadavek standardně zpracován. tabulka 1 Vztah mezi úrovněmi IRQL a žádostmi IRQ v systémech s obvodem PIC IRQL IRQ Popis IRQL IRQ Popis 31 - Kritická chyba hardware. 18 9,2 Původní IRQ2 nebo IRQ9. 30 - Výpadek napájení. 17 10 Rezervováno. 29 - Víceprocesorová synchronizace. 16 11 Rezervováno. 28 0 Přerušení časovače. 15 12 PS/2 Myš. 27 - Profily. 14 13 Matematický koprocesor. 26 1 Klávesnice. 13 14 Pevný Disk. 25 2 Výstup INT podřízeného řadiče. 12 15 Rezervováno. 24 3 Sériové rozhraní COM2/COM4. 4-11 - Nepoužité priority. 23 4 Sériové rozhraní COM1/COM3. 3 - SW přerušení pro ladící účely. 22 5 Rezervováno/Zvuková karta. 2 - SW přerušení pro DPC. 21 6 Disketová mechanika. 1 - SW přerušení pro APC. 20 7 Paralelní port. 0 - Všechny aplikace Win32 API. 19 8 Hodiny reálného času. Je-li však použit nový řadič APIC, tato vazba neexistuje. Každá instalace systému může mít přiřazené jiné úrovně. Jinak řečeno, stejná verze operačního systému na shodném hardwaru může mít pro shodný kanál přiřazenou jinou úroveň IRQL. Zatím je úspěšně vyřešen vztah doplňku se standardním řadičem přerušení, který lze mnohdy i na nejnovějších systémech prostřednictvím systému BIOS. Specifickými postupy bylo dosaženo změny v chování tak, že obsluha definovaného požadavku je téměř vždy přednostně provedena před ostatními. Výjimkou je pouze situace, kdy již dříve byla zahájena obsluha jiného požadavku s původně vyšší prioritou. Ale i poté je v pomyslné frontě čekajících požadavků na prvním místě. Výsledný efekt nejlépe dokládá obr. 3. Zde je možné vidět rozptyl doby odezvy na vznik přerušení pořízený za naprosto stejných podmínek na stejném systému, avšak nejprve s původní správou přerušení a poté s upravenou.

Rozložení 600 000 vzorků podle času odezevy v MS Windows 2000 1 000 000 100 000 10 000 153 412 Standardní mechanizmus - bez úprav Celeron 1100 MHz, IRQ7 - paralelní port Zatížení: Komunikace přes COM, Intenzivní zápis na HD V 99,9% odezva přijata do 23 μs Všechny odezvy přijaty do 42 μs Násobek odezvy 1 000 100 10 99,9% 1 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 Čas odezvy [μs] 1 000 000 Rozložení 600 000 vzorků podle času odezevy v MS Windows 2000 100 000 10 000 146 533 Upravený mechanizmus správy přerušení Celeron 1100 MHz, IRQ7 - paralelní port Zatížení: Komunikace přes COM, Intenzivní zápis na HD V 99,9% odezva přijata do 16 ms Všechny odezvy přijaty do 34 ms Násobek odezvy 1 000 100 10 99,9% 1 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 Čas odezvy [μs] obrázek 3 Rozdíl v rozptylu dob odezvy mezi standardním a upraveným mechanizmem Architektura doplňku Celý komplet se skládá ze tří navzájem spolupracujících částí: 1. z obecného nízkoúrovňového ovladače, 2. vrstev zjednodušujících komunikaci mezi ovladačem a aplikacemi, 3. z uživatelské ovládací aplikace. Dohromady všechny tyto části tvoří snadno implementovatelný doplněk, jenž umožňuje okamžitou realizaci řízení jednorozměrných obvodů. Pro vícerozměrné obvody je nutné ovladač doplnit o patřičným algoritmem. Vlastní ovladač je tvořen obecně, tzn. že vyžaduje přizpůsobení pro konkrétní typ multifunkční karty. Více napoví podrobnější popis jednotlivých částí. Obecný nízkoúrovňový ovladač Nejdůležitějším článkem je obecně navržený nízkoúrovňový ovladač, jehož architektura (obr.4) umožňuje snadno se přizpůsobit libovolnému typu multifunkční měřicí karty, která

však splňuje nezbytné požadavky na existenci časovačů a schopnost generovat přerušení. Vlastní ovladač se skládá ze tří vrstev: z vrstvy Rozhraní, Logicko-funkční vrstvy, Fyzické vrstvy. Jádro tvoří logicko-funkční vrstva, která zajišťuje všechny funkce (včetně regulace, zavádění a registrace ovladače apod.) a uchovává veškeré nastavení. Tato vrstva přímo nepřistupuje k prostředkům měřicí karty ani nekomunikuje s aplikacemi Win32 API. Tyto činnosti zajišťují dvě sousední vrstvy, se kterými úzce spolupracuje. K přímému přístupu k hardwaru je využívaná fyzická vrstva, která jako jediná je závislá na konkrétní měřicí kartě. Komunikaci s prostředím Win32 API zabezpečuje nejvyšší vrstva rozhraní. Ta je vytvořena tak, aby nebyla závislá na konkrétním typu multifunkční karty(tudíž pokrývá všechny přístupné typy) a také umožnila snadné rozšíření funkční vrstvy o obrázek 4 Struktura ovladače nové typy úloh. Díky této koncepci je velmi snadné přenést řešení na jiný typ multifunkční měřicí karty-v podstatě je nutné pouze modifikovat těla funkcí fyzické vrstvy. Architektura ovladače také pamatuje na možnost rozšíření o další typy regulátorů. Interně se logicko-funkční vrstva dělí na pevnou část, která zůstává neměnná, a na část, ve které jsou realizovány vlastní algoritmy regulace. Tato část je oddělena nejen logicky, ale také fyzicky proto lze nové algoritmy velmi snadno realizovat. Standardně jsou v ovladači již realizované běžné typy regulátorů. Například je zde obecný PID regulátor v polohové i v přírůstkové verzi s možností přidat filtr buď separátně na derivační složku, nebo na regulovanou veličinu. Pro bezproblémové vytváření nových algoritmů je k dispozici (speciálně pro tento účel vytvořená) knihovna funkcí realizující základní matematické operace s reálnými čísly. Tyto algoritmy lze vytvářet odděleně mimo ovladač v připravené aplikaci pro Windows Ta simulací činností ovladače výrazně zjednodušuje vývoj algoritmu, který se po odladění již pouze přenese do ovladače. Komunikační vrstvy I když je ovladač schopen zcela samostatného vykonávání řízení, bez komunikace s aplikacemi Win32 API se neobejde(obr.5). Ovladači je nutné přinejmenším sdělit typ a parametry regulátoru, používané vstupy a jejich napěťový rozsah a dát povel k zahájení regulace. Navíc aplikace může vyžadovat informace o průběhu regulace, které následně zpracovává, apod. Je zřejmé, že komunikace je velmi důležitá.

Na úrovni ovladače se o komunikaci stará vrstva rozhraní. K této vrstvě má prostřednictvím subsystému Win32 API přístup libovolná aplikace. Nicméně komunikace přímo s vrstvou rozhraní není jednoduchá. Na programátora jsou kladeny velké nároky nejen ohledně znalosti principů tohoto rozhraní, ale ohledně znalosti obecné komunikace mezi aplikacemi a ovladači. Pro ulehčení jeho práce byla vyhotovena knihovna funkcí snadného přístupu. Ve svém principu knihovna překrývá obecnou funkci subsystému Win32 API vlastními funkcemi, jež jsou speciálně vyvinuty pro výměnu dat s obrázek 5 Komunikace s ovladačem rozhraním ovladače. Nicméně i tuto knihovnu není snadné používat, především v případě, kdy se aplikace tvoří v jiném programovacím jazyku než je C či C++. Proto byla navíc vytvořena komponenta COM, která celou komunikaci balí do objektově orientované struktury. Komponenta je opět navržena se zřetelem na další rozšíření ovladače nebo na jinou měřicí kartu. Díky této komponentě je možné vytvářet aplikace v libovolném programovacím jazyku,např. v oblíbeném MS Visual Basicu apod. Prostřednictvím uvedených nástrojů je možné ovladač snadno integrovat do libovolné aplikace, přičemž programátor si může vybrat, jaký způsob komunikace mu nejlépe vyhovuje. Rozhodnout se tak může podle aktuálních možností či potřeb, popř. může zvolit i kombinaci všech těchto metod. Uživatelská ovládací aplikace Posledním článkem řešení je uživatelská ovládací aplikace, která zprostředkovává veškeré funkce doplňku v uživatelsky přívětivém prostředí. Zkráceně, aplikace umožňuje zvolit a nastavit všechny podporované typy regulátorů, umožňuje sledovat a vizualizovat průběh regulace a zaznamenaná data exportovat do textových souborů, popř. i do souboru MS Excel. Aplikace opět není vázaná na konkrétní typ ovladače a tudíž spolupracuje s libovolnou měřicí kartou, resp. s libovolným kompatibilním ovladačem.

obrázek 6 Uživatelská ovládací aplikace Závěr Doplněk svou specializací a zároveň přizpůsobivou architekturou je na pomezí vývojového prostředku a koncového řešení. Koncové uživatele bude spíše zajímat již svázaný doplněk s konkrétní multifunkční kartou. Pro výrobce měřicích karet je zase zajímavé obecné řešení ovladače. V současnosti je ovladač implementován na dvě měřicí multifunkční karty, a to PCA 1408 a PCA 1208. Na těchto kartách byly také ověřeny všechny funkce a schopností. Funkčnost algoritmů se ověřovala na řízení modelu elektromagnetické levitace. Pro objektivitu byl ovladač testován na několika výkonově odlišných sestavách s procesory od Pentium 90 MHz až po Pentium 4 s kmitočtem 2 GHz. Systém byl vždy schopen bezpečně zajistit řízení se vzorkovací frekvencí nejméně 10 khz. Během testů byl systém uměle zatěžován vybranými úlohami (např. kopírováním obsahu CD-ROM na pevný disk, síťovou komunikací apod.). Tyto úlohy však nikdy zásadně neovlivnily vzorkovací periodu, potažmo vlastní regulaci. Toto řešení nekatapultuje operační systémy architektury Windows NT do kategorie systémů reálného času, ale umožňuje snadno realizovat řízení systémů náročných na rychlost a dobu zpracování. Je tak zajímavou alternativou pro oblast řízení v laboratořích a v průmyslu, kde je spolu s architekturou MS Windows NT vyžadována vysoká flexibilita a rychlá a snadná implementace. Literatura FOJTÍK, D. 2001. Tvorba systémových modulů pro podporu řízení v operačním systému MS Windows NT. Vědecké spisy Fakulty strojní, Edice: Autoreferáty disertačních prací, sv. 27, Ostrava: VŠB-TU Ostrava, 2004. 40s. ISBN 80-248-0568-5 MICROSOFT Microsoft Windows 2000 DDK. Redmond: Microsoft Corporation Redmond USA, June 28, 2000.