# Meter-Bus

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Meter-Bus
> Markdown URL: https://mediated.wiki/source/Meter-Bus.md
> Source: https://en.wikipedia.org/wiki/Meter-Bus
> Source revision: 1343802226
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

Standard for remote reading of utility meters

This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (April 2018) (Learn how and when to remove this message)

**M-Bus** or **Meter-Bus** is a [European standard](/source/European_Committee_for_Standardization) (EN 13757-2 physical and link layer, EN 13757-3 application layer) for the remote reading of [water](/source/Water_meter), [gas](/source/Gas_meter) or [electricity meters](/source/Electricity_meter). M-Bus is also usable for other types of consumption meters, such as [heat meters](/source/Heat_meter) or [water meters](/source/Water_metering). The M-Bus interface is made for communication on two wires, making it cost-effective. A radio variant of M-Bus **Wireless M-Bus** is also specified in EN 13757–4.

The M-Bus was developed to fill the need for a system for the networking and remote reading of utility meters, for example to measure the consumption of gas or water in the home. This bus fulfills the special requirements of remotely powered or battery-driven systems, including consumer utility meters. When interrogated, the meters deliver the data they have collected to a common master, such as a hand-held computer, connected at periodic intervals to read all utility meters of a building. An alternative method of collecting data centrally is to transmit meter readings via a [modem](/source/Modem).

Other applications for the M-Bus such as alarm systems, flexible illumination installations, heating control, etc. are suitable.

## Relation to the OSI model

Since no bus system was available for the requirements of meter reading, the M-Bus was developed by [Horst Ziegler](https://en.wikipedia.org/w/index.php?title=Horst_Ziegler&action=edit&redlink=1) of the [University of Paderborn](/source/University_of_Paderborn) in cooperation with [Texas Instruments Deutschland GmbH](/source/Texas_Instruments_Deutschland_GmbH) and [Techem GmbH](https://en.wikipedia.org/w/index.php?title=Techem_GmbH&action=edit&redlink=1) [[de](https://de.wikipedia.org/wiki/Techem)]. The concept was based on the [ISO-OSI Reference Model](/source/ISO-OSI_Reference_Model), in order to realize an open system which could use almost any desired protocol.

Since the M-Bus is not a network, and therefore does not – among other things – need a transport or session layer, the levels four to six of the OSI model are empty. Therefore, only the physical, the data link, the network and the application layer are provided with functions.

OSI Model Data unit Layer Standard Host layers Data 7. Application EN1434-3 6. Presentation Empty 5. Session Empty Segment/Datagram 4. Transport Empty Media layers Packet 3. Network Optional Frame 2. Data link IEC 60870 Bit 1. Physical M-Bus

## Physical wire and connectors

M-Bus connection is called M-Bus or HAN (Home Area Network) consumer connection. M-Bus uses two-wire telephone cable (JYStY 1x*2x*0.8 mm or similar, 73 ohm/km, 120 nF/km) maximum length of 350 meters when using nominal transfer speeds 300 and 9600 baud. Lowering the speed up to 1000 meter cable can be used. There is no standardized connector, but RJ11 and RJ12 [Modular connectors](/source/Modular_connector) are used by meter manufacturers.[1]

The master communication uses voltage signaling, where 1 (idle state, mark) is the bus nominal 36 volts, 0 (space) drops the voltage to 24 volts (V). As bus voltage can vary with length and load, the signal is specified as 1 for bus voltage drop less than 5.5 V, 0 for drop higher than 8.2 V.

Slaves communicate by [current consumption](/source/Current_loop), where 1 (idle state, mark) is less than 1.5 milliamperes (mA), 0 (space) raises current to 11–20 mA. The signal is specified as the at least 11 mA current increase.

The slaves are connected via [diode bridge](/source/Diode_bridge) and can use either polarity of the wires. To protect the bus against shortcircuited slaves, a 430 ohm is connected in series at each slave (or, two 215 ohm resistors, one for each wire).

A M-bus load unit is 1.5 mA. Most slaves use at most this, some can need two units (3 mA). Masters can provide type-dependent number of load units, and usually visually indicate overload.

## Data link protocol

The data link protocol is described by IEC 870-5, or its updated version, [IEC 60870-5](/source/IEC_60870-5).

The data are sent in serial form, at speed between 300 and 9600 bit/s (some variants may operate up to 19200 or 38400 bit/s), using one start bit, one stop bit, and [even parity](/source/Parity_bit) (8e1). The [least significant bit](/source/Least_significant_bit) is sent first. When sending packets ("telegrams"), there is no pause between stop and subsequent start bit.

Suggested speeds are 300, 2400, 9600, and with newer hardware 38400 bit/s, while 2400 bit/s is most common. Devices with different [baudrates](/source/Baudrate) can coexist on the same bus. Some devices use Automatic Baud Rate Detection (ABR) or [autobauding](https://en.wikipedia.org/w/index.php?title=Autobauding&action=edit&redlink=1)[*[clarification needed](https://en.wikipedia.org/wiki/Wikipedia:Please_clarify)*].

There are four kinds of packets:

Packet types Type Length Content Purpose Acknowledgement 1 0xE5 Short frame 5 0x10, C-field, A-field, checksum, 0x16 sending simple commands Long frame ≥9 0x68, length, length, 0x68, C-field, A-field, CI-field, [0…252 payload bytes], checksum, 0x16 control frame 9 0x68, 0x03, 0x03, 0x68, C-field, A-field, CI-field, checksum, 0x16 The control frame is a long frame with no payload.

C-field is the control/function field. The sequence, from bit 7, is:

- bit 7: 0

- bit 6: 1 for master-to-slave, 0 for slave reply

- bit 5: - from master: FCB, frame count bit – indicates request to repeat message when reply was not received - from slave: ACD, access demand – 1 when slave wishes to transmit class-1 data, priority data (class-2 data is ordinary non-priority) – the master then should request the class-1 data transfer

- bit 4: - from master: FCV, frame count valid – when 0, slave should ignore FCB - from slave: DFC, data flow control – when 1, slave can not accept further data

- bit 3,2,1,0: F3,F2,F1,F0, function code – e.g. for short frame, 0 is for initialization of slave, xA is for class-1 (priority) data read, xB is for class-2 (normal) read. For long/control frame, x3 is sending data to slave, x8 is data reply from slave.

A-field is the address field. It is a 8-bit number:

- 0x00 – unset address, assigned at manufacture time, some meters fixed at this

- 0x01..0xFA – slave addresses

- 0xFB, 0xFC – reserved

- 0xFD – "broadcast" for secondary addressing, addressing done on network layer instead of on data link layer

- 0xFE – test broadcast, all slaves reply (collisions will happen, use for testing with a single slave; slave replies with its own address in A-field), also possible to use when there is only one slave on the bus

- 0xFF – broadcast, no reply from slaves

CI-field is the control information field. Defined at application layer.[2]

Length field in control/long frame is sent twice. Both bytes have to be equal. Minimum value is 0x03, as C-field, A-field and CI-field are mandatory parts of the payload.

Slaves respond only to correctly formed packets that match their address. Any fault is indicated by lack of response. Absence of response is defined as no response for 330 bit periods (35 ms for 9600 bit/s, 1.1 s for 300 bit/s) plus 50 ms.[3]

Numerical values are usually sent in [BCD](/source/Binary-coded_decimal) format.[4]

## See also

- [Energy portal](https://en.wikipedia.org/wiki/Portal:Energy)

- [Automatic meter reading](/source/Automatic_meter_reading)

- [Feed-in tariff](/source/Feed-in_tariff)

- [Modbus](/source/Modbus)

- [Net metering](/source/Net_metering)

- [OLE for process control](/source/OLE_for_process_control)

- [OpenHAN](/source/OpenHAN)

- [Smart meter](/source/Smart_meter)

- [Utility submeter](/source/Utility_submeter)

- [Virtual power plant](/source/Virtual_power_plant)

- [Wattmeter](/source/Wattmeter)

## References

1. **[^](#cite_ref-m-bus-pyhiscal_1-0)** [m-bus.com – Physical layer](https://m-bus.com/documentation-wired/04-physical-layer)

1. **[^](#cite_ref-2)** ["6 – Application Layer – M-Bus"](https://m-bus.com/documentation-wired/06-application-layer).

1. **[^](#cite_ref-3)** ["5 – Data Link Layer – M-Bus"](https://m-bus.com/documentation-wired/05-data-link-layer).

1. **[^](#cite_ref-4)** ["6 – Application Layer – M-Bus"](https://m-bus.com/documentation-wired/06-application-layer).

- [rSCADA libmbus](http://www.rscada.se/libmbus/) An Open Source M-bus library written in C.

- [jMBus](https://www.openmuc.org/m-bus/) M-Bus master Java library at openmuc.org.

- [Valley.Net.Protocols.MeterBus](https://github.com/sympthom/Valley.Net.Protocols.MeterBus/) An Open Source M-Bus library written in C#.

## External links

- [m-bus.com](http://m-bus.com)

- The [free SCADA](https://sourceforge.net/projects/free-scada/) project on SourceForge.net

v t e List of EN standards EN standards CEN/CENELEC Guide 6 CEN Workshop Agreement Datex II EN 3 EN 54 EN 71 EN 166 EN 206-1 EN 207 EN 301 549 EN 417 EN 590 EN 1063 EN 1078 EN 1090 EN 1991 EN 1992 EN 1993 EN 1994 EN 1995 EN 1996 EN 1997 EN 1998 EN 1999 EN 10025 EN 10027 EN 10034 EN 10080 EN 12255 EN 12566 EN 13402 EN 13432 EN 13445 EN 13537 EN 13757 EN 13940 EN 14214 EN 15038 EN 15838 EN 16034 EN 16114 EN 28601 EN 45554 EN 50022 EN 50075 EN 50090 EN 50102 EN 50155 EN 50436 EN 55011 EN 61000-3-2 EN 61000-4-5 EN 62061 EN 62262 Meter-Bus Related Eurocodes Keymark List of CEN technical committees

v t e Automation protocols Process automation AS-i BSAP CC-Link Industrial Networks CIP CAN bus CANopen DeviceNet ControlNet DF-1 DirectNET EtherCAT Ethernet Global Data (EGD) Ethernet Powerlink EtherNet/IP Factory Instrumentation Protocol FINS FOUNDATION fieldbus H1 HSE GE SRTP HART Protocol Honeywell SDS HostLink INTERBUS IO-Link MECHATROLINK MelsecNet Modbus Optomux PROFIBUS PROFINET RAPIEnet SERCOS interface SERCOS III Sinec H1 SynqNet TTEthernet Industrial control system MTConnect OPC DA OPC HDA OPC UA Building automation 1-Wire BACnet BatiBUS C-Bus CEBus DALI DSI DyNet EnOcean EHS EIB FIP KNX LonTalk Modbus OpenTherm oBIX VSCP X10 xAP xPL Z-Wave Zigbee Power-system automation IEC 60870 IEC 60870-5 IEC 60870-6 DNP3 Factory Instrumentation Protocol IEC 61850 IEC 62351 Modbus PROFIBUS Automatic meter reading ANSI C12.18 IEC 61107 DLMS/IEC 62056 M-Bus Modbus Zigbee Automobile / Vehicle AFDX ARINC 429 CAN bus SAE J1939 NMEA 2000 FMS Factory Instrumentation Protocol FlexRay IEBus J1587 J1708 Keyword Protocol 2000 Unified Diagnostic Services LIN MOST SENT (SAE J2716) VAN Cyphal

---
Adapted from the Wikipedia article [Meter-Bus](https://en.wikipedia.org/wiki/Meter-Bus) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Meter-Bus?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
