Promotic

PmMBus - Ovladač pro komunikaci protokolem M-BUS

Tento PROMOTIC ovladač je určen pro komunikaci se zařízeními podporujícími M-BUS (Meter-Bus) protokol. Tento protokol je převážně určen pro aplikace sběru dat z měřičů odběru nejrůznějších médií (tepla, elektřiny ...).
- Protokolem M-BUS komunikují měřiče přes speciální fyzické rozhraní (36V) a proto je nutno použít HW převodník (viz M-BUS HW převodníky).


Před použitím tohoto ovladače v aplikaci PROMOTIC je vhodné shlédnout "PROMOTIC video kurz 4 - Komunikační ovladače".

Základní vlastnosti ovladače

- Použití tohoto ovladače vyžaduje zakoupení licence PmMBus. Při vývoji aplikace ve freeware módu PmFree nebo s vývojovou licencí a při jejím testování v runtime je tato komponenta vždy funkční.
- Komunikace je pro Ethernet (aplikace PROMOTIC je klient) nebo pro sériovou linku (COM1, COM2 ...).
Při komunikaci přes Ethernet je tvar přenášených dat stejný jako pro M-BUS pro sériovou linku. Podmínkou tedy je aby převodník M-BUS/Ethernet neměnil přenášená data.
- Aplikace PROMOTIC je z hlediska této komunikace vždy Master (to znamená, že dává podnět pro přenos dat).
- Ovladač je začleněn do systému PROMOTIC pomocí objektu PmaComm.
Ovladač podporuje použití objektů PmaCommMsg a PmaCommGroup. Pro běžné případy přenosu dat je lepší použít objekt PmaCommGroup.
Pro snadné přidání tohoto ovladače do aplikace je vhodné použít: Předkonfigurace ve skupině "M-BUS"
- Komunikace je síťová, to znamená, že jeden objekt PmaComm může komunikovat s více zařízeními (protokol podporuje adresaci více zařízení).


Ovladač v aplikaci PROMOTIC lze velmi obecně konfigurovat:
- Adresování: Každý měřič lze adresovat. V objektu PmaCommGroup lze určit adresu měřiče pro každou proměnnou, v objektu PmaCommMsg se určuje adresa v kartě "Data-zaslání" v proměnné Address. Hodnoty adres jsou:
- 0250 = standardní adresa konkrétního měřiče.
- 253 = adresa "vybraného" měřiče. Měřič lze nastavit do "vybraného" stavu zprávou "Obecný měřič/Výběr Slave stanice podle identifikačního čísla".
- 254 = universální adresa. Požadavky přijímají všechny měřiče a všechny měřiče také odpovídají. Má smysl pouze pokud je připojen 1 měřič.
- 255 = universální adresa. Požadavky přijímají všechny měřiče ale nikdo neodpovídá. Má smysl například u zprávy "Obecný měřič/Inicializace Slave (měřiče)".
- Více typů měřičů na 1 lince: Na jedné sériové lince může být napojeno více typů měřičů, mohou se "míchat" například měřiče Kamstrup, Landis, Danfoss, atd.
- Různé formáty dat: Hodnoty jsou z měřičů posílané v různých formátech (BCD nebo binární kódování, uložení na 2/4/6/8 bajtů ...). Ovladač tyto hodnoty automaticky dekóduje.
- Přepočet fyzikální jednotky: Ovladač umí automaticky přepočítávat hodnoty přijatých dat do standardních fyzikálních jednotek. Měřiče totiž tyto hodnoty obvykle posílají jako celé číslo s příznakem, že jde například o jednotky 0.01C, 0.1kW, atd. Ovladač přepočítává hodnoty do následujících jednotek:

Jednotka: Fyzikální veličina:
GJ Energie
W Výkon
m3 Objem
kg Hmotnost
m3/h Objemový průtok
kg/h Hmotnostní průtok
C Teplota (Forward, Return, Difference, External)
mbar Tlak
V Elektrické napětí
A Elektrický proud
počet sekund Doba odezvy (Averaging Duration), Doba aktualizace (Actuality Duration) ..
počet dnů Doba provozu (On time), Operation time


Dále se přepočítávají binární formáty datumu (TimePoint) do hodnoty typu Date. Ostatní veličiny (čítač, výrobní číslo ..) se nepřepočítávají.
- Obecné čtení: Ovladač umí číst údaje i z neznámých M-BUS měřičů, pro které nemá předkonfigurace. Čtení takových údajů je založeno na tom, že M-BUS datová zpráva posílá nejen hodnoty, ale i příznaky o typu daného údaje. Tak ovladač ví co daná hodnota ve zprávě znamená a dále s tím pracuje. Čtení těchto hodnot lze použít v objektu PmaCommGroup i v objektu PmaCommMsg:
V objektu PmaCommGroup se konfigurují datové položky tak, že se specifikuje typ údaje (Teplota, Objem ...). Ovladač pak v přijaté zprávě požadovaný údaj nalezne (pokud ve zprávě takový údaj je) a uloží do položky.
V objektu PmaCommMsg pro obecné čtení je určena zpráva "Obecný měřič/Čtení obecně konfigurovaných dat". Projektant může konfigurovat data objektu PmaCommMsg přesně podle daného měřiče. Pokud projektant neví co měřič poskytuje, pak lze v této zprávě nastavit, ať se informace o přijatých datech vypíší do INFO systému. Podle tohoto výpisu pak projektant může nastavit data objektu.


Pro příjem veličin z měřičů je jednodušší používat objekty PmaCommGroup. Pro speciální, méně standardní komunikace, lze použít objekty PmaCommMsg, které mají další vlastnosti:
- Záhlaví M-BUS zprávy: Při příjmu standardních dat posílá měřič před daty záhlaví. Informace z tohoto záhlaví jsou dostupné, protože ovladač pro každou takovou zprávu vygeneruje v kartě "Data-příjem" následující proměnné:

- Address: Adresa měřiče, který posílá data (pro protokol M-BUS je to položka A-Field). Pokud v kartě "Data-zaslání" je proměnná Address nastavena na 254 (univerzální adresa), pak měřič odpoví svou skutečnou adresou a lze tak u měřiče s neznámou adresou tuto adresu zjistit. Měřič přímo od výrobce mívá adresu předkonfigurovanou na 0.
- IdentNr: (Indentification Number) Číslo zákazníka v rozsahu od 00000000 do 99999999. Bývá přednastaveno u výrobce na jedinečné číslo, ale může být změněno.
- Manufac: (Manufacturer) Identifikátor výrobce.
- Version: Generace nebo verze měřiče. Určuje výrobce.
- Medium: Měřené médium: 0=jiné, 1=Olej, 2=elektřina, 3=plyn, 4=teplo (měřené ze zpáteční/return teploty: výstup), 5=pára, 6=horká voda, 7=voda, 8=Heat Cost Allocator, 9=stlačený vzduch, 10=Cooling load meter (měřené ze zpáteční/return teploty: výstup), 11=Cooling load meter (měřené z přívodní/flow teploty: vstup), 12=teplo (měřené z přívodní/flow teploty: vstup), 13=Heat/Cooling load meter, 14=Bus/System, 15=Neznámé médium, 22=Studená voda, 23=Dual voda, 24=Tlak, 25=A/D převodník.
- AccessNr: (Access Number) Je zvětšeno o 1 po každém poslaní dat z měřiče.
- Status: Indikuje aplikační chyby. Status bit1.bit0: 0.0=No Error, 0.1=Application Busy, 1.0=Any Application Error, 1.1=Rezervováno.


- Obsluha FCB příznaku: Ovladač volitelně umí automaticky měnit čítač vyslání jednotlivým měřičům (umí automaticky obsluhovat tzv. FCB příznak). Podle tohoto příznaku pak měřič pozná, zda se jedná o nový nebo starý (opakující se) požadavek. Některé měřiče tento příznak nevyužívají, některé by však bez správného nastavování tohoto příznaku neposílaly korektní data. Pro měřiče a zprávy, kde je toto potřeba určit projektantem, je proto v kartě "Data-zaslání" proměnná FcbAttr. Proměnnou lze nastavit na hodnoty:

0 = neměnit čítač (tzn. FCB příznak se nevyužívá)
1 = příznak se automaticky obsluhuje. Projektant se nemusí starat o změny příznaku, ovladač ho mění sám.
4 = (pouze pro spec.účely) FCB=FCV=0
5 = (pouze pro spec.účely) FCB=0 a FCV=1
6 = (pouze pro spec.účely) FCB=1 a FCV=0
7 = (pouze pro spec.účely) FCB=FCV=1


- Nestandardní zprávy: Pro speciální zprávy, které neslouží ke standardnímu čtení udajů má ovladač předpřipravené zprávy (zprávy "Obecný měřič/Inicializace Slave (měřiče)" a "Obecný měřič/Změnit Baud rate (kom.rychlost)") nebo může projektant speciální zprávu sestavit na bajtové úrovni (zpráva "Obecný měřič/Bajtově konfigurovatelná zpráva typu vyslaní/příjem" - pro znalce protokolu M-BUS).

Doporučené hodnoty parametrů objektu PmaComm:

Doporučené hodnoty pro Parametry sériové linky:
Rychlost300 Bd. Tuto rychlost by měly podporovat všechny měřiče. Podle použitých měřičů lze pak rychlost zvětšovat. Další doporučené rychlosti jsou: 2400 Bd, 9600 Bd, 38400 Bd. Mnoho měřičů se umí některým rychlostem přizpůsobit, i když byly nakonfigurovány pro jinou rychlost. Upozornění: převodníky často podporují rychlost jen do 9600 Bd.
Počet datových bitů8 (je předepsáno standardem M-BUS)
ParitaEVEN (sudá) (je předepsáno standardem M-BUS)
Počet stopbitů1
Počet opakování při neúspěšném přenosu0.
Z důvodu šetření baterie jsou měřiče často nastaveny do "uspávájícího" režimu a je nutno vzbudit je při komunikaci. Nejjednodušeji se to provede nastavením konfigurátoru "Počet opakování při neúspěšném přenosu" na hodnotu 1 (nebo více, asi nejlépe 2) a konfigurátoru "Timeout příjmu odpovědi" na hodnotu od 500 do 1000 ms. Tak první zaslání zprávy způsobí "probuzení" měřiče a další opakování zprávy pak již proběhne v pořádku.
Timeout mezi příjmem 2 znaků100 ms (lze zvyšovat)
Prodleva mezi příjmem-vysláním0 ms (lze zvyšovat)
Filtrovat ECHO znakyNe. Závisí však na převodníku M-BUS/RS232.
Například převodník SLC-31 od firmy Elsaco vrací zaslané znaky a je tedy nutno zadat Ano.
Převodník od firmy Codea zaslané znaky nevrací a je nutno zadat Ne.
Řízení RTS signálulog.0
Řízení DTR signálulog.0
Doporučené hodnoty pro Parametry Ethernet-klient:
Číslo vzdáleného TCP/UDP portupodle nastavení převodníku M-BUS/Ethernet
Typ Ethernet přenosupodle nastavení převodníku M-BUS/Ethernet
Popis a doporučené hodnoty pro Parametry protokolu:
Timeout příjmu odpovědi1000 ms (lze zvyšovat). Jen pro sériovou linku. Čas (v milisekundách) po který bude ovladač čekat na odpověď při vyslání zprávy.
Pokud do této doby nepřijde vyžádaná odpověď, pak se přenos zprávy ukončí (je vyvolána událost onEndOfTransfer s chybou 24 nebo 66).
Poznámka:
Vyčítat údaje z měřičů obvykle nemá smysl častěji než 1 minuta. Pokud se vyčítají údaje častěji než 4-30 sekundy (závisí na měřiči) pak měřič údaje nepošle.

Popis komunikace pomocí objektu PmaCommGroup

Pro tento ovladač lze použít objekty PmaCommGroup. Pro běžné případy přenosu dat je to výhodnější než použít objekt PmaCommMsg.
Proměnné v objektu PmaCommGroup (nebo ještě lépe proměnné v objektu PmaData s datovým rozšířením ExtComm) mohou být v libovolném množství, libovolného typu v libovolném pořadí. Ovladač sám optimálním způsobem vnitřně vytvořenými komunikačními zprávami vyčítá data ze zařízení.
Proměnné se vyčítají všechny (pokud konfigurátor "Obnovování dat povoleno" je zatržen). Pro tento ovladač není povolen zápis proměnných do zařízení.
V jednom objektu PmaCommGroup mohou být definovány položky (proměnné v kartě "Data" nebo datová rozšíření ExtComm) pro více měřičů současně.
Může však být výhodnější, aby jeden objekt PmaCommGroup sloužil pouze pro jeden měřič - tehdy lze adresu měřiče zadat v konfigurátoru "Přednastavená adresa měřiče" a u každé položky se pak adresa nemusí zadávat (zadá se jen text "saD.." - viz dále). Pak lze jednodušeji měnit adresu měřiče jen na jednom místě.

Popis konfigurátoru "ItemId":
ItemId je textový identifikátor položky, který slouží k adresaci položky v zařízení. Z konfigurátoru ItemId ovladač pozná, jak se má hodnota položky přijímat nebo vysílat.
Text lze buď napsat ručně, nebo sestavit v okně, které se otevře tlačítkem vpravo od konfigurátoru.
Pro zadání lze použít Makro výraz (vyhodnocuje se po spuštění aplikace).
Příklady tvaru identifikátoru:
sa44.M1.TemperFor
sa254.M1.TemperFor.max.S3.T2.c0
saD.M1.MeterManufac
saD.B1.Index20
saD.B4.Index30
sa1.Ia2.Index3
sa3.Ia2.Index3.c0

Text začíná vždy zkratkou "sa" (= Slave/Station Address) za kterou následuje dekadická adresa měřiče. Místo adresy měřiče lze uvést znak "D" (=default) jako příznak, že adresa měřiče se má vzít z konfigurátoru "Přednastavená adresa měřiče".
Další identifikátor za tečkou určuje oblast požadovaných dat (určuje typ zprávy M-BUS, která způsobí, že měřič pošle data z požadované oblasti). Možné jsou následující hodnoty:
M1 = (Request UD2, FCB=0, FCV=1) První standardní oblast měřiče.
Podporuje většina měřičů.
V této oblasti jsou obvykle hlavní aktuální údaje měřiče.
M2 = (Request UD2, FCB=1, FCV=1) Druhá standardní oblast měřiče.
Měřiče obvykle buď nepodporují nebo zasílají stejné údaje jako pro první oblast.
B1 = (Send UD, CIField=B1) Žádost o načtení kompletního obsahu paměti RAM.
B4 = (Send UD, CIField=B4) Čtení EEPROM.
Ia = (Danfoss-INFOCAL type) Tento typ je využíván pro měřiče typu Danfoss (Ia=Indexování typu a).
Měřič má hodně údajů které se všechny nevejdou do standardní oblasti.
Pro získání těchto dalších údajů se posílá "speciální zpráva" s indexem oblasti (index se zadává za textem "Ia") a měřič tak pošle údaje z této vybrané oblasti. Viz: Komunikace s měřiči Danfoss INFOCAL-5
Ib = (Sontex-SUPERCAL type) Stejný případ jako pro "Ia", pouze pro měřiče typu Sontex.
Speciální zpráva má jiný tvar ale princip je stejný. Viz: Komunikace s měřiči Sontex SUPERCAL
Ic = (Scylar type) Stejný případ jako pro "Ia", pouze pro měřiče typu Scylar.
Speciální zpráva má jiný tvar ale princip je stejný. Viz: Komunikace s kalorimetrickými měřiči Scylar

Další identifikátor za tečkou určuje požadovaný údaj v dané oblasti. Měřič posílá současně všechny údaje ze zvolené oblasti. Požadovaný údaj lze tak definovat buď indexem (Index) nebo specifikací významu údaje (ostatní možnosti):

Index - Za tímto identifikátorem se udává index údaje (indexováno od 0) v oblasti. Takto se lze odkazovat na jakýkoli standardní údaj v oblasti. Vhodné pro zadání údaje, který nelze definovat pomocí následujících specifikací významu. Následující specifikace totiž nepostihují všechny možnosti M-BUS komunikace (firma MICROSYS, spol. s r.o. však může do ovladače další specifikace přidat).
Energy - Energie [GJ]
Power - Výkon [kW]
Pressure - Tlak [mbar]
Volume - Objem [m3]
Mass - Hmotnost [kg]
FlowVolume - Objemový průtok [m3/h]
FlowMass - Hmotnostní průtok [kg/h]
TemperFor - Vstupní teplota [°C]
TemperRet - Výstupní teplota [°C]
TemperDif - Teplotní rozdíl [°C]
TemperExt - Externí teplota [°C]
Voltage - Elektrické napětí [V]
Current - Elektrický proud [A]
TimeOn - Doba provozu (On time) [day]
TimeOper - Operation time [day]
TimeDate - Datum [date]
FabricNum - Tovární číslo měřiče
ErrorFlags - Příznak chyb
ErrorMask - Maska chyb
CumulCount - Kumulativní čítač
MeterAddr - Adresa měřiče, který posílá data (pro protokol M-BUS je to položka A-Field).
MeterIdent - Číslo zákazníka v rozsahu od 00000000 do 99999999. Bývá přednastaveno u výrobce na jedinečné číslo, ale může být změněno.
MeterManufac - Identifikátor výrobce.
MeterVersion - Generace nebo verze měřiče. Určuje výrobce.
MeterMedium - Měřené médium: 0=jiné, 1=Olej, 2=elektřina, 3=plyn, 4=teplo (měřené ze zpáteční/return teploty: výstup), 5=pára, 6=horká voda, 7=voda, 8=Heat Cost Allocator, 9=stlačený vzduch, 10=Cooling load meter (měřené ze zpáteční/return teploty: výstup), 11=Cooling load meter (měřené z přívodní/flow teploty: vstup), 12=teplo (měřené z přívodní/flow teploty: vstup), 13=Heat/Cooling load meter, 14=Bus/System, 15=Neznámé médium, 22=Studená voda, 23=Dual voda, 24=Tlak, 25=A/D převodník.


Další identifikátory za tečkou určují další zpřesnění údaje a jsou nepovinné.
max = Maximální hodnota
min = Minimální hodnota
err = Hodnota během chybového stavu
U = Položka s daným číslem Subunit (určeno pro odlišení dvou podobných položek).
Pokud není nastaveno, pak se bude v přijaté zprávě hledat první výskyt dané položky bez ohledu na to, jaký má Subunit.
S = Položka s daným číslem paměťi (Storage). "S0" znamená aktuální hodnotu, "S1" je hodnota ve storage1, což může být například hodnota minulého měsíce, atd.
Pokud se paměť (znak S) neuvede, pak se bude v přijaté zprávě hledat první výskyt dané položky bez ohledu na to, ve které je paměti.
T = Položka s daným číslem tarifu. "T0" znamená aktuální tarif (nebo "bez tarifu"), "T1" znamená hodnota podle prvního tarifu, atd.
Pokud se tarif (znak T) neuvede, pak se bude v přijaté zprávě hledat první výskyt dané položky bez ohledu na tarif.
c0 = Nepřepočítávat do základních fyzikálních jednotek (viz Přepočet fyzikální jednotky).


Popis konfigurátoru "PmaCommGroup > Parametry > Speciální parametry":
Přednastavená adresa měřičeZde zadanou adresu lze použít při zadávání v konfigurátoru "ItemId" v proměnných v tomto objektu (tzn. v proměnných v kartě "Data" nebo v datovém rozšíření ExtComm). Adresu lze zadat v ItemId:
- buď například sa1... - pak se hodnota proměnné bude načítat z měřiče s adresou 1.
- nebo saD... - znak "D" zde znamená default (to znamená, že adresa se přebere z tohoto konfigurátoru).

Tento parametr lze v runtime změnit a přečíst ve skriptu pomocí metod: SetSpecParam("SlaveAddr") a GetSpecParam("SlaveAddr").

Popis komunikace pomocí objektu PmaCommMsg

Objekt PmaCommMsg lze použít pro speciální komunikace, které nelze provést objektem PmaCommGroup.
Popis konfigurátoru "PmaCommMsg > Parametry > Parametry zprávy":
Typ měřičeVýběr typu měřiče. Zde je vhodné vybrat jen volbu "Obecný měřič". Další voby jsou zastaralé a je vhodnější tyto zprávy nahradit objektem PmaCommGroup.
Obecný měřič - Obecné zprávy vhodné pro všechny typy M-BUS měřičů.
Kamstrup MULTICAL - zastaralé
ABB SVM - zastaralé
Danfoss INFOCAL 5 - zastaralé
Landis ULTRAHEAT - zastaralé
Supercal SONTEX - zastaralé
CALMEX VKP - zastaralé
Typ zprávyPožadovaný typ zprávy pro daný typ měřiče. Dále je uveden seznam zpráv pouze pro Typ měřiče = Obecný měřič.
Seznam typů zpráv pro Typ měřiče = Obecný měřič:
- Inicializace Slave (měřiče):
Inicializace měřiče (zpráva typu SND_NKE). Slouží zejména pro inicializaci ovládání tzv. FCB příznaku (viz Obsluha FCB příznaku), který slouží měřiči jako informace o správné posloupnosti zasílání zpráv. Je doporučeno tuto zprávu volat při spuštění aplikace a také při vzniku chyby přenosu (viz parametr pEvent.Error v události PmaCommMsg.onEndOfTransfer).
Adresu měřiče lze nastavit přesně (hodnotu od 0 do 250) - v tom případě každý měřič potvrdí (odpoví), zda vzal příkaz na vědomí.
Je vhodné také použít univerzální adresu 255 - v tom případě se zinicializují všechny připojené měřiče najednou bez jakéhokoli potvrzení (viz Adresování).
V kartě "Data-zaslání" jsou proměnné:
Address (Byte) = Adresa měřiče
V kartě "Data-příjem" není žádná proměnná.
- Reset aplikační vrstvy Slave (měřiče):
Zaslání této zprávy do měřiče způsobí reset aplikačních proměnných měřiče (zpráva typu SND_UD). Co se konkrétně skutečně v měřiči stane závisí pouze na měřiči. Většina následujících měřičů tuto zprávu nepotřebuje. Tato zpráva se používá v: Komunikace s měřiči Sontex SUPERCAL.
V kartě "Data-zaslání" jsou proměnné:
Address (Byte) = Adresa měřiče
V kartě "Data-příjem" není žádná proměnná.
- Výběr Slave stanice podle identifikačního čísla:
Tato zpráva uvede Slave stanici do tzv. vybraného (selected) stavu. Po uvedení do vybraného stavu pak stanice komunikuje tak, jako by její adresa byla 253 (viz Adresování), a až do té doby, než je do vybraného stavu uvedena jiná stanice. Stanice se vybírá tzv. sekundární adresou, která je definována údaji: IdentNr = identifikační číslo měřiče, Manufac = identifikační číslo výrobce, Version = verze měřiče, Medium = měřené médium. Tyto údaje se zadávájí v kartě "Data-zaslání" a lze je z měřiče zjistit například zprávou "Obecný měřič/Čtení obecně konfigurovaných dat" při zavádění měřiče do provozu.
Adresování stanice touto sekundární adresou je vhodné například:
- pro rozsáhlejší systémy kdy nestačí 250 primárních adres nebo
- pro stanice, které jsou často měněné a nelze zaručit že primární adresy jsou jedinečné.
V kartě "Data-zaslání" jsou proměnné:
IdentNr (Long)
Manufac (Integer)
Version (Byte)
Medium (Byte)
V kartě "Data-příjem" není žádná proměnná.
- Změnit Baud rate (kom.rychlost):
(zpráva typu SND_UD). Používat tuto zprávu asi obvykle nebude nutné, protože rychlost lze nastavit přímo v měřiči a není vhodné ji měnit za běhu aplikace. Mnoho měřičů se také umí přizpůsobit více komunikačním rychlostem, i když byly nastaveny na jinou.
V kartě "Data-zaslání" jsou proměnné:
Address (Byte) = Adresa měřiče
BaudRate (Byte) = (B8h=184=300Bd, BBh=187=2400Bd ..)
V kartě "Data-příjem" není žádná proměnná.
- Čtení obecně konfigurovaných dat:
Zpráva určená pro čtení dat z měřičů (zpráva typu REQ_UD2). Slouží jen ve speciálních případech - pro standardní čtení dat je lepší použít objekt PmaCommGroup - viz Popis komunikace pomocí objektu PmaCommGroup.
V kartě "Data-zaslání" jsou proměnné:
Address = (Byte) Adresa měřiče
FcbAttr = (Byte) Hodnota FCB příznaku. Viz Obsluha FCB příznaku.
DataAttr = (Long) Příznak jak jsou v přijaté zprávě uložena "specifická data" (tzn. data v poslední části DIF=0f):
0 = jsou uložena binárně - tzn. není nutný přepočet
1 = jsou uložena v BCD kódu - ovladač přepočte hodnotu na binární tvar.
V kartě "Data-příjem" jsou proměnné:
Na začátku jsou proměnné získané ze záhlaví zprávy - viz Záhlaví M-BUS zprávy.
Data1 = (Single) První datová hodnota ve zprávě. Tuto proměnnou lze změnit a další proměnné za ní vytvořit. Proměnné mohou mít datové typy:
- Single - v tom případě je ukládaná hodnota přepočítána na vhodnou technologickou jednotku. Přepočet pak probíhá podle tabulky - viz Přepočet fyzikální jednotky.
- Date - hodnota je přepočítána na kalendářní datum.
- Long - hodnota není přepočítána (pro veličiny, které nemají jednotku nebo pokud nechcete přepočítávat).

Při čtení standardních dat z měřiče jsou v odpovědi poslány nejen hodnoty, ale i příznaky typu hodnoty (zda je to průtok, energie, výkon, atd.), příznaky typu jednotky (např. zda jde o kWh,J,0.001kWh ...), příznaky o číslu tarifu nebo paměti, atd. Pokud znáte význam hodnot v odpovědi daného měřiče, pak můžete sami v kartě "Data-příjem" konfigurovat a pojmenovat položky, do kterých se budou přijaté hodnoty ukládat. Pokud nevíte co měřič posílá, pak můžete předtím použít typ zprávy "Obecný měřič/Získání úplného přehledu měřených veličin měřiče".
Kromě standardních dat může měřič posílat specifická data, která už nemají příznak o významu a jednotce. Tyto data bývají vždy až za standardními daty. Pokud znáte význam těchto dat (např. z dokumentace měřiče), pak i tyto data lze přijmout v této zprávě. Stačí v kartě "Data-příjem" za již vytvořenými proměnnými definovat další proměnné odpovídajících typů (Byte, Integer, Long) a hodnota v přijaté zprávě se jen bez přepočtů uloží do příslušné proměnné. Přesněji řečeno, lze ještě určit, zda specifická data jsou uložena ve zprávě binárně (tzn. není nutný přepočet) nebo v BCD kódu. Pokud jsou specifická data v BCD kódu, pak můžete již dříve zmíněnou proměnnou "DataAttr" nastavit na 1 - v tom případě ovladač přepočte hodnotu na binární tvar (také by šlo nepřepočítávat a využít metodu Pm.TransformValue, ale bylo by to složitější).
Některé měřiče posílají data v několika zprávách v přesné posloupnosti za sebou. I příjem těchto dat lze uskutečnit tímto typem zprávy. Musíte nakonfigurovat více objektů PmaCommMsg na jednotlivé zprávy, příslušně vyplnit data a pak zprávy spouštět za sebou (metodou PmaCommMsg.Run). U těchto typů přenosů však měřič používá FCB příznaků (viz Obsluha FCB příznaku), a proto je nutno nastavit proměnnou "FcbAttr" na 1. Některé měřiče takto hlavně řeší čtení historie. Pokud byste nenastavili "FcbAttr" na 1, pak byste četli neustále jen 1. zprávu (kde jsou obvykle aktuální hodnoty). Pokud je "FcbAttr" na 1, pak měřič posílá všechny zprávy co má - a někdy jich má opravdu hodně. Například měřič ABB SVM má uloženo historická data ve 128 zprávách (naštestí stejného typu takže je lze vyčítat jedním objektem).
- Bajtově konfigurovatelná zpráva typu vyslaní/příjem:
Tato zpráva je určena pro projektanty, kteří znají protokol M-BUS. Lze zde nakonfigurovat zprávu (zvlášť pro příjem a zvlášť pro zaslání) typu "SingleCharacter", "ShortFrame", "ControlFrame" a "LongFrame", což jsou 4 možné typy zpráv protokolu na nejnižší úrovni s projektanským nastavením hodnot CField, AField a CIField a s nastavením uživatelských dat. Lze také zvolit zprávu typu Pure Bytes, kdy lze zasílat/přijímat data bez jakékoli transformace protokolem.
Tento typ zprávy se bude využívat asi jen velmi zřídka ke speciálním nebo testovacím účelům.
- Získání úplného přehledu měřených veličin měřiče:
Tato zpráva vytvoří seznam všech položek, které lze získat v daném typu datové zprávy (ze zprávy s příznakem FCB 0 nebo 1).
V kartě "Data-zaslání" jsou proměnné:
Address = (Byte) Adresa měřiče
FcbAttr = (Byte) Hodnota FCB příznaku. Viz Obsluha FCB příznaku.
V kartě "Data-příjem" jsou proměnné:
Info = (String) Textový seznam měřených veličin měřiče dané zprávy.
Tento seznam slouží hlavně jako informace pro projektanta pro správné zadání hodnoty v konfigurátoru "ItemId" - viz Popis konfigurátoru "ItemId".
Seznam může mít např. tvar:
  Meter: Address=6, Ident=2015597318, Manufac=11309, Version=15, Medium=4
  Index:0; Name:FabricationNumber; Value:6932378; Type:InstantenousValue; SubUnit:0; Storage:0; Tariff:0
  Index:1; Name:Energy; Value:311230720; Unit:10 MJ; RecalcValue:3112307.250000 GJ; Type:InstantenousValue; SubUnit:0; Storage:0; Tariff:0
  Index:2; Name:Volume; Value:1369178624; Unit:0.1 m3; RecalcValue:136917856.000000 m3; Type:InstantenousValue; SubUnit:0; Storage:0; Tariff:0
  Index:3; Name:TimeOn; Value:-1236336640; Unit:1 hour; RecalcValue:-51514028.000000 day; Type:InstantenousValue; SubUnit:0; Storage:0; Tariff:0
  Index:4; Name:ForwardTemperature; Value:-484573184; Unit:0.01 °C; RecalcValue:-4845732.000000 °C; Type:InstantenousValue; SubUnit:0; Storage:0; Tariff:0
  Index:5; Name:Power; Value:1241513984; Unit:100 W; RecalcValue:124151400.000000 kW; Type:InstantenousValue; SubUnit:0; Storage:0; Tariff:0
  Index:6; Name:Volume; Value:0; Unit:0.01 m3; RecalcValue:0.000000 m3; Type:InstantenousValue; SubUnit:1; Storage:0; Tariff:0
  Index:7; SpecData (DIF=Fh)

Historie:
Pm9.00.26: Zobecnění pro příjem dat z oblasti B1 (RAM) a B4 (EEPROM).
Pm8.03.19: Zobecnění pro příjem záporných hodnot v BCD kódu.
Pm8.03.17: Opravená chyba: Při příjmu hodnoty ve formátu 12 digit BCD se špatně hodnota vypočítala.
Pm8.03.12: Opravená chyba:
Špatně se přijímaly hodnoty typu 24bit Integer.
Při přenosu některých typů zpráv docházelo k ubývání paměti (PmSNMP, PmMBus, PmIEC8705, PmElgas2).
Pm8.03.10: Zdokonaleno zpracování příjmu některých dat (např. veličin z rozšířeným VIFE pro zjištění času změny veličiny).
Pm8.03.02:
- Zobecnění ItemId o možnost zadání požadovaného Subunit.
- Vytvořen nový typ zprávy (v objektu PmaCommMsg) pro čtení informací o tom, jaké hodnoty lze získat z měřiče.
- Někdy byl "přepočet do základní fyzikální jednotky" proveden špatně (pro rozšířený typ VIFE)
Pm8.02.15: Možnost číst adresu měřiče (MeterAddr) v ItemId.
Pm8.01.08: Opravená chyba: Při přenosu zprávy bez požadavku příjmu vznikaly někdy zbytečné timeouty
Pm8.00.09: Zobecnění o získávání údaje s uživatelskou hodnotou VIF (používá měřič ACTARIS).
Pm8.00.07: Zobecnění ať lze přijímat údaje s proměnnou délkou (pro měřiče Actaris a Sensus).
Pm8.00.04: Zobecnění o možnost použít objekt PmaCommGroup a datové rozšíření ExtComm. Toto zobecnění umožňuje získávat základní data z měřičů bez ohledu na typ měřiče. Ovladač v přijaté zprávě sám najde požadovaná data, která jsou definovaná v objektu PmaCommGroup nebo v datovém rozšíření ExtComm.
Pm8.00.02: Zrychleno zasílání a příjem dat přes Ethernet bez čekání na timeout.
Pm8.00.00: Zobecnění pro příjem 64-bitových float hodnot.
© MICROSYS, spol. s r.o.