...
Communication implements data reading from devices that support the M-Bus protocol by the Rev. 4.8 specification. Communication was tested with MULTICAL® III, MULTICAL® 5 measuring devices by KARMSTRUP Company, CALSTREEM EEM-C measuring device by Danfoss Company, and PolluTherm Pt500 by Sensus.
The communication was also verified against the water flow meter Sensus MeiStream 150 with communication module HRI-Mei using an EthMBus-5 converter manufactured by JC-e (it was necessary to configure a converter to TCP mode and use a TCP/IP-TCP line category).
...
The following station protocol parameters can be defined:
Keyword | Full name | Meaning | Unit | Default value |
---|
| Address Scan Mode | Each reading of values increments the station address. This mode can be used to find a device with an unknown address. | - | No |
| Retry Count | Request repetition count in case of a communication error. | - | 2 |
| Retry Timeout | Delay between request repetition in case of a communication error. | ms | 100 ms |
| Wait First Timeout | First waiting for a response after sending the request. | ms | 800 ms |
| Wait Timeout | Delay after transmitting the request before reading the response. | ms | 500 ms |
| Max Wait Retry | Repetition count of response readings till its finalization. | - | 40 |
|
| Wait After SND_NKE Broadcast | Delay after sending a broadcast SND_NKE, before reading from the first station on a communication line. | ms | 8000 ms |
| Wait before REQ_UD2 Request | Delay before sending the REQ_UD2 request to a slave. | ms | 4000 ms |
| Set FCB Bit after SND_NKE | The parameter specifies whether an FCB bit in a first request after sending SND_NKE should be set to 1 (YES) or 0 (NO). | - | YES |
| Accept Following Records (0=disable,255=read all) | If the slave station has Variable Data available, the parameter specifies the number of records read during one polling of the station. A value of 255 means that all available records will be read. | - | 0 |
| Send Application Reset before REQ_UD2 | Optional sending of "application reset" message (50h) prior to reading the values from the station. | - | NO |
| WakeUp Length | Length (given in characters) of the so-called wake-up message sent before each request. Value 0 disables the sending of the wake-up message. | bytes | 0 |
| WakeUp Delay | The delay between the wake-up message and a request. | ms | 400 |
| Accept Reply To Broadcast | If the station has address 254 (according to the protocol definition it is a broadcast address to which stations can respond), this parameter allows processing the response from any station. The practical use is on lines with a single station - in case of its exchange, it is not necessary to find out the address of a new device. | - | YES |
|
| Full Debug | Enables debug logs on the communication and acquired data. | - | NO |
|
| Multical III | Enables decoding the Manufacture specific data of Multical III device. | - | NO |
A string containing the protocol parameters is defined as follows:
...
Possible I/O tag types: Ai, Ci, TiA, TiR, TxtI, TxtO
Two types of addresses can be configured:
- Simple address: a number that is an index of the value in the M-Bus data packet. To get detailed information on unknown devices, activate debug logs using the FULL_DEBUG parameter.
An example of debug log (individual rows correspond with addresses 1 to 9, value is displayed at the end of listing after the text "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
Address of header objects: in 0.subadr format enables to address objects located in a header of an answer. A device can answer using fixed or variable responses that have different header contents. The following table lists header objects and their addresses for fixed and variable respond.
Object | Value type | Address in fix respond | Address in variable respond |
---|
Identification No. | Ci, TxtI | 0.0 | 0.0 |
Manufacturer | TxtI (3 characters) | - | 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 |
An example of a debug log for variable response:
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
Writing
An output text I/O tag (TxtO) with address 1 is designated for writing. The opening sequence <68><Length><Length><68> and the ending <CRC><16> are added to the data written to the I/O tag.
The write is successful if a short reply <E5> is received from the station.
Example script for Sensus HRI-Mei (communication module for water meters Sensus HRI-MeiStream and Sensus HRI-MeiStream Plus):
Blok kódu |
---|
language | esl |
---|
theme | Confluence |
---|
|
; 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 |
Specific data of Multical III device
...
Info |
---|
|
You can read a blog about M-Bus protocol: Communication – M-Bus |
Info |
---|
title | An example of communication |
---|
|
The attached ZIP contains the configuration of the line, station, and I/O tags with the M-Bus protocol that communicate with the Sensus MeiStream 150 flowmeter with the HRI-Mei communication module and using an EthMBus-5 converter manufactured by JC-e in UDP mode (the converter has an IP address of 192.168.1.1 in the line configuration). View file |
---|
name | Sensus_HRI_Mei.7z |
---|
height | 150 |
---|
|
|
Changes and modifications
...
- Ver. 1.0 - June 26th, 2000 – document Document creation.
- Ver. 1.1 – November 9th, 2000 – testing Testing Danfoss CALSTREEM.
- Ver. 1.2 – December 14th, 2000 – Change of the outputs AUX1 and AUX2 from Ci to Ai
- Ver. 1.3 - November 22nd, 2005 - Redesigned by M-Bus Rev. 4.8.
- Ver. 1.4 - March 10th, 2021 - Added "Accept Reply To Broadcast" parameter
- Ver. 1.5 - June 14, 2024 - Support fro writing
...