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 |
51h | 55h | Odeslání dat. | EN1434-3 |
52h | 56h | Výběr slave zařízení. | Usergroup 07/1993 |
50h | | Aplikační reset. | Usergroup 03/1994 |
54h | | Synchronizační akce. | návrh |
B8h | | Nastavení rychlosti 300 baud. | Usergroup 07/1993 |
B9h | | Nastavení rychlosti 600 baud. | Usergroup 07/1993 |
BAh | | Nastavení rychlosti 1200 baud. | Usergroup 07/1993 |
BBh | | Nastavení rychlosti 2400 baud. | Usergroup 07/1993 |
BCh | | Nastavení rychlosti 4800 baud. | Usergroup 07/1993 |
BDh | | Nastavení rychlosti 9600 baud. | Usergroup 07/1993 |
BEh | | Nastavení rychlosti 19200 baud. | návrh |
BFh | | Nastavení rychlosti 38400 baud. | návrh |
B1h | | Požadavek na vyčtení celého obsahu RAM. | návrh Techem |
B2h | | Odeslání uživatelských dat, nestandardizovaný zápis do RAM. | návrh Techem |
B3h | | Spuštění testovacího kalibračního režimu. | Usergroup 07/1993 |
B4h | | Čtení EEPROM. | návrh Techem |
B6h | | Spuštění softwarového testu. | návrh Techem |
90h-97h | | Kó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 |
0000b | Vše | |
0001b | Uživatelská data | spotřeba |
0010b | Jednoduché vyúčtování | aktuální a pevně datované hodnoty včetně dat |
0011b | Rozšířené vyúčtování | historické hodnoty |
0100b | Více tarifů | |
0101b | Okamžité hodnoty | regulace |
0110b | Hodnoty pro řízení zátěže | management |
0111b | Rezervováno | |
1000b | Instalace a uvedení do provozu | adresa sběrnice, pevná data |
1001b | Testování | hodnoty s vysokým rozlišením |
1010b | Kalibrace | |
1011b | Výroba | |
1100b | Vývoj | |
1101b | Autotest | |
1110b | Rezervováno | |
1111b | Rezervová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 |
70h | | Hlášení obecných aplikačních chyb. | Usergroup 03/1994 |
71h | | Hlášení alarmového stavu. | Usergroup 03/1994 |
72h | 76h | Odpověď s proměnnými daty. | EN1434-3 |
73h | 77h | Odpověď 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. |
2 | Nízké napájení. | Napájení není hlášeno jako nízké. |
3 | Trvalá chyba. | Bez trvalé chyby. |
4 | Dočasná chyba. | Bez dočasné chyby. |
5-7 | Vý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-1 | Aplikační chyba nebo stav podle specifikace zařízení a návazných pravidel M-BUS. |
2 | Nízké napájení zařízení. |
3 | Trvalá chyba zařízení. |
4 | Dočasná chyba zařízení. |
5-7 | Vý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 12 | Identifikační číslo | Packed BCD číslo 12345678. |
24 40 | Výrobce | Dvoubajtový EN 61107 kód výrobce přenášený v hlavičce. |
01 | Verze | Verze nebo generace měřiče podle výrobce. |
07 | Médium | Kód měřeného média. |
02 | Access No. | Druhé pořadové číslo odpovědi v daném cyklu zařízení. |
00 | Status | Bez standardně signalizované chyby v příznacích statusu. |
00 00 | Signatura | Signatura 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 |
1 | DIF | Př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. |
2 | DIFE... | Pokud je v DIF nastavený bit 7, následuje DIFE. Pokud má DIFE také bit 7, čte se další DIFE. |
3 | VIF | Po dokončení DIB se čte VIF, který určí jednotku a měřítko hodnoty. |
4 | VIFE... | Pokud je ve VIF nastavený bit 7, následuje VIFE. Řetězení pokračuje, dokud poslední VIFE nemá bit 7 nulový. |
5 | DATA | Nakonec 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 |
7 | rozšiřující bit | Hodnota 1 znamená, že za DIF následuje alespoň jeden DIFE. |
6 | číslo paměti bit 0 | Nejnižší bit čísla paměti, tedy první rozlišení aktuální nebo historické hodnoty. |
5-4 | funkce hodnoty | Určuje, zda jde o okamžitou, maximální, minimální nebo chybovou hodnotu. |
3-0 | datové pole | Urč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 |
7 | rozšiřující bit | Hodnota 1 znamená, že následuje další DIFE. |
6 | podjednotka | Rozlišuje podjednotku nebo kanál měřidla, pokud ji zařízení používá. |
5-4 | tarif | Tarifní bity pro hodnoty s více tarify. |
3-0 | číslo paměti | Další 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 |
VIF | 7 | Rozšiřující bit. Hodnota 1 znamená, že za VIF následuje VIFE. |
VIF | 6-0 | Kód veličiny, jednotky a měřítka hodnoty, například energie, objem, průtok, teplota nebo datum. |
VIFE | 7 | Rozšiřující bit. Hodnota 1 znamená, že následuje další VIFE. |
VIFE | 6-0 | Doplň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-07h | Energie | Wh | podle kódu v rozsahu |
08h-0Fh | Energie | J | podle kódu v rozsahu |
10h-17h | Objem | m3 | podle kódu v rozsahu |
18h-1Fh | Hmotnost | kg | podle kódu v rozsahu |
20h-23h | Doba zapnutí | s / min / h / d | výběr jednotky kódem |
24h-27h | Provozní doba | s / min / h / d | výběr jednotky kódem |
28h-2Fh | Výkon | W | podle kódu v rozsahu |
30h-37h | Výkon | J/h | podle kódu v rozsahu |
38h-3Fh | Objemový průtok | m3/h | podle kódu v rozsahu |
40h-47h | Objemový průtok | m3/min | podle kódu v rozsahu |
48h-4Fh | Objemový průtok | m3/s | podle kódu v rozsahu |
50h-57h | Hmotnostní průtok | kg/h | podle kódu v rozsahu |
58h-5Bh | Teplota přívodu | °C | podle kódu v rozsahu |
5Ch-5Fh | Teplota zpátečky | °C | podle kódu v rozsahu |
60h-63h | Teplotní rozdíl | K | podle kódu v rozsahu |
64h-67h | Vnější teplota | °C | podle kódu v rozsahu |
68h-6Bh | Tlak | bar | podle kódu v rozsahu |
6Ch | Datum | | speciální kódování data |
6Dh | Datum a čas | | speciální kódování data a času |
6Eh | Jednotky HCA | | bez fyzikální jednotky |
70h-73h | Doba průměrování | s / min / h / d | výběr jednotky kódem |
74h-77h | Doba aktuálnosti | s / min / h / d | výběr jednotky kódem |
78h | Výrobní číslo | | identifikační údaj |
7Ah | Adresa sběrnice | | adresa v datech |
Speciální hodnoty DIF
| DIF |
Význam |
0Fh | Začátek výrobcem specifických dat; zbytek telegramu se už nečte jako standardní DIF/VIF záznamy. |
1Fh | Značka, že následují další záznamy, typicky v dalším telegramu nebo bloku. |
2Fh | Vý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 / 0h | 0 Byte | bez dat |
0001b / 1h | 1 Byte | 8bitové celé číslo |
0010b / 2h | 2 Byte | 16bitové celé číslo |
0011b / 3h | 3 Byte | 24bitové celé číslo |
0100b / 4h | 4 Byte | 32bitové celé číslo |
0101b / 5h | 4 Byte | 32bitové reálné číslo |
0110b / 6h | 6 Byte | 48bitové celé číslo |
0111b / 7h | 8 Byte | 64bitové celé číslo |
1000b / 8h | 0 Byte | výběr pro odečet |
1001b / 9h | 1 Byte | 2 číslice BCD |
1010b / Ah | 2 Byte | 4 číslice BCD |
1011b / Bh | 3 Byte | 6 číslic BCD |
1100b / Ch | 4 Byte | 8 číslic BCD |
1101b / Dh | proměnná | proměnná délka |
1110b / Eh | 6 Byte | 12 číslic BCD |
1111b / Fh | speciální | speciální funkce |
Funkce hodnoty v DIF
| Bity 5-4 |
Funkce |
Význam |
00b | okamžitá hodnota | běžná aktuální měřená hodnota |
01b | maximální hodnota | uložené maximum za dané období nebo paměť |
10b | minimální hodnota | uložené minimum za dané období nebo paměť |
11b | hodnota při chybě | hodnota platná nebo uložená v chybovém stavu |