Dokumentace

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 obecně rozhraní M-Bus fyzicky nemají, a je proto nutné pro připojení sběrnice M-Bus na PLC použít převodník. Převodník se připojuje na rozhraní RS232. Číslo COM portu se pak 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ý
Pozn. - volně definovatelná poznámka
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:

M-Bus commissioning mode

- 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).

Select primary or secondary address

- 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í

M-Bus commissioning mode

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).

Select primary or secondary address

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.

Nalezené měřiče

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 Idekit Studio 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:

Zařízení vložené z knihovny


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í

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.
Pozn. - libovolná poznámka

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
Pozn. - libovolná poznámka

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.

M-Bus číslo telegramu

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.
Pozn. - volně definovatelné
Čí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.

Proměnná M-Bus - ruční vyplnění

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ě.