Práce s Autogenem

Ve Zjednodušeném módu sestavy není nutné autogen znát, jelikož je implicitně (automaticky) aktivovaný a vždy vytvoří proměnné pro všechny dostupné datové body. Toto řešení je vhodné v případě, že s řešením Mervis začínáte.

Pokud ale chcete pracovat na konkrétním projektu, je znalost práce s funkcí Autogen nezbytností a je proto nutné mít sestavu v Plném módu.

V návodu se dozvíte, proč je nutné spravovat Autogen manuálně a jaké z toho plynou výhody.

Patron
Neuron
Gate
Unipi 1.1
Axon

Následující návod navazuje na: První projekt s jednotkou Unipi. Před pokračováním se ujistěte se, že jste tento návod dokončili.

Autogen je nástroj v Mervis IDE, která slouží k vytváření proměnných pro datové body, resp. vstupy a výstupy celé sestavy. Nejedná se pouze o vstupy a výstupy přímo na jednotce, ale také o zařízení připojené pomocí různých protokolů: Modbus, 1-Wire, M-bus, BACnet, aj. Zařízeními mohou být jednotky, nebo rozšiřující moduly Unipi, senzory, elektroměry, atd.

Dále také umožňuje vlastní pojmenování generovaných proměnných.


Co je to datový bod?
Datový bod je definice komunikace pro konkrétní vstup, či výstup. Přímo na datovém bodu se definuje datový typ (bool, byte, int, ..) a případně i další parametry specifické pro zvolený typ komunikace.

Aby bylo možné datový bod použít, je nutné pro něj vytvořit proměnnou, se kterou již lze v programu pracovat.


Nejdůležitější součástí Autogenu je soubor generated.Mixed.st, který je automaticky generován právě touto funkcí a jakýkoli manuální zásah do tohoto souboru může způsobit nedostupnost vstupů a výstupů, nebo neočekávané chování. Proto tento soubor nikdy manuálně neupravujte, nemažte, ani nepřesouvejte.

Zásah do tohoto souboru je možný jen ve vyjímečných případech a to jen pro velmi zkušené uživatele.

V základu existují dvě varianty, jak lze Autogen správně použít a každá varianta má své výhody i nevýhody.

  1. Vytvoření proměnných pro všechny datové body zařízení a následné vypnutí autogenu u datových bodů, které nepoužijete
  2. Vytvoření proměnných jen pro konkrétní datové body, které chcete použít.


1. Pro celé zařízení/kanál

Vytvoření proměnných

Lze použít v případě, kdy nevíte, jaké vstupy a výstupy použijete, nebo chcete-li mít přístup ke všem, např. z důvodu testování/ladění nových zařízení, či celé sestavy (rozvaděče). Následujícím postupem zpřístupníte veškeré vstupy a výstupy pro jedno, čí více zařízení současně.


Nejprve otevřete Váš projekt s přiřazenou jednotkou v Plném módu.

Následně klikněte pravým tlačítkem myši na konkrétní zařízení a zvolte Nastavit autogen:


Otevře se dialog, zde je nutné zvolit do kterého projektu se budou proměnné generovat. Můžete zde také zvolit možnost “Včetně atributů”.

Co jsou atributy a k čemu je lze použít je detailně popsáno v článku Komunikační atributy.

Nyní klikněte na OK.

Tímto se vygenerovaly proměnné pro všechny dostupné datové body a je možné je vyhledat (po kompilaci sestavy) mezi dostupnými proměnnými.


Tento postup lze aplikovat i na všechny zařízení v kanálu kliknutím pravým tlačítkem myši a zvolením Nastavit autogen a potvrzením dialogu.


Smazání proměnných

Postup je téměř totožný.


Nejprve klikneme pravým tlačítkem myši na zařízení/kanál a zvolíme Nastavit Autogen, ale v následujícím dialogu nyní zvolíme Operace: Vypnout Autogen a potvrdíme kliknutím na OK.

Tím se smažou veškeré proměnné pro vybrané zařízení/kanál a již nebudou dále dostupné.


V případě, že máte vytvořeny proměnné i pro atributy a chcete je odebrat, zvolte také možnost Včetně atributů.


2. Pro konkrétní proměnné

Vytvoření proměnných

Pro vytvoření pouze vybraných proměnných je třeba nejprve otevřít editor zařízení. Otevření se provádí dvojklikem na zařízení, v tomto případě na Patron S207.

Otevře se (modbus) tabulka se skupinami a jejich datovými body.


Nyní vyhledáme datový bod, pro který chceme proměnnou vytvořit. V našem případě budeme vyhledávat DI_1.01. Vyhledáme jej pomocí filtru v horní části okna.


Nyní máte dvě možnosti:

  1. Klikneme na datový bod pravým tlačítkem myši, zvolíme Nastavit autogen a potvrdíme dialog
  2. Klikneme na datový bod levým tlačítkem, tím se v pravém panelu zobrazí jeho vlastnosti, zde klikneme na Povolit Autogen a následně o řádek níž vybereme projekt, pro který se bude proměnná generovat

Nyní se vygenerovala proměnná pouze pro zvolený datový bod. Po kompilaci bude dostupná mezi ostatními proměnnými.


Smazání proměnných

Postup je téměř totožný, jako vytvoření konkrétní proměnné.


Pro smazání vybraných proměnných je třeba otevřít editor zařízení. Otevření se provádí dvojklikem na zařízení, v tomto případě na Patron S207.

V otevřené tabulce pomocí filtru v horní části okna vyhledáme datový bod, který chceme smazat.


Nyní máte dvě možnosti:

  1. Klikneme na datový bod pravým tlačítkem myši, zvolíme Nastavit autogen, ale v následujícím dialogu nyní zvolíme “Operace: Vypnout Autogen” a potvrdíme dialog
  2. Klikneme na datový bod levým tlačítkem, tím se v pravém panelu zobrazí jeho vlastnosti, zde klikneme na Povolit Autogen, aby se hodnota změnila na False

Proměnná byla smazána a již nadále nebude dostupná mezi ostatními proměnnými.


Když projekt vytváříte, snadno si zapamatujete, že DI_1.01 je připojen k tlačítku “OK” na operátorském panelu, či k nástěnnému vypínači ve Vaší ložnici. Po půl roce si to už ale pamatovat nemusíte. Stejně tak může dojít k tomu, že bude třeba projekt předat někomu jinému, který na projektu nikdy předtím nepracoval a Vaše značení pro něj bude zmatečné.

Z těchto a dalších důvodů je vhodné proměnné pojmenovat, např.: OK_panel1, Vyp_loznice, atd..


Pro nastavení vlastního názvu proměnných je třeba otevřít editor zařízení. Otevření se provádí dvojklikem na zařízení, v tomto případě na Patron S207.

V otevřené tabulce vyhledáme datový bod, který chceme smazat. Lze využít vyhledávání v horní části okna.


Nyní máte dvě možnosti:

  1. Klikněte na datový bod levým tlačítkem, a ve sloupci Jméno pro Autogen vložte váš vlastní název a potvrďte stisknutím klávesy ENTER nebo kliknutím na tlačítko
  2. Klikněte na datový bod levým tlačítkem, tím se v pravém panelu zobrazí jeho vlastnosti, zde klikněte na Generované jméno proměnné, vložte váš vlastní název a potvrďte stisknutím klávesy ENTER nebo kliknutím na tlačítko

Proměnná je nyní přejmenována a lze ji pod tímto názvem vyhledat mezi ostatními proměnnými.


Změna názvu zařízení

Jelikož každá proměnná má vždy před vlastním názvem ještě název zařízení (zde: Patron S207), je vhodné nastavit i tento název zařízení, aby byl projekt přehlednější. Nejvíce intuitivní jsou jména založená na fyzickém umístění: Kotelna, Sklep, RZV1, Hala3, atd..


Pro změnu názvu klikněte na konkrétní zařízení a v pravém sloupci vlastností nastavte nový název. Následně potvrďte stisknutím klávesy ENTER nebo kliknutím na tlačítko .


K dispozici je také přehled všech datových bodů, jejich datových typů, vlastního pojmenování, či výsledná deklarace proměnné. Tento rychlý přehled je k dispozici pro každé PLC zvlášť a zahrnuje datové body a kanály všech připojených technologií zvoleného PLC.


Pro zobrazení přehledu mapování I/O dvojitě klikněte na regulátor (PLC) v levém panelu.

Otevře se okno PLC s mapováním úloh (tasků), kde ve spodní části přepněte na Mapování I/O.

Nyní se již zobrazí tabulka s rychlým přehledem všech datových bodů.


Jednoduše lze říci, že datové body nejsou komunikovány (čteny/zapisovány), pokud nemají vytvořenou proměnnou. Vždy tomu tak ale není.

Následující příklad je proto vysvětlen na nejpoužívanějším komunikačním protokolu Modbus, který je právě komunikován po skupinách, nikoli po jednotlivých bodech.


Otevřete si (modbus) tabulku vaší jednotky. Zde máte mnoho skupin s ještě více datovými body.


Jak již bylo zmíněno, Modbus komunikuje po skupinách a každá skupina znamená jednu samostatnou zprávu skládající se z adresy, funkce, dat a CRC. Každá Modbus zpráva tedy znamená určité zpoždění v závislosti na rychlosti komunikačního rozhraní, které dále může narůstat v případě, že došlo ke ztrátě, nebo poškození zprávy.


Např. u funkce F03 prodlužuje každý Modbus registr (2 byty) zprávu s odpovědí právě o 2 byty.

Pokud tedy čtete v rámci jedné skupiny 1 registr, je dotaz složen z 8 bytů a odpověď ze 7 bytů. Čtete-li 10 registrů v rámci jedné skupiny, je dotaz stále složen z 8 bytů, ale odpověď je nyní složena z 25 bytů.

Pokud v rámci skupiny nečtete žádný registr - žádný datový bod v rámci skupiny nemá vytvořenou proměnnou, je celá zpráva přeskočena. Pokud tento postup aplikujete na všechny datové body/skupiny, lze tak výrazně zrychlit čtení/zápis ostatních skupin a zrychlit tak celkovou odezvu systému.