1M-Bus Protocol (2)1.1Single character (2)1.2Short frame: (2)1.2.1SND_NKE (2)1.2.2REQ_UD2 (3)1.3Long frame master to slave (3)1.3.1Application reset (3)1.3.2Set primary M-bus address (4)1.3.3Set identification number (4)1.3.4Select meter by secondary address (5)1.3.5Set billing date (5)1.3.6Set date and time (6)1.4User-specific frames: (7)1.4.1Deletion of maximum values (for information only) (7)1.4.2Init Tariff register (7)1.4.3Backup (for information only) (9)1.4.4Update calculations (for information only) (9)1.5Long frame slave to master (10)1.5.1REQ_UD2 (10)2Summary of M-bus data types (12)2.1.132-bit Type A (12)2.1.2Type B (12)2.1.3Type C (12)2.1.4Type D (12)2.1.5Type F (12)2.1.6Type G (12)1 M-Bus ProtocolAll bytes transmitted over the M-bus and the optical interface have the format 8E1:1 8 1 1Start bit Data bits Parity bit (even) Stop bitFor communication three different telegram types are used. These are:1. Single character h’E5 (only used by slave )2. Short frame (only used by master)3. Long frame (used by both master and slave)1.1 Single characterThe single character h’E5 (CON_ACK) is only used by the meter. It serves as an acknowledgement of the reception of a valid frame (it does not say anything about whether the command was accepted and executed or not!)1.2 Short frame:10 C A csum 16Short frames always consist of 5 bytes.They are initiated by the master.There are two different frames: SND_NKE and REQ_UD2…C“ Command…A“ Address“csum” Low byte of the sum of “C” and “A”1.2.1 SND_NKEDeselection of a meter after selection by its secondary address.Short frame identifier 10…C“ 40…A“ adrsChecksum csumStop byte 16Acknowledged by h’E5.1.2.2 REQ_UD2Request for a data frameShort frame identifier 10…C“ 5b or 7b…A“ adrsChecksum csumStop byte 16Acknowledged by a long frame.1.3 Long frame master to slave68 len len 68 C A CI userdata csum 16 …C“ Command…A“ Address…CI“ Control information“len” Total amount of bytes in user data + 3 (“C”, “A”, …CI“).Maximum length is FFh (max. 252 data bytes)“csum” Low byte of the sum of er data“, “C” ,“A” and (I)1.3.1 Application resetLong frame identifier 68Length bytes 03, 03Long frame identifier 68…C“ byte 53 or 73…A“ byte adrs…CI“ byte 50Checksum csumStop byte 16This deselects the device (secondary addressing).Frame length: 9 bytesAcknowledged by h’E5.1.3.2 Set primary M-bus addressLong frame identifier 68Length bytes 06, 06Long frame identifier 68…C“ byte 53 or 73…A“ byte adrs…CI“ byte 5101, 7ASet primary M-bus addresscommandNew primary address new_adrsChecksum csumStop byte 16…new_adrs“ for setting a new M-bus addressFrame length: 12 bytesAcknowledged by h’E5.1.3.3 Set identification numberLong frame identifier 68Length bytes 09, 09Long frame identifier 68…C“ byte 53 or 73…A“ byte adrs…CI“ byte 51Set identification number command 0C, 794-byte type A identification number ID low… ID highChecksum csumStop byte 16ID low… ID high for setting a new identification numberFrame length: 15 bytesAcknowledged by h’E5.Generally, the identification number and the serial number have the same value.1.3.4 Select meter by secondary addressLong frame identifier 68Length bytes 0B, 0BLong frame identifier 68…C“ byte 53 or 73…A“ byte FD…CI“ byte 524-byte type A serial number S low… S high2-byte manufacturer code Man low… Man highMeter version number VerMedium code MedChecksum csumStop byte 16The placeholder … h’F“ can be used at any decimal place of the serial number.The placeholder “h’FF” can be used for “medium code“, …meter version number“ and …manufacturer code“.Frame length: 17 bytesAcknowledged by h’E5, if the secondary address is correct.1.3.5 Set billing dateLong frame identifier 68Length bytes 08, 08Long frame identifier 68…C“ byte 53 or 73…A“ byte adrs…CI“ byte 51Set billing date command 02, EC, 004-byte …type G“ billing date d low… d highChecksum csumStop byte 16Frame length: 14 bytesThe validity of the date is not checked.Acknowledged by h’E5.1.3.6 Set date and timeLong frame identifier 68Length bytes 0A, 0ALong frame identifier 68…C“ byte 53 or 73…A“ byte adrs…CI“ byte 51DIF 04VIF EDVIFE 004-byte …type F“ date and time d low… d highChecksum csumStop byte 16Frame length: 16 bytesAcknowledged by h’E5.The validity of the date and time is not checked.Years <=80 corresponds to 2000 – 2080Note: Changing the date may influence the billing period and monthly values.1.4 User-specific frames:1.4.1 Deletion of maximum values (for information only)The registers …maximum flow“ and …maximum power“ are reset to 0. The frame is not an M-bus standard.Long frame identifier 68Length bytes 08, 08Long frame identifier 68…C“ byte 53 or 73…A“ byte adrs…CI“ byte 51Manufacturer-specific data 0FNot used 00, 00Not used 00Max value deleted 07Checksum csumStop byte 16Frame length: 14 bytesAcknowledged by h’E5.1.4.2 Init Tariff registerLong frame identifier 68Length bytes 0B, 0BLong frame identifier 68…C“ byte 53 or 73…A“ byte Adrs…CI“ byte 51Manufacturer-specific data 0FPassword PW low, PW highRbRegister 0: Register 11: Register 2User Byte 1BTariff register option 0: not defined1: Time period from / until2: Power greater than orequal to3: Power less than or equalto4: Flow greater than or equalto5: Flow less than or equal to6: Forward flow temperaturegreater than or equal to7: Forward flow temperatureless than or equal to8: Return flow temperaturegreater than or equal to9: Return flow temperatureless than or equal to10: Temperature differencegreater than or equal to11: Temperature differenceless than or equal toTariff register threshold 1: Field 1: Set <from> timein 10 min. intervals; Field 2:Set <until> time in 10 min.intervals; (e.g. 09:10 ->9*6+1 = 55)2: Set threshold value (unit:see set display unit)3: Set threshold value (unit:see set display unit)4: Set threshold value (unit:see set display unit)5: Set threshold value (unit:see set display unit)6: Set threshold value (unit:0,00 °C, e.g. 70,00 °C ->7000)7: Set threshold value (unit:0,00 °C, e.g. 50,00 °C ->5000)8: Set threshold value (unit:0,00 °C, e.g. 25,00 °C ->2500)9: Set threshold value (unit:0,00 °C, e.g. 15,00 °C ->1500)10: Set threshold value (unit:0,00 K, e.g. 10,00 K ->1000)11: Set threshold value (unit:0,00 K, e.g. -5,00 K -> -500) Checksum CsumStop Byte 161.4.3 Backup (for information only)The current consumption values are stored in the EEPROM.The frame is not an M-bus standard.Long frame identifier 68Length bytes 08, 08Long frame identifier 68…C“ byte 53 or 73…A“ byte adrs…CI“ byte 51Manufacturer-specific data 0FNot used 00, 00Not used 00Backup 08Checksum csumStop byte 16Frame length: 14 bytesAcknowledged by h’E5.1.4.4 Update calculations (for information only)Processes not yet processed volume pulses, including temperature measurement. The frame is not an M-bus standard.Long frame identifier 68Length 08, 08Long frame identifier 68…C“ 53 or 73…A“ adrs…CI“ 51Manufacturer-specific data 0FNot used 00, 00Not used 00Update calculations 09Checksum csumStop byte 16Frame length: 14 bytesAcknowledged by h’E5.1.5 Long frame slave to master1.5.1 REQ_UD2Response to a REQ_UD2 command.Long frame identifier 68Length bytes len, lenLong frame identifier 68…C“ byte 08…A“ byte adrs…CI“ byte 724-byte type A identification number i low… i high2-byte manufacturer code Man low… Man highMeter version number VerMedium code MedAccess number AccStatus StaSignature 00, 00Data bytes read b1…b nChecksum csumStop byte 16Frame length: 160 to 175 bytesAmount of data bytes: 139 to 154The “access number” is the amount of data frames sent by the meter (M-bus and optocoupler). The value is incremented before being sent.The “status” is generally “00h”. In case of an error in the meter the current error code will be sent.Definition of the data bytes:Length Function DIF(+E) VIF(+E) Data type6 Serial number 04 78 32-bit type A 6 Current date and time 04 6D 32-bit type F 6 or7 Total volume (current) 04 13 (0.001 m³)15 (0.1 m³)FB,22 (0.1 gal)FB,21 (0.1 ft³)32-bit type C6 or7 Total volume (lastbilling date) 44 13 (0.001 m³)15 (0.1 m³)FB,22 (0.1 gal)FB,21 (0.1 ft³)32-bit type C7 or 8 Total volume (lastmonth) 84,01 13 (0.001 m³)15 (0.1 m³)FB,22 (0.1 gal)FB,21 (0.1 ft³)32-bit type C6 or7 Total heat energy 04 05 (0.1 kWh) 32-bit type C(current) 06 (0.001 MWh)FB,00 (0.1 MWh)0E (0.001 GJ)6 or7 Total heat energy(last billing date) 44 05 (0.1 kWh)06 (0.001 MWh)FB,00 (0.1 MWh)0E (0.001 GJ)32-bit type C7 or 8 Total heat energy(last month) 84,01 05 (0.1 kWh)06 (0.001 MWh)FB,00 (0.1 MWh)0E (0.001 GJ)32-bit type C7 or 8 Total cooling energy(current) 84,10 05 (0.1 kWh)06 (0.001 MWh)FB,00 (0.1 MWh)0E (0.001 GJ)32-bit type C7 or 8 Total cooling energy(last billing date) C4,10 05 (0.1 kWh)06 (0.001 MWh)FB,00 (0.1 MWh)0E (0.001 GJ)32-bit type C7 or 8 Total cooling energy(last month) 84,11 05 (0.1 kWh)06 (0.001 MWh)FB,00 (0.1 MWh)0E (0.001 GJ)32-bit type C4 Last billing date 42 6C 16-bit type G 4 Next billing date 02 6C 16-bit type G7 or 8 Tariff register 1(current) 84,20 05 (0.1 kWh)06 (0.001 MWh)07 (0.01 MWh)FB,00 (0.1 MWh)0E (0.001 GJ)20 (1 s)32-bit Typ C7 or 8 Tariff register 2(current) 84,30 05 (0.1 kWh)06 (0.001 MWh)07 (0.01 MWh)FB,00 (0.1 MWh)0E (0.001 GJ)20 (1 s)32-bit Typ C6 or7 Current flow 04 39 (0.01 l/h) 32-bit type B 6 or 7 Maximum flow 14 39 (0.01 l/h) 32-bit type B 6 or 7 Current power 04 2A (0.1 W) 32-bit type B 6 or 7 Maximum power 14 2A (0.1 W) 32-bit type B 4 Forward flowtemperature02 5B (1 °C) 16-bit type B4 Return flowtemperature02 5F (1 °C) 16-bit type B6 Temperaturedifference04 61 (0.01 °C) 32-bit type B 4 Days in operation 02 23 16-bit type C 4 Error code 01 FD,17 8-bit type D2 Summary of M-bus data types2.1.1 32-bit Type ALS word15 12 11 8 7 4 3 0 3 (nibble 3) 0 3 (nibble 2) 0 3 (nibble 1) 0 3 (nibble 0) 0 MS word15 12 11 8 7 4 3 0 3 (nibble 7) 0 3 (nibble 6) 0 3 (nibble 5) 0 3 (nibble 4) 0 Used for the serial number of the heat meter.2.1.2 Type BRepresents a two’s binary integer with sign.2.1.3 Type CRepresents an binary integer without sign.2.1.4 Type DRepresents a bit field.2.1.5 Type FLS word15 12 11 8 7 4 3 0 SU not used 4 hours 0 IV n.u. 5 minutes 0 MS word15 12 11 8 7 4 3 0 6 year (part) 3 3 month 0 2 year (part) 0 4 day 0 Application: date / time2.1.6 Type G15 12 11 8 7 4 3 0 6 year (part) 3 3 month 0 2 year (part) 0 4 day 0 Application: date / time。