Návrh aplikace pro dotykové nástěnné ovladače



Podobné dokumenty
Komunikace AMREG s řídicími systémy AMiT (DB-Net)

Komunikace AMREG v síti MODBUS TCP

Alternativní použití analogových vstupů

Průvodce první aplikací

Provozní deník v řídicích systémech

Práce s textovými proměnnými v DetStudiu

Beznárazové přepnutí aplikace

Firemní aplikace pro nástěnný ovladač AMR-OP60. Aplikace disponuje automatickým přepínáním zobrazení vnitřní / venkovní teploty.

Komunikace v síti ARION definice tabulkou

Vytvoření tiskové sestavy kalibrace

Reliance 3 design OBSAH

Kapitola 11: Formuláře 151

Uživatelský manuál aplikace. Dental MAXweb

Skriptování v DetStudiu

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

Parametrizace webového serveru

Aplikační profily v PLC Tecomat

Komunikace se snímačem vlhkosti a teploty po protokolu Modbus RTU - z IDEC SmartAxis Touch

WDLS (BUILDINGDESIGN)

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

PocketHome R CENTRÁLNÍ OVLÁDÁNÍ VYTÁPĚNÍ VAŠEHO DOMU VIZUÁLNÍ PŘÍRUČKA K SW PRO PDA

Komunikace v síti MP-Bus

My si nyní takovou sestavu vytvoříme na příkladu jednoduché kanceláře. Začneme vytvořením takové kanceláře.

APLIKAČNÍ POSTUP. Ukázka komunikace s bezdrátovou bránou thermokon STC65-RS485 Modbus.

KOMUNIKACE PC DAT 400/500. přes USB programem INOVATION

Postupy práce se šablonami IS MPP

Stručný postup k použití programu PL7 Junior (programování TSX Micro)

Pokyny pro obsluhu programu. EZZ01 File reader 1.3

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

Návod k softwaru. Získání licence. vojtech.vesely@catania.cz

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro administrátory. Verze 1.

Pro definici pracovní doby nejdříve zvolíme, zda chceme použít pouze informační

Webové stránky. 4. Tvorba základní HTML webové stránky. Datum vytvoření: str ánk y. Vytvořil: Petr Lerch.

Soubory s reklamami musí mít stejný název jako ta výše uvedené. Stávající soubory reklam budou přepsány.

Práce s programem MPVaK

Instalace SQL 2008 R2 na Windows 7 (64bit)

Rámcový manuál pro práci s programem TopoL pro Windows

1. Základní pojmy, používané v tomto manuálu. 2. Stránky

František Hudek. červen ročník

Voltampérová charakteristika diody

Přechod z AutoCADu na CADKON+

aneb velice zjednodušené vysvětlení základních funkcí a možností systému Vypracoval: Tomáš Dluhoš tomas.d@centrum.cz

1. Instalace programu LUPA

Kudyšel comfort. Manuál k programu

Instalace SW VIS z internetu - Opakovaná instalace, instalace upgrade

CENTRÁLNÍ REGULAČNÍ SYSTÉM PŘÍRUČKA UŽIVATELE

Konfigurátor Duo. Manuál pro konfiguraci systémů DUO Standard / Basic. Obsah + vybraná nastavení: - 1 -

František Hudek. březen ročník. Informační a komunikační technologie OS WINDOWS Hlavní panel

Vlastnosti dokumentu/stránky

Manuál pro mobilní aplikaci Patron-Pro. verze pro operační systém Symbian

TACHOTel manuál 2015 AURIS CZ

František Hudek. duben Informační a komunikační technologie MS Excel Úvod do Excelu III

Nahrávání image flash do jednotek APT81xx, PPC81xx

Ing. Michal Martin. Spojení PLC CLICK s NA-9289

II. Elektronická pošta

Microsoft Word - Styly, obsah a další

teploty po protokolu Modbus RTU

František Hudek. duben ročník

Návod na obsluhu nástěnného ovladače NOA70

Uživatelský manuál. A4000 Download

OVLÁDÁNÍ FAN COIL JEDNOTKY 02

Po prvním spuštění Chrome Vás prohlížeč vyzve, aby jste zadali své přihlašovací údaje do účtu Google. Proč to udělat? Máte několik výhod:

DLS V v1.2. Nové funkce. Používání programu DLS V

Ovládání MZK Terminalu je jednoduché a intuitivní. Terminal se ovládá pěti tlačítky.

Měření teploty a odporu

STATISTICA Téma 1. Práce s datovým souborem

Vizualizace a evidence výroby a prostojů

Studijní skupiny. 1. Spuštění modulu Studijní skupiny

Obsah. při vyšetření pacienta. GDT souboru do programu COSMED Omnia GDT souboru z programu COSMED Omnia a zobrazení výsledků měření v programu MEDICUS

Systém sběru dat z RS232 do MS Excel

4.2. Odhlásit se Šifrování hesla Sepnutí výstupních relé Antipassback Zobrazení všech dat...

Vytvoření uživatelské šablony

MIDAM Verze 1.1. Hlavní okno :

Lokality a uživatelé

Komunikace v síti LON

František Hudek. leden Informační a komunikační technologie ZONER Práce s textem. Tvorba a editace odstavcového a uměleckého textu.

Návod na nastavení bezdrátového routeru Asus WL-520g Deluxe v režimu klient

Mobilní aplikace. Uživatelský manuál

Manuál k programu KaraokeEditor

3 Makra Příklad 4 Access Ve vytvořené databázi potřebuje sekretářka společnosti Naše zahrada zautomatizovat některé úkony pomocí maker.

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Uživatelský manuál A4000BDL

KAPITOLA 4 ZPRACOVÁNÍ TEXTU

Návod k obsluze trenažéru

Psaní programu pro PLC SIMATIC S7-300 pomocí STEP 7

POZOR!!! INSTALACE POD WINDOWS 200 / XP / VISTA PROBÍHÁ VE DVOU ETAPÁCH A JE NUTNÉ DOKON

Uživatelská příručka

MI Video rozhraní pro vozidla Renault. Přepínání mezi jednotlivými vstupy a ovládání přehrávání

Spínací hodiny SHT15. Návod k použití AUDIC

František Hudek. červen ročník

Zobrazení zdrojových dat u krabicového grafu

Návod na instalaci AutoCAD Architecture Ing. Zbyněk Svoboda

Connect Genius V2. Instalace programu.

MIKROTHERM 825. Monitorovací program MT825C1

Návod na instalaci HW certifikátu aplikace PARTNER24

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

Integrovaná střední škola, Sokolnice 496

VAR-NET INTEGRAL Manuál správce VNI 5.1 VAR-NET INTEGRAL. verze 0.2. Manuál správce VNI 5.1

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

Transkript:

AP0047 APLIKAČNÍ POZNÁMKA Návrh aplikace pro dotykové nástěnné ovladače Abstrakt Aplikační poznámka se věnuje návrhu uživatelské aplikace pro malé nástěnné ovladače s dotykovým displejem z produkce firmy AMiT. Dále je v ní popsán postup programování komunikace s těmito nástěnnými ovladači ze strany řídicího systému firmy AMiT. Autor: Zbyněk Říha Dokument: ap0047_cz_02.pdf Příloha Obsah souboru: ap0047_cz_02.zip noa_p1_cz_02.dso rs_p1_cz_02.dso Příklad návrhu aplikace pro NOA70 Příklad obsluhy NOA70 v řídicím systému Copyright (c) 2012, AMiT, spol. s r.o. www.amit.cz 1/53

Obsah Historie revizí... 4 Související dokumentace... 4 1. Definice použitých pojmů... 5 2. Dotykové nástěnné ovladače... 6 3. Programování aplikace pro dotykové ovladače... 7 3.1. Návrh aplikace pro NOA70... 7 3.1.1 Založení projektu... 7 3.1.2 Programování výkonného kódu v NOA70... 8 Inicializační proces (ProcessINIT)... 8 Periodický proces (ProcessX)... 8 3.1.3 Definice komunikačního protokolu... 9 3.1.4 Definice vnitřních proměnných... 11 3.1.5 Definice proměnných pro výměnu dat s řídicím systémem... 11 Mapování proměnných typu Float... 12 Mapování proměnných typu Long... 12 3.1.6 Poskytnutí měřených/nastavených hodnot do sítě... 13 3.1.7 Programování obrazovek NOA70... 14 3.1.8 Generace aplikace pro NOA70... 14 3.1.9 Zavedení aplikace do NOA70... 14 3.2. Obsluha NOA70 v řídicím systému... 14 3.2.1 Definice NOA70 v DetStudiu... 14 3.2.2 Způsob komunikace s NOA70... 16 Zjednodušený způsob... 16 Doporučený způsob... 16 3.2.3 Ukázka doporučeného způsobu komunikace s NOA70... 16 4. Příklad návrhu aplikace pro NOA70... 18 4.1. Založení projektu... 18 4.2. Definice vnitřních proměnných... 19 4.3. Definice protokolu a proměnných určených pro komunikaci... 19 4.3.1 Definice komunikačního protokolu... 19 4.3.2 Definice proměnných pro výměnu dat s řídicím systémem... 21 4.3.3 Mapování proměnných do registrů... 22 4.4. Vytvoření výkonné části programu NOA70... 23 4.5. Tvorba obrazovek NOA70... 25 4.5.1 Vložení ovládacích prvků... 26 4.5.2 Zobrazení teploty měřené čidlem NOA70... 28 4.5.3 Zobrazení statických textů... 30 4.6. Generace aplikace pro NOA70... 32 4.7. Zavedení aplikace do NOA70... 32 5. Příklad obsluhy NOA70 v řídicím systému... 34 5.1. Definice NOA70 v DetStudiu... 34 5.2. Vytvoření programu pro komunikaci s NOA70... 34 6. DODATEK A... 36 6.1. Nastavení komunikačních parametrů NOA70 z displeje... 36 6.1.1 Obrazovka se servisním menu... 37 ap0047_cz_02 2/53

6.1.2 Obrazovka pro volbu typu protokolu... 39 6.1.3 Obrazovka pro nastavení adresy NOA70... 42 6.1.4 Obrazovka pro nastavení komunikační rychlosti... 43 6.1.5 Obrazovka pro nastavení parity... 45 7. DODATEK B... 48 7.1. Zobrazení času řídicího systému na NOA70... 48 8. DODATEK C... 49 8.1. Přechod mezi obrazovkami... 49 9. Technická podpora... 52 10. Upozornění... 53 3/53 ap0047_cz_02

Historie revizí Verze Datum Změny 001 04. 03. 2011 Nový dokument 002 20. 04. 2012 Do kapitoly 3.1.9 doplněna informace o kompatibilitě programu SAM-PROG. Do kapitoly 4.7 doplněn postup zavedení aplikace. Upravena související dokumentace. Aplikace vytvořeny v DetStudiu verze 1.7.2. Úprava obrázků a textů dle chování DetStudia verze 1.7.2. Související dokumentace 1) Nápověda EsiDet k návrhovému prostředí DetStudio soubor: Esidet_cs.chm 2) Nápověda obrazovek k návrhovému prostředí DetStudio soubor: Tridet_cs.chm 3) Aplikační poznámka AP0023 Skriptování v DetStudiu soubor: ap0023_cz_xx.pdf 4) Aplikační poznámka AP0025 Komunikace v síti ARION definice tabulkou soubor: ap0025_cz_xx.pdf 5) Aplikační poznámka AP0041 Návrh grafických prvků pro ovladače řady NOA7x soubor: ap0041_cz_xx.pdf ap0047_cz_02 4/53

1. Definice použitých pojmů Registr 32bitová hodnota (4 Byty). Registry jsou využívány pro výměnu dat mezi nástěnnými ovladači s dotykovým displejem a nadřazeným systémem. V registrech jsou mapovány proměnné. Počet registrů se tedy vždy odvíjí od počtu přenášených proměnných. Čísla registrů v síti ARION by měla být po sobě jdoucí (např. 0, 1, 2, ). Mapování proměnné Určení pozice proměnné v rámci registru pro síť ARION/Modbus. Mapování může být rozdílné pro proměnné typu Long nebo Float. NOA70 Jeden z typů nástěnných ovladačů s dotykovým displejem. Způsob vytvoření programu pro jednotlivé typy nástěnných ovladačů s dotykovým displejem z produkce firmy AMiT je stejný. V této aplikační poznámce bude vytvářena aplikace právě pro NOA70. WYSIWYG Je akronym anglické věty What you see is what you get, česky co vidíš, to dostaneš. Tato zkratka označuje způsob editace dokumentů v počítači, při kterém je verze zobrazená na obrazovce vzhledově totožná s výslednou verzí dokumentu. 5/53 ap0047_cz_02

2. Dotykové nástěnné ovladače Ovladače s dotykovým displejem, jsou dodávány buď ve formě nástěnného ovladače (NOA70/NOA71) nebo ve formě panelového ovladače, který je možné umístit např. do čelního panelu rozvaděče (NOA170). Ovladače mohou komunikovat s nadřazeným systémem prostřednictvím linky RS485, na které lze provozovat komunikační protokol ARION nebo komunikační protokol Modbus. NOA70/NOA71 umožňuje měřit okolní teplotu, což ho předurčuje pro použití nezávislé regulace teploty místnosti případně pro další problematiku s tímto spjatou. Obr. 1 - NOA70 NOA170 vychází z nástěnného ovladače NOA70. Liší se především mechanickým provedením (tělo ovladače je celokovové). Jeho vnitřní čidlo lze využít např. pro zjištění teploty v rozvaděči, do kterého je zabudován (neumožňuje přímé měření teploty v místnosti). Tato funkčnost je výhodná zvláště v případech, kdy je rozvaděč umístěn v nevhodných tepelných podmínkách a je nutné jej z důvodu provozních teplot řídicího systému (i samotného NOA170) ohřívat nebo chladit. Obr. 2 - NOA170 Oba dva typy jsou standardně dodávány s firmware, pomocí kterého lze nastavovat např. režim regulace v místnosti, korekci požadované teploty, rychlost ventilátoru FanCoil jednotek případně lze dát povel pro sepnutí libovolného zařízení. Velkou výhodou těchto produktů je však možnost tvorby vlastního grafického návrhu a ovládacích algoritmů v návrhovém prostředí DetStudio. Lze v nich naprogramovat další funkce, které nesouvisí pouze s teplotou. Programátor tak může naprogramovat např. rozsvícení světel v místnosti, ovládání rolet nebo žaluzií, nastavení časových plánů apod. Výhodou je, že k ovládání všech funkcí stačí právě jen jeden tento ovladač a v případě, kdy je v místnosti použit např. NOA70, nemusí být vedle něj na stěně další ovladač/vypínač pro ovládání světel atd. Vše je dáno programovým vybavením, které do něj programátor naprogramuje. Tato aplikační poznámka se bude dále zabývat problematikou návrhu uživatelské aplikace pro NOA70. ap0047_cz_02 6/53

3. Programování aplikace pro dotykové ovladače Celý návrh aplikace pro dotykové ovladače lze rozdělit do dvou kroků: 1. Návrh aplikace pro NOA70. 2. Obsluha NOA70 v řídicím systému. 3.1. Návrh aplikace pro NOA70 Návrh aplikace se provádí v návrhovém prostředí DetStudio a probíhá obdobným způsobem jako návrh obrazovek na běžném řídicím systému/terminálu. 3.1.1 Založení projektu Při zakládání projektu je nutné zvolit položku NOA70DS v sekci Nástěnné ovladače. Obr. 3 - Výběr orientace NOA70 při založení projektu Potvrzením založení projektu (kliknutí na tlačítko OK v okně Nový projekt ) má programátor možnost volby, zda chce NOA70 umístit na výšku (portrait) nebo na šířku (landscape). Obr. 4 - Volba orientace obrazovky 7/53 ap0047_cz_02

3.1.2 Programování výkonného kódu v NOA70 V době vzniku této aplikační poznámky je možné v NOA70 využívat dva typy procesů. Obr. 5 - Definice procesů Inicializační proces (ProcessINIT) Jedná se o proces, jehož kód se vykoná pouze jedenkrát. Vždy při startu NOA70 (vždy po jeho připojení k napájecímu napětí). Periodický proces (ProcessX) Jedná se o proces, který se neustále opakuje s periodou, kterou uživatel zadal v okně vlastností tohoto procesu. Obr. 6 - Nastavení periody procesu Process1 Poznámka Periodu tohoto procesu lze dynamicky měnit i za chodu aplikace v NOA70. Kód samotného procesu se programuje v EsiDet (viz menu Nápověda/Nápověda EsiDet v DetStudiu). ap0047_cz_02 8/53

3.1.3 Definice komunikačního protokolu Komunikační protokol, kterým si bude NOA70 vyměňovat data s nadřazeným systémem (ARION/Modbus), lze nadefinovat pomocí objektu SerialBusN, který je dostupný v okně Toolbox (v sekci Komunikace ) po otevření libovolného procesu. Obr. 7 - Objekt pro definici komunikačního protokolu NOA70 Aby byl schopen NOA70 komunikovat protokolem ARION (slave) nebo protokolem Modbus RTU (slave), je nutné do projektu vložit výše zmíněný objekt SerialBusN (v případě požadavku na komunikaci pouze protokolem Modbus RTU lze využít objekt ModbusSlave ze sekce Komunikace ). Vložení objektu lze učinit: přetažením objektu SerialBusN do procesu z okna Toolbox výběrem objektu SerialBusN ze seznamu vyvolaného stiskem klávesové zkratky Ctrl+i z nabídky hlavního menu Projekt/Přidat do projektu Po vložení objektu SerialBusN do projektu se tento zobrazí v sekci Komunikace okna projektu. Obr. 8 - Objekt SerialBusN v sekci Komunikace Samotnou volbu komunikačního protokolu a nastavení komunikačních parametrů lze provést dvěma způsoby: Využitím servisních obrazovek na NOA70 je lze zobrazit dotykem na displej v průběhu připojování NOA70 k napájecímu napětí. Prostřednictvím servisních obrazovek nelze dynamicky přepínat mezi protokolem ARION a Modbus! Naprogramováním možnosti nastavení komunikačních parametrů ve vlastní režii viz kapitola 6.1 Nastavení komunikačních parametrů NOA70 z displeje. Některé parametry obou protokolů lze nastavit také v okně vlastností objektu SerialBusN. 9/53 ap0047_cz_02

Význam jednotlivých parametrů je následující: Obr. 9 - Vlastnosti objektu SerialBusN Arion Registry Count Počet registrů, které bude NOA70 poskytovat do sítě ARION (jeden registr může obsahovat i různé skupiny bitů z více proměnných typu Long). Do sítě ARION lze poskytnout až 9 registrů (číslováno 0 až 8). Stejný počet registrů je pak mj. třeba nastavit na straně mastera (např. řídicího systému), jinak komunikace nepoběží! Comment Uživatelský komentář k objektu Description Popis objektu. Modbus Guard Time Čas, do kterého musí NOA70 obdržet komunikační rámec v případě, že je nastavena komunikace prostřednictvím protokolu Modbus. Pokud do této doby rámec neobdrží, nastaví se do stavu rozpad komunikace. Modbus Registry Count Počet registrů, které bude NOA70 poskytovat do sítě Modbus (jeden registr může obsahovat i různé skupiny bitů z více proměnných typu Long). Do sítě Modbus lze u NOA70 poskytnout maximálně 222 16bitových registrů (v závislosti na volné paměti). Registry 0 až 99 jsou vyhrazeny pro systémové informace (viz nápověda k návrhovému prostředí DetStudio). Registry pro uživatelské proměnné se tedy mapují od registru č. 100 po registr č. 220. Jelikož je možné v objektu SerialBusN definovat pouze 32bitové proměnné, je nutné počet 16bitových registrů definovat v posloupnosti 100, 102, 104, 106,, 220. Příklad: V nástěnném ovladači budeme pro proměnné využívat 3 registry (každý bude mít 32 bitů). V aplikaci pro nástěnný ovladač je tedy třeba nadefinovat 6 registrů (16bitových). Pozice 32bitových registrů pak musí být v posloupnosti 100, 102, a 104. Tím jsme nadefinovali 6 registrů 16bitových na pozicích 100-101, 102-103, 104-105. Pozice registrů pro proměnné byla nadefinována od hodnoty 100, protože registry 0 až 99 slouží pro systémové účely. Není možné je využívat pro ukládání hodnot proměnných nadefinovaných uživatelem. Ve výsledku tedy bude na NOA70 k dispozici 106 registrů (100 systémových a 6 uživatelských). ProtocolMode volba komunikačního protokolu, kterým bude NOA70 komunikovat. SerialPort u NOA70 nemá význam. Ponechte výchozí hodnotu 0. Poznámka V případě, že bude programátor požadovat dynamickou změnu nastavení komunikace až v průběhu využívání NOA70, může toto naprogramovat např. v inicializačním procesu s pomocí parametrů objektu SerialBusN. Více informací lze nalézt v kapitole 6. DODATEK A. ap0047_cz_02 10/53

3.1.4 Definice vnitřních proměnných Proměnné, které se budou využívat pouze uvnitř NOA70 a nebude třeba do nich zapisovat nebo z nich číst z řídicího systému lze umístit do paměti RAM (po restartu ztratí svou hodnotu) nebo do paměti EEPROM (jejich hodnota přetrvává i po restartu). Poznámka Při používání proměnných v paměti EEPROM je nutné si uvědomit, že tato paměť má omezený počet zápisů. Z toho důvodu se do této paměti doporučují definovat proměnné, které nebudou často měnit svoji hodnotu. Typicky proměnné, sloužící k prvotnímu nastavení (např. korekce vnitřní teploty, komunikační rychlost, adresa, způsob komunikace, čas do aktivace spořiče displeje, atd.) Obr. 10 - Definice vnitřních proměnných Pozor! Od DetStudia verze 1.7.0 se po zavedení nově vygenerované aplikace hodnoty proměnných, uložených v EEPROM nulují. V případě, že bude do NOA70 zaváděn stejný *.bin soubor (výsledek generace projektu), který je již v NOA70 zaveden, bude hodnota proměnných, uložených v EEPROM zachována. V případě použití starší verze DetStudia jsou hodnoty proměnných, uložených v EEPROM zachovány vždy. 3.1.5 Definice proměnných pro výměnu dat s řídicím systémem Proměnné, do/ze kterých bude nadřazený systém zapisovat/číst lze po vložení objektu SerialBusN nadefinovat stejným způsobem jako vnitřní proměnné umístěné v paměti RAM nebo EEPROM. Dvojklikem na položku SerialBusN v sekci Proměnné okna Projekt dojde k otevření záložky, kde lze definovat proměnné typu Long nebo Float. Každé nadefinované proměnné je nutné v okně vlastností nadefinovat číslo registru v rámci sítě ARION, případně v rámci sítě Modbus. Jedná se o tzv. mapování proměnných do sítě ARION/Modbus. Jedna proměnná tak může být mapována jak do sítě ARION tak do sítě Modbus. Na jednom komunikačním rozhraní však lze v jednom okamžiku používat pouze jeden komunikační protokol. 11/53 ap0047_cz_02

Mapování proměnných typu Float Proměnná typu Float zabírá celý jeden registr. Při mapování tedy zadáme pouze číslo registru, ve kterém se bude proměnná přenášet. Obr. 11 - Mapování proměnné typu Float Význam jednotlivých parametrů, které lze editovat, je následující: (Name) Název proměnné. Comment Komentář. RegisterArion číslo registru v rámci sítě ARION. RegisterModbus číslo registru v rámci sítě Modbus. Mapování proměnných typu Long Proměnnou typu Long lze taktéž namapovat jako jeden registr, stejně jako proměnnou typu Float. S výhodou však lze využít dalších parametrů, které jsou k dispozici v okně vlastností proměnné typu Long a které umožňují do jednoho registru namapovat různé skupiny bitů z více proměnných typu Long. Obr. 12 - Mapování proměnné typu Long Význam jednotlivých parametrů, které lze editovat, je následující: (Name) Název proměnné. ap0047_cz_02 12/53

BitLength Počet bitů, které budou z dané proměnné mapovány do registru. BitOffset Posunutí počátku proměnné v rámci registru (viz následující obrázek). Obr. 13 - Ukázka využití parametrů BitOffset a BitLenght Comment Komentář. RegisterArion číslo registru v rámci sítě ARION. RegisterModbus číslo registru v rámci sítě Modbus. Pozor Počet nadefinovaných registrů nesmí přesáhnout počet registrů zadaných za parametr RegistryCount při parametrizaci objektu SerialBusN. 3.1.6 Poskytnutí měřených/nastavených hodnot do sítě Pro poskytnutí hodnot, které zadá uživatel prostřednictvím NOA70, nebo které jsou změřeny pomocí NOA70, nadřazenému systému slouží proměnné mapované do registrů v objektu SerialBusN, o kterých pojednává předchozí kapitola. Zadání hodnot proměnným, nadefinovaným v objektu SerialBusN lze realizovat následujícími způsoby: Proměnné budou navázány přímo na editační prvky obrazovek Do proměnných bude zapisována hodnota ve skriptu obrazovek Do proměnných bude zapisována hodnota v některém z procesů V případě, že bude např. požadavek, aby NOA70 poskytl řídicímu systému teplotu, kterou měří interním čidlem, je možné měřenou teplotu předávat do proměnné objektu SerialBusN v periodickém procesu. Teplotu měřenou interním čidlem NOA70 lze získat pomocí objektu IO, který je do projektu vždy vložen automaticky při jeho založení. Ještě před vlastním uložením měřené teploty doporučujeme měřenou teplotu upravit o korekci. Korekci lze nadefinovat jako proměnnou v paměti EEPROM (např. s názvem Tepl_Korekce). Za předpokladu, že bude v objektu SerialBusN nadefinována proměnná s názvem Tepl_in mapovaná do vybraného registru, do kterého bude programátor požadovat ukládání teploty, měřené ovladačem NOA70, bude kód pro získání měřené teploty a její následné uložení do výše zmíněné proměnné vypadat následovně: SerialBusN.Tepl_in = IO.DeviceTemperature + EEprom.Tepl_Korekce; Kromě registrů, do kterých jsou mapovány proměnné, poskytuje NOA70 do sítě ARION také kanál digitálních vstupů a digitálních výstupů. Tyto mimo jiné podávají informaci o tom, že proběhl zápis do jakékoliv proměnné namapované do registrů v objektu SerialBusN. Těmito kanály se však 13/53 ap0047_cz_02

v tuto chvíli není nutné zabývat. Jejich bližší popis je uveden v kapitole 3.2.1 Definice NOA70 v DetStudiu. Vzhledem k tomu, že NOA70 registruje zápis do proměnných namapovaných do registrů v objektu SerialBusN, na základě kterého může řídicí systém zjistit, že došlo v NOA70 k zápisu do registru, doporučujeme nastavit periodu procesu (ve kterém se bude zapisovat do proměnných mapovaných v objektu SerialBusN do registrů) nejméně na 5 s, případně softwarově zajistit, aby se do takovýchto proměnných nezapisovalo příliš často, čímž by docházelo (např. vzhledem k rychlosti s jakou se mění načtená hodnota teploty v místnost) ke zbytečně časté komunikaci s NOA70. 3.1.7 Programování obrazovek NOA70 Obrazovky se v NOA70 programují obdobným způsobem jako obrazovky u klasických řídicích systémů firmy AMiT. Jedná se o programování formou WYSIWYG. Oproti klasickým řídicím systémům, které jsou osazeny klávesnicí, je však nutné využívat tzv. skriptu (viz nápověda obrazovek k návrhovému prostředí DetStudio), stejně jako je tomu u programování řídicích terminálů (APT3100S, APT3221WT) firmy AMiT. 3.1.8 Generace aplikace pro NOA70 Aby bylo možné aplikaci pro NOA70 vygenerovat, je nutné mít na PC nainstalován balíček DetStudioTools.exe, který není součástí instalace DetStudia. Balíček je volně (po registraci) ke stažení na www.amit.cz v sekci Produkty/Download/Návrhová prostředí pro tvorbu aplikací/detstudio. Výsledkem generace je soubor s koncovkou *.bin, který má stejný název, jako je název projektu DetStudia. 3.1.9 Zavedení aplikace do NOA70 Spuštění zavádění aplikace do NOA70 lze provést z DetStudia. DetStudio, jako takové však samotné zavedení vygenerované aplikace do NOA70 neprovádí. Pro zavedení aplikace do NOA70 DetStudio využívá externí program s názvem SAM-PROG. Tento není součástí instalace DetStudia. Doporučená verze (2.4) tohoto programu je součástí balíčku DetStudioTools.exe, který je možné stáhnout na www.amit.cz v sekci Produkty/Download/Návrhová prostředí pro tvorbu aplikací/detstudio. Po jeho nainstalování bude možné z DetStudia odstartovat zavedení aplikace do NOA70. Při zavádění aplikace je nutné dodržovat postup, který bude zobrazovat návrhové prostředí DetStudio. Pozor! Program SAM-PROG je funkční nejvýše ve Windows XP. V případě požadavku na využití ve Windows vyšších verzí (Windows 7, atd.), je nutné použít buď virtuální PC, ve kterém bude Windows XP, nebo používat tzv. XP mód. 3.2. Obsluha NOA70 v řídicím systému Pro komunikaci NOA70 (ve kterém běží aplikace vytvořená v DetStudiu) s řídicím systémem, lze využít komunikační protokol ARION nebo Modbus. V této aplikační poznámce bude popsáno využití komunikačního protokolu ARION. 3.2.1 Definice NOA70 v DetStudiu Definici NOA70 lze v řídicím systému provést pomocí tabulky ARION (viz AP0025 Komunikace v síti Arion definice tabulkou ). V případě, že je v NOA70 zavedena aplikace vytvořená ap0047_cz_02 14/53

v návrhovém prostředí DetStudio, tak se NOA70 v aplikaci pro řídicí systém nadefinuje přetažením modulu NOA70DS do tabulky Arion0 (viz následující obrázek). Obr. 14 - Definice NOA70 v řídicím systému Po umístění modulu NOA70DS do tabulky je nutné v okně vlastností tohoto modulu nadefinovat počet registrů, který je na NOA70 k dispozici. Tento se musí shodovat s počtem registrů, nastavených v návrhu aplikace pro NOA70 (viz kapitola 3.1.5 Definice proměnných pro výměnu dat s řídicím systémem). Obr. 15 - Nastavení počtu registrů definovaných v NOA70 Mimo nadefinované registry poskytuje NOA70 do sítě ARION také kanál digitálních vstupů a digitálních výstupů. Z kanálu digitálních vstupů jsou využity první tři bity, jejichž význam je následující. DI.0 Došlo k restartu NOA70 DI.1 V NOA70 došlo k zápisu do libovolné proměnné namapované do registru v objektu SerialBusN. DI.2 Došlo k výpadku komunikace NOA70 s řídicím systémem. Čtení kanálu digitálních vstupů se provádí s periodou zadanou v okně vlastností modulu NOA70DS při jeho definici v tabulce s definicí sítě ARION. Kanál digitálních výstupů slouží pro vynulování příznaků, které poskytuje kanál digitálních vstupů. Jakmile tedy řídicí systém zaregistruje nastavení některého z digitálních vstupů na hodnotu True, měl by provést odpovídající kroky a následně daný vstup pomocí kanálu digitálních výstupů vynulovat. Význam jednotlivých bitů kanálu je následující. DO.0 Nulování příznaku restartu. DO.1 Nulování příznaku změny proměnné objektu SerialBusN v NOA70. DO.2 Nulování příznaku výpadku komunikace. 15/53 ap0047_cz_02

3.2.2 Způsob komunikace s NOA70 Pro komunikaci s NOA70 lze využít dvou způsobů výměny informací s řídicím systémem. Zjednodušený způsob Doporučený způsob V obou dvou případech funguje komunikace tak, že se jedním požadavkem provede jak zápis, tak čtení požadovaných dat. Zjednodušený způsob Pro komunikaci s NOA70 jsou využity moduly ARI_RegIn / ARI_RegOut, které se umístí do periodického procesu. Pomocí speciálních modulů ARI_Trig pak bude zadáván požadavek na čtení/zápis dat. Doporučený způsob Pro komunikaci s NOA70 je využit kanál digitálních vstupů. Na základě stavu jeho signálů se bude zadávat požadavek na načtení dat z NOA70. Periodicky se tedy zjišťuje pouze stav vstupu DI.1 (viz předchozí kapitola). Na základě nastavení tohoto vstupu je provedeno načtení hodnot z NOA70 pomocí modulu ARI_RegIn a pomocí modulu ARI_Trig. V této aplikační poznámce bude dále řešen doporučený způsob komunikace. 3.2.3 Ukázka doporučeného způsobu komunikace s NOA70 Prvním krokem je vždy zjištění stavu komunikace řídicího systému a NOA70 a zjištění stavu přenosu registrů nadefinovaných v NOA70 pomocí objektu SerialBusN. Zjištění stavu komunikace a stavu přenosu registrů se provádí pomocí modulu ARI_State. //Stav NOA a stav přenosu registrů ARI_State 1, NOA_stav, 4, NOA_R_pren Jak bylo popsáno v předchozí kapitole, využívá se u doporučeného způsobu komunikace kanál digitálních vstupů, který programátora informuje o zápisu do libovolné proměnné (nadefinované v NOA70), která je mapována do registru v objektu SerialBusN. Nezáleží na tom, zda byla změna, vyvolaná uživatelem (změna hodnoty prostřednictvím dotykového displeje) nebo samotným NOA70 (změna hodnoty softwarem běžícím v NOA70). Pro čtení kanálu digitálních vstupů se v řídicím systému využívá modul ARI_DigIn. Ve druhém kroku se tedy zjistí, zda se změnila v NOA70 hodnota libovolné proměnné namapované v objektu SerialBusN do registru. //Zjištění změny v NOA ARI_DigIn 1, 0, priznaky, 0x00000000 V případě, že došlo k zápisu do libovolné proměnné (nadefinované v NOA70), která je mapována do registru v objektu SerialBusN, provedeme načtení hodnoty registrů do bufferu řídicího systému pomocí událostního vyvolání komunikace modulem ARI_Trig. If priznaky.1 //Pokyn ke komunikaci registrů NOA ARI_Trig 1, 4 EndIf Poznámka Registry nelze z NOA70 vyčítat jednotlivě. Při použití modulu ARI_Trig dojde vždy k vykomunikování všech registrů, které jsou v NOA70 nadefinovány. Vlastní čtení registrů z bufferu řídicího systému a jejich následné uložení do proměnné v řídicím systému již lze v případě potřeby provést i po jednotlivých registrech, použitím více modulů ARI_RegIn. ap0047_cz_02 16/53

Poté co se data úspěšně z NOA70 vykomunikují, je nutné je z bufferu řídicího systému vyčíst a uložit do požadovaných proměnných řídicího systému pomocí modulu ARI_RegIn. Po takovémto získání požadovaných dat se potvrdí zaregistrování změny hodnoty proměnných (mapovaných v NOA70 do registrů objektu SerialBusN) zápisem do odpovídajícího bitu kanálu digitálních výstupů (pomocí modulu ARI_DigOut). //čtení z bufferu aktivujeme, až se vykomunikují data Let @NOA_Cti_R = NOA_stav.0 and not(noa_r_pren.0) If @NOA_Cti_R //Načtení registru ARI_RegIn 1, 0, 1, T_Mist_Mer, NONE[0,0], 5 //Potvrzení přijetí informace a nulování příznaku o změně Let Priznak_nul = 2 ARI_DigOut 1, 0, 3, Priznak_nul, 0x00000000 //pokyn k vynulování příznaku ARI_Trig 1, 3 EndIf Pozor Použitím modulu ARI_Trig dojde k vyvolání příkazu pro čtení registrů i pro jejich zápis současně. Pokud programátor využívá jednu proměnnou pro čtení i pro zápis a pomocí modulu ARI_RegOut do této proměnné zapíše. Dojde po vyvolání modulu ARI_Trig, k zápisu této proměnné do příslušného registru v NOA70. Pokud tedy uživatel změnil hodnotu takového registru a v řídicím systému byla hodnota shodného registru změněna modulem ARI_RegOut dříve, než stihl řídicí systém změnu ze strany uživatele zaznamenat, dojde použitím modulu ARI_Trig k přepsání uživatelem zadané hodnoty v NOA70 hodnotou, která byla zadána modulem ARI_RegOut v řídicím systému. Pro zjednodušení řešení takovéto problematiky je doporučeno používat zvlášť registry pro čtení a zvlášť registry pro zápis. 17/53 ap0047_cz_02

4. Příklad návrhu aplikace pro NOA70 Následující příklad je k dispozici v příloze této aplikační poznámky. Jedná se o soubor s názvem noa_p1_cz_xx.dso. 4.1. Založení projektu V příkladu zvolíme při zakládání projektu nástěnný ovladač NOA70DS. Obr. 16 - Volba typu nástěnného ovladače Po výběru nástěnného ovladače zvolíme orientaci na výšku (portrait). Obr. 17 - Výběr orientace NOA70 ap0047_cz_02 18/53

4.2. Definice vnitřních proměnných Všechny proměnné, které budeme využívat v ukázkové aplikaci, budou umístěny v paměti EEPROM. V okně projektu tedy provedeme dvojklik ve složce Proměnné na položku EEPROM a nadefinujeme proměnné dle následujícího obrázku. Obr. 18 - Proměnné v paměti EEPROM 4.3. Definice protokolu a proměnných určených pro komunikaci V ukázkové aplikaci budeme NOA70 využívat ve funkci zařízení typu slave v síti ARION. 4.3.1 Definice komunikačního protokolu Abychom mohli NOA70 využívat jako zařízení typu slave v síti ARION, klikneme na menu Projekt, kde vybereme položku Přidat do projektu. Obr. 19 - Přidání objektů do projektu Po kliknutí na položku Přidat do projektu dojde k otevření okna Přidat novou položku, kde klikneme na objekt SerialBusN a poté na tlačítko OK. 19/53 ap0047_cz_02

Obr. 20 - Výběr objektu SerialBusN v okně Přidat novou položku Po zavření okna Přidat novou položku se nám objekt SerialBusN zobrazí v okně Projekt ve složce Komunikace. Obr. 21 - Objekt SerialBusN ve složce Proměnné Volbu komunikačního protokolu a nastavení komunikačních parametrů v tuto chvíli nastavíme napevno. Později doprogramujeme možnost dynamické změny komunikačních parametrů NOA70. Jedenkrát klikneme levým tlačítkem myši na objekt SerialBusN, čímž se nám zobrazí v okně Vlastnosti jeho nastavení komunikačních parametrů. Všechny parametry v okně Vlastnosti nastavíme dle následujícího obrázku. ap0047_cz_02 20/53

Obr. 22 - Nastavení komunikačních parametrů objektu SerialBusN Do parametru Arion Registry Count dosadíme hodnotu 3, protože budeme chtít využívat jeden registr typu Long pro nastavení režimu místnosti a nastavení režimu ventilátoru a dva registry typu Float pro přenos hodnoty měřená teploty směrem do řídicího systému a pro přenos hodnoty žádané teploty směrem z řídicího systému na displej NOA70. Poznámka Pokud bychom aplikaci programovali pro komunikaci prostřednictvím protokolu Modbus, bylo by nutné dosadit do parametru Modbus Registry Count hodnotu 106 (stejně, jak je na obrázku výše), což odpovídá třem nadefinovaným registrům v síti ARION. V síti Modbus jsou registry pouze 16bitové, v síti ARION jsou však registry 32 bitové. V síti Modbus tedy pro přenos stejného množství dat jako v síti ARION nadefinujeme dvojnásobný počet registrů (6). Jak je uvedeno v kapitole 3.1.3 Definice komunikačního protokolu, prvních 100 registrů je v síti Modbus určeno pro systémové účely. K šesti uživatelským registrům tedy musíme přičíst 100 registrů systémových. Výsledný počet registrů v síti Modbus je 106. Další komunikační parametry nastavíme pomocí servisních obrazovek. V servisních obrazovkách nastavíme adresu 1, komunikační rychlost 19200 a sudou paritu pro Modbus. 4.3.2 Definice proměnných pro výměnu dat s řídicím systémem Jak bylo uvedeno výše, budeme pro výměnu dat s řídicím systémem v NOA70 používat tři 32bitové registry. Jeden registr typu Long pro zadávání žádaného režimu vytápění v místnosti a pro zadávání požadovaného režimu ventilátoru. Dále dva registry typu Float, kde pomocí jednoho budeme řídicímu systému zasílat informaci o teplotě, měřené čidlem v NOA70 a pomocí druhého bude řídicí systém posílat do NOA70 informaci o žádané teplotě (např. z časového plánu), kterou budeme zobrazovat na displeji NOA70. Pro výměnu dat s řídicím systémem tedy v záložce SerialBusN (otevře se po dvojkliku levým tlačítkem myši na objekt SerialBusN v okně Projekt sekce Komunikace ) nadefinujeme čtyři proměnné, dle následujícího obrázku, které v další kapitole namapujeme do příslušných registrů. Obr. 23 - Definice proměnných v objektu SerialBusN 21/53 ap0047_cz_02

4.3.3 Mapování proměnných do registrů Jelikož z proměnné Rez_mist (volba režimu místnosti) budeme využívat pouze 2 bity a z proměnné Rez_vent (volba režimu ventilátoru) budeme využívat pouze 3 bity, bude pro nás velmi výhodné poskytnout tyto dvě proměnné do sítě ARION jako jeden registr, ve kterém bude využito 5 bitů. Mapování dvou a více proměnných z NOA70 do jednoho registru v síti ARION (Modbus) lze učinit v okně Vlastnosti každé proměnné, nadefinované v objektu SerialBusN, pomocí parametrů BitLenght, BitOffset a RegisterArion (RegisterModbus). Po kliknutí na proměnnou Rez_mist upravíme její vlastnosti dle následujícího obrázku. Obr. 24 - Mapování proměnné Rez_mist do registrů Po kliknutí na proměnnou Rez_vent upravíme její vlastnosti dle následujícího obrázku. Obr. 25 - Mapování proměnné Rez_vent do registrů Proměnné, ve kterých budou uloženy hodnoty měřené a žádané teploty jsou typu Float (32 bitů). Každé tedy nadefinujeme individuální číslo registru v položce RegisterArion (pro Modbus v položce RegisterModbus). U proměnné, která bude pro řídicí systém poskytovat teplotu měřenou interním čidlem NOA70 nastavíme vlastnosti dle následujícího obrázku. ap0047_cz_02 22/53

Obr. 26 - Mapování proměnné Tepl_in do registrů U proměnné, do které bude řídicí systém zapisovat žádanou teplotu, nastavíme vlastnosti dle následujícího obrázku. Obr. 27 - Mapování proměnné Tepl_zadana do registrů Poznámka Parametr RegisterModbus jsme definovali z důvodu budoucí možnosti komunikace s NOA70 i prostřednictvím protokolu Modbus. 4.4. Vytvoření výkonné části programu NOA70 Pro vytvoření výkonné části programu, který se bude v NOA70 periodicky neustále opakovat, použijeme proces s názvem Process1. V našem případě budeme pouze číst teplotu z čidla, které je přímo v NOA70. Načtenou teplotu pak budeme korigovat a ukládat do již vytvořené proměnné Tepl_in (viz kapitola 4.2 Definice vnitřních proměnných). Dvojklikem levým tlačítkem myši na Process1 ve složce Procesy okna Projekt otevřeme záložku Process1. Do otevřené záložky umístíme kurzor na požadovanou pozici a stiskneme klávesovou zkratku Ctrl+j, čímž vyvoláme tzv. intellisense nápovědu, ve které bude zobrazen seznam všech aktuálně dostupných objektů, proměnných a vlastností, které lze v NOA70 využít. Pomocí šipek nahoru/dolů z klávesnice je možné se v seznamu pohybovat a vybrat požadovaný objekt, který chceme v procesu využívat. V našem případě to bude objekt SerialBusN do jehož proměnné Tepl_in budeme ukládat korigovanou teplotu měřenou interním čidlem NOA70. Poznámka Při použití intellisense nápovědy je možné výběr požadovaného objektu učinit také tak, že po stisku klávesové zkratky Ctrl+j začneme psát název objektu. Tím je postupně objekt vyselektován (viz následující obrázek) a nám postačí výběr potvrdit klávesou Enter. 23/53 ap0047_cz_02

Obr. 28 - Použití intellisense nápovědy Po vložení požadovaného objektu do procesu za ním napíšeme znak. (tečka), čímž dojde k otevření plovoucího okna, ve kterém bude seznam parametrů, vlastností a metod, které lze u daného objektu využít. V našem případě budeme chtít v objektu SerialBusN pracovat s proměnnou Tepl_in. Obdobným způsobem jako jsme do procesu umístili objekt SerialBusN tedy umístíme i název proměnné Tepl_in. Obr. 29 - Výběr proměnné Tepl_in v objektu SerialBusN Do proměnné Tepl_in chceme uložit hodnoty teploty, měřené interním čidlem NOA70. Hodnotu měřené teploty nalezneme v objektu IO. Za výraz SerialBusN.Tepl_in doplníme znak = (rovnítko) a obdobným způsobem jako jsme do procesu umístili objekt SerialBusN doplníme za znak rovnítka objekt IO. Pomocí znaku. (tečka) pak rozvineme nabídku objektu IO, ve které vybereme položku DeviceTemperature (viz následující obrázek). Obr. 30 - Výběr parametru DeviceTemperature objektu IO Tím jsme naprogramovali uložení teploty, čtené interním čidlem NOA70, do proměnné Tepl_In mapované v objektu SerialBusN do registru č. 0. Měřenou teplotu je však třeba v některých případech korigovat tak, aby načtená hodnota ukazovala přesnou hodnotu, což učiníme pomocí proměnné Tepl_korekce nadefinované v paměti EEPROM. Výsledný kód procesu pak bude vypadat následovně. SerialBusN.Tepl_in = IO.DeviceTemperature + EEprom.Tepl_Korekce; ap0047_cz_02 24/53

Závěrem pak upravíme periodu procesu. Jedenkrát klikneme levým tlačítkem myši na položku Process1 ve složce Procesy okna Projekt a parametr Period nastavíme dle následujícího obrázku. Obr. 31 - Nastavení periody procesu Nastavení periody na 10 s jsme provedli z důvodu budoucího využití kanálu DI ovladače NOA70, který informuje řídicí systém o nově zadané hodnotě do některého z registrů objektu SerialBusN (viz kapitola 3.2.1 Definice NOA70 v DetStudiu). 4.5. Tvorba obrazovek NOA70 Tvorba obrazovek probíhá v NOA70 obdobným způsobem jako tvorba obrazovek u běžných řídicích systémů. Provedeme dvojklik levým tlačítkem myši na složku Obrazovky v okně Projekt, čímž dojde k otevření záložky Obrazovky. Zde stiskneme klávesu Insert. Po stisku klávesy Insert dojde k otevření okna Nová obrazovka, ve které nadefinujeme požadované parametry obrazovky dle následujícího obrázku. Obr. 32 - Definice obrazovky Po potvrzení definice obrazovky tlačítkem OK, se nám zadaný název a komentář obrazovky zobrazí v záložce Obrazovky. Název se zobrazí v okně Projekt ve složce Obrazovky. 25/53 ap0047_cz_02

Obr. 33 - Zobrazení názvu obrazovky v okně Projekt Abychom mohli naprogramovat vzhled obrazovky, provedeme dvojklik levým tlačítkem myši v okně Projekt na název obrazovky. Dojde k otevření záložky s názvem obrazovky, ve které uvidíme prázdnou obrazovku. Do prázdné obrazovky nyní můžeme umisťovat z okna Toolbox požadované prvky. 4.5.1 Vložení ovládacích prvků V prvním kroku na obrazovku umístíme prvky, pomocí kterých bude uživatel nastavovat požadovaný režim vytápění místnosti a požadovaný režim ventilátoru. K tomuto účelu lze s výhodou využít prvek CaseButton jehož popis lze nalézt v nápovědě k návrhovému prostředí DetStudio. Na obrazovku umístíme dva prvky CaseButton a pomocí osmi záchytných bodů, které se kolem prvků zobrazí v případě, kdy je vložíme na obrazovku nebo v případě, kdy na ně jedenkrát klikneme levým tlačítkem myši, upravíme jejich velikost do čtvercové podoby. Prvky pak na obrazovce umístíme na požadovanou pozici, např. dle následujícího obrázku. ap0047_cz_02 26/53

Obr. 34 - Umístění prvků CaseButton na obrazovce Hlavni Pravý prvek CaseButton bude sloužit pro nastavení požadovaného režimu vytápění, levý prvek CaseButton bude sloužit pro nastavení požadovaného režimu ventilátoru. Jedenkrát klikneme levým tlačítkem myši na pravý prvek CaseButton. V okně Vlastnosti se zobrazí seznam jeho vlastností. Ve vlastnostech klikneme do volného pole u parametru Variable, čímž se ve volném poli zobrazí tlačítko. Po kliknutí levým tlačítkem myši na zobrazené tlačítko se otevře okno Výběr proměnné, ve kterém bude zobrazen seznam proměnných nadefinovaných v paměti EEPROM/RAM a v objektu SerialBusN. Jelikož budeme pravý prvek CaseButton využívat pro nastavení režimu místnosti, vybereme z otevřeného okna proměnnou objektu SerialBusN s názvem Rez_mist (viz následující obrázek). Obr. 35 - Přiřazení proměnné Rez_mist k prvku CaseButton Po potvrzení výběru požadované proměnné nadefinujeme vzhled prvku. V okně Vlastnosti klikneme levým tlačítkem myši na položku Add/Remove Items. 27/53 ap0047_cz_02

Obr. 36 - Nastavení vzhledu prvku CaseButton Po kliknutí na výše zmíněnou položku se otevře okno Položky, které nastavíme dle následujícího obrázku. Obr. 37 - Přiřazení obrázků jednotlivým hodnotám proměnné Rez_mist Editaci jednotlivých buněk v položkách okna lze provést pomocí klávesy F2. Obdobně pak budeme postupovat s nastavením levého prvku CaseButton. Tomuto však v okně Vlastnosti za parametr Variable dosadíme proměnnou Rez_vent a jeho vzhled nastavíme dle následujícího obrázku. Obr. 38 - Přiřazení obrázků jednotlivým hodnotám proměnné Rez_vent Ikony použité v nastavení prvků CaseButton jsou součástí instalace DetStudia a lze je nalézt v adresáři C:\Documents and Settings\user_name\Dokumenty\DetStudio\Icons\ tak, jak popisuje aplikační poznámka AP0041 Návrh grafických prvků pro ovladače řady NOA7x. 4.5.2 Zobrazení teploty měřené čidlem NOA70 Teplotu, měřenou čidlem integrovaným v NOA70, získáváme ve výkonné části programu a ukládáme ji do proměnné Tepl_in (viz kapitola 4.4 Vytvoření výkonné části programu NOA70). Zobrazení proměnných je možné učinit pomocí prvku NumericView. Prvek NumericView umístíme na obrazovku tažením z okna Toolbox (sekce Basic ) na požadovanou pozici (viz následující obrázek). ap0047_cz_02 28/53

Obr. 39 - Umístění prvku NumericView na obrazovku Na prvek NumericView provedeme dvojklik levým tlačítkem myši. Dojde k otevření okna Výběr proměnné. Jelikož chceme zobrazovat teplotu měřenou integrovaným čidlem v NOA70, kterou ukládáme do proměnné Tepl_In objektu SerialBusN, vybereme ze seznamu proměnnou Tepl_in (viz následující obrázek). Obr. 40 - Výběr proměnné, jehož hodnotu chceme zobrazovat Po přiřazení proměnné nastavíme prvku NumericView také jeho vzhled. Pomocí parametru Font vybereme font ADT 21. V parametru Format (formát zobrazení) ponecháme výchozí řetězec ##.# (zobrazení proměnné v rozsahu -9.9 až 99.9). Ve výsledku pak bude okno Vlastnosti prvku NumericView vypadat dle následujícího obrázku. 29/53 ap0047_cz_02

Obr. 41 - Nastavení vlastností prvku NumericView Po nastavení vlastností prvku NumericView dle obrázku výše bude obrazovka Hlavni vypadat následovně. Obr. 42 - Obrazovka hlavní se zobrazením teploty měřené integrovaným čidlem NOA70 4.5.3 Zobrazení statických textů Uživatele musíme informovat o jednotkách, ve kterých mu veličiny zobrazujeme. Je tedy nutné nadefinovat statické texty. Statické texty je možné vytvořit pomocí prvku Label ze sekce Basic okna Toolbox. Po umístění prvku Label na požadovanou pozici na něj provedeme dvojklik levým tlačítkem myši, čímž se otevře okno, ve kterém můžeme zadat požadovaný text. Do editačního pole otevřeného okna napíšeme text C a okno potvrdíme. Obrazovka Hlavní nyní bude vypadat následovně. ap0047_cz_02 30/53

Obr. 43 - Obrazovka Hlavni se statickým textem C Dále budeme chtít na obrazovce zobrazit hodnotu žádané teploty ze strany řídicího systému. K žádané hodnotě teploty opět přiřadíme statický text C. Pro umístění těchto údajů na obrazovku budeme postupovat stejně, jako jsme postupovali při zobrazení měřené hodnoty. Obrazovka Hlavní pak bude vypadat následovně. Obr. 44 - Obrazovka hlavní se všemi požadovanými údaji Výše uvedený příklad pro NOA70 je součástí přílohy této aplikační poznámky. Jedná se o soubor noa_p1_cz_xx.dso. 31/53 ap0047_cz_02

4.6. Generace aplikace pro NOA70 Jak bylo uvedeno v kapitole 3.1.8. Generace aplikace pro NOA70, aby bylo možné aplikaci pro NOA70 vygenerovat, je nutné mít na PC nainstalován balíček DetStudioTools.exe, který není součástí instalace DetStudia. Balíček je volně ke stažení (po registraci) na www.amit.cz v sekci Produkty/Download/Návrhová prostředí pro tvorbu aplikací/detstudio. Výsledkem generace je soubor s koncovkou *.bin, který má stejný název, jako je název projektu DetStudia. 4.7. Zavedení aplikace do NOA70 K zavedení aplikace do NOA70 se využívá program SAM-PROG (viz kapitola 3.1.9 Zavedení aplikace do NOA70) a spočívá ve dvou krocích: Vymazání FLASH NOA70 Zavedení vygenerovaného souboru (*.bin) do NOA70 Vymazání FLASH Vypneme napájení NOA70 Zkratujeme dva body na pozici J16 Zapneme napájení Vyčkáme minimálně 10 sec Vypneme napájení NOA70 Odstraníme zkrat dvou bodů na pozici J16 Zavedení vygenerovaného souboru Obr. 45 - Zkratování dvou bodů na pozici J16 V programu SAM-PROG zadáme pomocí tlačítka Browse vygenerovaný soubor *.bin Zapneme napájení NOA70 Obr. 46 - Zadání cesty k souboru v programu SAM-PROG ap0047_cz_02 32/53

Propojíme NOA70 s PC kabelem MiniUSB (po správném připojení lze NOA70 nalézt na PC ve správci zařízení jako HW Atmel) Stiskneme tlačítko Write Flash Obr. 47 - NOA70 jako přidaný HW po připojené k USB Pozor Parametr Set Security Bit nesmí být zatržen! Obr. 48 - Tlačítko Write Flash při správně připojeném NOA70 Po zavedení aplikace do NOA70 ukončíme program SAM-PROG Vypneme napájení NOA70 a odpojíme USB kabel Zapneme napájení NOA70 33/53 ap0047_cz_02

5. Příklad obsluhy NOA70 v řídicím systému Pro komunikaci NOA70 s řídicím systémem lze využít komunikační protokol ARION nebo Modbus. V našem případě využijeme komunikační protokol ARION. Následující příklad je k dispozici v příloze této aplikační poznámky. Jedná se o soubor s názvem rs_p1_cz_xx.dso. 5.1. Definice NOA70 v DetStudiu Definici NOA70 lze v řídicím systému firmy AMiT provést pomocí tabulky ARION (viz AP0025 Komunikace v síti ARION definice tabulkou ). V případě, že je v NOA70 zavedena aplikace vytvořená v návrhovém prostředí DetStudio, nadefinujeme NOA70 v aplikaci pro řídicí systém přetažením modulu NOA70DS do tabulky (viz následující obrázek). Obr. 49 - Definice NOA70 v řídicím systému Po umístění modulu NOA70DS do tabulky je nutné v okně vlastností tohoto modulu nadefinovat počet registrů, který je na NOA70 k dispozici. Tento se musí shodovat s počtem registrů, nastavených v návrhu aplikace pro NOA70 (viz kapitola 4.3.1 Definice komunikačního protokolu). Jelikož jsme v aplikaci pro NOA70 nastavili a použili 3 registry, bude okno vlastností vypadat následovně. Obr. 50 - Nastavení počtu registrů naprogramovaných v NOA70 5.2. Vytvoření programu pro komunikaci s NOA70 Pro komunikaci řídicího systému s NOA70 využijeme doporučený způsob (viz kapitola 3.2.2 Způsob komunikace s NOA70). ap0047_cz_02 34/53

Do periodického procesu vložíme modul ARI_State, kterým budeme zjišťovat, zda probíhá komunikace s NOA70. Dále použijeme modul ARI_DigIn, pomocí kterého budeme zjišťovat, zda došlo k zápisu do některé proměnné mapované v objektu SerialBusN do registru, nadefinovaného v ovladači NOA70. Na základě příznaku o zápisu do proměnné v objektu SerialBusN provedeme načtení registrů. Zápis požadované hodnoty provedeme tehdy, kdy zaznamenáme její změnu a to pouze v případě, že není nastaven požadavek na čtení (při čtení se provádí i zápis). //Stav NOA a stav přenosu registrů ARI_State 1, NOA_stav, 4, NOA_R_pren //Zjištění změny v NOA ARI_DigIn 1, 0, priznaky, 0x00000000 Let @NOA_RW = priznaky.1 or @Noa_Zap_R If @NOA_RW //Komunikace registrů, kterou v dalších řádcích spustíme, probíhá tak, že se na //jeden požadavek provede zápis i čtení. Proto, před samotným vyvoláním //komunikace provedeme vložení dat do zápisového bufferu ARI_RegOut 1, 2, 1, T_Mist_Zad, NONE[0,0], 5 //Pokyn ke komunikaci registrů NOA ARI_Trig 1, 4 //Potvrzení přijetí informace a nulování příznaku o změně Let Priznak_nul = 2 ARI_DigOut 1, 0, 3, Priznak_nul, 0x00000000 //pokyn k vynulování příznaku ARI_Trig 1, 3 If @Noa_Zap_R //Pokud je požadavek na zápis Let T_Zad_Old = T_Mist_Zad //uložíme hodnotu, kterou jsme zapsali EndIf EndIf //čtení z bufferu aktivujeme, až se vykomunikují data Let @NOA_Cti_R = NOA_stav.0 and not(noa_r_pren.0) If @NOA_Cti_R //Načtení měřené teploty ARI_RegIn 1, 0, 1, T_Mist_Mer, NONE[0,0], 5 //Načtení režimu místnosti a ventilátoru ARI_RegIn 1, 1, 1, NOA_Rez, NONE[0,0], 4 EndIf //Zápis žádané teploty (pouze v případě, že se změní její hodnota) Let @Noa_Zap_R = T_Mist_Zad!= T_Zad_Old //Kontrola, zda došlo ke změně 35/53 ap0047_cz_02

6. DODATEK A 6.1. Nastavení komunikačních parametrů NOA70 z displeje Nastavení komunikačních parametrů NOA70 lze pomocí parametrů objektu SerialBusN učinit také v některém z procesů. Parametry objektu SerialBusN jsou dostupné po jeho vložení do vybraného procesu (pomocí klávesové zkratky Ctrl+j) a následném stisku znaku. (tečka). Obr. 51 - Nastavení parametrů objektu SerialBusN v procesu V případě, že takovéto nastavení umístíme do inicializačního procesu (viz obrázek výše), provede se vždy po restartu NOA70 nebo po jeho připojení k napájecímu napětí. Pokud by programátor takovýto kód umístil do periodického procesu, bude se do jednotlivých parametrů periodicky zapisovat. Tento postup je z hlediska využití výpočetních kapacit NOA70 nevhodný. V případě požadavku na dynamickou změnu komunikačních parametrů tedy doporučujeme toto nastavení provádět v inicializačním procesu. Aby pak byly nově zadané parametry akceptovány, musíme NOA70 restartovat. Pozor Komunikační parametry jsou umístěny v paměti EEPROM, která má omezené množství zápisů. V našem případě budeme požadovat jak možnost dynamické změny komunikačního protokolu, tak možnost dynamické změny komunikačních parametrů. V kapitole 4.2 Definice vnitřních proměnných jsme nadefinovali následující proměnné, které budeme nyní využívat pro zadávání požadovaných komunikačních parametrů z obrazovek NOA70. Obr. 52 - Definice proměnných pro nastavení komunikace Nastavení komunikačních parametrů objektu SerialBusN pomocí nadefinovaných proměnných budeme provádět v inicializačním procesu dle následujícího obrázku. ap0047_cz_02 36/53

Obr. 53 - Nastavení komunikačních parametrů v inicializačním procesu Nastavení parity je umístěno v podmínce If, protože tuto nastavujeme pouze v případě, kdy byl zvolen protokol Modbus. Pro nastavení hodnot proměnných uložených v paměti EEPROM pak využijeme obrazovek a skriptu. Nadefinujeme tedy pět obrazovek s názvy dle následujícího obrázku. Obr. 54 - Seznam obrazovek pro nastavení komunikačních parametrů 6.1.1 Obrazovka se servisním menu Obrazovka Srv_Menu bude sloužit pro rozskok do obrazovek s jednotlivými nastaveními. Otevřeme ji a umístíme do ní z okna Toolbox (sekce General ) prvek Menu. Po jeho umístění na obrazovku na něj provedeme dvojklik a v otevřeném okně nastavíme jednotlivé položky dle následujícího obrázku. Obr. 55 - Nastavení položek prvku Menu Po stisknutí tlačítka OK bude otevřena skriptovací část obrazovky, ve které bude nadefinováno 5 událostí prvku Menu typu ItemX_OnPressEnter. Do čtyř událostí naprogramujeme přechod na 37/53 ap0047_cz_02

požadované obrazovky. Výjimku bude tvořit událost Item4_OnPressEnter, která odpovídá v prvku Menu textu Zpět. V události Item4_OnPressEnter nebudeme programovat návrat zpět na obrazovku Hlavní, ale provedeme restart NOA70 vložením kódu. Application.Reset(); Restart NOA70 použijeme, protože jsme naprogramovali nastavení komunikačních parametrů v procesu ProcessINIT. Aby se tedy změny zadané z obrazovek projevily, musíme po změně parametrů NOA70 restartovat výše uvedeným kódem. Výsledný skript celé obrazovky Srv_Menu bude vypadat následovně. Obr. 56 - Skript obrazovky Srv_Menu Poznámka Pro vložení kódu do jednotlivých událostí lze opět využít tzv. intellisense nápovědy, pomocí které lze do skriptu vkládat požadovaný kód. Ze skriptovací části obrazovky se zpět do její návrhové části přepneme kliknutím na tlačítko Návrh ve spodní části okna (viz následující obrázek). Obr. 57 - Tlačítko pro přechod do návrhové části obrazovky Poté co se přepneme do návrhové části, upravíme vlastnosti prvku Menu v okně Vlastnosti. Rozvineme parametr Advanced, ve kterém změníme parametr Dock na hodnotu Fill (roztažení přes celou obrazovku). Pomocí parametru ItemHeight zadáme větší výšku jednotlivých položek (25 pixelů). V parametru TextAlignment pak nastavíme zarovnání na střed (jak horizontálně tak vertikálně). Nastavení všech vlastností prvku Menu je zobrazeno na následujícím obrázku. ap0047_cz_02 38/53

Obr. 58 - Nastavení vlastností prvku Menu Po změně výše zmíněných vlastností bude obrazovka Srv_Menu vypadat následovně. Obr. 59 - Obrazovka se servisním menu 6.1.2 Obrazovka pro volbu typu protokolu Pro volbu typu protokolu, prostřednictvím kterého si bude NOA70 vyměňovat data s nadřazeným systémem (např. jakýkoliv řídicí systém z produkce firmy AMiT), bude sloužit obrazovka Srv_Protokol. Volbu komunikačního protokolu na obrazovce naprogramujeme pomocí prvku RadioButton, který na obrazovku umístíme z okna Toolbox (sekce TouchScreen ). Po umístění prvku RadioButton na obrazovku na něj dvojklikneme, čímž dojde k otevření okna 39/53 ap0047_cz_02

s definicí jednotlivých položek prvku RadioButton. Prvku nastavíme položky dle následujícího obrázku. Obr. 60 - Nastavení položek prvku RadioButton Po potvrzení nastavení tlačítkem OK dojde k otevření skriptovací části obrazovky, ve které budou vloženy události RadioButton1_Item0_OnSelected a RadioButton1_Item1_OnSelected. V našem kódu je nebudeme využívat a proto je možné definici těchto událostí ve skriptovací části smazat a vrátit se zpět do návrhové části obrazovky. Do spodní části obrazovky nyní umístíme z okna Toolbox (sekce TouchScreen ) prvek Button, který mimo jiné budeme využívat i pro odchod z obrazovky. Dvojklikem na prvek Button opět otevřeme skriptovací část obrazovky. Nyní v ní však bude vytvořena událost Button1_OnButtonDown, kterou využijeme pro uložení požadovaného typu komunikačního protokolu. V závislosti na vybrané položce prvku RadioButton budeme v této události ukládat do proměnné EEPROM.Kom_Protokol hodnotu 0 nebo hodnotu 1. Hodnota 0 odpovídá v objektu SerialBusN komunikačnímu protokolu ARION, hodnota 1 odpovídá v objektu SerialBusN protokolu Modbus. Zároveň s uložením požadovaného typu protokolu naprogramujeme do stejné události také odchod z obrazovky. Výsledný skript tedy bude vypadat následovně. event Button1_OnButtonDown() EEprom.Kom_Protokol = RadioButton1.SelectedIndex; Srv_Menu.Show(); end; Poznámka Zápis do proměnné EEPROM.Kom_Protokol neprovádíme přímo v událostech ItemX_OnSelected prvku RadioButton, protože bychom při častém přepínání mezi jednotlivými typy komunikačního protokolu zbytečně zapisovali do paměti EEPROM. Z toho důvodu je pro nás výhodnější provést zápis do proměnné EEPROM.Kom_Protokol až při odchodu z obrazovky, kdy uživatel nastavil požadovaný typ protokolu. Po přepnutí ze skriptovací části obrazovky do návrhové části klikneme jedenkrát levým tlačítkem myši na vložený prvek Button a v okně Vlastnosti upravíme jeho vlastnosti dle následujícího obrázku. ap0047_cz_02 40/53

Obr. 61 - Nastavení vlastností prvku Button V dalším kroku umístíme do horní části obrazovky prvek Label, který nalezneme v okně Toolbox v sekci Basic. Provedeme dvojklik na něj a do editačního pole napíšeme text Protokol. Výsledná obrazovka pro nastavení volby komunikačního protokolu pak může vypadat např. následovně. Obr. 62 - Obrazovka s nastavením volby komunikačního protokolu Závěrem je nutné doplnit do události OnOpen obrazovky skript, který zajistí, aby se po otevření této obrazovky zobrazil aktuálně nastavený komunikační protokol. Kamkoliv do události OnOpen obrazovky tedy doplníme následující skript. RadioButton1.SelectedIndex = EEprom.Kom_Protokol; RadioButton1.Refresh(); 41/53 ap0047_cz_02

6.1.3 Obrazovka pro nastavení adresy NOA70 Pro nastavení adresy, se kterou bude NOA70 připojen do vybrané sítě bude sloužit obrazovka Srv_Adresa. Rozmezí použitelných adres budeme nastavovat v závislosti na vybraném komunikačním protokolu. Ještě před vlastním programováním nastavení adresy NOA70 zkopírujeme (použitím klávesové zkratky Ctrl+c) z obrazovky Srv_Protokol tlačítko s textem Zpět a vložíme jej (použitím klávesové zkratky Ctrl+v) do obrazovky Srv_Adresa na stejnou pozici. Vlastní nastavení adresy pak budeme provádět držením jednoho ze dvou tlačítek, které umístíme na obrazovku ze sekce TouchScreen okna Toolbox. Tlačítka budeme využívat pro inkrementaci/dekrementaci adresy. Na obrazovku dále umístíme z okna Toolbox (sekce Basic ) prvek NumericView (nebudeme mu přiřazovat žádnou proměnnou) a prvek Label, kterému nastavíme zobrazení textu Adresa. Uspořádání prvků a nastavení jejich velikostí provedeme dle následujícího obrázku. Obr. 63 - Obrazovka s nastavením adresy Zvolenou adresu, stejně jako v obrazovce Srv_Protokol nebudeme ukládat do proměnné EEPROM.Kom_Adresa ihned po její inkrementaci/dekrementaci, ale až při odchodu z obrazovky. Pro obsluhu stisku tlačítek + a - využijeme jejich události OnButtonPress. K výběru událostí se u jednotlivých prvků na obrazovkách dostaneme vždy stiskem tlačítka v okně Vlastnosti zvoleného prvku. Pokud jsou v okně Vlastnosti zobrazeny vlastnosti požadovaného prvku Button, zobrazí se po kliknutí na tlačítko následující seznam událostí. Obr. 64 - Události prvku Button Po kliknutí levým tlačítkem myši do prázdného pole vedle události OnButtonPress se v prázdném poli zobrazí tlačítko. Klikneme na tlačítko čímž dojde k otevření skriptovací části obrazovky a k vytvoření odpovídající události (OnButtonPress). V této události naprogramujeme ap0047_cz_02 42/53

pomocí skriptu inkrementaci adresy NOA70 v závislosti na zvoleném komunikačním protokolu. Výsledný kód obsluhy stisku a držení tlačítka by pak vypadal následovně. event Button2_OnButtonPress() //Obsluha tlačítka + If EEprom.Kom_Protokol then //Je zvolen komunikační protokol Modbus If NumericView1.Value < 245 then NumericView1.Value = NumericView1.Value + 1; Else NumericView1.Value = 0; EndIf; Else //Je zvolen komunikační protokol ARION If NumericView1.Value < 63 then NumericView1.Value = NumericView1.Value + 1; Else NumericView1.Value = 0; EndIf; EndIf; NumericView1.Refresh(); end; Obdobně pak naprogramujeme obsluhu události OnButtonPress tlačítka pro dekrementaci adresy NOA70. Kód obsluhy tlačítka pro dekrementaci bude vypadat následovně. event Button3_OnButtonPress() //Obsluha tlačítka - If EEprom.Kom_Protokol then //Je zvolen komunikační protokol Modbus If NumericView1.Value > 1 then NumericView1.Value = NumericView1.Value - 1; Else NumericView1.Value = 245; EndIf; Else //Je zvolen komunikační protokol ARION If NumericView1.Value > 1 then NumericView1.Value = NumericView1.Value - 1; Else NumericView1.Value = 63; EndIf; EndIf; NumericView1.Refresh(); end; V dalším kroku naprogramujeme obsluhu vloženého tlačítka s textem Zpět. U tohoto tlačítka využijeme události OnButtonDown, ve které nejprve uložíme nastavenou hodnotu adresy do proměnné Kom_Adresa nadefinované v paměti EEPROM a poté naprogramujeme odchod na obrazovku Srv_Menu. Výsledný kód bude vypadat následovně. event Button1_OnButtonDown() //Obsluha tlačítka Zpět EEprom.Kom_Adresa = NumericView1.Value; Srv_Menu.Show(); end; Závěrem je nutné doplnit do události OnOpen obrazovky skript, který zajistí, aby se po otevření této obrazovky zobrazila aktuálně nastavená adresa NOA70. Kamkoliv do události OnOpen obrazovky tedy doplníme následující skript. NumericView1.Value = EEprom.Kom_Adresa; NumericView1.Refresh(); 6.1.4 Obrazovka pro nastavení komunikační rychlosti Pro nastavení rychlosti, s jakou bude NOA70 v síti komunikovat bude sloužit obrazovka Srv_Rychlost. 43/53 ap0047_cz_02

Ještě před vlastním programováním nastavení komunikační rychlosti NOA70 zkopírujeme (použitím klávesové zkratky Ctrl+c) z obrazovky Srv_Protokol tlačítko s textem Zpět a prvek Label s textem Protokol a vložíme je (použitím klávesové zkratky Ctrl+v) do obrazovky Srv_Rychlost na stejnou pozici. Prvek Label po vložení na obrazovku upravíme tak, aby zobrazoval text Rychlost. Vlastní nastavení komunikační rychlosti pak naprogramujeme pomocí prvku RadioButton. Po umístění prvku RadioButton na obrazovku (ze sekce TouchScreen okna Toolbox ) na prvek provedeme dvojklik a nastavíme mu jednotlivé položky dle následujícího obrázku. Obr. 65 - Nastavení položek prvku RadioButton Potvrzením nadefinovaných položek tlačítkem OK se nám otevře skriptovací část obrazovky, ve které naprogramujeme jednotlivé události ItemX_OnSelected prvku RadioButton pro nastavení komunikační rychlosti následovně. event RadioButton1_Item0_OnSelected() EEprom.Kom_Rychlost = 9600; end; event RadioButton1_Item1_OnSelected() EEprom.Kom_Rychlost = 19200; end; event RadioButton1_Item2_OnSelected() EEprom.Kom_Rychlost = 38400; end; event RadioButton1_Item3_OnSelected() EEprom.Kom_Rychlost = 57600; end; Po návratu zpět do návrhové části obrazovky upravíme vlastnosti prvku RadioButton dle následujícího obrázku. Obr. 66 - Nastavení vlastností prvku RadioButton Výsledná obrazovka pro nastavení komunikační rychlosti pak bude vypadat následovně. ap0047_cz_02 44/53

Obr. 67 - Obrazovka pro nastavení komunikační rychlosti V dalším kroku musíme naprogramovat návrat zpět na obrazovku s prvkem Menu. Provedeme dvojklik na prvek Button s textem Zpět, čímž se opět dostaneme do skriptovací části obrazovky, kde do vytvořené události Button1_OnButtonDown() vložíme následující skript. Srv_Menu.Show(); Závěrem je nutné doplnit do události OnOpen obrazovky skript, který zajistí, aby se po otevření této obrazovky zobrazila aktuálně nastavená komunikační rychlost NOA70. Kamkoliv do události OnOpen obrazovky tedy doplníme následující skript. If EEprom.Kom_Rychlost == 9600 then RadioButton1.SelectedIndex = 0; Else If EEprom.Kom_Rychlost == 19200 then RadioButton1.SelectedIndex = 1; Else If EEprom.Kom_Rychlost == 38400 then RadioButton1.SelectedIndex = 2; Else RadioButton1.SelectedIndex = 3; EndIf; EndIf; EndIf; 6.1.5 Obrazovka pro nastavení parity Pro nastavení parity, s jakou bude NOA70 komunikovat v síti Modbus (v síti ARION nelze paritu měnit) bude sloužit obrazovka Srv_Parita. Pro urychlení tvorby této obrazovky zkopírujeme (použitím klávesové zkratky Ctrl+c) všechny prvky z obrazovky Srv_Rychlost a vložíme je (použitím klávesové zkratky Ctrl+v) do obrazovky Srv_Parita. Z obrazovky Srv_Rychlost zkopírujeme také skript pro návrat do obrazovky s prvkem Menu a vložíme jej do skriptovací části obrazovky Srv_Parita. Po vložení skriptu se přepneme zpět do návrhové části obrazovky, provedeme dvojklik na prvek RadioButton a změníme mu jednotlivé položky dle následujícího obrázku. 45/53 ap0047_cz_02

Obr. 68 - Nastavení položek prvku RadioButton Potvrzením nadefinovaných položek tlačítkem OK se nám otevře skriptovací část obrazovky, ve které naprogramujeme jednotlivé události ItemX_OnSelected prvku RadioButton pro nastavení parity následovně. event RadioButton1_Item0_OnSelected() EEprom.Kom_Parita = 0; //Nastavení žádné parity end; event RadioButton1_Item1_OnSelected() EEprom.Kom_Parita = 1; //Nastavení sudé parity end; event RadioButton1_Item2_OnSelected() EEprom.Kom_Parita = 2; //Nastavení liché parity end; Návrh obrazovky pro nastavení parity bude vypadat dle následujícího obrázku. Obr. 69 - Obrazovka pro nastavení parity Paritu je však možné volit pouze pro komunikaci prostřednictvím protokolu Modbus. Na obrazovku tedy dále doprogramujeme zobrazení/skrytí textu s upozorněním na tuto skutečnost v případě, kdy bude vybrán komunikační protokol ARION. Na obrazovku tedy umístíme prvek MultilineLabel do kterého napíšeme text: Pouze pro Modbus. Do události OnOpen obrazovky Srv_Parita pak doplníme následující kód: If EEprom.Kom_Protokol then //pokud je nastaven protokol Modbus MultilineLabel1.Visible = false; //Skryjeme text RadioButton1.Visible = true; //Zobrazíme volbu parity RadioButton1.Enabled = true; //Umožníme volbu parity RadioButton1.SelectedIndex = EEprom.Kom_Parita; //Zobrazíme aktuálně nast. paritu ap0047_cz_02 46/53

Else //Pokud je nastaven ARION MultilineLabel1.Visible = true; //Zobrazíme text RadioButton1.Visible = false; //Skryjeme volbu parity RadioButton1.Enabled = false; //Znemožníme volbu parity EndIf; Srv_Parita.Refresh(); Tím máme zajištěno, že v případě, kdy je vybrána komunikace prostřednictvím protokolu ARION, bude na obrazovce zobrazen text dle následujícího obrázku. V opačném případě bude zobrazena možnost výběru parity (prvek RadioButton bude zobrazovat aktuálně nastavenou paritu). Obr. 70 - Obrazovka s nastavením parity v případě vybraného protokolu ARION Program pro nastavení komunikačních parametrů NOA70 je součástí přílohy této aplikační poznámky. Jedná se o soubor noa_p1_cz_xx.dso. 47/53 ap0047_cz_02

7. DODATEK B 7.1. Zobrazení času řídicího systému na NOA70 Pokud budeme požadovat zobrazení času řídicího systému na NOA70, je nutné toto naprogramovat jak na straně NOA70 tak na straně řídicího systému. Úprava aplikace pro řídicí systém V řídicím systému upravíme globální nastavení sítě ARION (pomocí okna Vlastnosti ). V okně vlastností sítě Arion0 nastavíme parametru TimeBroadcast hodnotu True. Tím dosáhneme rozesílání rámců s údajem o čase řídicího systému všem zařízením v síti ARION. Úprava aplikace pro NOA70 Obr. 71 - Nastavení rozesílání informace o čase Na straně NOA70 plně postačí umístit na obrazovku prvek DateTimeView, kterému nastavíme požadovaný formát zobrazení. V našem případě prvek umístíme na obrazovku Hlavní. Dvojklikem na prvek jej navážeme na proměnnou $SYS_RTC (systémový čas). Ve výsledku pak bude obrazovka vypadat následovně. Obr. 72 - Obrazovka se zobrazeným časem ap0047_cz_02 48/53

8. DODATEK C 8.1. Přechod mezi obrazovkami V případech kdy potřebujeme provést přechod mezi hlavní obrazovkou a např. obrazovkou s uživatelským nastavením korekce nebo přechod mezi hlavní obrazovkou a servisní obrazovkou s nastavením komunikačních parametrů, lze toto realizovat např. prostřednictvím prvku Button. Přechod budeme realizovat tak, že v případě, kdy se uživatel pouze dotkne sekce, která je označena na níže uvedeném obrázku, zobrazí se např. obrazovka s nastavením korekce měřené teploty. V případě, že se této sekce bude dotýkat cca 10 s, tak se zobrazí servisní menu. Obr. 73 - Sekce pro přechod mezi obrazovkami Do požadované sekce tedy umístíme prvek Button, kterému upravíme velikost tak, aby ji měl stejnou jako vybraná sekce. Prvek Button přesuneme pomocí menu Formát/Přenést dozadu do pozadí tak, aby neskrýval prvek se zobrazením textu, měřené hodnoty a času. Obr. 74 - Funkce SendToBack 49/53 ap0047_cz_02

Tlačítku smažeme zobrazovaný text (pole se zobrazovaným textem ponecháme volné). Pro přechod mezi obrazovkami využijeme jeho událostí OnButtonUP (pro přechod na zadání korekce) a OnButtonPress (pro přechod do servisního menu). Vytvoříme novou obrazovku s názvem Korekce, na které budeme zadávat korekci měřené teploty (pomocí prvku NumericEdit na ní budeme provádět editaci proměnné Tepl_Korekce umístěné v paměti EEPROM). Vzhled obrazovky bude dle následujícího obrázku. Obr. 75 - Obrazovka pro zadání korekce Jak bylo uvedeno výše, pro přechod na tuto obrazovku použijeme událost OnButtonUp prvku Button, který jsme umístili na obrazovku Hlavní. Událost bude vypadat následovně. event Button1_OnButtonUp() Korekce.Show(); end; Po přidržení prvku Button na dobu cca 10 s budeme požadovat přechod na obrazovku se servisním menu ( Srv_Menu ). Pro tuto funkčnost využijeme událost OnButtonPress prvku Button (stále pracujeme se stejným prvkem Button, pouze využijeme jeho druhou událost) a prvek Memory (dostupný v sekci General okna Toolbox ). Na obrazovku umístíme prvek Memory. Jedná se o prvek, který se nezobrazí na obrazovce, ale ve spodní části pracovního okna. Obr. 76 - Umístění prvku Memory Tento využijeme k čítání počtu, kolikrát byla vyvolána událost OnButtonPress prvku Button. Při stisku a držení prvku Button na obrazovce se událost OnButtonPress vyvolává s periodou cca 200 ms. Na obrazovku se servisním menu budeme přecházet až poté, co prvek Button budeme ap0047_cz_02 50/53