Lovato Electric DCRG8 Modbus register map
Digital power factor controller (DCRG8 series). Values marked single/three phase depend on how the controller is wired and programmed
- Verified
- 548 registers
- Modbus TCP and RTU
- Revision 4 · 2026-10-29
Verified: Tested on a real device.
Communication
- Protocol
- Modbus TCP and RTU
- Unit ID
- 1
- TCP port
- 1001
- Serial
- 9600 8N1 · 9600 baud, 8 data bits, none parity, 1 stop bit
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 1-based · wire address = address − 1
- Max read
- 80 registers per request
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 548 holding registers
- Groups
- 13
- Translation tables
- 3
- Revision
- 4 · 2026-10-29
- Added
- ()
- File
- maps/lovato-electric/dcrg8.mbmap.json · 86 KB · history
- SHA-256
- b69346fd4814db96199acdfdf573c18673774944171c63b88714c7e40d38a2d8
- Manufacturer
- lovatoelectric.com
Sources and notes
Source: Lovato Electric, "DCRG8 Series Modbus Communication Protocol", doc. I432IGB05_20 (2020-05-20), tables 2-9; from firmware revision 4
- Lovato Electric DCRG8 digital power factor controller.
- Addresses are as in the protocol tables; the wire address is one less.
- FC06 and FC16 work only on addresses above 1000H.
- Tested on a DCRG8, October 2026, over an RS-485 to RTU-over-TCP gateway (firmware not recorded).
- A second DCRG8 was read in November 2026 over RS-485 at 9600 baud, 8N1, with the controller under load (about 387 A, 416 V line to line, single current input): 538 of 541 registers read. Checked: both measure sets (the single-phase set and the per-phase set read as zero for the unused phases, as table 2 says), power, energies, the average weekly power factor, temperatures, the counters, the limits, inputs and outputs, the alarm word with its bits (the step failure bit was set and matched the outputs), the event pointer, the clock, the harmonics and the step data. The three parameter value registers at 5004H were refused, as expected before a menu and parameter are selected. FC17 answered with the build date and time of the firmware (Feb 15 2018, 09:31:31) after 8 bytes the protocol document does not describe, and FC43 was refused (illegal function), so the map has no identify block.
- Total cos phi (0000H, signed long, value/1000) is not in this map: its wire address is FFFFH, which a map cannot hold. Read it with FC04 from address 65535, 2 registers. A read of wire address 0 alone is refused (illegal data address).
- Table 2: with one voltage and one current wired, the controller returns the first measure (0000H-0010H); with three voltages and three currents, the second (0040H-0062H, 1500H-150EH). The other one reads ND.
- Writing a parameter, as in the manual's example (P02.01 CT primary = 200): FC06 value 2 at 5000H (menu), FC06 value 1 at 5002H (parameter), FC16 value 200 at 5004H, FC06 value 1 at 2F03H (save EEPROM), then FC06 value 4 at 2F03H (reboot). The controller does not answer the last two. To read a parameter, select the menu and parameter the same way, then read 5004H with FC04.
- Cos phi setpoint (3004H) is not in the protocol document. It comes from Node-RED flows that have run for years on several DCRG8 controllers (FC04 read, FC06 write, value x 100, read back after the write). Which setpoint it changes and whether the change survives a power cycle without an EEPROM save (2F03H = 1) are not known. The documented way is the parameter access above with P02.13 (Setpoint cosphi 1, 0.50 IND to 0.50 CAP, instruction manual I340GB06_24).
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 2 | int32 ABCD | R | ×0.001 | |||
| HR | 4 | int32 ABCD | R | ×0.001 | |||
| HR | 6 | int32 ABCD | R | V | ×0.1 | ||
| HR | 8 | int32 ABCD | R | A | ×0.001 | ||
| HR | 10 | int32 ABCD | R | var | |||
| HR | 12 | int32 ABCD | R | var | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | ||
| HR | 14 | int32 ABCD | R | var | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | ||
| HR | 16 | int32 ABCD | R | var | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | ||
| HR | 18 | int32 ABCD | R | var | |||
| HR | 22 | uint32 ABCD | R | kWh | ×0.1 | ||
| HR | 24 | uint32 ABCD | R | kvarh | ×0.1 | ||
| HR | 26 | uint32 ABCD | R | kVAh | ×0.1 | ||
| HR | 28 | uint32 ABCD | R | kWh | ×0.1 | ||
| HR | 30 | uint32 ABCD | R | kvarh | ×0.1 | ||
| HR | 64 | int32 ABCD | R | V | ×0.1 | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | |
| HR | 66 | int32 ABCD | R | V | ×0.1 | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | |
| HR | 68 | int32 ABCD | R | V | ×0.1 | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | |
| HR | 70 | int32 ABCD | R | A | ×0.001 | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | |
| HR | 72 | int32 ABCD | R | A | ×0.001 | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | |
| HR | 74 | int32 ABCD | R | A | ×0.001 | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | |
| HR | 76 | int32 ABCD | R | V | ×0.1 | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | |
| HR | 78 | int32 ABCD | R | V | ×0.1 | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | |
| HR | 80 | int32 ABCD | R | V | ×0.1 | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | |
| HR | 82 | int32 ABCD | R | ×0.001 | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | ||
| HR | 84 | int32 ABCD | R | ×0.001 | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | ||
| HR | 86 | int32 ABCD | R | ×0.001 | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | ||
| HR | 88 | int32 ABCD | R | ×0.001 | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | ||
| HR | 90 | int32 ABCD | R | ×0.001 | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | ||
| HR | 92 | int32 ABCD | R | ×0.001 | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | ||
| HR | 94 | int32 ABCD | R | ×0.001 | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | ||
| HR | 96 | int32 ABCD | R | ×0.001 | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | ||
| HR | 98 | int32 ABCD | R | ×0.001 | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | ||
| HR | 5376 | uint32 ABCD | R | W | |||
| HR | 5378 | uint32 ABCD | R | W | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | ||
| HR | 5380 | uint32 ABCD | R | W | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | ||
| HR | 5382 | uint32 ABCD | R | W | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | ||
| HR | 5384 | uint32 ABCD | R | VA | |||
| HR | 5386 | uint32 ABCD | R | VA | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | ||
| HR | 5388 | uint32 ABCD | R | VA | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | ||
| HR | 5390 | uint32 ABCD | R | VA | Not available (ND) when the controller is wired for single phase; the equivalent values at 0000H-0010H apply | ||
| HR | 4864 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4866 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4868 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4870 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4872 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4874 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4876 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4878 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4880 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4882 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4884 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4886 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4888 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4890 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4892 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4894 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4896 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4898 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4900 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4902 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4904 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4906 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4908 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4910 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4912 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4914 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4916 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4918 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4920 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4922 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4924 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4926 | uint32 ABCD | R | kvar | ×0.01 | ||
| HR | 4608 | uint32 ABCD | R | s | |||
| HR | 4610 | uint32 ABCD | R | s | |||
| HR | 4612 | uint32 ABCD | R | s | |||
| HR | 4614 | uint32 ABCD | R | s | |||
| HR | 4616 | uint32 ABCD | R | s | |||
| HR | 4618 | uint32 ABCD | R | s | |||
| HR | 4620 | uint32 ABCD | R | s | |||
| HR | 4622 | uint32 ABCD | R | s | |||
| HR | 4624 | uint32 ABCD | R | s | |||
| HR | 4626 | uint32 ABCD | R | s | |||
| HR | 4628 | uint32 ABCD | R | s | |||
| HR | 4630 | uint32 ABCD | R | s | |||
| HR | 4632 | uint32 ABCD | R | s | |||
| HR | 4634 | uint32 ABCD | R | s | |||
| HR | 4636 | uint32 ABCD | R | s | |||
| HR | 4638 | uint32 ABCD | R | s | |||
| HR | 4640 | uint32 ABCD | R | s | |||
| HR | 4642 | uint32 ABCD | R | s | |||
| HR | 4644 | uint32 ABCD | R | s | |||
| HR | 4646 | uint32 ABCD | R | s | |||
| HR | 4648 | uint32 ABCD | R | s | |||
| HR | 4650 | uint32 ABCD | R | s | |||
| HR | 4652 | uint32 ABCD | R | s | |||
| HR | 4654 | uint32 ABCD | R | s | |||
| HR | 4656 | uint32 ABCD | R | s | |||
| HR | 4658 | uint32 ABCD | R | s | |||
| HR | 4660 | uint32 ABCD | R | s | |||
| HR | 4662 | uint32 ABCD | R | s |
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).