Komunikační protokol Jablotron100 (JA-121T)
Driver pro komunikaci s modulem Jablotron JA-121T. Jedná se o RS-485 bránu do uzavřeného systému (sběrnice) Jablotron 100. V Mervis IDE je driver označen jako „Jablotron 100“. Byla přidána také knihovna Lib.Jablotron, na kterou je však nutno přidat referenci. Knihovna obsahuje transformaci sekcí SectionTransform a funkční bloky SectionFlags a SectionFlagsHolder.
Dále knihovna obsahuje výčtový typ SectionState.
Použití výčtového typu SectionState
ST - strukturovaný text
Proměnná výčtového typu SectionState je definována v knihovně Lib.Jablotron.
Příklad použití v ST:
Deklarace proměnné typu SectionState, nazvané State
.
State : SectionState;
Zápis konkrétního stavu do proměnné:
State := SectionState#STAV;
FUPLA - funkční bloky
Pro zjištění konkrétního stavu z výčtového typu SectionState nejlépe poslouží funkční blok EQ, s přivedeným stavem sledované sekce (Section_state) na vstup IN1, vstup IN2 bude skrytý a jeho výchozí hodnotou je: lib.jablotron.v1_0.sectionstate#STAV.
Hodnotu STAV zmíněnou vždy za znakem #, nahraďte konkrétním stavem SectionState z následující tabulky:
USINT | SectionState | Význam |
1 | Ready | Odjištěno |
2 | ArmedPart | Částečně zajištěno |
3 | Armed | Zajištěno |
4 | Maintenance | Údržba |
5 | Service | Servis |
6 | Blocked | Blokace systému |
7 | Off | Nepoužito |
ostatní | Unknown | Neznámý stav |
Každé zařízení Jablotron v Mervis IDE obsahuje datové body stavu sekce (section_state). Všechny tyto datové body mají nastavenu transformaci „SectionTransform“.
Pokud je na datovém bodu nasazena transformace, výstupem datového bodu je proměnná výčtového typu SectionState.
Datový bod, definovaný v zarízení Jablotron na straně Mervis IDE, není sám od sebe dostupný v programu. Je to pouze definice komunikace. Je tedy nutné priradit definici datového bodu promennou s odpovídajícím datovým typem. Promenné mohou být tvoreny a prirazovány k datovým bodum také automaticky, s využitím funkce Autogenu.
Komunikační kanál
Nejprve je treba založit komunikacní kanál. Ten urcuje, jakým protokolem a na jakém fyzickém portu bude PLC komunikovat s ústrednou Jablotron 100. Modul JA-121T komunikuje za pomoci sériové komunikace RS-485 (8n1), pri rychlosti 9600 bit/s.
Vlastnosti kanálu
Název – obvykle se pojmenuje podle skupiny zařízení, která jsou na něj připojena, ale v tomto případě je celý jeden kanál vyhrazen jen pro Jablotron – např. „JA-121T“ nebo „Jablotron_100“
Povolit – kanál musí být povolen (True), aby komunikoval
Protokol – zde se vybírá komunikační protokol, vyberte „Jablotron“
Linkový protokol – u tohoto protokolu vždy „Serial“
Parametry protokolu Jablotron 100
Prefix kódu – pořadí uživatele získané v nastavení ústředny (např. servisní technik - 0)
Kód – zde se zadává přístupový kód uživatele
Pasivní mód – TRUE = ústředna posílá pouze odpovědi na dotazy, FALSE = ústředna posílá informace okamžitě, bez vyžádání
Parametry sériové linky
Číslo portu – COM port podstanice. (vyberte některý z portů RS-485)
Přenosová rychlost – komunikační rychlost v bit/s. (rychlost modulu je 9600 bit/s)
Počet datových bitů – počet datových bitů v jednom bajtu. (vyberte 8)
Parita – zvolte komunikační paritu – žádnou, sudou nebo lichou. (vyberte “žádný”)
Počet stop bitů – počet bitů, které signalizují konec přenášeného bajtu (vyberte “jeden”)
Zařízení komunikačního kanálu
Pravým kliknutím na kanál se rozbalí nabídka, zde lze pod položkou Pridat zarízení z knihovny vybrat a pridat definici pro danou verzi zabezpecovacího systému Jablotron 100. Zarízení vždy predstavuje maximální pocet datových bodu (sekcí, PG, periferií) pro danou verzi ústredny Jablotron 100. Na jednu sériovou linku (kanál) lze pripojit pouze jednu ústrednu.
Oznacením zarízení v Mervis IDE se v pravém sloupci zobrazí jeho vlastnosti:
Vlastnosti zařízení
Název – zařízení je možné pojmenovat, např. podle ústředny
Povolit – aby zařízení komunikovalo, musí být povoleno (True)
Je specifický box – informace o tom, zda zařízení je z knihovny, nebo jej lze upravovat
Definice prototypu
Stav – volně definovatelné, poznámka pro fázi vývoje (Vývoj, Test, Vydání (ostrá verze), Zastaralý, Porušený (odštěpená větev od hlavní vývojové větve), Nepodporován
Informace o zařízení
Model – volně definovatelné, poznámka pro název hardwaru
Verze – volně definovatelné, poznámka pro verzi hardwaru
Výrobce – volně definovatelné, poznámka pro název výrobce
Skupiny datových bodů
Dvojitým kliknutím na zařízení se otevře pracovní plocha pro definování skupin a datových bodů v zařízení. Komunikace probíhá ve skupinách datových bodů. V rámci jedné skupiny (jednoho požadavku pro čtení) se lze dotázat na stav více, či všech sekcí, nebo PG, anebo periferií současně. Zpět ústředna odesílá odpověď s aktuálním stavem vyžádaných sekcí, či PG, nebo periferií. Komunikace po skupinách a při vhodných intervalech čtení proto při správném použití nezatěžuje provoz na sběrnici. Periferie, pokud je všechny neodstraníte i se skupinou, se vždy čtou všechny, i ty nepoužité. Proměnné se vždy musí definovat jako členy určité skupiny.
Avšak ne vždy je výhodné skupinu s více datovými body použít, např. pro zápis se standardně používá skupina pouze s jedním datovým bodem.
Vybrané zařízení Jablotron 100 z knihovny již má definován maximální počet datových bodů. Vlastnosti skupin jsou popsány v následujících odstavcích.
Vlastnosti skupiny
Název – označení skupiny, vychází z vlastností obsažených datových bodů (čtení, zápis atp.)
DataPoint.SortOrder – pořadí skupiny na pracovní ploše zařízení (0,1,2, …, N)
Interval čtení/zápis – jak často má skupina komunikovat. Pro trvalou komunikaci, tj. co nejrychleji za sebou, zvolte 0ms. Interval je ve výchozím stavu v knihovně optimalizován pro co nejefektivnější komunikaci s ústřednou (section: 2s, PG: 5ms, peripheral: 5s)
Je specifický box – informace o tom, zda zařízení je z knihovny, nebo jej lze upravovat
Typ skupiny – volba mezi ReadOnly (pouze pro čtení) a WriteOnly (pouze pro zápis)
Parametry skupiny Jablotron 100
Objekt – se kterým typem objektů bude skupina pracovat (section, PG, peripheral)
Ptát se pouze na vybrané – pokud není povoleno, skupinový dotaz se dotazuje na všechny objekty zvolené skupiny (i ty ve skupině nedefinované), pokud je povoleno, skupinový dotaz se dotazuje pouze na vybrané datové body definované ve skupině
Datové body
V další části jsou probrány definice datových bodů, do nichž bude driver načítat hodnoty z ústředny, vyčtených při komunikaci skupiny.
Vlastnosti datového bodu
Název – označení datového bodu, pod tímto názvem bude proměnná uložena v programu
DataPoint.SortOrder – pořadí datového bodu ve skupině (0,1,2, …, N)
Interval čtení/zápis – pokud má být interval pro tuto proměnnou delší než interval skupiny, v níž je čten, je možné jej zde zadat
Je specifický box – informace o tom, zda zařízení je z knihovny, nebo jej lze upravovat
Skupina – vybereme skupinu, do níž datový bod přísluší
Typ skupiny – vyplní se automaticky po vybrání skupiny (pro čtení nebo pro zápis)
Typ mapované komunikační hodnoty – výběr mezi BuiltIn, Bit a Array.
Bit – vybereme, pokud chceme číst hodnotu typu bool
BuiltIn – vybereme, pokud chceme číst hodnotu jakéhokoli jiného typu, typ upřesníme v poli Typ ST
Array – vybereme, pokud chceme číst pole hodnot do proměnné typu pole (array)
Typ ST – vybereme typ proměnné, která vznikne touto definicí. Pokud není použita transformace (viz níže), typ. (pro section – usint, ostatní bool)
Transformace – Mezi načtením hodnoty z ústředny a přiřazením do proměnné je možné hodnotu přepočítat – transformovat. U protokolu Jablotron lze využít transformaci z usint na string pro stav sekcí ve tvarech odpovídajících názvům stavů sekcí ústředny. Využití je například pro výpis stavu sekcí na HMI
Parametry datového bodu Jablotron 100
Index objektu – pořadí objektu na straně ústředny (čísla odpovídají číslům sekcí, PG, periferií)
Informace sekce – výběr mezi přiřazením stavu, nebo příznaku sekce datovému bodu
Autogen
Povolit Autogen – Povolením Autogenu (automatického generování) se při kompilaci automaticky vytvoří globální proměnné a namapují se na vstupní a výstupní proměnné. Teprve s globálními proměnnými je možné pracovat v programech a vkládat je do žebříčků FUPLA. Pokud není Autogen povolen, je nutné globální proměnné vytvářet a přiřazovat vstupním a výstupním proměnným manuálně. Doporučuje se nastavit Povolit Autogen = True
Mapování
IO⇒ST – mapování vstupní proměnné na globální proměnnou („vstup – výstup na strukturovaný text či FUPLA“)
ST⇒IO – mapování globální proměnné na výstupní proměnnou („strukturovaný text či FUPLA na vstup – výstup“)
Vazby datových bodů
Dále jsou zde probrány definice vazeb na datové body. Na vazby lze namapovat proměnné pro čtení a pro zápis a tím vytvořit proměnnou ze které lze číst i do ní zapisovat.
Vlastnosti vazeb
Název – označení vazby, pod tímto názvem proměnná uložena v programu
Je specifický box – informace o tom, zda zařízení je z knihovny, nebo jej lze upravovat
Typ mapované kom. hodnoty – stejný jako u datových bodů, pro které je vazba vytvořena
Typ ST – vyplní se automaticky po vybrání datových bodů (pro čtení a pro zápis)
Transformace – Mezi načtením hodnoty z ústředny a přiřazením do proměnné je možné hodnotu přepočítat – transformovat. U protokolu Jablotron můžete využít transformaci z usint na string pro stav sekcí ve tvarech odpovídajících názvům stavů sekcí ústředny. Využití je například pro výpis stavu sekcí na HMI
Couple
Autogen
Povolit Autogen – Povolením Autogenu (automatického generování) se při kompilaci automaticky vytvoří globální proměnné a namapují se na vstupní a výstupní proměnné. Teprve s globálními proměnnými je možné pracovat v programech a vkládat je do žebříčků FUPLA. Pokud není Autogen povolen, je nutné globální proměnné vytvářet a přiřazovat vstupním a výstupním proměnným manuálně. Doporučuje se nastavit Povolit Autogen = True
Mapování
IO⇒ST – mapování vstupní proměnné na globální proměnnou („vstup – výstup na strukturovaný text či FUPLA“)
ST⇒IO – mapování globální proměnné na výstupní proměnnou („strukturovaný text či FUPLA na vstup – výstup“)
Skupiny dat. bodů k zápisu
Poslední důležitou informací pro úspěšné nastavení komunikace s ústřednou Jablotron 100 (pouze k zápisu) je znát i definici pro zápis informací do ústředny (stav sekce, PG).
Vlastnosti skupiny pro zápis vypadají následovně:
Rozdílem mezi čtecí a zapisovací skupinou je, že typ skupiny je WriteOnly (pouze zapisovací), a také jsou zde navíc dva řádky
Zápis pouze při změně – slouží pro optimalizaci komunikace sériové linky, dotaz skupiny se zasílá jen při změně některého datového bodu ve skupině
Logické OR na přesahující – to je způsob skládání výstupního bufferu pro zápis do zařízení. Standardně se data vkládají na pozice dané ofsety a délkami (jedná se o pokročilou funkci)