• No results found

Složení lepící stanice

4 Regulace a komunikace mezi zařízeními

4.1 Regulace

Regulace v technice, znamená udržování určité veličiny na stanovené hodnotě, nebo hodnotách. Udržovaná veličina se nazývá ”Regulovaná veličina” a stanovená hodno-ta, kterou se snažíme udržet, se nazývá ”Referenční hodnota”. Regulace se objevuje v různých systémech, ve kterých dochází ke kontaktu s okolím. Může se objevo-vat v přírodě, ve společnosti, ale především v technice. Automatickou regulací nebo automatickým řízením se zabývá kybernetika.[12]

Hlavním principem regulace je měření regulované veličiny a její porovnávání s re-ferenční hodnotou. Jejich odchylka je užívána pro ovlivňování systému takovým způsobem, aby byla odchylka minimální, nebo při nejmenším v mezích stanovené tolerance. [12]

4.1.1 Regulace se zpětnou vazbou

Zpětná vazba, nebo také zpětnovazební smyčka je označení pro situaci, kdy vý-stup regulovaného systému ovlivňuje zpětně řídící systém. Pokud úkony při regu-laci působí proti odchylce od referenční hodnoty, nazýváme ji ”Zápornou zpětnou vazbou”.[11][12]

Pokud zvýšení hodnoty na výstupu systému v důsledku regulace způsobí další navýšení hodnoty na výstupu systému, jedná se o ”Kladnou zpětnou vazbu”. Zmí-něná kladná zpětná vazba se využívá při zesílení, nebo zrychlení žádoucího jevu, či výstupu ze systému. Kladnou zpětnou vazbu lze popsat následující soustavou rovnic:[11][12]

Y (s) = A· U(s) + A · B · Y (s) (4.1)

Y (s)/U (s) = A/(1− B · A) (4.2)

4.1.2 Regulace bez zpětné vazby

Pokud je regulace bez zpěrné vazby, nazýváme ji ovládání. Ovládání je událost v ovládaném systému, kde jedna nebo více ovládaných veličin ovlivňují systém na základě známých zákonitostí. Znakem pro ovládaný systém je otevřený obvod pro

jednotlivé přenosové členy. Zmíněný proces ovládání může působit pouze na tako-vou veličinu, která je stanovena nebo nadimenzována, jiné vlivy nejsou ovládáním odstranitelné.[12]

4.2 Komunikace mezi zařízeními

Komunikace mezi počítači a širokou škálou zařízení představuje velmi složitý sys-tém. Každé zařízení je rozdílně vybaveno po softwarové i hardwarové stránce, proto je nutné definovat určité pravidla a zákonitosti pro přenos dat. Pro jednodušší po-pis pravidel vznikl soupo-pis pravidel komunikace nazývající se ”hierarchický OSI mo-del”. Zařízení mohou komunikovat pomocí různých rozhraní, jako například ethernet, USB, sériové porty nebo za použití bezdrátových modulů.

4.2.1 OSI model

OSI model je snahou o standardizaci síťové komunikace mezi zařízeními. Byl vypra-cován společností ISO, a v roce 1984 přjat jako mezinárodní norma ISO 7498. Model má sedm vrstev rozdělených do dvou skupin. I když podle referenčního modelu není možné vrstvy vynechávat, tak ne každá komunikační síť odděluje a využívá všechny modelové vrstvy. Každá vrstva má jasně definované funkce, které vykoná a následně předá data sousední vrstvě ve směru komunikace, taktéž může využívat funkce nižší sousední vrstvy.[13][14]

První v pořadí je fyzická vrstva.Tato vrstva poskytuje specifikaci fyzických spojů mezi zařízeními. Navazuje a ukončuje spojení, spolupracuje na efektivním rozložení dostupných zdrojů mezi všechny uživatele a dále převádí data do formátu, potřeb-ného pro zvolené komunikační médium.[13][14]

Druhá je podle modelu vrstva linková, která zajišťuje spojení mezi dvěma zařízení-mi. Řadí data přijaté od fyzické vrstvy do rámců, přičemž výsledné rámce opatřuje fyzickou adresou a koordinuje fyzickou vrstvu. Detekuje, případně i opravuje chyby, které nebyly zachyceny fyzickou vrstvou. Některé zdroje tvrdí, že v sítích založe-ných na IEEE 802 by měla být vrstva rozdělena na další dvě části - Vrstva přístupu k médiu a vrstva logického řízení linek.[13][14]

Třetí vrstva nese název síťová vrstva. Hlavní funkcí této části OSI modelu je směrování v síťi. Zajišťuje přenos různých dat, opatřených patřičným označením, od zdroje k cíli. Taktéž zachycuje a zaznamenává problémy při doručování dat. Dokáže odstranit rozdíly ve vlastnostech různých technologií v přenosových síťích.[13][14]

Vrstva číslo čtyři se nazývá transportní. Její činností je přenos dat mezi dvěma uzly. Hlavním cílem funkce této vrstvy je zajistit dostatečně kvalitní přenos pro vyšší vrstvy OSI modelu. Na tomto segmentu taktéž fungují protokoly UDP a TCP.

TCP protokol je spojově orientovaný a vyžaduje tedy potvrzené dodání všech dat.

UDP protokol je především rychlý a není tedy problém, pokud se procento dat při přenosu ztratí.[13][14]

Na páté pozici je vrstva relační. Hlavním úkolem této části je synchronizace a spo-lupráce mezi relačními vrstvami obou zapojených systémů. Vytváří a ukončuje spoje-ní mezi vrstvami. Jedna z funkcí této vrstvy je přiřazováspoje-ní synchronizačspoje-ních značek k packetům.[13][14]

Následující vrstva je prezentační. Tato vrstva transformuje přijatá data do tvaru, které používají aplikace. K této transformaci patří operace komprimace, konver-tování a šifrování. Výsledné datové struktury se mohou lišit na obou koncových systémech. Rovněž na této vrstvě dochází k transformaci dat pro použití v nižších vrstvách.[13][14]

Poslední vrstvou OSI modelu je vrstva aplikační. Hlavním smyslem této vrstvy je poskytnutí přístupu aplikacím ke komunikačnímu systému a koordinovat jejich spo-lupráci. K této vrstvě přísluší taktéž práce protokolů DNS, DHCP, HTTP, HTTPS, SSH, SMTP a několika dalších.[13][14]

4.2.2 Ethernet

Ethernet je soubor technologií umožňujících komunikaci v počítačové síti. Většina tohoto souboru technologií je standardizována jako IEEE 802.3. Pro propojení zaří-zení v této síti se používá několik druhů vodičů - kroucená dvoulinka, optické kabely a dříve se používaly i koaxiální kabely. Přenosová rychlost ethernetu se pohybuje mezi 1 Mb/s a 100 Gb/s. V ethernetové síťi je možné provozovat více komunikač-ních protokolů týkajících se síťové vrstvy. Je zde realizována fyzická a linková vrstva OSI modelu. Pomocí ethernetu je možné propojit širokou škálu zařízení od počítačů přes datová úložiště až po televizní přijímače.[15]

Dva hlavní protokoly pro komunikaci v ethernet síťi jsou IPv4 a IPv6. Protokol IPv4 je standardizován normou MIL-STD-1777 podle Ministerstva Obrany USA.

Tento protokol je orientovaný datově a odeslané rámce přenáší bez záruky, což ve výsledku znamená, že nepotvrzuje doručení dat ani změnu jejich pořadí. Tyto nedo-statky odstraňuje protokol TCP fungující na vyšší vrstvě OSI modelu. Data obsahují pouze informaci o CRC součtu. IPv4 funguje na omezené množině adres, maximální počet použitelných adres je 232 = 4294967296 , skutečně použitelný počet adres je ovšem mnohem menší, a to díky rozdělování prostoru na podsíťě. Tento adresový prostor je ovšem díky nárůstu počtu zařízení možných připojit do sítě nedostatečný, a proto je postupně nasazován protokol IPv6 s velikostí adresového prostoru 2128.[15]

4.2.3 Bezdrátová komunikace

Jako bezdrátovou komunikaci označujeme propojení dvou nebo více zařízení bez použití mechanických prvků. Bezdrátová komunikace může využívat různých

pro-středků k přenosu, jako napříkald světlo (optická komunikace) nebo rádiové vlny (zvuk). Dvě propojená zařízení může dělit vzdálenost několika metrů až miliony kilometrů podle použité technologie. Tato technologie se používá zejména ve spoji-tosti s mobilními zařízeními, například mobilní telefony, GPS a tablety. Za vynálezce bezdrátové komunikace je považován Nikola Tesla.[16][17]

Pokud mluvíme o bezdrátové komunikaci mezi počítači, jedná se o tzv. Wi-Fi. Jde o komunikaci pomocí vlnění v bezlicenčním frekvenčním pásmu 2,4GHz. Od roku 1997 je v platnosti standard o komunikaci v pásmu ISM s označením IEEE 802.11.

V roce 1999 byl tento standard doplněn o normy IEEE 802.11a a IEEE 802.11b, v dalších letech přibyly standardy IEEE 802.11g a IEEE 802.11n. Oficiální rychlost komunikace v těchto sítích je 54 Mb/s, reálná rychlost přenosu je ovšem přibližně poloviční.[16][17]

4.2.4 USB a komunikace

Universal serial bus, neboli universální sériová sběrnice, zkráceně USB je velmi roz-šířená externí sběrnice používaná k propojení ruzných zařízení. Její hlavní vlastností je propojení zařízení stylem ”point-to-point”. Reálně se nejedná o sběrnici, protože neobsahuje společný vodič pro hodinový signál a další náležitosti. Na logické úrov-ni se ovšem o sběrúrov-nici jedná z důvodu omezení komuúrov-nikace pouze dvou zařízení v jeden čas a to i přes několik USB hubů. Pro snadné používání tohoto rozhraní je navrženo pro práci v ”hot plug” módu, neboli možnost odpojení a připojení zařízení bez nutnosti zařízení vypnout nebo restartovat. Napájení většiny zařízení připojova-ných pomocí sběrnice USB je napájeno pomocí napájecích vodičů obsažepřipojova-ných v USB portu.[18]

USB komunikace je založena na stromové struktuře propojení zařízení. Jako kořen stromu je označeno zařízení, které řídí komunikace celé zapojené struktury, nebo-li ”master”, ostatní zařízení zapojená v takové struktuře pracují v módu ”slave”.

Vzhledem k faktu, že v uvažované struktuře bude vždy pouze jedno zařízení master, může dojít k velkému zjednodušení komunikačního protokolu. Je možné zapojit více zařízení ”master”, ale je zapotřebí několika speciálních přechodníků.[18]

Zařízení propojena pomocí USB rozhraní mohou komunikovat několika rychlost-mi. V normě USB 1.0 byly stanoveny dvě přenosové rychlosti. Rychlost ”Full speed”

podporuje rychlost přenosu 1,5 MB/s to znamená až 12 Mb/s. Tuto rychlost přeno-su musí podporovat každý rozbočovač v propojené struktuře včetně master zařízení, přenosová rychlost nemusí být ovšem podporována koncovým zařízením. Druhá pře-nosová rychlost se nazývá ”Low speed” a je určena pro zařízení, která nepotřebují pro práci tak vysoký přenos a má hodnotu 187,5 kB/s, to znamená 1,5 Mb/s. V roce 2001 byla stanovena nová norma USB 2.0 a tím pádem přidána i nová rychlost zvaná

”High speed” s přenosem 60 MB/s (480 Mb/s). Této rychlosti, ale většina zařízení nedosáhne.[18]

4.2.5 Komunikační protokoly

Komunikační protokoly v kontextu počítačových síťí je soubor pravidel určujících podobu a význam jednotlivých zpráv předávaných v síťi. Protokol není závislý na implementaci, to má za následek, že je možné propojit různá zařízení s různými ar-chitekturami, či ruznými operačními systémy. Realizace je softwarová, hardwarová nebo kombinace obou možností. V nejjednodušší podobě protokol určuje synchroni-zaci a syntaxi komunikace mezi dvěma body v síťi. Protokol taktéž určuje podobu přenášených datových rámců, neboli packetů. Komunikační protokol musí zvládat velké množství úloh, proto je zpracování rozděleno do několika vrstev, kde každá vrstva má možnost využití služeb vrstvy položené níže v OSI modelu. Nejvyšší vrst-va pak předává data koncovému uživrst-vateli.[?][?]

Vlastností komunikačních protokolů je mnoho, mezi základní vlastnosti patří zjiš-tění spojení a objevování nových komunikačních uzlů v síťi. Velmi významným proce-sem nebo vlastností protokolu je takzvaný ”Handshake”, neboli počáteční domluva mezi dvěma zařízeními. Zahrnuje nastavení vlastností komunikačního kanálu a je považován za začátek komunikace. Protokol taktéž disponuje vlastností detekovat nesprávně naformátovaná, nebo poškozená data a rámce. Je zde také určen postup, co s takovými daty dělat. Nepostradatelnou vlastností je také ukončení spojení.[?][?]

Existují soubory komunikačních protokolů, takzvané ”Protokolové zásobníky”.

Jedná se o sady protokolů pro počítačové sítě a jejich implementaci. Protokoly v sadě jsou navrženy v jednotném konceptu, což vede ke snadnějšímu nasazení do provozu.

[?][?]

Protokoly v jedné sadě jsou většinou děleny na tři části, a to na aplikační, trans-portní a fyzickou. Pro komunikaci mezi částmi protokolového zásobníku má každý operační systém navržen dvě rozhraní a to na hraně mezi částí transportní a apli-kační, druhé rozhraní mezi fyzickou a transportní vrstvou. První zmíněné rozhraní definuje, jakým způsobem mají aplikace komunikovat a používat transportní vrst-vu. Druhé rozhraní určuje například, jak transportní vrstva využívá ovladače pro konkrétní hardware. V následující tabulce 4.1 je zobrazen příklad Protokolového zásobníku.[?][?]

Během testování komunikačních protokolů na referenčních zařízeních může dojít k jistým nesrovnalostem a odchylkám v testovaných datech a referenční komunikaci oproti definici protokolu. Výsledkem je zapracování vyjímek do protokolu, tomuto postupu se obecně říká ”workaround”. Po úspěšném testování získá zařízení certifi-kaci pro daný protokol. [?][?]

Protokol Vrstva HTTP Aplikační

TCP Transportní

IP Síťová

Ethernet Linková IEEE 802.3u Fyzická Tabulka 4.1: Protokoly a vrstvy

4.2.6 Cyklický redundantní součet

Cyklický redundantní součet, jinak taktéž zkráceně CRC (z anglického ”Cyclic re-dundant count”) se nazývá hashovací funkce určená k odhalení chyb během komuni-kace po síti. Dá se taktéž použít při kontrole ukládání dat. Jedná se o matematicky jednoduchou a velmi rozšířenou metodu kontrolního součtu. Výsledkem kontrolní-ho součtu je šestnáct bitů, neboli dva byty připojené na konec odesílaných dat při jejichž přenosu nebo uložení by mohlo dojít k chybě. Při opětovném načtení nebo přijetí dat je CRC vypočítáván znovu a je porovnáván s již uloženým součtem. Po-kud je součet shodný, tak data dorazila bez poškození, či změny, poPo-kud se CRC neshoduje, došlo k poškození dat. [21]

V některých případech je možné data podle hodnoty součtu opravit. Jedná se o jednoduchou metodu rozpoznání selhání techniky, ovšem pro odhalení pirátského útoku je až moc jednoduchý. Každou bitovou posloupnost vstupních dat můžeme zapsat též jako polynom, ze kterého je vypočítáváno CRC.[21]

110101b = x5+ x4+ x2+ 1 (4.3) Kontrolní součet je vypočítáván ze vstupní posloupnosti dat a z určitého klíče.

Výsledkem celého procesu výpočtu je polynom převedený do bitové posloupnos-ti. Vlastní výpočet probíhá binární operací XOR postupně mezi všemi polynomy na vstupu. Výsledek je pak stejný, jako pokud sečteme všechny vstupní polynomy v matematickém tělese GF(2n).[21]

5 Návrh a realizace řešení

5.1 Požadavky zadavtele

Požadavky zadavatele na realizaci aplikace obsahují několik zásadních bodů a to rozdělení architektury aplikace minimálně do tří vrstev, kde žádná vrstva nebude spustitelná bez nižší vrstvy. Dále je požadováno, aby architektura umožňovala jedno-duché rozšíření o další funkce. V neposlední řadě byl kladen důraz na kompatibilitu s operačními systémy Windows 7 a Windows 10. Taktéž bylo zadavatelem určeno, že komunikace mezi standalone jednotkou a počítačem bude probíhat pomocí USB roz-hraní. Vlastní aplikace by měla vyčítat data z digitálních portů, analogových portů a z termálních čidel. Po dohodě se zadavatelem bylo určeno, že vyčítání dat bude rozděleno do několika úrovní priorit a především díky faktu, že na některé skupiny dat je nutné se dotazovat častěji než na jiné, i pro samotnou implementaci je snažší přijímat a zpracovávat data rozložená do delšího časového úseku. V neposlední řadě zadavatel požaduje možnost měnit jazyk aplikace, musí se tedy jednat o jednoduché přepínání bez nutnosti restartovat software.

5.2 Návrh řešení

Podle požadavků by aplikace měla být navržena do tří vrstev, přičemž nižší vrstva musí být kompilovatelná a spustitelná bez vrstvy vyšší. Samostatnou kategorii tvoří pomocná knihovna funkcí, která je navržena pro uchovávání pomocných metod při zpracovávní konkrétních dat a operacích s nimi. Nejnižší vrstva je navržena pro třídy určené k uchovávní dat, tím pádem obsahuje pouze datové struktury a jim přidružené základní metody. Druhá vrstva dle návrhu obsahuje nadřazenou strukturu pro práci a uchovávání polí struktur s konkrétními daty. Nejvyšší vrstvou je třída Logic, která řídí samotnou aplikaci a zároveň předává data grafickému rozhraní.

Celá aplikace má po startu vyčkat na nastavení sériového portu, jeho následné připojení a spuštění uživatelem. Teprve následující krok spustí cyklické dotazování na konkrétní data v režii Logic vrstvy.

Jelikož komunikace s vlastním zařízením je zadavatelem stanovena na USB roz-hraní je nutné určit i odpvídající komunikační protokol a zajistit jeho funkčnost.

Software by taktéž neměl umožnit ukončení programu bez řádného odpojení séri-ového portu. V případě nesprávného odpojení může dojít k blokaci COM portu

v systému a taktéž k blokaci fyzického portu na desce počítače. Důsledkem je nutný restart celého operačního systému.

Pro účely komunikce skrze sériový port byl zadavatelem stanoven komunikační protokol s CRC součtem. Protokol předává data určité délky zakončena CRC v po-době jednoho bytu. Každá bytová posloupnost odesílaná na sériový port musí mít určité náležitosti a specifické byty na určitých pozicích. Na základě správného do-tazu software obdrží požadovaná data v určitém formátu. Přijatá data je ale nutné před zpracováním zkontrolovat. Zpracování je nutné navrhnout tak, aby dokázalo oddělit hlavičku a CRC výsledné bytové posloupnosti převést na požadovaná data a ta předat dále ke zpracování.

Pro zpracování dat byla navržena knihovna funkcí obsahující metody pro zpra-cování dat a jejich úpravu. Jednotlivé metody budou doplněny během práce. Velmi důležitou částí této knihovny bude funkce generující CRC pro odesílaná data a taktéž metoda pro kontrolu kontrolního redundantního součtu pro přijatá data a následné vyhodnocení, zda data byla přijata bez chyby. Velmi důležitou částí v návrhu je návrh třídy pro jazykové mutace aplikace. Obsahovat by měla informace o aktu-álně zvoleném jazyce, uloženém jazyce a náskedně by měla obsahovat odkazy na databázové soubory s jednotlivými slovy nebo větami.

K aplikaci musí být taktéž navrženo grafické rozhraní splňující všechny požadav-ky zadavatele a zobrazovat všechny potřebná data. Návrh GUI je následující - musí obsahovat prvky pro zobrazení šesti teplotních senzorů, šesti nastavení požadova-né teploty a šesti možností nastavení tolerance teploty. Dále možnosti pro vypnutí a zapnutí teplotních čidel. Čtyři prvko zobrazení hodnot analogových portů, dva prvky zobrazující hodnotu digitálních portů, tlačítko pro vyvolání formuláře nasta-vení a připojení COM portu a tlačítko pro uzavření aplikace. Jako poslední prvek by mělo být tlačítko pro nastavení jazykové mutace aplikace.

Vzhledem k požadavku zadavatele na realtime zobrazování hodnot je nutné na-vrhnout několik časovačů pro práci aplikace. Jeden časovač pro dotazování dat ze standalone jednotky. Tento časovač bude cyklicky odesílat dotazy na jednotlivé sku-piny dat pomocí připojeného COM portu. Takže může být spuštěn až ve chvíli, kdy je port připojen. Druhý časovač je navržen pro zobrazování z datové vrstvy do gra-fického rozhraní.

5.3 Vlastní aplikace

5.3.1 Datové struktury

Vlastní apliakce obsahuje několik datových struktur vytvořených přímo podle poža-davků zadavatele a část jich vyplynula z návrhu programu. Všechny datové struktury

jsou již při návrhu řazeny do takzvané ”Tools” vrstvy a fyzicky jsou uloženy v ad-resáři Tools. Každá z těchto struktur je psána jako samostatná třída v odděleném souboru. Struktury obsahují i své vlastní metody nutné pro operace s nimi.

• První součást balíčku datových struktur zvaného Components je Temperatu-re. Tato třída je navržena pro uchovávání teplot jednotlivých teplotních čidel neboli heaterů. Třída obsahuje jeden atribut ”Value”

• Další datovou strukturou je třída Pressure představující hodnotu tlaku dané-ho čidla. Jedná se o třídu s jedním atributem ”Value” pro ucdané-hovávání dané-hodnoty tlaku. Atribut ”Value” má modifikátor přístupu nastavený na hodnotu ”pri-vate”. Hodnotu je možné nastavovat přímým přístupem pressure.Value. Třída má tři tři základní metody. Z nichž první je konstruktor objektu. Konstruk-tor je bez parametrů a při zavolání automaticky nastavuje vnitřní atribut na hodnotu ”0”. Další metodou je ”isPressure()” metoda nevyžaduje žádné para-metry a vrací hodnotu typu Boolean. Na základě vyhodnocení zda se vnitřní hodnota tlaku rovná nule vrací buď ”True” v případě kladného vyhodnocení, nebo ”False” pokud je hodnota rozdílná od nuly. Tato metoda má modifikátor přístupu public. Třetí metodou v pořadí je ToString metoda s modifikátorem přístupu public. Jedná se o metodu, která vrací hodnotu datového typu String, jejímž obsahem je textové vyjádření vnitřního atributu Value.

• Další datovou strukturou je třída Pressure představující hodnotu tlaku dané-ho čidla. Jedná se o třídu s jedním atributem ”Value” pro ucdané-hovávání dané-hodnoty tlaku. Atribut ”Value” má modifikátor přístupu nastavený na hodnotu ”pri-vate”. Hodnotu je možné nastavovat přímým přístupem pressure.Value. Třída má tři tři základní metody. Z nichž první je konstruktor objektu. Konstruk-tor je bez parametrů a při zavolání automaticky nastavuje vnitřní atribut na hodnotu ”0”. Další metodou je ”isPressure()” metoda nevyžaduje žádné para-metry a vrací hodnotu typu Boolean. Na základě vyhodnocení zda se vnitřní hodnota tlaku rovná nule vrací buď ”True” v případě kladného vyhodnocení, nebo ”False” pokud je hodnota rozdílná od nuly. Tato metoda má modifikátor přístupu public. Třetí metodou v pořadí je ToString metoda s modifikátorem přístupu public. Jedná se o metodu, která vrací hodnotu datového typu String, jejímž obsahem je textové vyjádření vnitřního atributu Value.

Related documents