ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ FAKULTA ELEKTROTECHNICKÁ KATEDRA MĚŘENÍ. Diplomová práce. Automatizovaný měřicí systém.



Podobné dokumenty
Měřící systém se vzdáleným přístupem. Databáze

1 Webový server, instalace PHP a MySQL 13

1. Webový server, instalace PHP a MySQL 13

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

Software pro vzdálenou laboratoř

Zpravodaj. Uživatelská příručka. Verze

OBSAH. 1. Úvod Požadavky na SW vybavení... 3

Měření teploty, tlaku a vlhkosti vzduchu s přenosem dat přes internet a zobrazování na WEB stránce

Specifikace požadavků. POHODA Web Interface. Verze 1.0. Datum: Autor: Ondřej Šrámek

Vstupní požadavky, doporučení a metodické pokyny

SEMESTRÁLNÍ PROJEKT Y38PRO

Technologické postupy práce s aktovkou IS MPP

Představenstvo, kontrolní komise, vedení. SBD Vítkovice. Elektronická hlášení závad. Scénář postupu práce. Cornelius Scipio s.r.o.

1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018

CBR Test dimenzač ní čh parametrů vozovek

1 Uživatelská dokumentace

Zabezpečení proti SQL injection

DOCHÁZKA. Webový prohlížeč docházky. Osoby

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Zabezpečení proti SQL injection

Instalace a konfigurace web serveru. WA1 Martin Klíma

Popis programu EnicomD

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í.

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ SPOLEČNOST DECADIC PROJEKT FRAMETRIX

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

VComNet uživatelská příručka. VComNet. Uživatelská příručka Úvod. Vlastnosti aplikace. Blokové schéma. «library» MetelCom LAN

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK

Uživatelská příručka. Internet Map Server verze 1.5.4

Registr práv a povinností

Maturitní otázky z předmětu PROGRAMOVÁNÍ

MBus Explorer MULTI. Uživatelský manuál V. 1.1

Uživatelský manuál. KNXgal. řízení zabezpečovacích ústředen. Galaxy ze sběrnice KNX. napájeno ze sběrnice KNX. indikace komunikace na KNX

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

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

Maturitní projekt do IVT Pavel Doleček

Registr práv a povinností

VDDMAIL by ESCAD, Corp. (Součást IWSE.NET Services by ESCAD, Corp.)

UniLog-D. v1.01 návod k obsluze software. Strana 1

TACHOTel manuál 2015 AURIS CZ

IntraVUE Co je nového

Komunikační protokol

1. Administrace služby Bezpečný Internet přes webovou aplikaci WebCare GTS

BALISTICKÝ MĚŘICÍ SYSTÉM

BM Software, Databáze Docházky 3000 na NAS serveru (pro MySQL) Němčičky 84, Němčičky u Břeclavi. Úvodní informace:

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

1. Podmínky chodu aplikace

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Program pro tvorbu technických výpočtů. VIKLAN - Výpočty. Uživatelská příručka. pro seznámení se základními možnostmi programu. Ing.

Nápověda pro vyplnění elektronického formuláře Oznámení o provedení asanace vytěženého jehličnatého dříví

Administrace služby - GTS Network Storage

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

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

17. července :51 z moravec@yahoo.com

Administrační systém ústředen MD-110

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Semestrální projekt do předmětu SPS

Příručka uživatele HELPDESK GEOVAP

TDP RPort 1.0. uživatelská příručka. 12. července 2007 Na slupi 2a, Praha 2

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

Zápočtová úloha z předmětu KIV/ZSWI DOKUMENT SPECIFIKACE POŽADAVKŮ

Instalace a první spuštění Programu Job Abacus Pro

STŘEDOŠKOLSKÁ ODBORNÁ ČINNOST. Obor SOČ: 18. Informatika. Školní sdílení PC obrazovek. School sharing PC screens

Na vybraném serveru vytvoříme MySQL databázi. Soubory scratch.jpa, kickstart.php a en-gb.kickstart.ini nahrajeme na vybraný server.

Střední odborná škola a Střední odborné učiliště, Hořovice

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

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

PRT3 tiskový modulu manuál pro EVO ústředny

INFORMAČNÍ SYSTÉMY NA WEBU

Patrol Management System 2.0

Databáze pro evidenci výrobků

plussystem Příručka k instalaci systému

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009

Návod k instalaci S O L U T I O N S

Systém souborů (file system, FS)

Envis LIMS Klient distribučního portálu

Popis produktu IDFU. Řešení součinnosti s oprávněnými osobami verze 2. Aegis s.r.o.

Nastavení DCOM. Uživatelský manuál

APS Administrator.OP

24 Uživatelské výběry

Obslužný software. PAP ISO 9001

GeoPlan. Administrátorská příručka. Výstup byl vytvořen s finanční podporou TA ČR v rámci projektu TA Verze 1.0

16. Číslicový měřicí systém se sběrnicí IEEE 488 (základní seznámení)

Uživatelský manuál WEB SERVICE V3.0 IP kamer Dahua

Popis funkcí a parametrů programu. Reliance External communicator. Verze 1.5.0

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

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek

Komunikační protokol MODBUS RTU v displejích TDS

Nemocnice. Prvotní analýza a plán projektu

Programovací prostředek AmexCLV-V2.0

Reliance 3 design OBSAH

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK

Mzdy Optimum základy ovládání

Virtuální přístroje. Matlab a Instrument Control Toolbox. J.Tomek, A.Platil

Nastavení klientských stanic pro webové aplikace PilsCom s.r.o.

Aplikace. Hlásič SMS

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

Transkript:

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ FAKULTA ELEKTROTECHNICKÁ KATEDRA MĚŘENÍ Diplomová práce Automatizovaný měřicí systém 2005 Jiří Javůrek

Anotace Náplní této práce je vytvoření automatizovaného měřicího systému s využitím přístrojové sběrnice GPIB (IEEE 488). Systém musí být schopen automaticky plnit definované úlohy ve stanovený čas bez nutnosti zásahu obsluhy. Ovládání systému je umožněno pomocí internetu ze vzdálených počítačů. Anotation Topic of this work is to create an automatic measurement system based on instrument bus GPIB (IEEE 488). This system must be able execute predefined tasks on desired time automaticaly without any user intervention. The system is remotely controlled from remote computers via internet computer network. - i -

Prohlášení Prohlašuji, že jsem diplomovou práci Automatizovaný měřící systém vypracoval samostatně a použil k tomu jen podklady uvedené v přiloženém seznamu. Dále prohlašuji, že nemám závažný důvod proti užití tohoto díla ve smyslu 60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon) V Praze dne 27. 1. 2005.. - ii -

0. Obsah Anotace...i Anotation...i Prohlášení...ii 0. Obsah...iii 0. 1 Seznam obrázků...iv 1. Úvod...1 2. Sběrnice GPIB...2 3. Knihovna VISA...4 4. Struktura systému...5 4. 1 Rozhraní výkonná aplikace server...8 4. 2 Rozhraní server webová aplikace...8 4. 3 Rozhraní server databáze...8 5. Server měřicího systému...10 5. 1 Spuštění a ukončení serveru...12 5. 2 Obsluha klientských spojení...13 5. 3 Obsluha plánu úloh...13 5. 4 Přímá obsluha přístrojů...14 6. Výkonná část systému...16 6. 1 Spuštění výkonné části...18 6. 2 Skript úlohy...19 6. 3 Načítání skriptu...21 6. 3.1 Část přístrojů...21 6. 3.2 Část proměnných...22 6. 3.3 Část standardních výpočtů...22 6. 3.4 Část sekce...22 7. Webové rozhraní...25 7. 1 Bezpečnost...25 7. 2 Možnosti webového rozhraní...26 7. 2.1 Seznam úloh...26 7. 2.2 Plán úloh...28 7. 2.3 Přístroje...30 7. 2.4 Administrace...31 7. 2.5 Nápověda...31 8. Databáze...32 8. 1 Požadavky kladené na databázi...32 - iii -

8. 2 Popis jednotlivých tabulek...33 8. 2.1 Tabulka USERS...33 8. 2.2 Tabulka SEZNAM...34 8. 2.3 Tabulka PLAN...34 9. Závěr...36 10. Použitá literatura...37 Příloha A. Konfigurační soubor serveru...38 Příloha B. Vytvoření databáze...40 Příloha C. Příkazy skriptovacího jazyka...41 Příloha D. Komunikační protokol server systému klientská aplikace...46 Příloha E. Vzorová úloha...53 Příloha F. Seznam souborů měřicího systému...55 0. 1 Seznam obrázků Obrázek 1 Způsob připojení zařízení ke sběrnici GPIB...2 Obrázek 2 Celkové schéma měřicího systému...7 Obrázek 3 Základní vývojový diagram serveru systému...11 Obrázek 4 Základní vývojový diagram výkonné části systému...17 Obrázek 5 Objekt Tsecdata a objekt Tsection...23 Obrázek 6 Objektová struktura příkazů skriptu...24 Obrázek 7 Mapa webového rozhraní...27 Obrázek 8 Základní stránka seznamu úloh...28 Obrázek 9 Základní stránka plánu úloh...29 Obrázek 10 Prezentace výsledků úlohy...30 Obrázek 11 Stránka ovládání přístroje...31 Obrázek 12 Struktura databáze...32 - iv -

1. Úvod Měřícím systémem rozumíme soubor vzájemně propojených technických zařízení a řídícího počítače (nebo počítačů, v případě distribuovaných systémů), které vzájemnou součinností umožňují realizovat provedení požadované měřicí úlohy. Automatizovaný systém provede celé měření bez zásahu obsluhy podle předem stanovených pravidel (postupu měření). Nejjednodušší systém se může skládat z jednoho měřicího přístroje a jedné řídící jednotky (počítače). Složitější systémy dovolují pracovat s více přístroji a umožňují ovládání z více míst. Zásadní vlastností systému pro použití v laboratoři je jeho schopnost řešit různé úlohy, aniž by bylo třeba do systému zasahovat. Pro maximální využití možností, musí systém umožňovat připojení takového množství přístrojů, jaké dovolí hardwarové možnosti použitých zařízení. Přístroje mohou být připojeny jednotlivě přímo k řídící jednotce. Tento způsob je však neefektivní vzhledem k vysokým nárokům na počet vstupů do řídící jednotky a je vhodný pouze pro malé systémy. Pro větší systémy je nezbytné připojení jednotlivých přístrojů řešit jiným způsobem. Přístroje jsou v takovém systému připojeny k externí sběrnici, ke které je jako jedna z jednotek připojen i řídící počítač. Takto je jeden vstup do řídící jednotky využíván pro ovládání více přístrojů, jejichž počet je omezen technickými vlastnosti použité sběrnice a jejího komunikačního protokolu. Cílem této práce je navrhnout a realizovat takový měřicí systém, který bude schopen realizovat libovolnou úlohu, která bude do systému zadána a který by umožňoval ovládání a prohlížení výsledků měření z libovolného počítače připojeného k síti internet bez zvláštních nároků jak na výkon klientského počítače tak především na specializovaný software (ovladače a vizualizační programy). Provádění úloh musí být plně automatické. Úlohu musí být možné naplánovat na pozdější spuštění, které bude provedeno systémem bez zásahu obsluhy. Interpret postupů měření úloh (skriptů úloh) musí umožňovat použití základních programových prostředků (práci s výsledky měření, proměnnými, cykly, podmínkami apod.), zároveň musí podporovat práci s jednotlivými přístroji. S ohledem na tyto skutečnosti byla zvolena struktura systému s využitím přístrojové sběrnice GPIB a ovládání systému bylo realizováno pomocí webových stránek. - 1 -

2. Sběrnice GPIB Sběrnice GPIB (General Purpouse Interface Bus) označována těž jako IEEE 488 je 24 vodičová sběrnice, původně vyvinutá firmou Hewllet-Packard (pod označením HPIB). Zařízení řídící jednotky Zařízení 1 Zařízení 2 Zařízení 3 Zařízení N Obrázek 1 Způsob připojení zařízení ke sběrnici GPIB Sběrnice obsahuje 8 datových vodičů, 5 vodičů s řídícími signály, 3 vodiče se signály pro řízení přenosu dat a 8 zemních vodičů. Připojená zařízení mohou být přepnuta do jednoho z následujících režimů: Posluchač (listener), mluvčí (talker), řídící jednotka (controller). Všechna připojená zařízení mohou být v libovolném z těchto režimů, při splnění těchto omezení: Jedno zařízení nemůže být přepnuto do dvou režimů současně a na sběrnici může být připojeno pouze jedno zařízení v režimu řídící jednotky, to však nevylučuje, aby aktivní řídící jednotka předala řízení jiné jednotce na sběrnici. Ke sběrnici může být připojeno až 15 zařízení rozlišovaných adresami 0 až 30 (pětibitová šířka adresy), přičemž adresa 31 je zástupným symbolem pro označení všech jednotek pro zrušení režimu posluchač resp. mluvčí na všech připojených jednotkách zároveň. Podle standardu IEEE 488.1 mohou zařízení používat ještě sekundární adresu v rozsahu 60 H až 7F H (tj. 96 až 127). Celková délka sběrnice nesmí překročit 20m, přičemž vzdálenost mezi připojenými jednotkami nesmí být větší než 2m. Úrovně napětí používaného na sběrnici jsou kompatibilní s úrovněmi TTL (tj. logická nula pro napětí nižší než 0,8 a logická jednička pro napětí vyšší než 2,0V). Komunikace po sběrnici může probíhat libovolným způsobem mezi všemi jednotkami. Která z jednotek bude vysílat zprávu, a které jednotky budou zprávu přijímat určuje výhradně řídící jednotka sběrnice (controller) vysláním adres příslušných jednotek a jejich přepnutím do - 2 -

režimu mluvčí a posluchač (talker / listener). Obrázek 1 znázorňuje způsob připojení jednotlivých jednotek ke sběrnici. Již z vlastností tohoto připojení vyplývá, že v jeden okamžik může být jako mluvčí (talker) označena pouze jedna jednotka. Počet posluchačů není nijak omezen. Pro účely určení, která jednotka má vysílat zprávu a která jednotka nebo jednotky mají být jejím příjemcem má každá z jednotek přiřazeny dvě adresy. Tyto adresy mají dolních pět bitů shodných a tato část adresy je označována za (všeobecnou) adresu přístroje. Kombinací šestého a sedmého bitu je tato adresa rozšířena na adresy MLA (my listen address) a MTA (my talk address). Podle toho, kterou z těchto adres je jednotka adresována, je přepnuta do režimu mluvčí nebo posluchač. Zprávy (příkazy) posílané po sběrnici jsou rozděleny na dva základní druhy jednovodičové, které využívají řídící signály sběrnice a vícevodičové, které využívají datové vodiče sběrnice spolu s vodiči pro řízení přenosu dat. Příkazy se dále mohou dělit na bezadresné, tedy takové, které přijímají a vykonávají vždy všechny připojené jednotky a adresné, které jsou přijímány a vykonávány jen jednotkami, které byly předem pro příjem příkazů adresovány. Norma IEEE 488.1 definuje způsob, kterým může libovolná jednotka v systému žádat o obsluhu (service request). Tato žádost je vzhledem k ostatní komunikaci asynchronní a je realizována vysláním signálu SRQ. Z takto vyslané žádosti však není zřejmé, které zařízení žádost vyslalo. Norma definuje dva možné způsoby pro zjištění žádajícího zařízení. Je to pomocí sériového nebo paralelního hlášení. Při použití sériového hlášení jsou všechna připojená zařízení dotazována na svůj stavový byte a podle nastavení příznaku SRQ v tomto bytu u zařízení, které vyslalo žádost na obsluhu, je žádající zařízení identifikováno. Při použití paralelního hlášení je zjišťován stav několika zařízení (maximálně osmi) najednou. Každému zařízení je v takovém případě přiřazen jeden bit datové sběrnice, na který zařízení vyšle svůj stav. - 3 -

3. Knihovna VISA Knihovna VISA (Virtual Instrument System Architecture) poskytuje univerzální programátorské rozhraní k různým typům přístrojů a různým přístrojovým sběrnicím. Existuje pro více operačních systémů (například pro Windows, Linux, Solaris, ). Jejímu vzniku předcházela potřeba ovládat různé přístroje propojené pomocí různých typů sběrnic jednotným způsobem tak, aby pro ovládání použitý software nemusel brát ohled na specifické vlastnosti jednotlivých fyzických komponent. Knihovna umožňuje ovládat přístroje připojené pomocí sběrnic GPIB, GPIB-VXI, MXI/VXI, sériové linky (RS-232) a případně ethernetu. Přínos této knihovny spočívá ve sjednocení mechanizmů práce s jednotlivými zařízeními pomocí několika málo, dostatečně univerzálních, příkazů a příznaků. Samozřejmě ani zde se nebylo možné vyhnout některým specifickým vlastnostem podporovaných typů sběrnic, zvláště tam, kde nejsou žádnou normou stanoveny detaily komunikačního protokolu (např. počet stop bitů při použití sériové linky, nebo typ parity). Základními funkcemi pro práci se všemi druhy zařízení je možnost otevřít a uzavřít přístup na zařízení a komunikovat se zařízením, tj. zapisovat na zařízení příkazy a číst odpovědi. Knihovna zavádí jednotný systém obsluhy událostí, které mohou v systému nastat a to dvěma základními způsoby. Jedním je blokující čekání na některou z definovaných událostí, druhým je způsob pomocí obsluhy přerušení, vyvolané výskytem definované události. Z výše popsaných vlastností knihovny VISA plyne, že aplikace používající tuto knihovnu pro ovládání připojených přístrojů mohou být realizovány jednodušším způsobem a snadno lze dosáhnout nezávislosti na použitých hardwarových prostředcích. - 4 -

4. Struktura systému Měřící systém se skládá z několika na sobě nezávislých komponent. Toto řešení přináší výhodu v možnosti vyměnit kteroukoli z nich, aniž by bylo třeba upravovat zbývající a tímto způsobem rozšířit možnosti systému bez větších zásahů do částí, jichž se úpravy přímo netýkají. Dále to umožňuje pomocí externích programů testovat funkčnost jednotlivých částí bez ohledu na celý zbytek systému. Komponenty spolu vzájemně komunikují pomocí jednoduchých příkazů rozhraní popsaného v příloze této práce. Rozdělení komponent zároveň umožňuje rozdělit potřebný výpočetní výkon na více počítačů, které jsou spolu vzájemně propojeny počítačovou sítí, stejně tak je možné, aby všechny komponenty byly spuštěny na jednom počítači a systém byl kompaktní. Jediným omezením v tomto směru je, aby serverová aplikace měřicího systému byla nainstalována (a spuštěna) na stejném počítači, ke kterému jsou připojeny jednotlivé přístroje (resp. interface GPIB) a je na něm serverovou aplikací spouštěna (výkonná) aplikace pro provedení definované úlohy. Jednotlivé komponenty jsou: výkonná část serverová aplikace (server) webová aplikace databáze Výkonná část slouží k provádění předem definovaných úloh. Je spouštěna buď na přímý příkaz uživatele, nebo z důvodu dosažení času plánovaného spuštění některé z úloh. Velkou výhodou oddělení výkonné části od serveru je, že každá nová úloha je spuštěna v rámci nového procesu, který není ovlivněn předchozími měřeními (mimo globálních nastavení rozhraní pomocí parametrů knihovny VISA). Rovněž při možném nekorektním ukončení této aplikace dojde ke korektnímu odpojení všech používaných zařízení a uzavření používaných deskriptorů, jelikož se o to v nejhorším případě postará sám operační systém při uvolňování alokovaných prostředků ukončovaného procesu. Serverová aplikace tvoří jádro celého měřicího systému. Zajišťuje spouštění jednotlivých úloh dle plánu a požadavků uživatelů, poskytuje výsledky měření a informace o průběhu jednotlivých měření uživateli (výsledky jsou prezentovány pomocí webové aplikace) - 5 -

a dále chrání zneužití systému pomocí autorizačního mechanizmu a propojuje všechny komponenty vzájemně dohromady. Tato aplikace je koncipována jako trvale spuštěná a je doporučeno, aby bylo operačním systémem hlídáno, zda opravdu běží a byla spuštěna znovu, pokud by došlo k jejímu ukončení. Webová aplikace slouží jako uživatelské rozhraní celého měřicího systému a umožňuje provádět všechny úkony. Je to aplikace zprostředkovávající uživatelům přístup k informacím, které poskytuje aplikace serveru a naopak předává serveru příkazy uživatelů. Vzhledem k modulární koncepci systému není pro běh systému tato aplikace nutná, neboť komunikace se serverem může být vedena i z jiné klientské aplikace, která bude dodržovat komunikační protokol server klient (podrobně popsán v kapitole Příloha D..) Jako klientské rozhraní bylo zvoleno webové rozhraní (pomocí protokolu http) z důvodu umožnění snadné dostupnosti měřicího systému z prakticky kteréhokoli počítače připojeného k počítačové síti (resp. internetu), bez nutnosti instalovat na tento počítač jakýkoli klientský program, který by zajišťoval prezentaci výsledků a zadávání příkazů pro aplikaci serveru (obyčejný webový prohlížeč, např. Microsoft Explorer, nebo Mozilla jsou dnes standardní výbavou všech počítačů). Databáze slouží k uchovávání údajů o jednotlivých uživatelích a definovaných úlohách. Zvolena byla databáze MySQL (viz. http://www.mysql.org), která sice neposkytuje všechny možnosti jazyka SQL, avšak pro tento účel plně vyhoví. - 6 -

Měřící přístroj Měřící přístroj Měřící přístroj Měřící přístroj GPIB sběrnice Výkonná měřící část (measure engine) Úkoly: -Načtení úlohy a její parsování -Připojení sběrnice a přístrojů -Provádění příkazů úlohy -Čtení příkazů od serveru -Zasílání výsledků serveru DISKOVÝ PROSTOR Informace o přístrojích Skripty plánovaných úloh Skripty úloh Měřící přístroj Měřící přístroj Jiná sběrnice knihovna VISA Přímé ovládání přístrojů Měřící server (measure server) STDIN/STDOUT Úkoly: -umožnit uživateli zadávání, editaci a plánování úloh -prezentovat výsledky měření -aplikovat přístupová omezení -dohlížet na plán úloh a provádět jej Výsledky měření Logy měření APACHE web server + PHP Webové rozhraní (web - klient) Úkoly: Zprostředkovat ovládání serveru (definování a plánovaní úloh) uživateli pomocí http protokolu a prezentovat naměřené výsledky. PHP sessions SOCKET (standardně 11222) SQL příkazy MySQL DATABASE Obsažené údaje: -uživatelé + jejich oprávnění -seznam úloh -plán úloh + stav provádění HTTP protokol Uživatel Uživatel Uživatel Uživatel Uživatel "Tlustý" klient Obrázek 2 Celkové schéma měřicího systému - 7 -

4. 1 Rozhraní výkonná aplikace server Serverová aplikace má přístup k plánu definovaných úloh. V okamžiku, kdy se má některá úloha spustit, buď na přímý příkaz uživatele, nebo z důvodu dosažení času plánovaného spuštění, je spuštěna výkonná aplikace. Zároveň dojde k přesměrování standardního vstupu a standardního výstupu a chybového výstupu výkonné aplikace tak, aby příjemcem výstupu byla aplikace serveru, ve které se spustí vlákno pro příjem zpráv od výkonné části a aby standardní vstup byl veden z aplikace serveru. Rovněž ve výkonné aplikaci je spuštěno vlákno pro obsluhu přijímaných zpráv od aplikace serveru. Toto uspořádání umožňuje jednoduchou oboustrannou komunikaci těchto aplikací. Informace o tom, která úloha má být spuštěna a jakým způsobem má být provedena se předá při spouštění výkonné aplikace jako parametry programu. 4. 2 Rozhraní server webová aplikace Pro komunikaci mezi aplikací serveru a webovou klientskou aplikací je použito socketového spojení (standardně na portu 11222). To umožňuje, aby obě aplikace byly spuštěny na stejném počítači, ale zároveň to dává možnost, aby byla webová aplikace spuštěna na jiném počítači v počítačové síti, např. na počítači, který slouží jako webový server pro více stránek (nebo aplikací). Zároveň toto uspořádání umožňuje připojení k serveru z libovolného jiného klientského programu, pro testování funkčnosti systému např. pomocí telnetu, neboť příkazy pro server i odpovědi od serveru jsou čistě textové řetězce. Jednotlivé příkazy pro komunikaci jsou popisuje Příloha D.. 4. 3 Rozhraní server databáze Pro komunikaci s databází je použito jazyku SQL (Structured Query Language) viz. [4]. Připojení k využívané databázi MySQL je interně řešeno pomocí socketového spojení, což umožňuje provozovat aplikaci databáze na jiném počítači, než na kterém je spuštěna aplikace serveru měřicího systému. Výhodou je standardizovanost tohoto rozhraní co do příkazů posílaných databázovému serveru, což umožňuje v případě potřeby snadný přechod na jiný databázový program. Nutné - 8 -

úpravy by spočívaly pouze v úpravě kódu programu serveru měřicího systému tak, aby bylo provedeno připojení a komunikace s databází s využitím jiné knihovny poskytující rozhraní k té které databázi. Pro připojení k databázi MySQL z programu serveru napsaného v jazyce C++ je použito knihovny mysqlclient.so (viz. též [4]). Tato knihovna jednak umožňuje vlastní připojení k databázovému serveru a dále potom zadávání dotazů a čtení jejich výsledků. Knihovna je standardně distribuována spolu s databázovým serverem MySQL. - 9 -

5. Server měřicího systému Aplikace serveru měřicího systému tvoří hlavní část, která slouží ke koordinaci činností všech dalších komponent a má zároveň přístup ke všem informacím o uživatelích, definovaných úlohách a plánu jejich provádění. Tato aplikace akceptuje socketová připojení na definovaném portu, standardně je tento port přednastaven na 11222, tuto hodnotu lze změnit pomocí konfiguračního souboru, viz. Příloha A. K serveru může být v jeden okamžik připojeno libovolné množství klientů, jediné omezení v tomto směru určuje operační systém. Při připojení klientské aplikace k serveru je vytvořen objekt spojení Tspojeni, který obsahuje všechny důležité informace o průběhu komunikace a právech připojeného uživatele (po jeho přihlášení zasláním příkazu LOGIN a uživatelského jména a hesla). Bez přihlášení není možné se serverem, resp. s celým systémem pracovat uživatel nemá žádná práva a všechny jeho požadavky budou zamítnuty. Dále je spuštěno nové vlákno programu, které slouží k obsluze tohoto jednoho konkrétního spojení čte příchozí data (příkazy) a po ověření uživatelových práv je vykonává. Zpět jsou zasílány odpovědi o výsledcích jednotlivých přijatých příkazů. V jeden okamžik může server pro jedno spojení zpracovávat pouze jeden příkaz, je však možné zpracovávat více příkazů paralelně, pokud přicházejí z různých klientských aplikací (z různých spojení). Vykonávání většiny příkazů je však přesto blokováno, neboť vyžadují práci v kritické sekci, která slouží k ochraně dat a udržení konzistence systému, neboť jednotliví připojení uživatelé mezi sebou sdílejí všechna na serveru uložená data. - 10 -

Z Navázání spojení s DB OBSLUHA SPOJENÍ OBSLUHA PLÁNU ÚLOH Otevření VISA default RM Vytvoření toku "obsluha plánu úloh" Vytvoření toku "obsluha spojení" Nastavení obsluhy "SIGINT" Spojení vláken: "obsluha plánu úloh" "obsluha spojení" Odpojení VISA Odpojení DB K Otevření socketu pro "listen" Podařilo se vytvořit? + Čekání na připojení klienta Podařilo se připojit? + Vytvoření toku "obsluha klientského spojení" - - - Ruší se socket pro skončení? K + Nastavení obsluhy "SIGALARM" Nastavení stavu "nestandardní ukončení" všech úloh, které jsou při startu obsluhy označené jako "probíhá měření" Nastavení prodlevy alarmu Pause() OBSLUHA KLIENTSKÉHO SPOJENÍ Čteme znak - Byl celý řádek? - Byla chyba? + Uzavření spojení + + Byl přijat příkaz ukončení spojení? - K Zjistíme jaký byl příkaz a provedeme ho Obrázek 3 Základní vývojový diagram serveru systému - 11 -

5. 1 Spuštění a ukončení serveru Server je koncipován tak, aby tento proces běžel trvale a mohl tedy kdykoli jednak poskytnout uživatelům možnost přihlášení se k měřicímu systému a tedy možnost ovlivnění jeho další činnosti, a jednak mohl zpracovávat plán úloh tedy spouštět jednotlivé naplánované úlohy v předem stanovenou dobu. Proces serveru by měl být spuštěn pod neprivilegovaným uživatelem (z důvodu bezpečnosti celého počítače, na němž je tento proces spuštěn). Po spuštění provede aplikace načtení konfiguračního souboru, ve kterém jsou uloženy informace pro připojení k databázi, umístění souborů a adresářů s uloženými daty jednotlivých úloh (ať už jejich skripty nebo změřenými výsledky) a požadavky na logování činnosti serveru a prodlevy kontrolu plánu úloh. Bližší informace o možnostech konfigurace viz. Příloha A. Dále aplikace ověří neexistenci souborového zámku proti dvojímu spuštění. Pokud je nalezen existující soubor zámku, je o tom uživatel informován a běh aplikace se ukončí. Z důvodu nutnosti zajištění výhradního přístupu aplikace serveru ke všem datům nutným pro běh celého systému není možné, aby aplikace serveru byla spuštěna vícekrát v jeden časový okamžik. Pokud tento soubor nalezen nebyl, provede se jeho vytvoření a je do něj zapsáno identifikační číslo procesu serveru (PID). Následuje připojení k databázovému serveru a otevření databáze s informacemi měřicího systému. Pokud se nepodaří k databázi připojit, je běh serveru ukončen, neboť by nebyl možný přístup ani k informacím o uživatelích (jména, hesla a práva), tudíž by nebylo možné, aby se jakýkoli uživatel připojil k serveru. Pro obsluhu připojujících se klientů je vytvořeno zvláštní vlákno, které čeká na příchozí socketová spojení. Rovněž pro kontrolu plánu úloh je vytvořeno vlákno. Běh serveru lze ukončit zasláním signálu SIG_TERM nebo SIG_QUIT. Toto lze učinit například příkazem: kill `cat /tmp/measure_server.pid` kde /tmp/measure_server.pid je cesta a jméno souboru zámku, ve kterém je uloženo PID serverové aplikace. - 12 -

5. 2 Obsluha klientských spojení Při připojení nového klienta k serveru se pro jeho spojení vytvoří nový tok, což umožňuje, aby byly nekonfliktní příkazy 1 jednotlivých uživatelů prováděny paralelně a zároveň to usnadňuje vyhodnocování, od kterého klienta je příchozí příkaz. Zpracování konfliktních příkazů se děje sériově a je chráněno pomocí kritických sekcí. Server přijímá příkazy v textové formě, přičemž za konec příkazu a pokyn k jeho vykonání se považuje znak konce řádku (lhostejno, zda je to znak 0x0A LF nebo kombinací znaků 0x0D + 0x0A CR+LF ). Zadávání příkazu lze přerušit znakem 0x1B ESC. Každý korektně přijatý příkaz vrátí klientovi odpověď, která je rovněž v textovém tvaru a skládá se z čísla kódu výsledku příkazu a textového popisu. Tento způsob je vhodný pro zpracování výstupu pomocí klientského programu, kde je mnohem snazší výsledek příkazu posuzovat podle vrácené číselné hodnoty než podle textové zprávy, avšak zároveň to umožňuje snadno číst výsledky i například pomocí telnetového spojení bez nutnosti pamatování si jednotlivých kódů výsledků. Pro zahájení práce s měřicím systémem je nutné, aby se nově připojený klient přihlásil a mohla tak být přiřazena jeho přístupová práva, pomocí kterých jsou omezeny jeho možnosti práce se systémem. 5. 3 Obsluha plánu úloh Tok obsluhující plán úloh periodicky v intervalu stanoveném konfigurací měřicího serveru kontroluje podle tabulky plan databáze, zda nemá být spuštěna některá, v plánu uložená, úloha. Zároveň je zkontrolována doba, která uplynula od posledního logování informací o procesu serveru (pokud je tato funkce zapnuta) a v případě dosažení požadovaného časového intervalu jsou zalogovány informace poskytované operačním systémem ve virtuálním souborovém systému /proc souboru status. Pokud je zjištěno, že některá z plánovaných úloh má být spuštěna, je vytvořen nový proces, kterému jsou přesměrovány ukazatele pro standardní výstup a standardní vstup tak, aby bylo možné s tímto novým procesem komunikovat z procesu serveru. Poté je kód nového 1 Nekonflikním příkazem se rozumí takový příkaz, kdy nehrozí vznik nekonzistentních dat na serveru například současným přístupem dvou klientů do stejné datové oblasti. - 13 -

procesu nahrazen kódem výkonné části systému, která provede podle zadaných parametrů a skriptu úlohy vlastní měření a výsledky zašle zpět na server, kde budou uloženy. Komunikace mezi serverem a výkonnou částí probíhá v textové formě pomocí jednoduchých příkazů a stavových hlášení. Iniciátorem komunikace může být jak server tak i výkonná část. Veškerá komunikace týkající se zpracovávané úlohy může být na serveru ukládána do souboru logu úlohy, pokud je to nastaveno v požadavcích na ukládání ladících informací dané úlohy. Hlavní část komunikace spočívá v ukládání naměřených dat. Výsledky jednotlivých měření posílá výkonná část systému vždy formou bloku hodnot všech proměnných skriptu úlohy, které jsou zvoleny pro logování. Tyto hodnoty spolu s číslem zápisu a jeho časem tvoří jeden řádek výsledkového souboru, který je jako celek nebo po částech zpřístupněn serverem všem klientům s potřebným oprávněním. Server ošetřuje možnost, kdy má být některá úloha spuštěna dříve, než bude předchozí úloha dokončena nebo kdy je čas spuštění pro dvě různé úlohy nastaven na stejnou hodnotu. V takovém případě se úloha, která je druhá v pořadí spustí až po dokončení předchozí úlohy. Není tedy možné zpracovávat dvě úlohy najednou. Tato vlastnost je zavedena především proto, že nelze ovládat tytéž přístroje připojené k měřícímu počítači ze dvou různých programů aniž by bylo možné vyloučit riziko, že budou správně přiřazeny odpovědi přístrojů na příkazy tomu z měřících programů (procesů), který je vyvolal a nebudou zpracovány programem jiným. Zároveň to umožňuje lepší využití přístrojové sběrnice, která není sdílena více procesy. 5. 4 Přímá obsluha přístrojů Server umožňuje uživatelům s příslušným oprávněním přímou obsluhu připojených přístrojů. Může tedy sloužit jako interaktivní konzola, kdy uživatel zadá adresu přístroje v rámci měřicího systému a příkaz, který má být přístrojem vykonán. Ten je zpracován a uživatel je informován o jeho výsledku. Vykonávané příkazy jsou, podle toho, zda mají vrátit výsledek ve formě zjištěné hodnoty, děleny na příkazy vracející odpověď na příkazy bez odpovědi, které mají být pouze zaslány přístroji a je u nich možné pouze zjišťovat, zda příkaz proběhl úspěšně, nebo zda došlo k chybě. Typ příkazu může zadat uživatel v požadavku. Rozlišovány jsou Query, Send a Read, nebo může uvést univerzální typ Do, kdy se server rozhodne pro - 14 -

zjišťování odpovědi na základě struktury SCPI příkazů podle toho, zda příkaz obsahuje požadavek na odpověď ve formě otazníku za textem příkazu. Pokud je v okamžiku interaktivního ovládání přístrojů měřena některá z plánovaných úloh, musí uživatel povolit provedení požadovaného příkazu i za běhu úlohy (zároveň jsou uplatňována přísnější kritéria pro oprávnění uživatele k provedení interaktivního příkazu). Toto slouží k tomu, aby byl uživatel srozuměn s tím, že je prováděna některá úloha a nemohl tak do jejího běhu zasáhnout omylem, požadavkem na nevhodný příkaz, který by ovlivnil měření úlohy. Přístup k přístroji, který má vykonat interaktivní příkaz je v okamžiku provádění tohoto příkazu exklusivní, pomocí zámku přístroje vilock. Vzhledem k možnosti, že v rámci měřícího systému může k přístroji přistupovat více procesů (částí měřicího systému) najednou, byla zvolena možnost použití sdíleného zámku pomocí přístupového klíče (tento klíč je JAMS-KLIC ). To umožňuje eliminovat od přístupu k přístroji (přístrojům) pouze procesy nenáležející do měřicího systému, ale zároveň jim umožnit práci s přístroji v okamžiku, kdy přístup k danému přístroji není měřicím systémem vyžadován. - 15 -

6. Výkonná část systému Jedná se o samostatný program, který je spouštěn serverem měřicího systému v případě, že dle plánu úloh má být některá úloha spuštěna. Technicky je možné program spustit i z příkazové řádky při dodržení předávaných parametrů o měřené úloze a vzhledem k tomu, že ke komunikaci se serverem program výkonné části užívá standardního vstupu a výstupu, je možné jej snadno ovládat pomocí konzoly. V jeden okamžik může být výkonná část spuštěna několikrát, jediným omezením na její straně je možnost exklusivně přistupovat k hardwarovým zdrojům (tj. jednotlivým přístrojům, které jsou pro použití u dané měřené úlohy vyžadovány). Automatické spouštění serverem však dovoluje pouze jeden měřící proces (jedno spuštění) v jeden okamžik. - 16 -

Z Načtení souboru úlohy (vytvoření jejíobjektové reprezentace) Vytvoření vlákna pro obsluhu komunikace se serverem Načtení příkazů přístrojů Čekej na příkaz Dotaz na způsobilost kpokračování Vyhodnocení příkazu. nastavení příznaků + Můžeme měřit? _ Vytvoření vláken obsluhy událostí přístrojů Čekej na událost Projdipříkazy sekce Zjistivýsledek operace Má se skončit? _ Najdi sekci,která jepokračováním + _ Jsou výsledkem data? Ulož výsledek do proměnné + K Obrázek 4 Základní vývojový diagram výkonné části systému - 17 -

6. 1 Spuštění výkonné části Výkonná část je tou částí měřicího systému, která provádí obsluhu měřících přístrojů podle předem zadaného skriptu úlohy, který je uložen na serveru systému. Která úloha má být provedena je zjištěno podle parametrů, se kterými byla výkonná část spuštěna. Příkazový řádek má následující formát: measure_engine <úloha> <cesta_přístoje> <uživatel> <úloha> je jméno souboru (včetně cesty), ve kterém je uložen skript úlohy <cesta_přístroje> je cesta v souborovém systému (adresář), kde jsou uloženy konfigurační soubory jednotlivých přístrojů, s předdefinovanými příkazy <uživatel> je označení uživatele (resp. rodičovského procesu), který spustil program výkonné části. Pokud je výkonná číst spuštěna automaticky serverem, je hodnota vždy SERVER a slouží pouze k ladícím účelům. Po kontrole vstupních parametrů je spuštěna obsluha komunikace s rodičovským procesem (předpokládejme serverem měřicího systému). Následuje načtení skriptu požadované úlohy a vytvoření jeho objektové reprezentace. Zároveň dojde k vytvoření potřebných proměnných a deskriptorů (popisovačů) jednotlivých použitých přístrojů. Po načtení úlohy je zjištěno, zda byl skript úlohy zpracován korektně, nebo zda došlo při parsování skriptu k chybě (zpravidla k chybě ve skriptu nedodržením syntaxe). Pokud došlo k chybě, nelze v měření pokračovat, neboť není možné celý skript vykonat. O příčině chyby je uživatel informován z logu úlohy, který je uložen na serveru. Zjištění, zda je celý skript úlohy napsán bezchybně na počátku měření zabraňuje havárii, která by chybnou syntaxí mohla vzniknout až během vykonávání skriptu. Uživatel je tak informován o chybách ještě před spuštěním měření a ne až v jeho průběhu, což je výhodné zvláště u měření, která jsou časově velmi náročná. Ukončení procesu výkonné části je provedeno v okamžiku, kdy skončí skript měření úlohy a dojde k odpojení všech alokovaných přístrojů. Další možností, jak ukončit proces měření je žádost uživatele, která je zprostředkována serverem systému. Možné způsoby ukončení procesu jsou: - 18 -