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
- Kategória komunikačnej linky: Serial, SerialOverUDP Device Redundant, MOXA IP Serial Library, RFC2217 Client, TCP/IP-TCP.
Pozn: na linke TCP/IP-TCP a RFC2217 Client je v prípade redundantných systémov možné zadávať aj viacero mien/adries oddelených čiarkami - Bežné nastavenie pre väčšinu M-Bus zariadení:
- Mód 1: Prenosová rýchlosť 300, 8 bit, 1 stop bit, párna parita, RTS=1, DTR=1.
- Mód 2: Prenosová rýchlosť 2400, 8 bit, 1 stop bit, párna parita, RTS=1, DTR=1.
Parametre protokolu linky
Môžu byť zadané nasledovné parametre protokolu linky:
Kľúčové slovo | Plný názov | Popis | Jednotka | Náhradná hodnota |
---|---|---|---|---|
CHBR | Change Baudrate | Hodnota 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 Broadcast | Hodnota 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é slovo | Plný názov | Popis | Jednotka | Náhradná hodnota |
---|---|---|---|---|
ASCM | Address Scan Mode | Pri 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 Count | Počet opakovaní výzvy v prípade chyby komunikácie. | - | 2 |
RT | Retry Timeout | Oneskorenie medzi opakovaním výzvy v prípade chyby komunikácie. | ms | 100 ms |
WFT | Wait First Timeout | Prvé čakanie na odpoveď po odoslaní výzvy. | ms | 800 ms |
WT | Wait Timeout | Oneskorenie medzi čítaniami odpovede do jej skompletovania. | ms | 500 ms |
MWR | Max Wait Retry | Poč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. | ms | 8000 ms |
WBR | Wait before REQ_UD2 Request | Čakanie pred poslaním správy REQ_UD2 slave stanici. | ms | 4000 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_UD2 | Voliteľné poslanie správy 'aplikačný reset' (50h) pred začiatkom vyčítavania hodnôt na stanici. | - | NO |
WUL | WakeUp Length | Dĺžka tzv. budiacej správy (v znakoch) vysielanej pred každou výzvou. Hodnota 0 znamená, že budiaca správa sa neposiela. | bytes | 0 |
WUD | WakeUp Delay | Oneskorenie medzi budiacou správou a výzvou. | ms | 400 |
ARB | Accept Reply To Broadcast | Ak 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 Debug | Zapína ladiace výpisy o komunikácii a získaných údajoch. | - | NO |
MULTICALIII | Multical III | Povoľ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ď.
Objekt Typ hodnoty Adresa vo fixnej odpovedi Adresa vo variabilnej odpovedi Identification No. Ci, TxtI 0.0 0.0 Manufacturer TxtI (3 znaky) - 0.1 Version Ci - 0.2 Medium Ci - 0.3 Access No. Ci 0.1 0.4 Status Ci 0.2 0.5 Signature Ci - 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:
Adresa | Popis hodnoty | Typ |
---|---|---|
12 | Počítadlo prístupu | Ci |
13 | Číslo zákazníka 1 | Ci |
14 | Číslo zákazníka 2 | Ci |
15 | Info | Ci |
16 | TAR2 | Ci |
17 | TL2 | Ci |
18 | TAR3 | Ci |
19 | TL3 | Ci |
20 | AUX1 | Ai |
21 | AUX2 | Ai |
22 | Prog_No | Ci |
23 | Config | Ci |
24 | Dátum | TiA |
25 | Dá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 Serial, MOXA 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).
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
D2000 Dev Team
O protokole M-Bus si môžete prečítať aj blog: Komunikácia – M-Bus
Add Comment