Komunikační protokol M-Bus
Driver protokolu M-Bus slouží pro připojení měřičů (elektroměrů, vodoměrů, kalorimetrů…), které komunikují protokolem M-Bus. Musíme rozlišovat:
- M-Bus jako fyzický (hardwarový) standard - dvouvodičová sběrnice, která poskytuje měřičům napájení a přes kterou se master dotazuje měřičů na hodnoty
- M-Bus jako komunikační protokol, který ovšem může být přenášen i po jiném typu sběrnice, než je M-Bus, například po sériové lince RS232.
PLC Domat, s výjimkou podstanice mark150, rozhraní M-Bus fyzicky nemají, a je proto nutné pro připojení sběrnice M-Bus na PLC použít převodník, např. Domat R095 nebo R096. Převodník se připojuje na rozhraní RS232, tedy např. COM1 nebo COM2 u mark320. Toto číslo COM portu se proto vybírá v nastavení driveru.
Pravým kliknutím na PLC založíme nový kanál. V pravé části nastavíme jeho vlastnosti:
- Název - obvykle se pojmenuje podle zařízení, která jsou na něj připojena, nebo sběrnice v projektu, např. „Kalorimetry_jih“.
- Povolit - kanál musí být povolen (True), aby komunikoval.
- Protokol - vybereme M-Bus
- Linkový protokol - Serial (pro komunikaci na portech COM…)
Parametry protokolu M-Bus
- Počet pokusů - kolikrát se má driver dotázat měřiče, než je pokus o čtení označen jako neúspěšný
Parametry sériové linky
- Číslo portu - COM port podstanice.
Následující parametry musejí odpovídat nastavení měřičů, které jsou na M-Bus připojeny. Měřiče musí být naadresovány a musejí mít nastavenou stejnou komunikační rychlost, jaká je nastavena zde.
- Přenosová rychlost - komunikační rychlost v bit/s, obvykle 2400 nebo 9600
- Počet datových bitů - počet datových bitů v jednom bajtu, M-Bus standard je 8
- Parita - zvolte komunikační paritu - žádnou, sudou nebo lichou, M-Bus standard je Sudá
- Počet stop bitů - počet bitů, které signalizují konec přenášeného bajtu, M-Bus standard je 1
Pravým kliknutím na kanál otevřeme kontextové menu. Pro přidání měřiče existují čtyři možnosti:
- Vytvořit měřič M-Bus z reálného zařízení
- Hledat M-Bus měřiče v síti
- Přidat zařízení
- Přidat zařízení z knihovny
Pokud známe typ měřiče a jeho adresu, tedy sběrnice je (nebo bude) nakonfigurovaná předem a máme k dispozici tabulku měřičů s adresami, je možné použít funkci Přidat zařízení, v něm Přidat skupinu a ve skupině Přidat datový bod (nebo postupně více datových bodů, podle toho, kolik hodnot potřebujeme z měřiče číst). K tomu je ale nutné znát parametry DIF/VIF a offset hodnoty v telegramu. Ty by měl dodat výrobce měřiče. Je proto vhodnější postupovat tak, že vytvoříme měřič M-Bus z reálného zařízení:
- připojíme se k PLC, které je připojeno na sběrnici s měřiči
- pravým tlačítkem na kanál, Vytvořit měřič M-Bus z reálného zařízení
Pokud PLC není v režimu Oživování, je do něj automaticky přepnuto:
- vybereme způsob, jak bude měřič detekován. Pokud měřiče nebyly naadresovány primárními adresami (1…250), použijeme sekundární adresu (výrobní číslo).
- u detekovaného měřiče vybereme hodnoty, které chceme importovat, a klikneme na Další.
- PLC je přepnuto z módu Oživování do původního módu, potvrdíme kliknutím na OK.
V seznamu zařízení na komunikačním kanálu se objeví nové zařízení s příslušnou adresou a vlastnostmi, které byly vyčteny ze skutečného přístroje na sběrnici.
Pokud je na sběrnici připojeno více měřičů a je nutné je detekovat nebo potřebujeme zkontrolovat, zda je komunikace v pořádku, použijeme funkci Hledat M-Bus měřiče v síti.
- Po kontrole, zda PLC je v módu oživování, a případném přepnutí
- vybereme způsob, jak budou měřiče detekován. Pokud měřiče nebyly naadresovány primárními adresami (1…250), použijeme sekundární adresu (výrobní číslo).
- Detekce může trvat až několik minut, u sekundárních adres je pro procházení celého rozsahu potřebná doba i více než čtvrt hodiny (záleží to na rozmístění sekundárních adres v celkovém adresním prostoru). Nalezené měřiče jsou pak vypsány v tabulce.
V tomto příkladu byl na sběrnici nalezen pouze jeden měřič.
(Dialog zároveň umožňuje změnit nebo nastavit primární adresu měřiče. To může významně usnadnit uvádění do provozu - adresování probíhá zároveň s kontrolou a není potřeba používat cizí adresovací program s M-Busovým převodníkem na portu PC. Adresování M-Bus měřičů lze tedy provádět i na dálku přes PLC v módu oživování.)
Měřiče, které chceme importovat, označíme v okénku Importovat. Neoznačené měřiče budou při importu ignorovány. Individuální výběr se využívá například tehdy, přidáváme-li další měřiče na již nakonfigurovanou sběrnici. Při výběru všech měřičů by se existující měřiče importovaly znovu a vznikla by duplicitní zařízení.
Pokud je měřič stejného typu nalezen v knihovně M-busových zařízení, převezme se zařízení včetně seznamu vybraných proměnných z knihovny. Chceme-li pro detekovaný měřič založit samostatné zařízení a ručně vybrat importované proměnné ze seznamu všech proměnných, dostupných v měřiči, zaškrtneme u měřiče volbu Vytvořit. Měřiče jsou pak importovány postupně s možností výběru konkrétních proměnných pro každý z nich.
Funkce Přidat zařízení vloží do kanálu „prázdné“ zařízení, jehož všechny parametry je nutné vyplnit ručně. Tato funkce se používá tehdy, potřebujeme-li vytvořit zařízení s definovanými parametry a nemáme přístup na funkční sběrnici s měřičem.
Funkce Přidat zařízení z knihovny nabízí vložení zařízení, které je uloženo v knihovně M-Busových měřičů. Tato knihovna bude v dalších verzích Mervis IDE postupně rozšiřována, aktuálně je možné si do ní uložit vlastní měřiče (pravým tlačítkem na měřič, Vytvořit knihovnu). Po vybrání zařízení z knihovny mu nezapomeňme nastavit primární nebo sekundární adresu měřiče a vybrat, kterou z nich bude PLC s měřičem komunikovat:
Vkládání měřičů do knihovny
Jakmile je zařízení vytvořeno a vyzkoušeli jsme komunikaci, můžeme jeho prototyp přidat do knihovny a příště ho místo detekce vložit z knihovny. Pro uložení do knihovny je třeba vyplnit ve vlastnostech zařízení sekce Definice prototypu a Informace o zařízení.
Vlastnosti zařízení
- Název - zařízení je možné pojmenovat podle toho, kde je měřič umístěn nebo co měří, např. Byt315EL.
- Povolit - aby zařízení komunikovalo, musí být povoleno (True).
- Je specifický box - informace o tom, zda zařízení je z knihovny (False), nebo je lze upravovat (editovat) (True).
- Rozšíření zařízení - zatím nevyužito.
Parametry zařízení M-Bus
- Primární adresa - M-busová adresa v rozsahu 1…250. Tato adresa musí být na zařízení nastavena, obvykle zařizuje dodavatel zařízení.
- Sekundární adresa - adresa zadaná výrobcem zařízení, obvykle sériové číslo měřiče. Nelze běžně měnit.
- Použít sekundární adresu - pokud True, pro komunikaci je použita sekundární adresa místo adresy primární.
- Počet telegramů - při použití autodetekce není potřeba měnit.
- Výrobce - třípísmenná zkratka výrobce měřiče
- Verze - celé číslo, hodnota typu byte
- Médium - na výběr je jedno z médií předdefinovaných ve standardu M-Bus
Definice prototypu
- ID modelu - volně definovatelné, poznámka pro konkrétní typ měřiče
- ID verze přístroje - volně definovatelné
- ID výrobce - volně definovatelné, poznámka pro jméno výrobce měřiče (doporučuje se třípísmenný kód podle seznamu DLMS (https://www.dlms.com/flag-id/flag-id-list)
- Zámek pro linkový protokol - má být False
- Verze prototypu - verze ve formátu vX_Y
- 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)).
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
- Cesta kategorie - cesta, kde se zobrazí prototyp zařízení v menu „Přidat zařízení z knihovny“, používá se pro lepší orientaci ve stromu uživatelsky definovaných zařízení.
Ruční přidávání měřičů a hodnot
Kromě detekování měřičů na sběrnici je možné i přidávat další hodnoty ručně, stejně jako u jiných protokolů. Tento postup má výhodu větší flexibility u měřičů, které používají segmentaci:
Některé M-busové měřiče mohou odpověď dělit na více telegramů kvůli omezení max. délky M-Bus rámce na 255 bytů, je tedy potřeba řešit tzv. segmentaci. Standardní způsob segmentace je takový, že se pošle inicializační dotaz SND_NKE, který měřidlo potvrdí a resetuje si interní čítač segmentu. Master ale dopředu neví, kolik segmentů je k dispozici, a nemá jak to zjistit. Řeší se to tak, že v dotazu na data (REQ_UD2) je dedikován jeden bít (FCB) jako indikátor požadavku na další telegram v pořadí. Měřidlo si pamatuje poslední přijatý FCB a pokud se liší od aktuálně přijatého, pošle další segment v pořadí a inkrementuje čítač segmentů. Master tedy postupně posílá REQ_UD2 a neguje FCB, aby dostal další segment v pořadí. Poslední segment má na konci specifický DIF (0F) a dotazování končí.
Pokud má měřič pouze dva telegramy odpovědi, lze podle normy realizovat segmentaci tak, že FCB bude přímo svázané se segmentem. Tzn. pro FCB=0 měřič vrací vždy první segment odpovědi, pro FCB=1 druhý segment odpovědi. Není potřeba posílat inicializaci, měřič nemusí mít interní čítač segmentů, ani si pamatovat poslední stav FCB.
Tato pravidla je dobré znát, pokud tvoříme měřič ručně. Skupina (Group) datových bodů v zařízení odpovídá segmentu. Parametr ve skupině „Číslo telegramu“ je číslo segmentu.
- Název - volně definovatelné
- Interval čtení/zápis - u některých měřičů s bateriovým napájením je nutné omezit počet zakomunikování na 1 - 2 denně. Zde nastavte interval, v jakém bude měřič dotazován. U měřičů kompletně napájených po sběrnici M-Bus nebo z jiného zdroje (např. elektroměrů) lze vyčítat tak často, jak to dovolí poměry na sběrnici (pak nechme interval 0ms).
- Typ skupiny - zde Pouze pro čtení, Read Only.
- Číslo telegramu - číslo segmentu, viz výše
- Timeout odezvy - jak dlouho PLC čeká na odpověď, než vyhlásí chybu čtení. Doporučuje se nechat nastavenou hodnotu 1.5 s.
- Struktura odezvy:
- Variable structure: odpovědi z měřiče mají proměnnou délku, obsahují více proměnných za sebou, může dojít k segmentaci, používá se výše popsaný mechanismus s FCB
- Fixed structure: odpověď má pevnou délku, typicky obsahuje pouze dva čítače
- Request selection: jako Variable structure, ale pro segmentaci lze použít přímý dotaz na konkrétní segment - není třeba se dotazovat postupně opakovanou negací FCB.
U proměnných ve skupině jsou nejdůležitější parametry DIF/VIF a Offset. Ty určují pozici hodnoty v telegramu.
- DIF/VIF - parametr podle dokumentace k měřiči
- Offset - parametr podle dokumentace k měřiči
- Hodnota se znaménkem - U kumulovaných veličin, jako je energie, objem atd. je obvykle hodnota bez znaménka. U aktuálních veličin (výkon…) se může stát, že je nutné tuto volbu nastavit na True. Zkontrolujte dokumentaci výrobce měřiče nebo kontaktujte technickou podporu Domat Control System.
- Parsování VIF - parametr VIF se bere z příchozího telegramu a ne ze zadání v parametru DIF/VIF. Zkuste použít, pokud je parametr VIF neznámý nebo zadaná hodnota nefunguje správně.