VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra technických studií Obor Aplikovaná informatika
Automatizace místnosti a způsoby ovládání bakalářská práce
Autor: Lukáš Milichovský Vedoucí práce: Ing. Zbyněk Milichovský Jihlava 2016
Abstrakt Tato práce se zabývá kompletním ovládáním celého bytu prostřednictvím vytvořené aplikace v jazyce C#. Aplikace by měla zajištovat nejdůležitější operace, které by mohl vlastník bytu požadovat. Práce dále obsahuje implementaci dalších dvou způsobů řešení, kterými lze k tomuto problému přistupovat a jejich následné zhodnocení. Všechny tyto způsoby budou použity a předvedeny na vytvořeném předváděcím panelu s PLC, který bude vizualizovat a simulovat jednu místnost v bytě. Práce dále obsahuje informace o PLC, jeho programování, o použitých periferiích a použitém předváděcím panelu.
Klíčová slova PLC, Domat, PC, C#, Merbon IDE
Abstract This bachelor thesis deals with a complex control of the entire apartment by ensured the application in C#. The application should provide the most important operations which could be required by the owner of the apartment. The work also includes the implementation of two other ways of solutions with whom this problem can be soved and their subsequent evaluation. All these methods will be applied and demonstrated on the created demonstration panel with PLC, which will visualize and simulate one room in the apartment. The bachelor thesis also contains information on PLC programming, used on the periphery and applied demonstration panel.
Keywords PLC, Domat, PC, C#, Merbon IDE
Prohlašuji, že předložená bakalářská práce je původní a zpracoval/a jsem ji samostatně. Prohlašuji, že citace použitých pramenů je úplná, že jsem v práci neporušil/a autorská práva (ve smyslu 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ů, v platném znění, dále též „AZ“). Souhlasím s umístěním bakalářské práce v knihovně VŠPJ a s jejím užitím k výuce nebo k vlastní vnitřní potřebě VŠPJ. Byl/a jsem seznámen s tím, že na mou bakalářskou práci se plně vztahuje AZ, zejména § 60 (školní dílo). Beru na vědomí, že VŠPJ má právo na uzavření licenční smlouvy o užití mé bakalářské práce a prohlašuji, že s o u h l a s í m s případným užitím mé bakalářské práce (prodej, zapůjčení apod.). Jsem si vědom/a toho, že užít své bakalářské práce či poskytnout licenci k jejímu využití mohu jen se souhlasem VŠPJ, která má právo ode mne požadovat přiměřený příspěvek na úhradu nákladů, vynaložených vysokou školou na vytvoření díla (až do jejich skutečné výše), z výdělku dosaženého v souvislosti s užitím díla či poskytnutí licence. V Jihlavě dne
............................................... Podpis
Poděkování Na tomto místě bych rád poděkoval Ing. Zbyňkovi Milichovskému, za vedení bakalářské práce a zajištění prostředků k jejímu zpracování, bez kterých by tato práce nemohla vzniknout. Dále bych také rád poděkoval firmě Domat, za poskytnutí podpory potřebné ke zhotovení praktické části.
Obsah 1
Úvod a motivace ....................................................................................................... 8
2
Popis řešeného problému .......................................................................................... 9
3
Návrh řešení ............................................................................................................ 10 3.1
4
5
Komunikační protokol ..................................................................................... 10
3.1.1
Modbus RTU ............................................................................................ 10
3.1.2
SSCP ......................................................................................................... 12
3.2
PLC Domat mark150/485s ............................................................................... 12
3.3
Pokojový termostat UI010 ............................................................................... 14
3.4
Software ........................................................................................................... 15
3.4.1
Merbon IDE .............................................................................................. 15
3.4.2
Microsoft Visual Studio 2012 ................................................................... 15
3.4.3
RcWare Vision .......................................................................................... 16
Analýza ................................................................................................................... 18 4.1
Regulace teploty ............................................................................................... 18
4.2
Ovládání rolet ................................................................................................... 19
4.3
Ovládání osvětlení ............................................................................................ 20
4.4
Vizualizace C# ................................................................................................. 20
4.4.1
Funkční požadavky ................................................................................... 20
4.4.2
Nefunkční požadavky ............................................................................... 21
4.4.3
Use case diagram ...................................................................................... 21
4.4.4
Class diagram ............................................................................................ 22
Realizace ................................................................................................................. 23 5.1
Aplikace pro PC ............................................................................................... 23
5.1.1
Implementace komunikačního protokolu ................................................. 28
5.1.2
Synchronizace vláken ............................................................................... 29
5.2
Aplikace pro PLC ............................................................................................. 30
5.3
Vizualizace RcWare ......................................................................................... 32
5.4
Webový server PLC ......................................................................................... 32
5.5
Předváděcí panel .............................................................................................. 34
6
Testování ................................................................................................................. 36
7
Srovnání .................................................................................................................. 37
8
Závěr ....................................................................................................................... 38
9
Seznam použité literatury ....................................................................................... 39
10 Seznam obrázků ...................................................................................................... 40 11 Seznam použitých zkratek ...................................................................................... 41
12 Přílohy..................................................................................................................... 42 12.1
Obsah přiloženého CD ................................................................................. 42
1 Úvod a motivace Úvodem bych chtěl říci, že v dnešní počítačové době, kde lidský faktor v obsluze a řízení strojů čím dál více ubývá. Kde začíná většinu procesů řídit počítač, který pracuje s vyšší spolehlivostí bez nutnosti přestávek a celkově zajišťuje vyšší efektivitu práce. Zároveň je dnes kladen vetší důraz na pohodlí lidí ať už obsluhy různých strojů, správce domů, obsluh kotelen a v neposlední řadě nájemníků bytů. Všechno obsáhl obor měření a regulace, který se zabývá řízením a celkovým automatizováním procesů. Setkáme se s ním téměř ve všech oborech. Pro toto řízení je většinou používaný programový automat PLC, který v kombinaci s různými druhy relé komplexně ovládá celou řadu procesů nutných pro běh například obchodního centra. Pro jeho ovládání se používá počítač, který obsahuje aplikaci pro řízení. Vše lze tedy pohodlně ovládat od počítače.
Téma mé bakalářské práce vzniklo z kombinace výuky programování desktopových aplikací na vysoké škole a mé praxe, kterou jsem absolvoval v létě 2015 ve firmě Electro Enterprises a.s. na oddělení měření a regulace, kde jsem se s tímto tématem setkal. Na základě této praxe a po dohodě s vedoucím oddělení jsem si vybral toto téma.
Cílem této práce bude tedy vytvoření ovládacího software jak pro PLC, tak pro PC. Aplikace bude vytvořena prostřednicvím programovacího jazyka C# a bude možné PLC řídit buď ručně, nebo ho přepnout do automatického režimu, který bude řídit ovládání na základě nastavených hodnot. Jako další bude třeba vytvořit software pro PLC Domat mark150/485s v prostředí Merbon IDE. Následně bude pro srovnání vytvořena vizualizace v programu RcWare Vision a bude vytvořen i webový server, který nabízí samotné PLC.
8
2 Popis řešeného problému Celé řešení ovládání bytu lze rozdělit na několik stěžejních částí. Jako první část důležitou pro samotnou demonstraci funkce vizualizace je třeba vytvořit plán zapojení samotného předváděcího panelu. Následně je třeba vytvořit předváděcí panel podle schéma zapojení. Veškeré periferie jsou připojeny k PLC a umístěny na DIN lištu. Další krok spočívá v napsání samotného programu pro PLC. Program ošetřuje všechny stavy, které by mohly nastat v bytě: řídí topení, chlazení, žaluzie a světla. Program je schopen zpracovávat a předávat data samotné vizualizaci. Dále obsahuje všechny poruchy a na jejich základě popřípadě odpojí dané zařízení a zasignalizuje uživateli. Hlavní úkol v praktické části spočívá v naprogramování aplikace v C#. Aplikace by měla zajištovat komunikaci se stanicí, měla by uživateli přehledně zobrazovat aktuální stav všech zařízení, indikovat poruchy (včetně možnosti jejich resetu) a graficky zobrazovat procentuální chod zařízení. Další nedílnou funkcí je konfigurace parametrů připojení, aby uživatel mohl v případě potřeby nastavit IP adresu atd. Největší problém této části spočívá v paralelním programování a synchronizací vláken. Této části se budu věnovat podrobněji v dapší části. Poslední částí je srovnání s ostatnímy možnostmi vizualizace vhodnými pro byty. Samotná vizualizace v programu RcWare Vision bude obsahovat podobné funkce jako v aplikaci napsané v jazyce C#. Webserver stanice má omezené možnosti vizualizace, takže bude obsahovat pouze základní ovládání.
9
3 Návrh řešení Tato kapitola obsahuje teoretické informace o použitých zařízeních včetně výběru vhodného komunikačního protokolu.
3.1 Komunikační protokol V současnosti je již většina PLC (Programmable Logic Controller) vybavena Ethernetovým portem a využívá ho ke komunikaci s počítačem. Zastaralejší sériové rozhraní se již moc nepoužívá. Z hlediska počítačových sítí bývá nejčastěji využívána hvězdicová topologie.
Obrázek 1: Hvězdicová topologie sítě
Jednotlivé počítače nebo PLC jsou vždy připojeny do jednoho bodu, nejčastěji switche. Tyto switche bývají propojeny navzájem a může tak vzniknout hvězdicová struktura sítě. Stanice často mívají přístup na Internet, aby byla možná jejich vzdálená správa.
3.1.1 Modbus RTU Modbus je otevřený protokol, který se využívá pro komunikaci mezi zařízeními, kterými například jsou PLC, dotykové displeje, rozšiřující moduly atd. Protokol umožnuje přenášet data po různých sběrnicích na principu předávání zpráv mezi klientem a serverem. 10
Na každé sběrnici je jedno master zařízení, které posílá dotazy ostatním zařízením, které jsou slave. V pozici master jsou nejčastěji řídící prvky a v roli slave jsou ovládané prvky. „Protokol Modbus definuje strukturu zprávy na úrovni protokolu (PDU – Protocol Data Unit) nezávisle na typu komunikační vrstvy. V závislosti na typu sítě, na které je protokol použit, je PDU rozšířena o další části a tvoří tak zprávu na aplikační úrovni (ADU – Application Data Unit).“[2] „Kód funkce udává, jaký druh operace slave má provést. Rozsah kódů je 1 až 255, přičemž kódy 128 až 255 jsou vyhrazeny pro oznámení záporné odpovědi. Některé kódy funkcí obsahují i kód podfunkce upřesňující blíže požadovanou operaci. Obsah datové části zprávy poslané masterem slouží klientovi k uskutečnění operace určené kódem funkce. Obsahem může být například adresa a počet vstupů, které má klient přečíst nebo hodnota registrů, které má klient zapsat. U některých funkcí nejsou pro provedení operace zapotřebí další data a v tom případě může datová část ve zprávě úplně chybět. Zabezpečení je CRC pro RTU mód a LRC (kontrolní součet) pro ASCII mód.“[2]
Obrázek 2: Zapojení zařízení master-slave. [0]
Modbus preferuje sériovou komunikační sběrnici standardu RS485, preferovaný režim sériové linky je 19200 baudů, 8 datových bitů a sudá parita. V našem případě budeme využívat Modbus RTU. V režimu RTU se 8 bitový byte vysílá jako jeden znak, integrita je zajištěna kontrolním součtem a pomocí paritního bitu. Časování a definice protokolu zajišťuje rychlou a spolehlivou komunikaci po sběrnici RS485, aniž by byly kladeny 11
přehnané nároky na připojená zařízení. Díky těmto vlastnostem je tento protokol jeden z nejvyužívanějších pro automatizaci.[2]
3.1.2 SSCP Protokol SSCP je použit pro konfiguraci, programování a přenos procesních dat. Díky autentizaci je vhodný pro přenos přes Internet. To umožňuje mimo jiné i přehrávání aplikačních programů na dálku. Nechybí ani podpora přímého zápisu do databáze Merbon DB a podpora proxy serveru, který umožňuje komunikaci s podstanicemi i do sítí, v nichž není možné mapování portů (NAT) nebo přístup přes VPN. Komunikace je zajištěna na transportní vrstvě. Bezpečnost je zajištěna přihlášením do zařízení ve 3 úrovních (engineering, full control, read-only). Na základě těchto úrovní je možné rozlišit uživatele a tím i jejich práva.[3]
Obrázek 3: Schéma TCP/IP modelu [0]
Každé proměnné je přiřazeno ID (4 bajty unsigned int), které se při změnách v programu nemění. Na základě tohoto ID pak můžeme pracovat s konkrétní proměnnou z počítače prostřednictvím tohoto protokolu. [3]
3.2 PLC Domat mark150/485s Tato programovatelná stanice je vybavena procesorem ARM Cortex M4 a operačním systémem FreeRTOS. Umožňuje řízení menších aplikací. Obsahuje čtyři analogové vstupy, čtyři digitální vstupy a tři digitální výstupy a je vybavena třemi čítacími vstupy. 12
Dále disponuje Ethernetovým portem a M-Bus rozhraním pro připojení až deseti měřičů. Tato varianta je navíc od stanice mark 150s vybavena také RS485, přes kterou je možné připojit další I/O moduly nebo ovladače.[4]
Obrázek 4: PLC Domat mark150/485s [4]
„Tato stanice je vhodná pro odečítání měřičů tepla, vody, elektrické energie, plynu atd. s komunikací M-Bus nebo s impulsním výstupem. Volně programovatelné jednotky pro systémy VVK a jiné aplikace s místním webovým serverem. a prezentace dat po síti.
Sběr, zpracování
Při uživatelském naprogramování převodník protokolů
s možností prezentace dat.“ [4] „Podstanice obsahuje operační systém FreeRTOS, který spouští Merbon runtime s aplikací. Lze využít také hodiny reálného času zálohované baterií, paměť Flash s operačním systémem, aplikací, dalšími daty (časové programy, nastavené hodnoty atd.) a watchdog.“ [4] Aplikace se tvoří a nahrává ve vývojovém prostředí Merbon IDE. Využívá se programovacího jazyka FUPLA (funkční bloky) nebo ST (strukturovaného textu). Limity velikosti aplikace jsou závislé na počtu fyzických a softwarových datových bodů. Pro vzdálený přístup a ovládání stanice obsahuje webový server. Webové stránky se tvoří v Merbon HMI editoru – aplikaci, která je součástí balíku vývojových programů. Nahrání definice webu se následně provádí pomocí Merbon IDE.
13
3.3 Pokojový termostat UI010 Univerzální komunikativní ovladač a čidlo teploty pro řízení topení, vzduchotechniky a chlazení. Tento přístroj komunikuje se stanicí prostřednictvím
otevřeného
komunikačního protokolu MODBUS RTU. Rozsah měřených teplot integrovaného čidla je -20 až +70 °C. Nasnímané a zadané hodnoty jsou odesílány na sběrnici, kde je odečítá nadřazený systém.[5] Ovladače snímají teplotu, příp. relativní vlhkost v místnosti, korekci teploty otočným knoflíkem a požadovaný provozní stav, který se nastavuje stiskem tlačítka nebo v menu. V konfigurovatelném menu je možné zobrazit a nastavit základní hodnoty, kterými jsou požadovaná teplota, korekce teploty, čas, požadovaná teplota pro noc, požadovaná teplota pro den, provozní režim, časový program atd.[5] Požadované funkce se konfigurují přes rozhraní RS485 pomocí programu ModComTool. Jako rozhraní mezi počítačem a sběrnicí RS485 se používá převodník USB/485, typ M080, nebo jakýkoli převodník na RS485.[5]
Obrázek 5: Pokojový ovladač Domat UI010 [5]
14
3.4 Software 3.4.1 Merbon IDE Hlavní vývojové prostředí pro tento nový druh stanic. Obsahuje I/O editor, grafický editor funkčních bloků (FBD), editor strukturovaného textu (ST) a kompiler (Merbon IDE).
Obrázek 6: Vývojové prostředí Merbon IDE [0]
Spolu s vývojovým prostředím je obsažen Merbon HMI editor webových stránek a LCD menu. Samotný program se skládá z funkčních bloků nebo funkcí, které jsou uloženy v knihovnách. Dále umožňuje vytvoření vlastních funkčních bloků a funkcí. Je možné z nich vytvořit vlastní knihovnu. Základní knihovny obsahují funkce analogové i digitální, matematické bloky (včetně goniometrických funkcí), časové programy, alarmové bloky a bloky s funkcemi VVK. Program lze sestavit také ve strukturovaném textu (ST) nebo kombinaci obou jazyků.
3.4.2 Microsoft Visual Studio 2012 Visual Studio je jedním z nejpopulárnějších vývojových prostředí pro programování. S tímto vývojovým prostředí jsem se setkal při studiu na vysoké škole. Do Visual studia jsou přímo zabudovány šablony pro jazyky C/C++, Visual Basic NET a C#. Dále jsou zde podporovány i další programovací jazyky pro programování desktopových, ale i webových aplikací.
15
Visual Studio také umožňuje debugování programu, sledování proměnných, umisťování breakpointů pro zastavování při debugování. Další důležitou funkcí, kterou jsem hojně využil při tomto programování je sledování jednotlivých vláken za chodu aplikace. Další potřebnou funkcí je vytvoření různých druhů databází pro použití ve vytvořených aplikacích.
Obrázek 7: Visual Studio 2012 [0]
Na tomto obrázku je ukázka rozvržení vývojového prostředí, na jednotlivých záložkách jsou formuláře a třídy, které jsme si vytvořili. Na pravé straně nalezneme vlastnosti jednotlivých prvků, kde si můžeme nastavit atributy od velikosti prvku až po jejich chování.
3.4.3 RcWare Vision RcWare Vision je vizualizační systém využívající dispečerské řízení a sběr dat - SCADA (supervisory control and data acquisition) s rozsáhlými možnostmi integrace. Momentálně využívá nejnovějších softwarových nástrojů a komunikačních protokolů. Poskytuje tedy plnou podporu pro stávajícími systémy a nabízí výhody pokročilého síťování subsystémů, stanicí pro sběr dat a řídicích stanic.[6] Sestavovatelnost systému usnadňuje postupné budování dispečinků od nejjednodušší vizualizace naměřených hodnot po distribuované integrované systémy. Systém nabízí vysokou spolehlivost, rychlé vytváření aplikací a snadné nastavování i pro méně 16
pokročilé uživatele. Licenční politika zpřístupňuje systém dokonce od velmi malých zařízení (o několika desítkách datových bodů). Zatímco pro rozsáhlé projekty existuje nákladnější licence.[6] RcWare Vision podporuje operační systémy MS Windows NT/2000/XP/7/8. Prostředí aplikace se jednodušše ovládá, obsahuje všechny nástroje a prostředky pro méně zkušené uživatele.[6]
Obrázek 8: Vizualizace RcWare Vision [0]
17
4 Analýza Předmětem analýzy je popsání programu včetně jeho funkcí, které bude uživateli nabízet. Po spuštění programu se objeví hlavní okno, které zobrazuje půdorys bytu včetně signalizace stavu rolet, světel, topení a chlazení, a to pro každou místnost. Výkon zařízení je znázorněn 0 – 100 %. Nadále je v každé místnosti umístěn prvek hlásící aktuální teplotu v místnosti a venku, včetně popisku v jakém stavu se nachází řízení teploty v dané místnosti. V dolním levém rohu nalezneme poruchové stavy zařízení, které signalizují normální stav zeleným rámečkem s nápisem OK. V případě, že nastane porucha některého zařízení je čtvereček změněn na barvu červenou. Poruchový stav je nadále signalizován i přes to, že porucha již pominula, je třeba provést reset poruchy tlačítkem. Dalším důležitým prvkem umístěným v hlavním okně je lišta v horní části. Obsahuje položky Soubor, tato položka nadále obsahuje položku pro vypnutí programu, dále Nastavení komunikace, kde zadáme IP adresu zařízení včetně přihlašovacího jména a hesla, dále Archiv hodnot, kde získáme přístup ke grafům znázorňujícím průběhy jednotlivých proměnných v námi zvoleném časovém úseku. Poslední záložka je O aplikaci, kde jsou uvedeny informace o verzi atd. V každé místnosti je umístěno tlačítko, které spouští okno, kde nalezneme aktuální parametry místnosti, kterými jsou režim, aktuální teplota, požadovaná teplota komfortu, požadovaná teplota útlumu a korekce. Po každé změně v tomto okně, aby se změna provedla, je třeba vše potvrdit tlačítkem. Důležitou částí aplikace je prohlížení uložených hodnot v archívu. Po kliknutí na zvolenou záložku si nastavíme datum a čas od a do kdy, chceme hodnoty vypsat. Po odeslání se zobrazí informace o počtu hodnot a také jednotlivé checkboxy, kde každý reprezentuje jednu proměnnou, jejich zaškrtnutím vybereme danou proměnnou do grafu. Po výběru hodnot se vykreslí graf, kde jsou barevně odlišeny různé proměnné. Pro větší přehlednost je však vhodnější vykreslovat proměnné zvlášt.
4.1 Regulace teploty Pokojová teplota je v každé místnosti řízena samostatně na základě údajů z termostatu Domat UI010. Termostat je osazen v každé místnosti a připojen ke stanici přes RS485 prostřednictvím komunikačního protokolu Modbus. 18
V každé místnosti bude možnost prostřednictvím vizualizace nebo již zmíněného ovladače nastavit čtyři režimy – automaticky, vypnuto, komfort a útlum. Samotná volba režimu bude implementována proměnnou typu int, která bude nabývat hodnot od nuly do tří, podle zvoleného režimu. Automatický režim bude řízen časovým programem, implicitně nastaveným na 22°C od 8:00 do 20:00 a 18°C přes noc. Časový program bude nastaven v programu pro PLC, měnit pujde pouze přehráním softwaru stanice. Další režimy Komfort a Útlum budou pevně nastaveny prostřednictvím pokojového ovladače nebo vizualizace. V každé místnosti je možné mít nastaven pouze jeden režim, ale může být v každé místnosti jiný. Poslední režim Vypnuto je nastaven tak, aby v pokoji i při vypnutém topení neklesla teplota pod 7°C a nedošlo k zamrznutí v zimě. Topení v místnostech bude zajištovat podlahové topení a chlazení bude zajíštovat jedna klima jednotka.
4.2 Ovládání rolet V každé místnosti, kde jsou okna, budou instalovány rolety. Ty budou ovládány pouze z vizualizace nebo z webového rozhraní.
19
4.3 Ovládání osvětlení Světla bude možné ovládat v každé místnosti prostřednictvím vizualizace.
4.4 Vizualizace C# V této kapitole jsou shrnuty všechny požadavky na aplikaci, zajišťující ovládání a vizualizaci bytu. Aplikace umožňuje kompletní řízení všech periferií. Dále kapitola obsahuje diagramy, které znázorňují funkci a možnosti aplikace. Proto, aby byla zajištěna schopnost formulářové aplikace reagovat na změny proměnných z PLC, je nutné využít principů paralelního programování, konkrétně multi-threadingu. V hlavním vlákně poběží hlavní formulář se všemi funkcemi zobrazování. V jeho inicializaci budou dále vytvořena další vlákna. Druhé vlákno bude zajišťovat každou jednu sekundu neustálé vyčítání hodnot ze stanice a zapisování hodnot do proměnných. Vlákno bude aktivní po celou dobu běhu programu. Dále bude součástí tohoto vlákna zapisování hodnot do textového souboru pro následné vykreslování grafů hodnot. Do souboru bude implicitně zapisováno každých deset sekund. Třetí vlákno má na starost každou sekundu aktualizovat vyčtené hodnoty z prvního vlákna a následně na ně reagovat. Zejména se jedná o předávání hodnot formulářovým komponentám a jejich další činnosti. Například zobrazování alarmů, vizualizace stavu rolet, světel, topení, chlazení atd. [10] .
4.4.1 Funkční požadavky ·
Uživatel má možnost nastavení komunikačních parametrů.
·
Aplikace přehledně zobrazuje všechny hodnoty a hlásí poruchy zařízení.
·
Uživatel bude mít možnost volit požadovanou teplotu v místnostech, jednotlivé režimy a korekci.
·
Aplikace bude ukládat všechny hodnoty do databáze, na základě požadavků uživatele.
20
·
Aplikace bude umožňovat zobrazovat požadované hodnoty v požadovaných časech v grafu.
4.4.2 Nefunkční požadavky ·
Aplikace bude kompatibilní s Microsoft Windows.
·
Aplikace bude kompatibilní s dotykovou obrazovkou s OS Windows.
4.4.3 Use case diagram Tento diagram případů užití zobrazuje chování aplikace a popisuje funkcionalitu systému. Vypovídá o tom, co bude tato vizualizace dělat.
Obrázek 9: Use case diagram aplikace [0]
21
4.4.4 Class diagram
Obrázek 10: Class diagram [0]
22
5 Realizace 5.1 Aplikace pro PC Aplikace je realizována v programovacím jazyce C# ve vývojovém prostředí Microsoft Visual studiu 2012, které se jeví pro tento typ programování jako ideální, díky velkému množství funkcí při debuggování programu. V první řadě je třeba si ujasnit rozvržení a design formulářového okna, aby bylo ovládání jednoznačné a nepříliš komplikované. Na podkladu, což je vlastní půdorys bytu, jsou vhodně umístěny komponenty, vztahující se k ovládání jednotlivých periferií v bytě. V každé místnosti je jeden textbox zobrazující právě aktuální teplotu v prostoru, popisek, který oznamuje, v jakém režimu se místnost nachází a tlačítko, otevírající vlastnosti daného prostoru. Pod touto skupinou komponent jsou umístěny dva pictureboxy, měnící svou barvu podle aktuálního výkonu topení/chlazení. [10] pictureBox1.Image = null; Bitmap b = new Bitmap(pictureBox1.Width,pictureBox1.Height); int pocetSloupcu = (int)vystupTop / 2;
for (int i = 1; i <= pocetSloupcu; i++) { for (int j = 1; j <= 20; j++) { b.SetPixel(i, j, Color.Red); } } pictureBox1.Image = b;
Takto je každý okamžik dopočítáváno, kolik pixelů z komponenty bude podbarveno červenou barvou. Červená barva symbolizuje topení. U chlazení je kód velmi podobný, akorát je dopočítáván zprava a je podbarvován modře. Tato funkce slouží uživateli, jako přehled o tom na jaký výkon běží topení/chlazení.
Obrázek 11: Ukázka při 100% výkonu topení [0]
23
Další nedílnou součástí ovládání je ovládání rolet a světel. Ovládání světel funguje tak, že po stisku tlačítka Zap, se přes komunikační protokol nastaví hodnota v PLC na true, sepne dané relé a na základě výstupního stavu stanice se vyčte s ostatními hodnotami, že světlo svítí a zobrazí se indikátor světla ve vizualizaci. V případě vypínání světla se postupuje stejně, akorát se nastaví proměnná na false. Ovládání rolet, funguje na podobném principu. V případě, že zadáme povel stiskem příslušného tlačítka, odešle se opět příkaz pro nastavení dané proměnné na true a maximálně do jedné sekundy zareaguje vizualizace na změnu stavu stanice a zobrazí danými pictureboxy současný stav, kde se rolety nachází spolu s odblokováním tlačítka na změnu stavu. [10] Poslední důležitou částí v tomto okně je signalizace poruch spolu s hromadným resetem.
Obrázek 12: Signalizace poruch zařízení [0]
Celá signalizace poruch je navázána na poruchové stavy ve stanici. V případě, že přijde porucha nějákého zařízení z této tabulky, je nyní zelený nápis OK změněn na červenou barvu a takto setrvává do té doby, dokud neustane poruchový stav a nadále dokud není zresetován tlačítkem Reset poruch. Po resetu se vrátí do stavu OK. Aplikace je nadále vybavena lištou s tlačítky, které umožňují další funkce této vizualizace. Jako první je záložka Komunikace, která skrývá nastavení komunikačních parametrů se stanicí. Je zde možnost nastavit IP adresu stanice, přihlašovací jméno a heslo. Po každé změně v těchto parametrech, je třeba provést restart aplikace.
24
Obrázek 13: Nastavení komunikace [0] Při každém zapnutí programu dochází ještě před inicializací komponent k načtení těchto parametrů ze souboru. private bool loadCommParameters() { try { using (StreamReader sr = new StreamReader("parameters.txt")) { int cnt = 0; while (sr.Peek() >= 0) { if (cnt == 0) adress = sr.ReadLine(); if (cnt == 1) login = sr.ReadLine(); if (cnt == 2) password = sr.ReadLine(); cnt++; } cnt = 0; } return true; } catch (Exception e) { return false; } }
Touto metodou je provedeno nastavení příslušných proměnných, které jsou důležité při spojení se stanicí. V okně výše se provede pouze v případě potřeby přepsání parametrů v souboru. Po opětovném spuštění aplikace budou touto metodou načteny nové parametry. 25
Poslední funkcí této vizualizace je zobrazování archivovaných hodnot ze souboru v zadaném intervalu.
Obrázek 14: Výběr času a parametrů grafu [0]
V horní části je nejprve třeba vybrat časový interval, který chceme zobrazit. Po potvrzení se zobrazí kolik je v daném období archivovaných hodnot. Jako další si příslušnými checkboxy vybereme, jaké proměnné chceme zobrazit na ploše grafu. Většina proměnných je neaktivní a to z toho důvodu, že předváděcí panel neobsahuje takové množství I/O. Proto je nyní výběr omezen pouze na proměnné okolo obývacího pokoje. Hodnoty lze zobrazit pouze z doby, kdy aplikace běžela a archivovala do souboru. Pokud byla z nějákého důvodu neaktivní tyto hodnoty jsou ztraceny a v grafu zobrazeny nebudou.
26
Obrázek 15: Ukázka grafu výkon chlazení [0]
V tomto grafu lze současně vykreslovat teplotu, digitální veličiny (true/false) a také analogové veličiny (0 – 100%).
Obrázek 16: Celkový pohled na rozložení aplikace [0]
27
5.1.1 Implementace komunikačního protokolu Zprostředkování komunikace mezi stanicí a aplikací zajištuje třída Pripojeni, třída obsahuje několik metod. Nejvíce využitá je metoda, která vyčítá požadované proměnné. using (SharkTcpClient tcpClient = new SharkTcpClient(512, TimeSpan.FromSeconds(30),TimeSpan.FromSeconds(30), ProtocolParser.ChecksumType.None)) { tcpClient.Connect(new TcpConnectionParameters(adr, 12346, false)); tcpClient.LoginExtended(1, login, passw, null); DateTime timeStamp; IEnumerable
values; do { tcpClient.ReadVariables(1, ValueTransferFlags.GetAllValues, 10, new VariableDefinition[] { new VariableDefinition(9047, 0, 1), // topeni porucha new VariableDefinition(9046, 0, 1), // chlazeni porucha new VariableDefinition(9052, 0, 1), // rolety porucha new VariableDefinition(9045, 0, 1), // sumarni porucha new VariableDefinition(9063, 0, 4),// aktual teplota obyv. new VariableDefinition(36, 0, 1), // zaluzie obyvak new VariableDefinition(37, 0, 1), // svetlo obyvak new VariableDefinition(57, 0, 4), // vystup topeni new VariableDefinition(58, 0, 4), // vystup chlazeni new VariableDefinition(9087, 0, 4), // rezim obyvak new VariableDefinition(63, 0, 4), // nastav. teplota komfort new VariableDefinition(60, 0, 4), // nastav. teplota utlum }, out timeStamp, out values); int cnt = 0; // Results are in BigEndian foreach (var val in values) { if (BitConverter.IsLittleEndian){ Array.Reverse(val.Data); } if (cnt == 0) alarmtop = Convert.ToBoolean(BitConverter.ToBoolean(val.Data, 0)); if (cnt == 1) alarmchl = Convert.ToBoolean(BitConverter.ToBoolean(val.Data, 0)); . . . if (cnt == 10) nastavKomf = (float)Convert.ToDouble(BitConverter.ToSingle(val.Data, 0));
28
if (cnt == 11) nastavUtlum = (float)Convert.ToDouble(BitConverter.ToSingle(val.Data, 0)); cnt++; } } while(true); Thread.Sleep(1000);
Tato metoda je inicializována ihned po spuštění aplikace ve vlákně th1, samotná metoda se připojí prostřednictvím parametrů, inicializuje se pole hodnot values, a funkce readVariables vyčítá jednotlivé proměnné na základě ID a počtu bajtů, které proměnná zabírá. Pokud jsou všechny hodnoty úspěšně v poli, je třeba u každé proměnné prohodit pořadí bajtů. Následně pomocí tříd Convert a BitConverter převedeme danou proměnnou na požadovaný datový typ. Tento proces je zacyklen a po každém průběhu je vlákno uspáno na jednu vteřinu. V opačném případě, pokud zapisujeme proměnnou do stanice, je třeba nejprve převést hodnotu na pole bajtů pomocí BitConverter.GetBytes, poté provést rotaci bajtů v poli. Následně předat dále pomocí metody WriteVariablesDirectly. using (SharkTcpClient tcpClient = new SharkTcpClient(512, TimeSpan.FromSeconds(30), TimeSpan.FromSeconds(30), ProtocolParser.ChecksumType.None)) { byte[] data; data = BitConverter.GetBytes(number); Array.Reverse(data); tcpClient.Connect(new TcpConnectionParameters(adr, 12346, false)); tcpClient.LoginExtended(1, login, passw, null); tcpClient.WriteVariablesDirectly(1, ValueTransferFlags.UseOffsetAndLength, 0, new RawHiLoValue[] { new RawHiLoValue(new VariableDefinition(id, 0, 4), data) }); }
Tato část kódu je obsažena v metodě ulozPromenouFloat a demonstruje zápis do PLC.
5.1.2 Synchronizace vláken Protože dvě vlákna přistupují ke stejným proměnným, je třeba je nějak řídit. V ideálním případě první vlákno vyčte proměnné po komunikaci a uloží je do námi připravených proměnných. Druhé vlákno přistoupí k proměnným poté a zareaguje na jejich hodnotu (například popisek, barvu, zapíše do textboxu a tak dále). Aby obě vlákna nepřistoupila k proměnné ve stejný čas, před prováděním druhého vlákna je první vlákno zamknuto pomocí funkce lock.
29
5.2 Aplikace pro PLC Aplikace pro PLC je naprogramována ve vývojovém prostředí Merbon IDE. Aplikace umožňuje samostatný chod zařízení v automatickém režimu podle časového plánu, pro který není třeba vzdálené ovládání. To se hodí zejména při nedostupnosti počítače nebo mobilního telefonu. Pro tento regulátor řady Mark se začlo nově využívat výše zmíněné vývojové prostředí, které je poměrně jednoduché na ovládání. Jako první je nutné založit novou sestavu, to provedeme klikem na ikonu Přidat novou sestavu. Po výběru umístění složky se sestavou a pojmenováním je nám nabídnuto, zda chceme sestavu otevřít ve zjednoduššeném módu. Pro základní práci je vhodné vybrat zjednoduššený mód, protože dost věcí si pak program hlídá sám a není potřeba jim věnovat pozornost. V případě volby zjednoduššeného módu je možné po čas programování přepnout do plného režimu, ale zpět již ne. Pro první kroky jsem si tedy vybral mód zjednoduššený. Toto vývojové prostředí nabízí několik možností programování. Konkrétně strukturovaný text a FBD schéma (Function Block Diagram). V našem případě je výhodnější použít funkční bloky, protože již obsahují knihovny přímo určené pro měření a regulaci. Abych mohl začít programovat, je třeba přiřadit PLC, to lze několika způsoby. Prvním a nejpohodlnějším způsobem je UDP broadcast, tato varianta, za předpokladu správně nastaveného síťového připojení vyhledá všechny stanice v síti. Dalšími možnostmi jsou vybrat zařízení manuálně ze seznamu nebo použít parametry pro nahrání ze zadaného rozsahu. Použil jsem tedy možnost první a to UDP broadcast. Po vybrání stanice jako další krok následuje přiřazení interního kanálu stanici pomocí protokolu uPLCInternalBus. A následné přidání samotného zařízení. Po tomto kroku se nám vygenerují všechny proměnné PLC včetně všech vstupů a výstupů. Protože budeme využívat pokojový termostat Domat UI010, je třeba přiřadit ještě jeden kanál využívající protokol Modbus komunikující prostřednictvím sériové linky na portu RS485 (COM2). Poté vybereme konkrétní termostat a vygenerují se nám základní proměnné periferie. [9]
30
Když máme nakonfigurovanou sestavu, můžeme se pustit do programování. Regulace teploty probíhá na základě aktuální teploty v místnosti a požadované teploty podle vybraného režimu. Funkční blok B35 Regulátor topení na základě vstupních parametrů generuje výstupní signál v rozmezí 0 - 100 %, který je následně přiveden na výstup, sloužící jednak jako vstup do vizualizace pro informaci o výkonu a za druhé je přiveden na vstup funkčního bloku B87 pulsně šířková modulace. Blok převádí vstupní signál 0 - 100 % v pulsně šířkovou modulaci, tedy v binární periodický signál, jehož perioda je určena parametrem T a střídá (poměr aktivní části periody k délce periody) vstupní hodnotou IN. Výstup je základním povelem pro spínání podlahového topení. [8] Druhá část regulace teploty se týká chlazení v místnosti. Proces řízení chlazení vychází z aktuální teploty a volené teploty podobně jako u topení. Pro chlazení je použit funkční blok B34 Regulátor chlazení. Tento blok má obdobný výstup 0…100 % jako u topení. Dále zde záleží na způsobu řízení chladící jednotky. Je možné samotnému chladícmu systému předávat analogovou hodnotu 0 – 10V nebo spínat digitální signál reprezentující povel pro chlazení. Vzhledem k absenci analogových výstupů u stanice na předváděcím panelu jsem se rozhodl pro řízení povelem. Jednodušší částí řízení je ovládání světel a rolet. Řízení rolet je zjednodušeno pro demonstraci na panelu. Obě tyto funkce jsou řízeny jednoduše pouze pomocí povelu z webserveru nebo vizualizace a následným převedením na konkrétní digitální výstup. Součástí této sestavy je také FBD schéma poruch a jejich alarmů, které v případě aktivního stavu zablokuje dané zařízení. A drží poruchový stav i v případě, že porucha již pominula. Pro realizaci tohoto problému je vhodné využít funkční blok BD49 Jednoduchá paměť alarmů, který v případě přivedení poruchy na vstup IN, nastaví MEMORY = TRUE, tento stav je držen, dokud nepřijde náběžná hrana RESET. V tomto případě, když je IN= FALSE se výstup MEMORY resetováním nastaví na FALSE. Pokud je IN stále aktivní, nelze jej resetovat vstupem RESET. Poslední etapou této části je nakonfigurování pokojového termostatu. To se provádí prostřednictvím převodníku USB/RS485 M080 a softwaru ModComTools, v prostředí této utility si nastavíme námi vybrané funkce, které požadujeme. Jedná se o nastavování režimu místnosti a aktivování přiřazených symbolů ke konkrétnímu režimu. Následně je třeba si vytvořit skupinu, která bude vyčítat prvky ze zařízení, kterým pak přidělíme proměnné, které budou navázány na již vytvořený program. [9] 31
5.3 Vizualizace RcWare Tento způsob vizualizace je poměrně jednoduchý. Pro editaci odemkneme vizualizaci ikonou zámku v horním panelu a můžeme upravovat rozvržení nebo datové body. Jako první věc si vytvoříme nějáký podklad s půdorysem bytu. Následně se vytvoří datové body. Každý se musí ručně navázat na proměnné z programu Merbon IDE. Po jejich vhodném naparametrizování, začneme vytvářet ovládací prvky vizualizace. V případě zobrazování aktuální teploty je vhodné vložit prvek Zobrazovač hodnoty, kde pouze přiřadíme danou proměnnou. Nastavíme obecné vlastnosti prvku. Po uložení a spuštění komunikace s regulátory je teplota zobrazena. Podobně postupujeme i s ostatními prvky. Do každé místnosti ještě umístíme přepínač režimů, který je také reprezentován prvkem Zobrazovač hodnoty, ale je jinak nastaven, tudíž obsahuje čtyři tlačítka pro přepínání. Dále je v každé místnosti umístěn prvek, který symbolizuje kontrolku. V případě chodu světla nebo rolet svítí zeleně. V opačním stavu je šedý. Tento prvek je překryt neviditelným tlačítkem, které po stisknutí zajistí překlopení stavu. Po navázání všech proměnných na prvky je vizualizace už připravená k použití. Po připojení ke stanici a spuštění komunikace již ovládáme stanici.
5.4 Webový server PLC Tento webový server je vytvářen v programu Merbon HMI, což je součástí samotného Merbon IDE, v kterém se programuje aplikace pro stanici. Vývojové prostředí Merbon HMI nahradilo u nové řady regulátorů starší prostředí HMI Editor. Merbon HMI je jednoduchý webový editor, který funguje na principu WYSIWYG. Webový server neumožňuje takové grafické možnosti, na které můžeme narazit u jiných vizualizačních programů. Jednak je to dáno omezenou pamětí v regulátoru a také možnostmi webu. Samotná práce s tímto editorem je velmi intuitivní a jednoduchá. V první řadě je třeba si připravit samotný design webu. To uděláme umístěním jednotlivých komponent včetně jejich popisů do rozvržení webové stránky. Po umístění všech komponent pro analogové, digitální a poruchové hodnoty, je třeba namapovat proměnné z Merbon IDE k těmto komponentám. Tento krok provedeme připojením daného stavu komponenty k proměnné 32
v IDE prostřednictvím .exs souboru. Po jeho nakonfigurování již u dalších komponent stačí vybírat hledané proměnné ze seznamu. V našem případě bude tento webový server umožňovat zobrazovat aktuální teplotu v místnosti, režim v místnosti a dále požadované hodnoty pro jednotlivé režimy. Dalšími možnostmi tohoto ovládání je ovládat světla a rolety v místnostech. Dále je možné zobrazovat poruchy jednotlivých zařízení včetně možnosti jejich resetu. Po vytvoření následuje export složky s webovými soubory a styly. Tu následně připojíme pomocí Merbon IDE ke zvolené stanici a po nahrání softwaru do stanice provedeme nahrání webových stránek do stanice. Před samotným nahráním webu je možné nastavit uživatelské jméno a heslo, pro vyšší bezpečnost přístupu. Přístup k webovému rozhraní nalezneme na IP adrese stanice ve webovém prohlížeči nebo mobilním telefonu.
Obrázek 17: Webové ovládání bytu [0]
33
5.5 Předváděcí panel Předváděcí panel slouží k demonstraci funkčnosti aplikace. Samotný panel je osazen řídící stanicí, zdrojem 24V DC, relátkami, přepínači a kontrolkami pro signalizaci. Dále je přes rozhraní Modbus připojen pokojový termostat, který symbolizuje ovladač místnosti. Panel obsahuje signalizaci topení a chlazení. Dále jsou umístěny kontrolky, které signalizují světlo v místnosti a rolety na oknech. Přepínače na digitálních vstupech slouží zejména pro simulaci poruch a také pro jejich hardwarový reset.
Obrázek 18: Předváděcí panel [0]
Na předváděcím panelu je umístěna svorkovnice, která slouží k připojení termostatu po RS485. Celá sestava je jištěna hlavním jističem FU1 6B/1.
34
Obrázek 19: Schéma zapojení panelu [0]
35
6 Testování Testování aplikace probíhalo od počátku programování. Ihned po samotném programování byli odzkoušeny všechny funkce nejprve na run-time aplikaci pro simulaci PLC. A později i na zapojeném předváděcím panelu. V průběhu testování se neprojevily žádné větší chyby v aplikaci. Menší problém nastal při ukončování aplikace. Bylo třeba dořešit ukončování vláken, ale po vyřešení se aplikace jeví jako stabilní. Před samotným nasazením do provozu, by bylo vhodné aplikaci otestovat ještě při dělším běhu a při různých kombinacích nenadálých změn. Vzhledem k tomu, že poběží na počítači či tabletu celý den po každý týden v roce bylo třeba ošetřit, aby nedošlo k enormnímu zvětšení souboru s hodnotami. Při příliš velké velikosti by mohlo docházet při vykreslování a zobrazování starých hodnot k zpomalení systému. Tento problém je řešen mazáním záznamů starších než rok. Tímto způsobem může velikost souboru vyrůst na cca 200MB. Však tyto případy, teré by mohli teoreticky nastat nelze v takto krátkém čase ošetřit. Tyto vyjímečné případy, pokud některé nastanou, se budou řešit přímou podporou uživateli. Jinak bych tuto aplikaci považoval za plně funkční a schopnou provozu.
36
7 Srovnání Vzhledem k tomu, že se vizualizační program používá v kombinaci s webovým přístupem, bych nesrovnával webový server a aplikaci. Oba tyto druhy totiž spolu poběží paralelně. Kdybych i přesto měl srovnat jejich klady a zápory, tak u webserveru by jistě kladem bylo to, že je dostupný z webového prohlížeče odkudkoliv. Dálším jeho kladem je i poměrně jednoduchá tvorba. Naopak jeho zápory jsou v omezené paměti a tudíž menších možnostech programátora při vytváření. Nedostatkem je jistě i omezená možnost vizualizace. Všechno je reprezentováno textem popřípadě přepínači. Tento způsob je bezplatný a jednoduchý na tvorbu. Při srovnání RcWare a aplikace v C# jistě stojí zato zmínit, že RcWare nabízí velké možnosti zpracování. Je schopen pracovat s více stanicemi od různých výrobců a podporuje velké množství komunikačních protokolů. Díky těmto vlastnostem je vhodný k umístění na dispečerská pracoviště nebo na velín obchodních domů. Při takovýchto malých vizualizacích přímo pro koncového uživatele bez zaškolení je spíše nevhodný. Dále má poměrně vysoké nároky na výkon a pamět počítače. Navíc je třeba si zakoupit licenci pro užívání. Vytvořená aplikace je situována přímo na požadavky uživatele. Nenabízí žádné zbytečné funkce, které by mohly komplikovat ovládání. Po jejím spuštění je možné ihned ovládat zařízení v bytě. Aplikace přehledně zobrazuje hodnoty v bytě a nabízí jejich jednoduché intuitivní ovládání. Nevýhodou je naopak nutnost znalosti programovacího jazyka a možná větší časová náročnost. Tomu by se dalo předejít vytvořením knihoven pro další práci. Pokud chceme celkově srovnat vytvořenou aplikaci a vizualizaci RcWare, tak z finančního hlediska jasně vychází lépe naprogramovaná aplikace, díky nutnosti zakoupení licence RcWare. Z časového hlediska záleží na rozsahu projektu, pro tento projekt, díky malému množství datových bodů, je jednodušší vytvořit vizualizaci v RcWare. Z hlediska obsluhy uživatele je zajisté jednodušší ovládání prostřednictvím aplikace. Ta nabízí pouze ovládání, zatímco u RcWare je možné po nechtěném odemknutí vizualizace upravovat a editovat datové body a prvky, což může vést k nefunkčnosti systému. 37
8 Závěr Hlavním cílem této bakalářské práce bylo vytvoření funkčního ovládání předváděcího panelu, jenž reprezentoval periferie v bytě. Ovládání mělo být možné prostřednictvím vytvořené aplikace, webového serveru a vizualizace RcWare Vision. Vhodné je použít zejména aplikaci v kombinaci s webovým serverem. Všechny tyto cíle byly splněny a doplněny o jejich srovnání. Navíc byla vytvořena funkce k archivování hodnot a jejich následné vykreslení dle parametrů v grafu. Tato možnost se hodí zejména, pokud chceme dohledat hodnoty v naší nepřítomnosti. Bohužel, žádná práce není dokonalá a tím pádem samotná vizualizace by potřebovala ještě pár drobností doladit. To se týká zejména vykreslování hodnot do grafu. Určitě by chtělo do budoucna vytvořit nějáké dynamické popisování os grafu, které by se měnilo se změnou typu proměnné. Jako další by také stálo za to, zlepšit kvalitu reprezentace bodu v grafu. Ale vzhledem k tomu, že toto nebyl primární cíl této práce, tak tomuto problému nebyla věnována větší pozornost. Při budoucím možném nasazení této aplikace do provozu, by bylo vhodné rozšířit možnosti o možnost ovládání z chytrého telefonu. Bakalářská práce pro mě měla značný přínos zejména ohledně komunikace mezi programovacím jazykem C# a samotným zařízením prostřednictvím komunikačního protokolu. Vytvořil jsem si při této příležitosti třídu, použitelnou při následujícím programování ovládání v možném zaměstnání. Dále mi umožnila podrobněji porozumnět měření a regulaci v obytných domech. V neposlední řadě mi zvětšila obzory v programování PLC. Tato bakalářská práce bude mít dozajista přínos pro ty, kteří se budou chtít něco dozvědět o komunikaci přes komunikační protokol SSCP.
38
9 Seznam použité literatury [0]
Vlastní zdroj
[1]
Modbus [online]. [cit. 2016-05-10]. Dostupné z: http://modbus.org
[2]
Energocentrum Plus s.r.o. SSCP Shark Slave Communication Protocol: Protocol description. Praha.
[3]
DDC regulátory: mark150s mark150/485s. Domat Control System [online]. [cit. 2016-05-10]. Dostupné z: http://domat-int.com/wpcontent/uploads/domat_mark150s_cz.pdf
[4]
Komunikativní pokojové ovladače a čidla. Domat Control System [online]. [cit. 2016-05-10]. Dostupné z: http://domat-int.com/wpcontent/uploads/domat_UI0xx_cz.pdf
[5]
RcWare Vision. Domat Control System [online]. [cit. 2016-05-10]. Dostupné z: http://domat-int.com/wp-content/uploads/rcware-vision-function-overviewcz.pdf
[6]
SCADA software [online]. [cit. 2016-05-10]. Dostupné z: http://scada.fultek.com.tr/Modbus_RTU-TCP_Master_En.html
[7]
The TCP/IP model [online]. [cit. 2016-05-10]. Dostupné z: https://technet.microsoft.com/en-us/library/cc786900(v=ws.10).aspx
[8]
ŠMEJKAL, Ladislav a Marie MARTINÁSKOVÁ. PLC a automatizace. Praha: BEN - technická literatura, 1999. ISBN 80-86056-58-9.
[9]
VALTER, Jaroslav. Regulace v praxi, aneb, Jak to dělám já. Praha: BEN technická literatura, 2010. ISBN 978-80-7300-256-5.
[10]
KAINKA, Burkhard. Měření, řízení a regulace pomocí PC: [vývoj hw a sw pro praxi]. Praha: BEN - technická literatura, 2003. PC & elektronika. ISBN 80-7300089-X.
39
10 Seznam obrázků Obrázek 1: Hvězdicová topologie sítě ............................................................................ 10 Obrázek 2: Zapojení zařízení master-slave. [0] .............................................................. 11 Obrázek 3: Schéma TCP/IP modelu [0] ......................................................................... 12 Obrázek 4: PLC Domat mark150/485s [4] ..................................................................... 13 Obrázek 5: Pokojový ovladač Domat UI010 [5] ............................................................ 14 Obrázek 6: Vývojové prostředí Merbon IDE [0] ............................................................ 15 Obrázek 7: Visual Studio 2012 [0] ................................................................................. 16 Obrázek 8: Vizualizace RcWare Vision [0] ................................................................... 17 Obrázek 9: Use case diagram aplikace [0]...................................................................... 21 Obrázek 10: Class diagram [0] ....................................................................................... 22 Obrázek 11: Ukázka při 100% výkonu topení [0] .......................................................... 23 Obrázek 12: Signalizace poruch zařízení [0] .................................................................. 24 Obrázek 13: Nastavení komunikace [0].......................................................................... 25 Obrázek 14: Výběr času a parametrů grafu [0]............................................................... 26 Obrázek 15: Ukázka grafu výkon chlazení [0] ............................................................... 27 Obrázek 16: Celkový pohled na rozložení aplikace [0] .................................................. 27 Obrázek 17: Webové ovládání bytu [0] .......................................................................... 33 Obrázek 18: Předváděcí panel [0] ................................................................................... 34 Obrázek 19: Schéma zapojení panelu [0] ....................................................................... 35
40
11 Seznam použitých zkratek PLC - Programmable Logic Controller PC – Personal Computer IDE - Integrated Development Environment PDU - Protocol Data Unit ADU - Application Data Unit CRC - Cyclic Redundancy Check LRC - Longitudinal Redundancy Check ASCII - American Standard Code for Information Interchange VPN - Virtual Private Network FUPLA – Function Plan USB – Universal Serial Bus LCD - Liquid Crystal Display SCADA - Supervisory Control And Data Acquisition FBD – Function Block Diagram UDP - User Datagram Protocol WYSIWYG - What You See Is What You Get
41
12 Přílohy 12.1 Obsah přiloženého CD Na přiloženém CD se v kořenovém adresáři nachází tato bakalářská práce ve formátu bakalarska_prace.pdf spolu se složkou WinApp obsahující program v C#, PLCApp obsahující program pro stanici a Webserver, kde jsou umístěny webové stránky stanice. Dále je zde umístěna složka Foto, kde najdeme všechny obrázky a diagramy obsažené v bakalářské práci.
42