M-BUS

Nápověda k protokolu M-BUS

Referenční přehled rámců, polí a datových struktur v pořadí, ve kterém se čtou v telegramu M-BUS.

M-BUS

Telegramy

Při ruční diagnostice je nejdřív potřeba poznat typ zprávy. Podle prvního bajtu se obvykle rozlišuje krátký rámec, dlouhý rámec a jeden bajt potvrzení E5.

Jednotlivý znak Krátký rámec Řídící rámec Dlouhý rámec
E5h Start 10h Start 68h Start 68h
C pole L pole = 3 L pole
A pole L pole = 3 L pole
kontrolní součet Start 68h Start 68h
Stop 16h C pole C pole
A pole A pole
CI pole CI pole
kontrolní součet Uživatelská data
Stop 16h (0-252 Byte)
kontrolní součet
Stop 16h

Jednotlivý znak

Samostatný bajt E5 znamená potvrzení bez dalších dat. V diagnostice je důležité odlišit jej od odpovědi, která skutečně obsahuje měřené hodnoty.

Vlastnost Hodnota a význam
Hodnota E5h
Délka 1 Byte
Typický směr Slave → Master jako potvrzení přijetí příkazu.
RX E5 Jednobajtové potvrzení přijetí bez datové části.

Krátký rámec

Krátký rámec má pevnou délku a používá se pro jednoduché řídicí zprávy. Typický tvar je 10 C A CS 16, kde C je řídicí pole, A adresa, CS kontrolní součet a 16 ukončení rámce.

Start C A CS Stop
10h řídicí kód adresa (C+A)mod 256 16h
Prvek Kontrola při dekódování
10h První bajt musí být start krátkého rámce. Jiná hodnota znamená jiný typ zprávy nebo chybný příjem.
C Určuje proceduru, například SND_NKE, REQ_UD1 nebo REQ_UD2. Význam bitů se vyhodnocuje podle směru master/slave.
A Musí odpovídat cílové primární adrese, případně broadcast adrese podle účelu dotazu.
CS Nejdřív se sečtou pouze bajty C a A, potom se z výsledku vezme spodních 8 bitů, tedy modulo 256. Start a stop bajt se nezahrnují.
TX 10 5B 01 5C 16 Dotaz na data ze zařízení s primární adresou 01.

Řídící rámec

Řídící rámec používá začátek 68h, ale má pevnou délku L = 3. Přenáší pouze pole C, A a CI, tedy řídicí informaci bez uživatelských dat.

V diagnostice se s ním setkáte například u příkazů, které nastavují nebo vybírají zařízení a nepotřebují nést měřené hodnoty.

Start L L Start C A CI CS Stop
68h 03h 03h 68h řídicí kód adresa aplikační kód (C+A+CI)mod 256 16h
Použití Odborný význam
Výběr zařízení Master může pomocí CI a případných návazných pravidel připravit slave pro další komunikaci, aniž by v tomto rámci posílal měřená data.
Aplikační příkaz bez DATA Rámec nese informaci v CI poli. Jakmile příkaz potřebuje parametry nebo aplikační data, použije se dlouhý rámec.
Validace Oba bajty L musí být 03h, druhý start musí být 68h a kontrolní součet se počítá pouze z C, A a CI jako modulo 256.
TX 68 03 03 68 53 01 51 A5 16 Řídící rámec s pevnou délkou L = 3.

Dlouhý rámec

Dlouhý rámec nese datovou část. Typický tvar je 68 L L 68 C A CI DATA CS 16. Dvojice L udává délku oblasti od C po konec dat, CI určuje typ aplikační datové části.

Start L L Start C A CI DATA CS Stop
68h L L 68h řízení adresa typ dat 0-252 Byte (C+A+CI+ΣDATA)mod 256 16h
Krok validace Pravidlo
Start a délka První a čtvrtý bajt musí být 68h a oba bajty L musí mít stejnou hodnotu.
Rozsah L L zahrnuje C, A, CI a DATA. Proto minimální dlouhý rámec bez DATA má L = 3 a každý bajt DATA hodnotu L zvyšuje o 1.
Kontrolní součet CS se počítá jako modulo 256 ze součtu bajtů C, A, CI a všech bajtů DATA. Start, L, samotné CS a stop se do součtu nezahrnují.
Interpretace DATA DATA se nesmí číst bez CI. Teprve CI určuje, zda jde o proměnnou strukturu, pevnou strukturu, chybu, alarm nebo jiný aplikační význam.
RX 68 15 15 68 08 01 72 78 56 34 12 24 40 01 07 02 00 00 00 04 00 10 27 00 00 38 16 Odpověď zařízení s hlavičkou proměnných dat a jedním datovým záznamem.

Dekódování dat

Dekódování postupuje od rámce k datům: nejdřív se ověří start, délka a kontrolní součet, potom řídicí pole C, adresa A, pole CI a nakonec datové záznamy DIF/VIF.

Část Co říká
C Směr a typ požadavku nebo odpovědi.
A Primární adresa zařízení na sběrnici.
CI Typ aplikačních dat, například proměnná odpověď s datovými záznamy.
DIF/VIF Kódování hodnoty, funkce, významu a jednotky datového záznamu.

L pole

L pole určuje délku proměnné části dlouhého nebo řídicího rámce. U dlouhého rámce jsou za prvním startem 68h dva stejné bajty L a po nich druhý start 68h.

Hodnota L se počítá od pole C až po poslední bajt DATA včetně. Nezahrnuje startovní bajty 68h, samotná pole L, kontrolní součet CS ani stop bajt 16h. Pokud se obě hodnoty L neshodují, rámec je chybný.

Rámec Tvar Význam L
Řídicí rámec 68 03 03 68 C A CI CS 16 Pevná délka 3, protože rámec obsahuje jen C, A a CI.
Dlouhý rámec 68 L L 68 C A CI DATA CS 16 Proměnná délka oblasti C, A, CI a DATA.
Příklad Výpočet L
68 03 03 68 53 01 51 A5 16 L = 3, protože se počítají jen bajty 53h, 01h a 51h.
68 13 13 68 08 05 73 ... CS 16 L = 13h, tedy 19 bajtů od C pole 08h po poslední bajt datové části.

Při ručním dekódování je L pole dobrý první filtr chyb. Pokud nesedí délka, nemá smysl interpretovat DIF/VIF, protože posun v datech obvykle rozbije celý zbytek telegramu.

C pole

Pole C, označované také jako Control Field nebo Function Field, obsahuje řídicí parametry rámce. Určuje směr toku dat a podle dolních funkčních bitů také vlastní účel zprávy.

Při diagnostice podle C pole rychle poznáte, zda jde o inicializaci, zápis do zařízení, požadavek na data, nebo odpověď slave zařízení. V krátkém rámci leží hned za startem 10h, u řídicího a dlouhého rámce za druhým startem 68h. Hodnota C pole se započítává do kontrolního součtu.

Směr 7 6 5 4 3 2 1 0
Master → Slave 0 1 FCB FCV F3 F2 F1 F0
Slave → Master 0 0 ACD DFC F3 F2 F1 F0
Bity Název Platí pro směr Význam při komunikaci
7-6 směrový vzor oba směry Hodnota 01b značí rámec master → slave, hodnota 00b značí slave → master.
5 FCB / ACD podle směru U masteru střídací bit rámce, u slave požadavek na předání prioritních dat Class 1.
4 FCV / DFC podle směru U masteru platnost FCB, u slave řízení toku dat a informace, že zařízení není připravené přijmout další data.
3-0 F3-F0 oba směry Funkční kód procedury, například inicializace, požadavek na data nebo odpověď s daty.

Ve směru master → slave se bit FCB při bezchybné komunikaci střídá mezi hodnotami 0 a 1. Pokud master nedostane odpověď na předchozí rámec, opakuje stejný rámec se stejným FCB a slave má znovu vrátit stejnou odpověď. Bit FCV říká, zda je FCB platný; při FCV = 0 se FCB ignoruje.

Ve směru slave → master mají bity 5 a 4 jiný význam. ACD v hodnotě 1 signalizuje požadavek slave zařízení na předání prioritních dat třídy Class 1. DFC v hodnotě 1 znamená řízení toku dat: slave není připraven přijmout další data.

Bity F0 až F3 kódují vlastní funkci zprávy. Linková vrstva M-BUS používá dvě základní procedury: vyslání s potvrzením SND/CON a žádost s odezvou REQ/RSP.

Jméno Pole C bin. Pole C hex. Rámec Popis
SND_NKE 0100 0000 40 krátký Inicializace účastnické stanice.
SND_UD 01F1 0011 53/73 dlouhý/řídicí Odeslání dat účastnické stanici řídicí stanicí.
REQ_UD2 01F1 1011 5B/7B krátký Žádost na běžná data Class 2 od účastnické stanice.
REQ_UD1 01F1 1010 5A/7A krátký Žádost na prioritní data Class 1 od účastnické stanice.
RSP_UD 00AD 1000 08/18/28/38 dlouhý/řídicí Odeslání dat řídicí stanici účastnickou stanicí po žádosti.

A pole

A pole je adresa zařízení na sběrnici M-BUS. Master podle něj určuje, kterému měřiči nebo převodníku je telegram určený, a slave stejnou adresu vrací v odpovědi.

Při servisní diagnostice je A pole první místo, kde kontrolujete shodu nastavené primární adresy s odpovědí zařízení. Pokud adresa nesedí, může odpovídat jiné zařízení, nebo je v programu nastavená špatná adresa.

HEX DEC Význam Odpověď
00h 0 Výchozí nebo nepřiřazená primární adresa zařízení. Odpověď přijde, pokud zařízení používá adresu 0.
01h-FAh 1-250 Běžné primární adresy zařízení v rozsahu 1 až 250. Odpoví zařízení se shodnou primární adresou.
FDh 253 Broadcast pro sekundární adresování. Konkrétní zařízení se vybírá aplikačními daty, ne přímo A polem. Odpověď přijde od zařízení vybraného sekundární adresou.
FEh 254 Testovací broadcast. Odpovědět mohou všechna zařízení, proto se používá hlavně při jednom zařízení na sběrnici. Odpověď může přijít od všech zařízení; na více zařízeních hrozí kolize.
FFh 255 Broadcast adresa pro zprávu všem zařízením bez běžné individuální odpovědi. Odpověď nepřijde.
Režim adresování Co kontrolovat Servisní riziko
Primární adresa 0-250 Shodu A pole v dotazu a odpovědi, nastavení adresy v zařízení a kolizi duplicitních adres. Dvě zařízení se stejnou primární adresou mohou odpovídat současně a rozbít odpověď.
Sekundární adresování přes FDh Výběr zařízení neleží v samotném A poli, ale v aplikačních datech výběrového telegramu. Bez správného výběru sekundární adresy nemusí odpovědět žádné zařízení, i když je fyzicky připojené.
Broadcast FEh a FFh FEh používejte pro test hlavně na samostatném zařízení; FFh je zpráva všem bez běžné individuální odpovědi. Na sběrnici s více zařízeními může FEh vyvolat kolizi odpovědí.
TX 10 5B 01 5C 16 A pole je 01h, telegram je určený zařízení s primární adresou 1.

CI pole

CI pole, tedy Control Information, určuje druh aplikačních dat v telegramu a také způsob, jakým za sebou data v aplikační části následují.

U vícebajtových záznamů definuje EN1434-3 dva možné způsoby řazení bajtů. Rozhoduje bit 2 pole CI, počítáno od bitu 0, tedy hodnota 4. Tento bit se označuje jako M bit nebo Mode bit.

Režim M bit Pořadí bajtů Poznámka
Mode 1 0 Nejnižší bajt se přenáší jako první. Doporučený režim pro nové aplikace.
Mode 2 1 Nejvyšší bajt se přenáší jako první. Zachováno kvůli kompatibilitě.
Co CI rozhoduje Důsledek pro dekodér
Typ aplikační části Stejné DATA bajty mohou znamenat něco jiného podle CI. Dekodér proto po C a A nejdřív vyhodnotí CI a až potom volí další parser.
Pořadí vícebajtových hodnot Mode bit určuje little-endian nebo big-endian pořadí v aplikačních záznamech. V běžné nové praxi se očekává Mode 1.
Směr použití kódů Některé CI kódy používá master při zápisu nebo výběru zařízení, jiné používá slave v odpovědi RSP_UD. Hodnota CI se proto vždy čte společně s C polem.

Kódy používané masterem

Mode 1 Mode 2 Použití Definováno v
51h55hOdeslání dat.EN1434-3
52h56hVýběr slave zařízení.Usergroup 07/1993
50hAplikační reset.Usergroup 03/1994
54hSynchronizační akce.návrh
B8hNastavení rychlosti 300 baud.Usergroup 07/1993
B9hNastavení rychlosti 600 baud.Usergroup 07/1993
BAhNastavení rychlosti 1200 baud.Usergroup 07/1993
BBhNastavení rychlosti 2400 baud.Usergroup 07/1993
BChNastavení rychlosti 4800 baud.Usergroup 07/1993
BDhNastavení rychlosti 9600 baud.Usergroup 07/1993
BEhNastavení rychlosti 19200 baud.návrh
BFhNastavení rychlosti 38400 baud.návrh
B1hPožadavek na vyčtení celého obsahu RAM.návrh Techem
B2hOdeslání uživatelských dat, nestandardizovaný zápis do RAM.návrh Techem
B3hSpuštění testovacího kalibračního režimu.Usergroup 07/1993
B4hČtení EEPROM.návrh Techem
B6hSpuštění softwarového testu.návrh Techem
90h-97hKódy používané pro hashing.zastaralé, nedoporučeno

Aplikační reset CI = 50h

Kód CI 50h umožňuje masteru vyvolat reset aplikační vrstvy ve slave zařízení. Slave si po přijetí sám určí, které parametry změní, například výchozí výstup dat. Tento reset odeslaný jako SND_UD s CI = 50h odpovídá na aplikační vrstvě resetu linkové vrstvy SND_NKE.

Za CI = 50h mohou následovat volitelné parametry. První parametr je osmibitový subkód aplikačního resetu: horní čtyři bity určují typ telegramu nebo aplikaci a dolní čtyři bity číslo subtelegramu. Hodnota nula v dolních čtyřech bitech znamená požadavek na všechny subtelegramy.

Slave zařízení s jediným typem telegramu může aplikační reset i doplněné parametry ignorovat, ale musí jej potvrdit bajtem E5.

Horní 4 bity Popis Příklad
0000bVše
0001bUživatelská dataspotřeba
0010bJednoduché vyúčtováníaktuální a pevně datované hodnoty včetně dat
0011bRozšířené vyúčtováníhistorické hodnoty
0100bVíce tarifů
0101bOkamžité hodnotyregulace
0110bHodnoty pro řízení zátěžemanagement
0111bRezervováno
1000bInstalace a uvedení do provozuadresa sběrnice, pevná data
1001bTestováníhodnoty s vysokým rozlišením
1010bKalibrace
1011bVýroba
1100bVývoj
1101bAutotest
1110bRezervováno
1111bRezervováno
TX 68 04 04 68 53 FE 50 10 B1 16 Master pošle rozšířený aplikační reset všem slave zařízením a požádá o všechny telegramy typu uživatelská data.
RX E5 Slave reset potvrdí samostatným bajtem E5.

Synchronizační akce CI = 54h

CI 54h je určeno pro synchronizační funkce na straně slave i masteru, například pro synchronizaci času. Ostatní zde uvedené kódy se používají pro nastavení rychlosti, odeslání dat a výběr slave zařízení.

Kódy používané slave zařízením

CI M=0 CI M=1 Použití Definováno v
70hHlášení obecných aplikačních chyb.Usergroup 03/1994
71hHlášení alarmového stavu.Usergroup 03/1994
72h76hOdpověď s proměnnými daty.EN1434-3
73h77hOdpověď s pevnými daty.EN1434-3

Tyto kódy se v praxi čtou podle typu odpovědi: pevná data, proměnná data, obecná aplikační chyba nebo alarmový stav.

Pevná datová struktura CI = 73h/77h

Pevná datová struktura se používá v odpovědi slave → master v dlouhém rámci RSP_UD. CI hodnoty 73h a 77h dekodéru říkají, že za CI nenásledují proměnné DIF/VIF záznamy, ale pevně uspořádaný blok s identifikací, stavem a dvěma čítači.

Protože pevná struktura umožňuje přenášet jen dva čítače předem dané délky a má menší popisnost než proměnná struktura, není vhodná pro nové rozšiřitelné aplikace. V existujících měřičích je ale potřeba ji umět správně poznat a dekódovat.

Ident. číslo Access No. Status Médium/Jednotky Čítač 1 Čítač 2
4 Byte 1 Byte 1 Byte 2 Byte 4 Byte 4 Byte
Pole Kódování Význam
Identifikační číslo 8 číslic packed BCD ve 4 bajtech Výrobní nebo sériové číslo v rozsahu 00000000 až 99999999.
Access No. unsigned binary Čítač přístupů, který se zvyšuje po každé odpovědi RSP_UD a pomáhá rozlišit nová data od opakování.
Status bitové příznaky Určuje kódování čítačů, pevně datované hodnoty a chyby zařízení.
Médium/Jednotky LSByte first Nese společné měřené médium a jednotky obou čítačů. Šest spodních bitů každého bajtu určuje jednotku příslušného čítače, horní bity obou bajtů společně kódují médium.
Čítač 1 a 2 4 Byte Hodnoty jsou kódované jako BCD nebo signed binary podle bitu 0 ve Status poli.
Bit Status Význam při 1 Význam při 0
0Čítače jsou kódované jako signed binary.Čítače jsou kódované jako BCD.
1Čítače jsou uložené k pevnému datu.Čítače jsou aktuální hodnoty.
2Nízké napájení.Napájení není hlášeno jako nízké.
3Trvalá chyba.Bez trvalé chyby.
4Dočasná chyba.Bez dočasné chyby.
5-7Význam podle výrobce.Význam podle výrobce.
RX 68 13 13 68 08 05 73 78 56 34 12 0A 00 E9 7E 01 00 00 00 35 01 00 00 3C 16 RSP_UD s pevnou datovou strukturou: adresa 5, CI 73h, identifikační číslo 12345678, dva čítače.

Proměnná datová struktura

Kódy CI 72h a 76h označují v dlouhém rámci RSP_UD odpověď s proměnnou datovou strukturou. Po polích C, A a CI následuje aplikační část, která začíná pevnou datovou hlavičkou a pokračuje proměnným počtem datových záznamů.

Pevná hlavička 12 Byte Identifikace zařízení, výrobce, verze, médium, přístupové číslo, status a signatura.
Datové záznamy DIB + VIB + DATA Opakované standardní záznamy s vlastní délkou, funkcí, jednotkou a hodnotou.
MDH 1 Byte Značí přechod do výrobcem specifické části, pokud je přítomná.
Data výrobce proměnná délka Oblast, kterou nelze spolehlivě interpretovat bez dokumentace konkrétního výrobce.
Část Délka Význam
Pevná datová hlavička 12 Byte Identifikace zařízení a stavové informace platné pro celou odpověď.
Proměnné datové bloky proměnný počet Jednotlivé datové záznamy ve tvaru DIB, VIB a data. Každý záznam si nese vlastní délku, funkci, jednotku a význam.
MDH 1 Byte Manufacturer Data Header odděluje standardně popsané záznamy od části určené výrobcem.
Data výrobce proměnný počet Volná oblast definovaná výrobcem zařízení. Bez dokumentace výrobce ji nelze obecně dekódovat stejně jako standardní datové záznamy.

Pevná datová hlavička proměnné odpovědi

Prvních dvanáct bajtů uživatelských dat tvoří blok s pevnou délkou a pevně daným pořadím polí. Teprve za touto hlavičkou následují proměnné datové záznamy.

Ident. číslo Výrobce Verze Médium Access No. Status Signatura
4 Byte 2 Byte 1 Byte 1 Byte 1 Byte 1 Byte 2 Byte
Pole Délka Význam
Identifikační číslo 4 Byte V proměnné datové struktuře jde o zákaznické číslo zakódované osmi číslicemi packed BCD, tedy v rozsahu 00000000 až 99999999. Může být nastavené při výrobě, ale může být později měnitelné; pokud má být dostupné neměnné výrobní číslo, přenáší se jako samostatný záznam, například DIF = 0Ch a VIF = 78h.
Výrobce 2 Byte Dvoubajtová unsigned binary hodnota vypočtená z třípísmenného ID výrobce podle EN 61107. Používají se velká písmena a hodnota se skládá z pořadí písmen v abecedě.
ID = ([ASCII(1) - 64] * 32 * 32)
+ ([ASCII(2) - 64] * 32)
+ [ASCII(3) - 64]
Verze 1 Byte Určuje generaci nebo verzi měřiče. Přesný význam závisí na výrobci zařízení.
Médium 1 Byte Druh měřeného média. Na rozdíl od pevné datové struktury je médium v proměnné odpovědi kódované celým bajtem.
Access No. 1 Byte Přístupové číslo je bezznaménkový binární čítač odpovědí. Typicky se zvýší po každé odpovědi RSP_UD a pomáhá rozlišit novou odpověď od opakované.
Status 1 Byte Status nese stavové bity zařízení. Nejnižší dva bity se v proměnné odpovědi používají pro signalizaci aplikačních chyb; význam ostatních bitů odpovídá stavovým příznakům známým z pevné datové struktury.
Signatura 2 Byte Pole je vyhrazené pro budoucí šifrovací aplikace. Pokud se nepoužívá, bývá nastavené na hodnotu 00 00h.
Status bit Význam v proměnné odpovědi
0-1Aplikační chyba nebo stav podle specifikace zařízení a návazných pravidel M-BUS.
2Nízké napájení zařízení.
3Trvalá chyba zařízení.
4Dočasná chyba zařízení.
5-7Výrobcem specifické příznaky. Bez dokumentace zařízení se nemají interpretovat jako standardní chyby.
Bajty hlavičky Pole Dekódovaný význam
78 56 34 12Identifikační čísloPacked BCD číslo 12345678.
24 40VýrobceDvoubajtový EN 61107 kód výrobce přenášený v hlavičce.
01VerzeVerze nebo generace měřiče podle výrobce.
07MédiumKód měřeného média.
02Access No.Druhé pořadové číslo odpovědi v daném cyklu zařízení.
00StatusBez standardně signalizované chyby v příznacích statusu.
00 00SignaturaSignatura není použita.

Datové záznamy DATA

Za pevnou 12bajtovou hlavičkou následuje jeden nebo více datových záznamů. Každý záznam je samostatně popsaný blokem DIB a VIB; teprve za nimi jsou vlastní datové bajty hodnoty.

DIB DIF + DIFE... Popisuje tvar hodnoty, její funkci, číslo paměti, tarif a případné další rozšíření.
VIB VIF + VIFE... Popisuje veličinu, jednotku, měřítko a doplňující význam hodnoty.
DATA 0 až n bajtů Obsahuje vlastní hodnotu. Počet bajtů a kódování vychází z dolního půlbajtu DIF.
DIB VIB DATA
DIF + DIFE... VIF + VIFE... hodnota podle DIF
Část záznamu Délka Význam
DIF 1 Byte Data Information Field určuje délku a kódování hodnoty, funkci hodnoty a pokračování do DIFE.
DIFE 0 až více bajtů Rozšiřuje DIB hlavně o další bity čísla paměti a tarifu. Pokud je v předchozím DIF nebo DIFE nastavený bit rozšíření, následuje další DIFE.
VIF 1 Byte Value Information Field určuje fyzikální veličinu, jednotku a násobek hodnoty. Bit rozšíření říká, zda následuje VIFE.
VIFE 0 až více bajtů Rozšiřuje VIB o další informace k jednotce nebo významu hodnoty. Více VIFE za sebou je možné podle nastavených rozšiřujících bitů.
DATA podle DIF Vlastní bajty hodnoty. Počet bajtů a kódování určuje spodní půlbajt DIF. Pořadí bajtů vícebajtové hodnoty se řídí režimem v CI poli; pro nové aplikace se používá Mode 1, tedy nejnižší bajt jako první.

DIB a VIB podrobně

Datový záznam se nečte podle pevné délky celého záznamu, ale postupně. Nejdřív se sestaví DIB, potom VIB a až potom se podle spodních bitů DIF přečte vlastní hodnota DATA.

Zkratka Celý název Obsah
DIB Data Information Block Blok informací o datech. Skládá se z jednoho DIF a volitelných DIFE bajtů.
DIF Data Information Field První bajt DIB. Určuje kódování a délku DATA, funkci hodnoty, nejnižší bit čísla paměti a zda následuje DIFE.
DIFE Data Information Field Extension Rozšíření DIF. Přidává další bity čísla paměti, tarif, podjednotku a případně odkaz na další DIFE.
VIB Value Information Block Blok informací o významu hodnoty. Skládá se z jednoho VIF a volitelných VIFE bajtů.
VIF Value Information Field První bajt VIB. Určuje veličinu, jednotku, měřítko hodnoty a zda následuje VIFE.
VIFE Value Information Field Extension Rozšíření VIF. Upřesňuje jednotku nebo význam hodnoty a může pokračovat dalším VIFE.

Postup čtení datového záznamu

Krok Čtená část Pravidlo
1DIFPřečte se první bajt záznamu. Speciální hodnoty 0Fh, 1Fh a 2Fh se vyhodnotí ještě před běžným dekódováním.
2DIFE...Pokud je v DIF nastavený bit 7, následuje DIFE. Pokud má DIFE také bit 7, čte se další DIFE.
3VIFPo dokončení DIB se čte VIF, který určí jednotku a měřítko hodnoty.
4VIFE...Pokud je ve VIF nastavený bit 7, následuje VIFE. Řetězení pokračuje, dokud poslední VIFE nemá bit 7 nulový.
5DATANakonec se přečte počet bajtů DATA podle spodních čtyř bitů DIF.

Bitové rozložení DIF

7 6 5 4 3 2 1 0
DIFE Storage 0 Funkce Datové pole
Bity Název Význam
7rozšiřující bitHodnota 1 znamená, že za DIF následuje alespoň jeden DIFE.
6číslo paměti bit 0Nejnižší bit čísla paměti, tedy první rozlišení aktuální nebo historické hodnoty.
5-4funkce hodnotyUrčuje, zda jde o okamžitou, maximální, minimální nebo chybovou hodnotu.
3-0datové poleUrčuje počet bajtů DATA a jejich kódování.

Bitové rozložení DIFE

7 6 5 4 3 2 1 0
DIFE Podjednotka Tarif Storage
Bity Název Význam
7rozšiřující bitHodnota 1 znamená, že následuje další DIFE.
6podjednotkaRozlišuje podjednotku nebo kanál měřidla, pokud ji zařízení používá.
5-4tarifTarifní bity pro hodnoty s více tarify.
3-0číslo pamětiDalší bity čísla paměti. Každý další DIFE přidává další čtyři bity.
Výsledek z DIB Skládání Použití při dekódování
Číslo paměti DIF bit 6 + DIFE bity 3-0... Rozlišuje aktuální hodnoty, historické hodnoty a další uložené sady hodnot.
Funkce hodnoty DIF bity 5-4 Určuje okamžitou, maximální, minimální nebo chybovou hodnotu.
Tarif DIFE bity 5-4... Rozlišuje tarifní registry u více tarifních měřidel.
Podjednotka DIFE bit 6... Rozlišuje kanál, část měřidla nebo podjednotku, pokud ji zařízení používá.

Bitové rozložení VIF a VIFE

Pole 7 6 5 4 3 2 1 0
VIF VIFE Kód veličiny, jednotky a měřítka
VIFE VIFE Doplňující kód k VIF
Pole Bity Význam
VIF7Rozšiřující bit. Hodnota 1 znamená, že za VIF následuje VIFE.
VIF6-0Kód veličiny, jednotky a měřítka hodnoty, například energie, objem, průtok, teplota nebo datum.
VIFE7Rozšiřující bit. Hodnota 1 znamená, že následuje další VIFE.
VIFE6-0Doplňující kód k VIF. Upřesňuje jednotku, měřítko, časový význam nebo výrobně specifický význam hodnoty.

Primární VIF - hlavní skupiny jednotek

VIF bity 6-0 Veličina Základ jednotky Měřítko
00h-07hEnergieWhpodle kódu v rozsahu
08h-0FhEnergieJpodle kódu v rozsahu
10h-17hObjemm3podle kódu v rozsahu
18h-1FhHmotnostkgpodle kódu v rozsahu
20h-23hDoba zapnutís / min / h / dvýběr jednotky kódem
24h-27hProvozní dobas / min / h / dvýběr jednotky kódem
28h-2FhVýkonWpodle kódu v rozsahu
30h-37hVýkonJ/hpodle kódu v rozsahu
38h-3FhObjemový průtokm3/hpodle kódu v rozsahu
40h-47hObjemový průtokm3/minpodle kódu v rozsahu
48h-4FhObjemový průtokm3/spodle kódu v rozsahu
50h-57hHmotnostní průtokkg/hpodle kódu v rozsahu
58h-5BhTeplota přívodu°Cpodle kódu v rozsahu
5Ch-5FhTeplota zpátečky°Cpodle kódu v rozsahu
60h-63hTeplotní rozdílKpodle kódu v rozsahu
64h-67hVnější teplota°Cpodle kódu v rozsahu
68h-6BhTlakbarpodle kódu v rozsahu
6ChDatumspeciální kódování data
6DhDatum a časspeciální kódování data a času
6EhJednotky HCAbez fyzikální jednotky
70h-73hDoba průměrovánís / min / h / dvýběr jednotky kódem
74h-77hDoba aktuálnostis / min / h / dvýběr jednotky kódem
78hVýrobní čísloidentifikační údaj
7AhAdresa sběrniceadresa v datech

Speciální hodnoty DIF

DIF Význam
0FhZačátek výrobcem specifických dat; zbytek telegramu se už nečte jako standardní DIF/VIF záznamy.
1FhZnačka, že následují další záznamy, typicky v dalším telegramu nebo bloku.
2FhVýplňový bajt. Při dekódování se přeskočí a nepředstavuje datový záznam.

DIF a délka DATA

DIF data field Délka DATA Kódování
0000b / 0h0 Bytebez dat
0001b / 1h1 Byte8bitové celé číslo
0010b / 2h2 Byte16bitové celé číslo
0011b / 3h3 Byte24bitové celé číslo
0100b / 4h4 Byte32bitové celé číslo
0101b / 5h4 Byte32bitové reálné číslo
0110b / 6h6 Byte48bitové celé číslo
0111b / 7h8 Byte64bitové celé číslo
1000b / 8h0 Bytevýběr pro odečet
1001b / 9h1 Byte2 číslice BCD
1010b / Ah2 Byte4 číslice BCD
1011b / Bh3 Byte6 číslic BCD
1100b / Ch4 Byte8 číslic BCD
1101b / Dhproměnnáproměnná délka
1110b / Eh6 Byte12 číslic BCD
1111b / Fhspeciálníspeciální funkce

Funkce hodnoty v DIF

Bity 5-4 Funkce Význam
00bokamžitá hodnotaběžná aktuální měřená hodnota
01bmaximální hodnotauložené maximum za dané období nebo paměť
10bminimální hodnotauložené minimum za dané období nebo paměť
11bhodnota při chyběhodnota platná nebo uložená v chybovém stavu