MBMap Registry
  1. Devices
  2. Carlo Gavazzi
  3. VMU-MC pulse concentrator

Carlo Gavazzi VMU-MC pulse concentrator Modbus register map

Also covers VMUMCAS1I2EM

Pulse concentrator (2 S0 inputs, up to 3 VMU-OC input modules) with RS-485 Modbus RTU

  • Official
  • 146 registers
  • Modbus RTU
  • Revision 1 · 2026-10-14
  • Identity: firmware

Official: Written from the manufacturer's documentation, but not tested on a device yet. Check the map against the manufacturer's documentation before you write to a live device. Tested it? Report a test.

Communication

Protocol
Modbus RTU
Unit ID
1
Serial
9600 8N1 · 9600 baud, 8 data bits, none parity, 1 stop bit
Byte / word order
CDAB · bytes big-endian, words low first (word swap)
Addresses
0-based

Connection values are defaults: the device may be configured differently.

Map

Registers
146 holding registers
Groups
6
Revision
1 · 2026-10-14
Added
()
File
maps/carlo-gavazzi/vmu-mc.mbmap.json · 33 KB · history
SHA-256
d0b084da8333a0d2dd183de6356fa9e7e61f65a1eb905aad4d26dba2cccbcd44
Manufacturer
gavazziautomation.com

Device identity

What a tool can read to check that this map fits the connected device (SPEC.md section 4.7). Registers with a role are read like any other register.

Registers
RoleRegisterAddressTypeValues
Firmware Version code VMU-MC holding 768 uint16
Firmware Revision code VMU-MC holding 769 uint16

Sources and notes

Source: Carlo Gavazzi, VMU-MC communication protocol, version 1 revision 2 (2018-02-15)

  • FC03 and FC04 return the same values; settings are written with FC06 or FC16.
  • 32-bit values are sent low word first.
  • Totalizers are raw counts: the decimal point and base unit registers say how to read them (they are only for interpretation; the device does not apply them).
  • VMU-OC totalizers only have values when the corresponding input module is connected and configured.
AreaAddressNameTypeAccessUnitScaleDescription
HR 0 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 2 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 4 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 6 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 8 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 10 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 11 uint16 R Must be read on its own (one register)
HR 12 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 14 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 16 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 18 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 20 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 22 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 24 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 26 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 28 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 30 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 32 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 34 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 36 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 38 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 40 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 42 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 44 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 46 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 48 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 50 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 52 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 54 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 56 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 58 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 60 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 62 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 64 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 66 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 68 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 70 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 72 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 74 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 76 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 78 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 80 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 82 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 84 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 86 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 88 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 90 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 92 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 94 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 96 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 98 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 100 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 102 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 104 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 106 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 108 uint32 CDAB R Raw count; divide by 10^(decimal point setting of this input); unit from the base unit setting
HR 256 bool bit 0 R
HR 256 bool bit 1 R
HR 256 bool bit 2 R
HR 256 bool bit 3 R
HR 256 bool bit 4 R
HR 256 bool bit 5 R
HR 256 bool bit 6 R
HR 256 bool bit 7 R
HR 256 bool bit 8 R
HR 256 bool bit 9 R
HR 256 bool bit 10 R
HR 257 uint16 R Bit n = 1: the n-th last input change was missed by the polling (bit 15 oldest)
HR 258 uint16 R Bit n = 1: the n-th last input change was missed by the polling (bit 15 oldest)
HR 259 uint16 R Bit n = 1: the n-th last input change was missed by the polling (bit 15 oldest)
HR 260 uint16 R Bit n = 1: the n-th last input change was missed by the polling (bit 15 oldest)
HR 261 uint16 R Bit n = 1: the n-th last input change was missed by the polling (bit 15 oldest)
HR 262 uint16 R Bit n = 1: the n-th last input change was missed by the polling (bit 15 oldest)
HR 263 uint16 R Bit n = 1: the n-th last input change was missed by the polling (bit 15 oldest)
HR 264 uint16 R Bit n = 1: the n-th last input change was missed by the polling (bit 15 oldest)
HR 265 uint16 R Bit n = 1: the n-th last input change was missed by the polling (bit 15 oldest)
HR 266 uint16 R Bit n = 1: the n-th last input change was missed by the polling (bit 15 oldest)
HR 267 uint16 R Bit n = 1: the n-th last input change was missed by the polling (bit 15 oldest)
HR 268 uint16 R
HR 269 bool bit 1 R Configured but not detected, or detected but not configured
HR 269 bool bit 2 R Configured but not detected, or detected but not configured
HR 269 bool bit 3 R Configured but not detected, or detected but not configured
HR 768 uint16 R ASCII letter: 65 = A
HR 769 uint16 R
HR 770 uint16 R ASCII letter: 65 = A
HR 771 uint16 R
HR 772 uint16 R ASCII letter: 65 = A
HR 773 uint16 R
HR 774 uint16 R ASCII letter: 65 = A
HR 775 uint16 R
HR 4096 uint16 RW
HR 8192 uint16 RW
HR 8193 uint16 RW
HR 8194 uint16 RW
HR 8195 uint16 RW Serial settings apply after a power cycle
HR 8448 uint16 bits 0–1 RW
HR 8448 uint16 bits 2–3 RW
HR 8704 uint16 RW Only when the input configuration is 3; kept in RAM
HR 12288 uint16 RW Each pulse adds this value to the totalizers
HR 12289 uint16 RW Each pulse adds this value to the totalizers

Help improve this map