Circutor CVM-C10 Modbus register map
Three-phase panel power analyzer (CVM-C10-ITF, -ITF-IN, -MC, -mV, -Flex) with RS-485 Modbus RTU
- Official
- 129 registers
- Modbus RTU
- Revision 3 · 2026-11-10
- Identity: serial number
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
- ABCD · bytes big-endian, words high first
- Addresses
- 0-based
- Max read
- 40 registers per request
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 123 input registers, 6 coils
- Groups
- 14
- Translation tables
- 1
- Revision
- 3 · 2026-11-10
- Added
- ()
- File
- maps/circutor/cvm-c10.mbmap.json · 24 KB · history
- SHA-256
- 6cb7ede9f48f1739ccd134933fb4c03b1c3b679d279b2c3a92be2b5273d0a655
- Manufacturer
- circutor.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.
| Role | Register | Address | Type | Values |
|---|---|---|---|---|
| Serial number | Serial number | input 1400 | uint32 ABCD |
Sources and notes
- CVM-C10 Instruction Manual · version M001B01-03-23A
Source: Circutor, "CVM-C10 Instruction Manual", M001B01-03-23A; https://docs.circutor.com/docs/M001B01-03.pdf
- Circutor CVM-C10 panel power analyzer, Modbus RTU over RS-485.
- Addresses are the manual's hexadecimal addresses, sent as-is on the wire.
- Every measurement is a 32-bit integer in two registers; at most 20 values (40 registers) per request.
- Generated active power reads negative. Measurements answer FC03 and FC04; configuration answers FC04 and is written with FC16 (all registers of a group at once), and only takes effect after a reset.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| IR | 0 | uint32 ABCD | R | V | ×0.1 | ||
| IR | 2 | uint32 ABCD | R | A | ×0.001 | ||
| IR | 4 | int32 ABCD | R | W | Negative when generating | ||
| IR | 6 | int32 ABCD | R | var | |||
| IR | 8 | int32 ABCD | R | var | |||
| IR | 10 | int32 ABCD | R | VA | |||
| IR | 12 | int32 ABCD | R | ×0.01 | |||
| IR | 14 | int32 ABCD | R | ×0.01 | |||
| IR | 16 | uint32 ABCD | R | V | ×0.1 | ||
| IR | 18 | uint32 ABCD | R | A | ×0.001 | ||
| IR | 20 | int32 ABCD | R | W | Negative when generating | ||
| IR | 22 | int32 ABCD | R | var | |||
| IR | 24 | int32 ABCD | R | var | |||
| IR | 26 | int32 ABCD | R | VA | |||
| IR | 28 | int32 ABCD | R | ×0.01 | |||
| IR | 30 | int32 ABCD | R | ×0.01 | |||
| IR | 32 | uint32 ABCD | R | V | ×0.1 | ||
| IR | 34 | uint32 ABCD | R | A | ×0.001 | ||
| IR | 36 | int32 ABCD | R | W | Negative when generating | ||
| IR | 38 | int32 ABCD | R | var | |||
| IR | 40 | int32 ABCD | R | var | |||
| IR | 42 | int32 ABCD | R | VA | |||
| IR | 44 | int32 ABCD | R | ×0.01 | |||
| IR | 46 | int32 ABCD | R | ×0.01 | |||
| IR | 48 | int32 ABCD | R | W | Negative when generating | ||
| IR | 50 | int32 ABCD | R | var | |||
| IR | 52 | int32 ABCD | R | var | |||
| IR | 54 | int32 ABCD | R | VA | |||
| IR | 56 | int32 ABCD | R | ×0.01 | |||
| IR | 58 | int32 ABCD | R | ×0.01 | |||
| IR | 60 | uint32 ABCD | R | Hz | ×0.01 | Measured on L1 | |
| IR | 62 | uint32 ABCD | R | V | ×0.1 | ||
| IR | 64 | uint32 ABCD | R | V | ×0.1 | ||
| IR | 66 | uint32 ABCD | R | V | ×0.1 | ||
| IR | 68 | uint32 ABCD | R | A | ×0.001 | Measured on -IN models | |
| IR | 70 | uint32 ABCD | R | % | ×0.1 | ||
| IR | 72 | uint32 ABCD | R | % | ×0.1 | ||
| IR | 74 | uint32 ABCD | R | % | ×0.1 | ||
| IR | 76 | uint32 ABCD | R | % | ×0.1 | ||
| IR | 78 | uint32 ABCD | R | % | ×0.1 | ||
| IR | 80 | uint32 ABCD | R | % | ×0.1 | ||
| IR | 82 | uint32 ABCD | R | W | |||
| IR | 84 | uint32 ABCD | R | VA | |||
| IR | 86 | uint32 ABCD | R | A | ×0.001 | ||
| IR | 88 | uint32 ABCD | R | A | ×0.001 | ||
| IR | 90 | uint32 ABCD | R | A | ×0.001 | ||
| IR | 92 | uint32 ABCD | R | A | ×0.001 | ||
| IR | 344 | uint32 ABCD | R | W | |||
| IR | 346 | uint32 ABCD | R | VA | |||
| IR | 348 | uint32 ABCD | R | A | ×0.001 | ||
| IR | 350 | uint32 ABCD | R | A | ×0.001 | ||
| IR | 352 | uint32 ABCD | R | A | ×0.001 | ||
| IR | 354 | uint32 ABCD | R | A | ×0.001 | ||
| IR | 220 | uint32 ABCD | R | kWh | Whole kWh; add the Wh register for the remainder | ||
| IR | 222 | uint32 ABCD | R | Wh | Remainder below 1 kWh | ||
| IR | 224 | uint32 ABCD | R | kvarh | Whole kvarh; add the varh register for the remainder | ||
| IR | 226 | uint32 ABCD | R | varh | Remainder below 1 kvarh | ||
| IR | 228 | uint32 ABCD | R | kvarh | Whole kvarh; add the varh register for the remainder | ||
| IR | 230 | uint32 ABCD | R | varh | Remainder below 1 kvarh | ||
| IR | 232 | uint32 ABCD | R | kVAh | Whole kVAh; add the VAh register for the remainder | ||
| IR | 234 | uint32 ABCD | R | VAh | Remainder below 1 kVAh | ||
| IR | 240 | uint32 ABCD | R | kWh | Whole kWh; add the Wh register for the remainder | ||
| IR | 242 | uint32 ABCD | R | Wh | Remainder below 1 kWh | ||
| IR | 244 | uint32 ABCD | R | kvarh | Whole kvarh; add the varh register for the remainder | ||
| IR | 246 | uint32 ABCD | R | varh | Remainder below 1 kvarh | ||
| IR | 248 | uint32 ABCD | R | kvarh | Whole kvarh; add the varh register for the remainder | ||
| IR | 250 | uint32 ABCD | R | varh | Remainder below 1 kvarh | ||
| IR | 252 | uint32 ABCD | R | kVAh | Whole kVAh; add the VAh register for the remainder | ||
| IR | 254 | uint32 ABCD | R | VAh | Remainder below 1 kVAh | ||
| IR | 94 | uint32 ABCD | R | kWh | Whole kWh; the Wh remainder is at the next address | ||
| IR | 136 | uint32 ABCD | R | kWh | Whole kWh; the Wh remainder is at the next address | ||
| IR | 178 | uint32 ABCD | R | kWh | Whole kWh; the Wh remainder is at the next address | ||
| IR | 98 | uint32 ABCD | R | kvarh | Whole kvarh; the varh remainder is at the next address | ||
| IR | 140 | uint32 ABCD | R | kvarh | Whole kvarh; the varh remainder is at the next address | ||
| IR | 182 | uint32 ABCD | R | kvarh | Whole kvarh; the varh remainder is at the next address | ||
| IR | 102 | uint32 ABCD | R | kvarh | Whole kvarh; the varh remainder is at the next address | ||
| IR | 144 | uint32 ABCD | R | kvarh | Whole kvarh; the varh remainder is at the next address | ||
| IR | 186 | uint32 ABCD | R | kvarh | Whole kvarh; the varh remainder is at the next address | ||
| IR | 106 | uint32 ABCD | R | kVAh | Whole kVAh; the VAh remainder is at the next address | ||
| IR | 148 | uint32 ABCD | R | kVAh | Whole kVAh; the VAh remainder is at the next address | ||
| IR | 190 | uint32 ABCD | R | kVAh | Whole kVAh; the VAh remainder is at the next address | ||
| IR | 114 | uint32 ABCD | R | kWh | Whole kWh; the Wh remainder is at the next address | ||
| IR | 156 | uint32 ABCD | R | kWh | Whole kWh; the Wh remainder is at the next address | ||
| IR | 198 | uint32 ABCD | R | kWh | Whole kWh; the Wh remainder is at the next address | ||
| IR | 118 | uint32 ABCD | R | kvarh | Whole kvarh; the varh remainder is at the next address | ||
| IR | 160 | uint32 ABCD | R | kvarh | Whole kvarh; the varh remainder is at the next address | ||
| IR | 202 | uint32 ABCD | R | kvarh | Whole kvarh; the varh remainder is at the next address | ||
| IR | 122 | uint32 ABCD | R | kvarh | Whole kvarh; the varh remainder is at the next address | ||
| IR | 164 | uint32 ABCD | R | kvarh | Whole kvarh; the varh remainder is at the next address | ||
| IR | 206 | uint32 ABCD | R | kvarh | Whole kvarh; the varh remainder is at the next address | ||
| IR | 126 | uint32 ABCD | R | kVAh | Whole kVAh; the VAh remainder is at the next address | ||
| IR | 168 | uint32 ABCD | R | kVAh | Whole kVAh; the VAh remainder is at the next address | ||
| IR | 210 | uint32 ABCD | R | kVAh | Whole kVAh; the VAh remainder is at the next address | ||
| IR | 236 | uint32 ABCD | R | kg | ×0.1 | ||
| IR | 238 | uint32 ABCD | R | ×0.1 | |||
| IR | 256 | uint32 ABCD | R | kg | ×0.1 | ||
| IR | 258 | uint32 ABCD | R | ×0.1 | |||
| IR | 260 | uint32 ABCD | R | s | Time counted on all tariffs | ||
| IR | 2001 | bool bit 0 | R | ||||
| IR | 2001 | bool bit 1 | R |
No registers match
Try part of the name, an address (decimal or 0x hex) or clear the filters.
Help improve this map
- I tested it on a deviceReport whether it worked, even if you did not write the map.
- Suggest a correctionEdit the file on GitHub; it opens a pull request.
- Report a problemA wrong address, type, scale or byte order.
- Read the formatWhat each key of the file means (SPEC.md).