====== Propojení Mervis IDE a Jablotron 100 ====== Máte, nebo se chystáte integrovat zabezpečovací systém Jablotron 100 a přejete si využít periferie elektronického zabezpečovacího systému (EZS) i k dalším účelům? Použít stavy sekcí a periferií pro úsporu energií, anebo máte zcela jiný nápad a zajímá Vás, jak ho můžete realizovat? Následující návod Vás provede nastavením HW i SW EZS Jablotron 100 a nastavením Mervis IDE. ;;# Patron \\ Neuron \\ Gate \\ Unipi 1.1 \\ Axon ;;# Co budete potřebovat? * Jednotku [[cs:files:software:os-images:00-start|Unipi s Mervis OS v2.3.0]] nebo novější * [[https://www.unipi.technology/cs/accessories-c4|24 V⎓ napájení]] * Připojení k místní síti (libovolný switch, nebo router) * Ústřednu Jablotron 100(+) * RS-485 modul Jablotron JA-121T * [[https://www.unipi.technology/cs/accessories-c4|Napájecí zdroj 6–28 V⎓]] pro modul JA-121T ===== 1 Zapojení modulu JA-121T ===== Modul JA-121T zajišťuje galvanické oddělení linek Jablotron100 a RS-485. Proto je doporučeno přivést na každou stranu napájení z jiného napájecího zdroje. Jedna strana modulu je napájena přímo z ústředny a pro druhou **oddělenou stranu** použijte napětí v rozmezí 6–28 V⎓ jiné, než je použito pro napájení PLC (viz. manuál JA-121T). Dále propojte svorku **D+** modulu JA-121T se svorkou **RS485-A** na PLC. Stejný postup opakujte i pro svorku **D–** a **RS485-B**. {{ :cs:sw:01-mervis:Jablotron100_cz_01.png?nolink |}} ===== 2 Seznámení s ústřednou a popis jejího nastavení ===== ==== 2.1 Úvod a seznámení ==== Zabezpečovací ústředny Jablotron 100(+) a jejich periferie komunikují po proprietární sběrnici Jablotron. Modul JA-121T slouží jako převodník interní sběrnice Jablotron na sériovou linkou RS-485 s ASCII komunikací a zpřístupňuje tak informace o EZS dalším systémům. Díky modulu je tak možné číst stavy periferií, sekcí nebo PG a také zapisovat stav sekce nebo PG. === 2.1.1 Sekce === Pomocí datových bodů **Section_state** lze zjistit, nebo i měnit stav (odjištěno, zajištěno, servis atd..) jednotlivých sekcí. **Section_flags** zobrazují stav sirén, druh poplachu, příchodové a odchodové zpoždění. === 2.1.2 PG === PG v ústřednách Jablotron jsou proměnné, které lze ovládat různými stavy, periferiemi atd. V některých instalacích EZS mohou být PG mapovány i na fyzické vstupy či výstupy. Pro účely tohoto tutoriálu jsou vhodné zejména kvůli rychlé reakci při propsání události do PLC. Na PG lze kopírovat např. stav periferie a lze jej tak vyčíst mnohem rychleji. === 2.1.3 Periferie === Periferie EZS může být magnetický okenní kontakt, či pohybové čidlo, fotopast, aj. Modul JA-121T bohužel zprostředkuje aktuální stavy periferií jen jednou za 10 s a to vždy s aktuální hodnotou ve chvíli čtení. Tato prodleva tak nemusí být vhodná pro všechna použití, a ne vždy lze spolehlivě zjistit změnu stavu periferie. Pokud je zapotřebí číst stavy rychleji a s jistotou, je vhodnou variantou čtení za pomoci PG. === 2.1.4 Aktivní vs pasivní mód modulu JA-121T === == Aktivní == V tomto módu modul JA-121T komunikuje spontánně. Ve chvíli, kdy nastane na sekci, PG, nebo periferii* změna, modul okamžitě odesílá informace o změnách. Tento režim není vhodný v instalacích, které požadují zapisování dat do ústředny, jelikož by na sériové lince RS-485 docházelo ke kolizím mezi daty z modulu a daty z PLC. //*propsání periferií jen jednou za 10 s// == Pasivní == Pasivní mód komunikuje na principu dotaz/odpověď. Při zapisování dat do EZS (nastavení sekcí, ovládání PG) je nutné použít tento mód. ==== 2.2 Nastavení ústředny ==== Před začátkem použití aktualizujte ústřednu včetně periferií. **Pro zápis do EZS:** Zejména u pasivního režimu je nutné vytvořit samostatného uživatele pro PLC a přidělit mu patřičné oprávnění, prefix (první sloupec) a kód (čtvrtý sloupec). Tyto údaje jsou následně vyžadovány v Mervis IDE pro nastavení komunikačního protokolu Jablotron 100.
Nastavení modulu JA-121T v ústředně je následující: * Základní režim – Terminál * Svorka TMP – dle umístění modulu (nastavení technika EZS) * Tlačítko desky - nastavení technika EZS * Doba, po které vyhlásí poruchu – 0 * Potvrzení spojení – Vypnuto * Pasivní mód – při zatržení nastaven, jinak aktivní mód (dle použití, viz. [[#pasivni_vs_aktivni_mod_ja-121t|kapitola 2.1.4]]) {{ :cs:sw:01-mervis:Jablotron100_cz_03.png?nolink |}} Pokud chcete, aby PLC registrovalo hlášení sabotáže ústředny i když EZS není zajištěna, v nastavení ústředny musí být zatržena vlastnost "//Akustická signalizace sabotáže//".
**__Důležité informace z ústředny Jablotron 100, potřebné pro nastavení v Mervis IDE__** **Zmapování ústředny:** * Popis a pozice konkrétních periferií, oblast sekcí, či popis funkce jednotlivých PG **Pro zápis do EZS:** * Prefix a heslo uživatele * Výběr sekcí a PG, které může uživatel ústředny ovládat ===== 3 Nastavení v Mervis IDE ===== Tato kapitola je rozdělena do tří částí. První část je věnována přidání reference na knihovnu Lib.Jablotron, což je důležité pro funkčnost připravených zařízení ústředen v Mervis IDE. Další část je popis nastavení komunikačního kanálu a zařízení ústředny, zde se nastavují konkrétní informace o EZS. V poslední, třetí, části je probírána úprava zařízení přidaného v předchozí části. Tato úprava slouží pro optimalizaci komunikace. Nyní vytvořte nový projekt, nebo integrujte do vašeho stávajícího projektu. Postupujte podle následujícího návodu:
==== 3.1 Přidání reference na knihovnu Lib.Jablotron ==== Knihovna Lib.Jablotron usnadňuje práci pomocí předpřipravených funkčních bloků a transformací. Transformace **SectionTransform** jsou použity přímo v předpřipravených zařízení Ústředen, takže před jejich vložením do projektu je nutné nejdříve přidat referenci na tuto knihovnu. K projektu ji připojíte tím, že pravým tlačítkem myši kliknete na **Reference** a zvolíte **Přidat referenci**.
Následně kliknete na záložku **Standardní knihovny**, vyberete požadovanou knihovnu a kliknete na **OK**.
==== 3.2 Nastavení komunikačního kanálu v Mervis IDE a přidání konkrétní ústředny ==== Vytvořte nový kanál. Pravým tlačítkem myši klikněte na PLC a vyberte možnost **Přidat kanál**.
Klikněte na právě přidaný kanál a v pravém sloupci nastavte vlastnosti kanálu. Vlastnosti kanálu \\ **Název** – popisný název kanálu, například JA-121T nebo Jablotron 100 \\ **Povolit** – kanál musí být povolen (True), aby komunikoval \\ **Protokol** – zvolte "Jablotron 100" \\ **Linkový protokol** – zvolte "Serial" Parametry protokolu Jablotron 100 \\ **Prefix kódu** – vyplňte pouze při zapisování do Ústředny – pořadí uživatele získané v nastavení ústředny (např. servisní technik - 0) \\ **Kód** – pouze pro zápis – přístupový kód uživatele \\ **Pasivní mód** – pokud chcete do ústředny zapisovat zvolte TRUE, jinak **FALSE** (musí souhlasit i s nastavením v EZS) viz. [[#pasivni_vs_aktivni_mod_ja-121t|kapitola 2.1.4]] Parametry sériové linky \\ **Číslo portu** – RS-485 port PLC, na který je připojen modul JA-121T \\ **Přenosová rychlost** – zvolte __9600__ – komunikační rychlost v bit/s \\ **Počet datových bitů** – zvolte 8 \\ **Parita** – zvolte "__žádný__" \\ **Počet stop bitů** – zvolte "__jeden__"
Když máte vše v kanálu nastaveno, klikněte na kanál pravým tlačítkem myši, rozbalí se vám nabídka a zde vyberte **Přidat zařízení z knihovny**.
Pro každou ústřednu je již předdefinováno zařízení s maximálním počtem sekcí, periferií i PG, včetně datových bodů pro zápis, či vstupně-výstupních vazeb na datové body. Otevře se okno, ve kterém si dvojklikem vyberete požadovaný typ ústředny. Potvrďte kliknutím na **OK**.
V tuto chvíli již máte zařízení připraveno ke komunikaci a můžete projekt nahrát do PLC.
Právě přidané předdefinované zařízení ústředen obsahuje maximální konfiguraci ústředen. Pro správnou funkčnost je ale nutné zařízení optimalizovat, tj. pročistit od nepoužitých datových bodů sekcí, periferií a PG. ==== 3.3 Optimalizace zařízení ústředny v Mervis IDE ==== Pokud jste zvolili komunikaci s ústřednou v aktivním režimu, můžete tuto kapitolu vynechat a pokračovat [[#priklad_pouziti_funkcnich_bloku_a_vyctoveho_typu|kapitolou 4]]. Čtení hodnot z EZS probíhá po skupinách. Každá skupina má nastaven vlastní interval čtení dat. Implicitně je v zařízení z knihovny nastaveno pro sekce 2s, pro periferie 5 s a pro PG 5 ms. Toto nastavení je zvoleno pro stabilní komunikaci a pro co nejmenší zpoždění při čtení dat. Optimalizace bude popsána na praktické instalaci. === 1 Příklad zadání: === Je třeba pomocí PLC vyčítat z Ústředny JA-103 stavy Sekce 1 a Sekce 2. Dále také sledovat 5 senzorů, které jsou namapovány na prvních 5 PG ústředny. Stav PG je z ústředny vyčten v čase 1 až 1,5 s. Modul JA-121T v EZS musí být nastaven v **pasivním** režimu. Čtení z EZS je závislé na vytížení komunikace po sběrnici. === 2 Samotná úprava: === Klikněte pravým tlačítkem myši na zařízení v komunikačním kanálu **JA-121T** a zvolte **Vytvořit specifické**. Tím povolíte úpravy zařízení.
Máte-li projekt v Mervis IDE přepnut do **Plného módu**, je v před dalším krokem nutné nastavit **Autogen** pro celé zařízení **JA-103.generic**. Nyní dvojklikem otevřete zařízení ústředny JA-103.generic v Mervis IDE. Zde vidíte komunikační skupiny a datové body jednotlivých periferií, PG, či sekcí s jejich příznaky. Pro zjednodušení orientace jsou Skupiny a jejich Stavy vybarveny fialově a zeleně, Datové body bíle.
\\ Čtení periferií je ve výchozím nastavení definice zařízení v Mervis IDE nastaveno na 5s, což zajistí, že zprávy dorazí v nejrychlejším možném intervalu. Je to proto, jelikož modul JA-121T aktualizuje čtené stavy periferií jednou za 10 s. Pokud je požadována rychlejší reakce, je nutno použít PG. Do PG lze propisovat stavy periferií i dalších stavů systému. Z toho důvodu, chcete-li číst například stavy senzorů, musíte v ústředně nastavit kopírování stavu požadovaných periferií (senzorů) na některé z PG ústředny. Rychlost čtení PG závisí na počtu čtených PG, počtu sekcí, aj. Dále komunikaci mírně zpomalí i čtení periferií, kde nezáleží na počtu, ale pouze na tom, zda je čteme, či nikoli. \\ Označte všechny sekce a příznaky, které nebudete používat. Jedná se o datové body skupiny **section_flags_and_states_rd** začínající **section_flag_** a **section_state_**. Pro účely tohoto návodu s EZS JA-103 zvolte sekce 3-8 i s jejich příznaky a stiskněte **DELETE**. Tím vymažete přebytečné sekce, které nebudete používat.
Stejný postup použijte i pro čtení stavu PG, tj. datové body skupiny **pg_rd** začínající **pg_**. Řekněme, že chceme sledovat stav 5 senzorů mapovaných na PG 1 až 5, a proto vymažeme PG 6 až 32, které nebudeme potřebovat.
V tomto návodu nebudeme potřebovat vyčítat stav periferií, jelikož se předpokládá, že všechny potřebné periferie technik Jablotronu namapoval na PG 1 až 5. Označte proto všechny periferie i se skupinou a stiskněte DELETE. Pokud však potřebujete vyčítat stav periferií, ponechte pouze datové body které použijete, ostatní odstraňte. Jedná se o datové body skupiny **peripherals** začínající **peripheral_**.
Stejný postup opět použijte i na datové body pro zápis do ústředny. Zde je však pro každý datový bod pro zápis do sekce nebo PG vyhrazena vlastní skupina a je tedy potřeba smazat jak skupinu tak i její datový bod včetně stavu sekce. Zde se jedná o skupiny **section_state_xy_woch** a jejich datové body **section_state_xy_w** respektive skupiny **pg_xyz_woch** a datové body **pg_xyz_w**. Tyto datové body ale v zásadě mazat nemusíte, rychlost komunikace neovlivňují, jedná se jen o přehlednost.
Přesuňte se úplně dolů, kde naleznete tzv. vazby. Vazba (žluté pozadí) je spojovacím bodem, který je navázán na datový bod pro zápis i pro čtení. Díky tomu lze oba tyto datové body spojit a současně číst i zapisovat pomocí jedné proměnné. Vazby jsou použity pro PG a stavy sekcí a jedná se o vazby s názvem **pg_xyz** a **section_state_xy**.I tyto vazby můžete pro přehlednost odstranit.
Výsledek by měl vypadat následovně: {{ :cs:sw:01-mervis:Jablotron100_cz_21.png?nolink |}} V tuto chvíli máte zařízení nastaveno. V případě rozsáhlejší instalace doporučujeme upravit i interval pro čtení a zápis. Pokud dochází k chybám na sběrnici, což zjistíte v prohlížeči proměnných ve sloupci chyba komunikace, je třeba tyto intervaly prodloužit a optimalizovat tak komunikaci, jelikož modul v ústředně nestíhá zpracovat požadavky z PLC. To provedete tím, že označíte skupinu ve které chcete změnit interval čtení - v pravém sloupci se vám poté zobrazí nastavení skupiny. Zde vyhledejte a nastavte **Interval čtení/zápis**. Následně je nutné znovu nahrát sestavu. Pokud ani toto navýšení intervalů nepomáhá, jedná se nejspíš o chybu zapojení, nebo použité kabeláže mezi PLC a ústřednou. Doporučené rozmezí: \\ * Section_flags_and_states_rd ..... 1 až 5 s * pg_rd ................................................... 0 až 500 ms * peripheral ........................................... 5 až 30 s U skupin pro zapisování není v tomto případě interval důležitý, jelikož jsou nastaveny k zápisu při změně.
Více informaci o zařízení Jablotron v Mervis IDE a popis všech datových bodů, či skupin naleznete v nápovědě Mervis IDE. Pro otevření nápovědy stiskněte klávesu F1. ===== 4 Příklad použití funkčních bloků a výčtového typu ===== Zde vidíte příklad použití zabezpečovacího systému Jablotron100 v Mervis IDE. Pomocí tohoto řešení lze, při narušení objektu, či jiném poplachu, blikat se všemi světly v domě, spustit speciální program pro minimalizaci škod při narušení objektu, nebo spustit dodatečné hlášení, akustickou, či optickou signalizací. Dále na základě informace o opuštění (zastřežení) objektu, lze pozastavit, či omezit automatické úlohy pro komfort v obydlí (vytápění, oběhové čerpadlo, aj) a optimalizovat tak náklady. Dále je možné například odpojit části domu od elektrické sítě, aby se zamezilo poškození majetku, typicky rychlovarná konvice v kuchyni. V neposlední řadě lze při opuštění objektu vše automaticky zamknout. Pokud v objektu nastane požár, je také signalizován do PLC, čímž lze odpojit celý dům, nebo jen jeho část, od el. sítě. Tím automaticky chráníte další majetek před poškozením. Při pohybu nezajištěným objektem lze například optimalizovat běh cirkulačního čerpadla TUV, nebo upravovat vytápění objektu podle aktuální situace.
==== 4.1 Transformace datového bodu – SectionTransform ==== Jedná se o transformaci datového bodu stavu sekce z typu USINT na výčtový typ **SectionState (v podobě STRING)**. Transformace je aplikována na všechny vazby datových bodů **Section_state**. Bez této transformace nelze použít funkční blok **SectionFlagsHolder**. Konverze je popsána v následující tabulce: {{:cs:sw:01-mervis:Jablotron100_cz_24.png?nolink |}} ==== 4.2 Funkční bloky ==== Knihovna Lib.Jablotron obsahuje dva funkční bloky sloužící pro rozdělení příznaků sekcí. Vstupem obou funkčních bloků je proměnná Section_flags, slouží pro indikaci příznaku sekce (hlášení sirén, poplach, příchodové a odchodové zpoždění). Tyto příznaky určují druh poplachu (požár, narušení, tíseň, sabotáž). To Vám dává možnost, aby PLC reagovalo na různý poplach rozdílným způsobem tak, jako je popsáno v úvodu [[#priklad_pouziti_funkcnich_bloku_a_vyctoveho_typu|kapitoly 4]]. Pokud potřebujete indikovat i sabotáž a chcete přidržet poplach EZS v PLC do změny stavu sekce, je zde ještě upravená varianta funkčního bloku s názvem **SectionFlagsHolder**. Výstup je u těchto bloků vždy typu bool (True/False). {{ :cs:sw:01-mervis:Jablotron100_cz_25.png?nolink&170|}} === 4.2.1 SectionFlags === Je blok, který reprezentuje vstupní hodnotu **USINT** příznaku sekce na jednotlivých výstupech **BOOL**, a to i v kombinacích. Tabulka s popisem všech sledovaných bitů vstupu **Flags**: {{:cs:sw:01-mervis:Jablotron100_cz_26.png?nolink |}} {{ :files:img_breakline.png?nolink |}} {{ :cs:sw:01-mervis:Jablotron100_cz_27.png?nolink&170|}} === 4.2.2 SectionFlagsHolder === Varianta **SectionFlags** s rozšířenou funkcionalitou. Byl přidán výstup **SabotageAlarm** spolu s funkcí, která automaticky rozpozná sabotáž a nastaví tento výstup na **TRUE**. Zásadní změnou je, jak napovídá název, funkce **přidržení**. Ta přidrží alarm až do změny stavu sekce **State** díky čemuž je nutné přivést na vstup i stav sledované sekce. Druhým rozšířením je volitelný vstup **Clear**, který umožňuje manuální reset přidržených výstupů poplachů do **FALSE**. Tento vstup je skrytý a nemusí být použit. {{ :files:img_breakline.png?nolink |}} ==== 4.3 Výčtový typ – SectionState ==== === 4.3.1 ST - strukturovaný text === Proměnná výčtového typu SectionState je definována v knihovně Lib.Jablotron. Příklad použití v ST: \\ \\ **Deklarace:** Nejprve si vytvoříme proměnnou typu SectionState, nazveme ji ''State'' State : SectionState; **Použití:** pro zápis do proměnné musíte použít formát ''SectionState#STAV'' State := SectionState#STAV; === 4.3.2 FUPLA === Pro zjištění konkrétního stavu z výčtového typu **SectionState** nejlépe poslouží **funkční blok EQ**, kterému přivedete na vstup **IN1** stav sledované sekce (Section_state), vstup **IN2** skryjete a jako výchozí hodnotu mu nastavíte: **lib.jablotron.v1_0.sectionstate#STAV**.
Hodnotu **STAV**, zmíněnou vždy za znakem **#**, nahraďte konkrétním stavem **SectionState** z tabulky v [[#transformace_datoveho_bodu_sectiontransform|kapitole 4.1]].