Protokol M-Bus Rev. 4.8

Podporované typy a verzie zariadení 
Konfigurácia komunikačnej linky
Konfigurácia komunikačnej stanice
Konfigurácia meraných bodov
Špecifické údaje zariadenia Multical III
Nastavenie parametrov a spôsob zberu údajov
Literatúra
Zmeny a úpravy
Revízie dokumentu

Podporované typy a verzie zariadení


Komunikácia podporuje čítanie údajov zo zariadení podporujúcich protokol M-Bus podľa špecifikácie Rev. 4.8. Testované boli merače MULTICAL® III, MULTICAL® 5 firmy KAMSTRUP, CALSTREEM EEM-C firmy Danfoss a PolluTherm Pt500 firmy Sensus.
Komunikácia bola tiež overená voči prietokomeru Sensus MeiStream 150 s komunikačným modulom HRI-Mei a s použitím prevodníka EthMBus-5 firmy JC-e (bolo nutné nakonfigurovať prevodník do módu TCP a použiť linku TCP/IP-TCP).

Konfigurácia komunikačnej linky


Parametre protokolu linky

Môžu byť zadané nasledovné parametre protokolu linky:

Kľúčové slovoPlný názovPopisJednotkaNáhradná hodnota
CHBR
Change BaudrateHodnota Yes znamená, že komunikácia bude prepínaná medzi módom 1 a 2 (iba linka Serial).
Hodnota No znamená, že komunikácia bude prebiehať len pomocou módu 1 (300 Baudov).
-No
SNKEBR
Send SND_NKE as BroadcastHodnota Yes znamená, že príkaz SND_NKE (inicializácia slave zariadenia) sa pošle ako Broadcast pred čítaním z prvej stanice na linke.
Hodnota No znamená, že príkaz SND_NKE sa pošle každému zariadeniu pred začiatkom čítania.
Poznámka: ak je parameter nastavený na Yes, po poslaní Broadcastu sa čaká podľa parametra stanice WAI.
-Yes

Konfigurácia komunikačnej stanice


  • Komunikačný protokol: M-Bus Rev 4.8
  • Adresa stanice je dekadické číslo v rozsahu 1 až 250 – je to adresa slave-u, odvodená je z výrobného čísla merača ako posledné trojčíslie. Ak posledné tri číslice čísla merača presahujú 250, najvyššia číslica sa neberie do úvahy. Ak je číslo merača jedno z čísel 000, 300, 400, 500, 600, 700, 800, 900 bude potrebné ich zmeniť.


Parametre protokolu stanice

Môžu byť zadané nasledovné parametre protokolu stanice:

Kľúčové slovoPlný názovPopisJednotkaNáhradná hodnota
ASCM
Address Scan ModePri každom vyčítavaní hodnôt sa inkrementuje adresa stanice. Tento mód je možné využiť na nájdenie zariadenia s neznámou adresou.-No
RC
Retry CountPočet opakovaní výzvy v prípade chyby komunikácie.-2
RT
Retry TimeoutOneskorenie medzi opakovaním výzvy v prípade chyby komunikácie.ms100 ms
WFT
Wait First TimeoutPrvé čakanie na odpoveď po odoslaní výzvy.ms800 ms
WT
Wait TimeoutOneskorenie medzi čítaniami odpovede do jej skompletovania.ms500 ms
MWR
Max Wait RetryPočet opakovaní čítania odpovede do jej skompletovania.-40

WAI
Wait After SND_NKE BroadcastČakanie po poslaní broadcastu SND_NKE pred čítaním z prvej stanice na linke.ms8000 ms
WBR
Wait before REQ_UD2 RequestČakanie pred poslaním správy REQ_UD2 slave stanici.ms4000 ms
SFAI
Set FCB Bit after SND_NKEČi sa FCB bit v prvej výzve po poslaní SND_NKE má nastaviť na hodnotu 1 (YES) alebo 0 (NO).-YES
AFOR
Accept Following Records (0=disable,255=read all)Pokiaľ má slave stanica k dispozícii Variable Data, parameter udáva množstvo vyčítaných záznamov počas jedného obvolania stanice. Hodnota 255 znamená, že sa vyčítajú všetky dostupné záznamy.-0
RESB
Send Application Reset before REQ_UD2Voliteľné poslanie správy 'aplikačný reset' (50h) pred začiatkom vyčítavania hodnôt na stanici.-NO
WUL
WakeUp LengthDĺžka tzv. budiacej správy (v znakoch) vysielanej pred každou výzvou. Hodnota 0 znamená, že budiaca správa sa neposiela.bytes0
WUD
WakeUp DelayOneskorenie medzi budiacou správou a výzvou.ms400

ARB

Accept Reply To BroadcastAk má stanica adresu 254 (podľa definície protokolu sa jedná o broadcastovú adresu, na ktorú stanice môžu odpovedať), tento parameter umožňuje spracovať odpoveď od hociktorej stanice. Praktické použitie je na linkách s jedinou stanicou - v prípade jej výmeny nie je nutné zisťovať adresu nového zariadenia.-YES

FULL_DEBUG
Full DebugZapína ladiace výpisy o komunikácii a získaných údajoch.-NO

MULTICALIII
Multical IIIPovoľuje dekódovanie údajov "Manufacture specific data" zariadenia Multical III.-NO

String s parametrami protokolu sa zapisuje podľa pravidiel:

Kľúčové_slovo=hodnota;Kľúčové_slovo=hodnota; ...

Príklad:

RC=1;RT=500;LBR=1;

Ak nebolo v inicializačnom stringu nájdené kľúčové slovo s platnou hodnotou, použije sa náhradná hodnota podľa tabuľky.

Konfigurácia meraných bodov


Povolené typy bodov: Ai, Ci, TiA, TiR, TxtI, TxtO

Je možné nakonfigurovať dva typy adries:

  • Jednoduchá adresa : vyžaduje zadanie jedného čísla, ktoré je indexom hodnoty v dátovom pakete M-Bus. Bližšie informácie o neznámom zariadení je možné získať aktivovaním ladiacich výpisov parametrom protokolu FULL_DEBUG.
    Príklad ladiaceho výpisu (jednotlivé riadky zodpovedajú objektom s adresami 1 až 9, hodnota je uvedená na konci výpisu za textom "Val"):
    >> Adr.1,DF:0CH (8 digit BCD)(inst. val),VIF:05H=Energy 0*10^2 [Wh],VIFE:7DH=Multiplicative corr. factor 10^3,Val:0
    >> Adr.2,DF:0CH (8 digit BCD)(inst. val),VIF:15H=Volume 0*10^-1 [m3],Val:0
    >> Adr.3,DF:0CH (8 digit BCD)(inst. val),VIF:3DH=Volume Flow 0*10^-1 [m3/h],Val:0
    >> Adr.4,DF:0CH (8 digit BCD)(inst. val),VIF:2DH=Power 0*10^2 [W],Val:0
    >> Adr.5,DF:02H (16 bit int)(val during err),VIF:5AH=Flow temperature 0*10^-1 [C],Val:0
    >> Adr.6,DF:02H (16 bit int)(val during err),VIF:5EH=Return temperature 0*10^-1 [C],Val:0
    >> Adr.7,DF:03H (24 bit int)(val during err),VIF:60H=Temperature difference 0*10^-3 [K],Val:0
    >> Adr.8,DF:0CH (8 digit BCD)(inst. val),VIF:78H=Fabrication No.,Val:53155203
    >> Adr.9,DF:0CH (8 digit BCD)(inst. val),VIF:7DH=Extension of VIF-codes,VIFE:10H=Customer location,Val:53155203
    
  • Adresa objektov hlavičky: vo formáte 0.subadr umožňuje adresovať objekty nachádzajúce sa v hlavičke odpovede. Zariadenie môže odpovedať fixnou alebo variabilnou odpoveďou, ktoré sa líšia obsahom hlavičky. Nasledujúca tabuľka udáva zoznam objektov a ich adresy pre fixnú a variabilnú odpoveď.

    ObjektTyp hodnotyAdresa vo fixnej odpovediAdresa vo variabilnej odpovedi
    Identification No.Ci, TxtI0.00.0
    ManufacturerTxtI (3 znaky)-0.1
    VersionCi-0.2
    MediumCi-0.3
    Access No.Ci0.10.4
    StatusCi0.20.5
    SignatureCi-0.6


    Príklad ladiaceho výpisu pre variabilnú odpoveď:

    Variable data respond CI=0x72 mode 1 from St:'B.MBUS_SENSUS'(0) detected.
    >> Adr.0.0,Identification No.,Val=53155203
    >> Adr.0.1,Manufacturer,Val='SEN'
    >> Adr.0.2,Version,Val=12
    >> Adr.0.3,Medium,Val=4
    >> Adr.0.4,Access Nr.,Val=50
    >> Adr.0.5,Status,Val=16
    >> Adr.0.6,Signature,Val=0
       

Zapisovanie

Na zapisovanie je určený výstupný textový meraný bod (TxtO) s adresou 1. K dátam zapísaným do meraného bodu je pridaná úvodná sekvencia <68><Length><Length><68> a ukončenie <CRC><16>.

Zápis je úspešný, pokiaľ je zo stanice prijatá krátka odpoveď <E5>.

Príklad skriptu pre Sensus HRI-Mei (komunikačný modul pre vodomery Sensus HRI-MeiStream a Sensus HRI-MeiStream Plus):

; command Clearing Rotation Counters
; sent request and received response (header is first 4 bytes, footer is last 2 bytes)
;L:L.Sensus_Mei REQ-<68><08><08><68><73><00><51><0F><02><1F><20><7A><8E><16>
;L:L.Sensus_Mei RSP-<E5>

TEXT _stAdr = %Chr(%StrToI("16#00#")) ; station address
TEXT _val

_val := %Chr(%StrToI("16#73#")) + _stAdr + %Chr(%StrToI("16#51#")) + %Chr(%StrToI("16#0F#")) + %Chr(%StrToI("16#02#")) + %Chr(%StrToI("16#1F#")) + %Chr(%StrToI("16#20#")) + %Chr(%StrToI("16#7A#")) 
M.Mei_write := _val


Špecifické údaje zariadenia Multical III


Zariadenie Multical III odosiela rozširujúce "manufacture specific" údaje. Aktivovaním parametra protokolu MULTICALIII je možné nakonfigurovať merané body podľa nasledovnej tabuľky:

AdresaPopis hodnotyTyp
12Počítadlo prístupuCi
13Číslo zákazníka 1Ci
14Číslo zákazníka 2Ci
15InfoCi
16TAR2Ci
17TL2Ci
18TAR3Ci
19TL3Ci
20AUX1Ai
21AUX2Ai
22Prog_NoCi
23ConfigCi
24DátumTiA
25Dátum*TiA

Nastavenie parametrov a spôsob zberu údajov


Odporúčané parametre pollingu sú minimálne 1 minúta. Keď nastane čas pollingu, pri čítaní dát prvej stanica na linke sa pošle SND_NKE(255), t.j. init všetkým meračom (Slave-om) a čaká sa dobu danú parametrom WAI. Merače si pripravia všetky aktuálne merané veličiny a implicitne zmenia svoju rýchlosť na 300 baud. Iba rýchlosti 300/600/1200/2400/9600/19200/3840 sú podporované M-Bus protokolom.

Potom nasleduje voliteľne zmena rýchlosti komunikácie na vyššiu rýchlosť (špecifikovanú na linke ako mód 2) telegramom SND_UD, ak je nakonfigurovaná pomocou nastavenia parametra linky Change Baudrate.
Poznámka: zmena módu je podporovaná iba na linkách SerialMOXA IP Serial Library a RFC2217 Client.

Následne sú postupne dotazované všetky merače výzvami REQ_UD2 (pred ktorými sa ešta vždy čaká podľa parametra WBR), na ktoré odpovedajú dátovým telegramom RSP_UD.

Časy jednotlivých hodnôt nebudú nastavené na čas obdržania telegramu, ale na čas požadovanej periódy pollingu. To znamená, ak je perióda nastavená na jednu hodinu, všetky časy hodnôt budú zarovnané na danú hodinu.

Poznámka: Perióda pollingu, ako aj parametre stanice, by mali byť na všetkých staniciach na jednej linke rovnaké.

Literatúra



Blog

O protokole M-Bus si môžete prečítať aj blog: Komunikácia – M-Bus


Príklad komunikácie

Priložený ZIP obsahuje konfiguráciu linky, stanice a meraných bodov s M-Bus protokolom, ktoré komunikujú s prietokomerom Sensus MeiStream 150 s komunikačným modulom HRI-Mei a s použitím prevodníka EthMBus-5 firmy JC-e v UDP móde (prevodník má IP adresu 192.168.1.1 v konfigurácii linky).

Sensus_HRI_Mei.7z


Zmeny a úpravy


  • 22. nov. 2005 - Prepracovanie podľa M-Bus Rev. 4.8.

Revízie dokumentu


  • Ver. 1.0 - 26. jún 2000 – vytvorenie dokumentu.
  • Ver. 1.1 – 9. november 2000 – otestovanie Danfoss CALSTREEM.
  • Ver. 1.2 – 14.december 2000 – Zmena vstupov AUX1 a AUX2 z Ci na Ai.
  • Ver. 1.3 - 22. november 2005 - Prepracovanie podľa M-Bus Rev. 4.8.
  • Ver. 1.4 - 10. marec 2021 - Doplnený parameter "Accept Reply To Broadcast"
  • Ver. 1.5 - 14. jún 2024 - Podpora zápisov


Súvisiace stránky:

1 Comment

  1. O protokole M-Bus si môžete prečítať aj blog: Komunikácia – M-Bus

Write a comment...