An unofficial summary of facts (addresses, types, units, scaling) from the maker's manual. Not affiliated with the maker; values can differ by firmware or model. Always check the device manual before writing (run commands, settings).
Default communication
| Protocol | Modbus RTU, Modbus TCP |
|---|---|
| Baud (factory) | 9600 bps — options: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 |
| Data · parity · stop | — · Even · 1 |
| TCP port | 502 |
| 32-bit order | ABCD |
| Max per request | 125 registers |
| Manual address style | 1-based numbers (wire address + 1) |
- Manual uses 1-based register numbers; wire address = number − 1. Numeric frame examples: p.176 «01 03 0000 0003» reads registers 1-3 (first response value 0E75h = 3701 = product ID in register 1), p.179 Vab register 10011 → start address 271Ah, p.182 register 2901 → 0B54h (p.14, p.170).
- 32-bit values: high word at lower address, big-endian (p.15, p.180 example: 380.2 = 43BEh 1999h).
- RS-485 defaults 9600 bps, even parity, 1 stop bit (p.37). Address range 0-247 with default 0, so factory unit ID is left out.
- FC 03, 06, 16 plus user-defined 101 (65h, TCP only). Read quantity 1-125 (device allows 250), write 1-123. Modbus TCP port 502, unit ID fixed at 1, 20 connections (19 TCP, 1 RTU) (p.165-172).
Registers (59)
«Wire» is the 0-based address in the request frame (PortDock's «0-based» notation). Value = raw × scale. Table: HR holding register, IR input register, CO coil, DI discrete input. Function codes in hex.
Swipe the table sideways — the first column (manual address) stays put.
| Manual | Wire | Table | Name | Type | Unit · scale | R/W | FC | Details |
|---|---|---|---|---|---|---|---|---|
| 1 | 0 (0x0000) | HR | Product ID | U16 | R | 03 | 3701 for Accura 3700 p.16 System Information | |
| 3 | 2 (0x0002) | HR | Serial number | U32 ABCD | R | 03 | p.16 System Information | |
| 8 | 7 (0x0007) | HR | Application major version | U16 | R | 03 | p.16 System Information | |
| 9 | 8 (0x0008) | HR | Application minor version | U16 | R | 03 | p.16 System Information | |
| 10 | 9 (0x0009) | HR | Application revision | U16 | R | 03 | p.16 System Information | |
| 2901 | 2900 (0x0B54) | HR | Remote setup lock | U16 | R/W | 03·06·10 | Write 2300 → 0 → 700 → 1 to unlock; any other write locks. Per connection; relocks at power-off. 0 = Unlocked · 1 = Locked p.21 Remote Setup Unlock | |
| 3701 | 3700 (0x0E74) | HR | Access for RS-485 setup | U16 | R/W | 03·06·10 | Read fetches device settings into 3702-3705 (bit 15 = 1 on success); write 1 to apply 3702-3705. p.37 RS-485 Setup | |
| 3702 | 3701 (0x0E75) | HR | RS-485 device address | U16 | R/W | 03·06·10 | Range 0 ~ 247 p.37 RS-485 Setup | |
| 3703 | 3702 (0x0E76) | HR | RS-485 bit rate | U16 | R/W | 03·06·10 | 0 = 1200 bps · 1 = 2400 bps · 2 = 4800 bps · 3 = 9600 bps · 4 = 19200 bps · 5 = 38400 bps · 6 = 57600 bps · 7 = 115200 bps p.37 RS-485 Setup | |
| 3704 | 3703 (0x0E77) | HR | RS-485 parity | U16 | R/W | 03·06·10 | 0 = None · 1 = Odd · 2 = Even p.37 RS-485 Setup | |
| 3705 | 3704 (0x0E78) | HR | RS-485 stop bit | U16 | R/W | 03·06·10 | 0 = 1 stop bit · 1 = 2 stop bits p.37 RS-485 Setup | |
| 9901 | 9900 (0x26AC) | HR | Aggregation selection | U16 | R/W | 03·06·10 | 0 = 0.2 s · 1 = 1 s (default) · 2 = 5 s · 3 = 1 min · 4 = 5 min · 5 = 1 h · 6 = 6 h · 11 = User-defined 11 · 12 = User-defined 12 · 13 = User-defined 13 · 14 = User-defined 14 · 15 = User-defined 15 · 255 = Max/Min since reset p.91 Aggregation Selection | |
| 9902 | 9901 (0x26AD) | HR | Index update mode | U16 | R/W | 03·06·10 | How 9904 changes when 9911 is read. Default is Newest (1); then the fetch may be skipped for measurements (p.184). 0 = Fixed · 1 = Newest · 2 = Auto increment p.92 Measurement Data Summary | |
| 9904 | 9903 (0x26AF) | HR | Index selection | U16 | R/W | 03·06·10 | Range 0 ~ 9999 p.92 Measurement Data Summary | |
| 9911 | 9910 (0x26B6) | HR | Data fetch | U16 | R | 03 | Reading fetches the selected aggregation/index into 9914-38000. Per connection. 0 = Fetch failed · 1 = Fetch succeeded p.93 Data Fetch | |
| 9913 | 9912 (0x26B8) | HR | Index of fetched data | U16 | R | 03 | p.93 Data Fetch | |
| 9930 | 9929 (0x26C9) | HR | Validity of meter measurement data | S16 | R | 03 | p.188 lists UInt16, but values are -1/0, so Int16 per p.94. -1 = Invalid · 0 = Valid (Accura 3700) p.94 Measurement Header | |
| 10001 | 10000 (0x2710) | HR | Voltage Van | F32 ABCD | V | R | 03 | p.96 Measurement Data |
| 10003 | 10002 (0x2712) | HR | Voltage Vbn | F32 ABCD | V | R | 03 | p.96 Measurement Data |
| 10005 | 10004 (0x2714) | HR | Voltage Vcn | F32 ABCD | V | R | 03 | p.96 Measurement Data |
| 10007 | 10006 (0x2716) | HR | Average phase voltage | F32 ABCD | V | R | 03 | p.96 Measurement Data |
| 10011 | 10010 (0x271A) | HR | Voltage Vab | F32 ABCD | V | R | 03 | p.96 Measurement Data |
| 10013 | 10012 (0x271C) | HR | Voltage Vbc | F32 ABCD | V | R | 03 | p.96 Measurement Data |
| 10015 | 10014 (0x271E) | HR | Voltage Vca | F32 ABCD | V | R | 03 | p.96 Measurement Data |
| 10017 | 10016 (0x2720) | HR | Average line-to-line voltage | F32 ABCD | V | R | 03 | p.96 Measurement Data |
| 10019 | 10018 (0x2722) | HR | Current Ia | F32 ABCD | A | R | 03 | p.96 Measurement Data |
| 10021 | 10020 (0x2724) | HR | Current Ib | F32 ABCD | A | R | 03 | p.96 Measurement Data |
| 10023 | 10022 (0x2726) | HR | Current Ic | F32 ABCD | A | R | 03 | p.96 Measurement Data |
| 10025 | 10024 (0x2728) | HR | Average current | F32 ABCD | A | R | 03 | p.96 Measurement Data |
| 10057 | 10056 (0x2748) | HR | Frequency | F32 ABCD | Hz | R | 03 | p.96 Measurement Data |
| 10059 | 10058 (0x274A) | HR | Voltage THD phase A | F32 ABCD | % | R | 03 | p.96 Measurement Data |
| 10061 | 10060 (0x274C) | HR | Voltage THD phase B | F32 ABCD | % | R | 03 | p.96 Measurement Data |
| 10063 | 10062 (0x274E) | HR | Voltage THD phase C | F32 ABCD | % | R | 03 | p.96 Measurement Data |
| 10071 | 10070 (0x2756) | HR | Current THD phase A | F32 ABCD | % | R | 03 | p.97 Measurement Data |
| 10073 | 10072 (0x2758) | HR | Current THD phase B | F32 ABCD | % | R | 03 | p.97 Measurement Data |
| 10075 | 10074 (0x275A) | HR | Current THD phase C | F32 ABCD | % | R | 03 | p.97 Measurement Data |
| 10095 | 10094 (0x276E) | HR | Active power phase A | F32 ABCD | kW | R | 03 | p.97 Measurement Data |
| 10097 | 10096 (0x2770) | HR | Active power phase B | F32 ABCD | kW | R | 03 | p.97 Measurement Data |
| 10099 | 10098 (0x2772) | HR | Active power phase C | F32 ABCD | kW | R | 03 | p.97 Measurement Data |
| 10101 | 10100 (0x2774) | HR | Total active power | F32 ABCD | kW | R | 03 | p.97 Measurement Data |
| 10109 | 10108 (0x277C) | HR | Total reactive power | F32 ABCD | kVAR | R | 03 | p.97 Measurement Data |
| 10117 | 10116 (0x2784) | HR | Total apparent power | F32 ABCD | kVA | R | 03 | p.97 Measurement Data |
| 10119 | 10118 (0x2786) | HR | Power factor phase A | F32 ABCD | R | 03 | p.97 Measurement Data | |
| 10121 | 10120 (0x2788) | HR | Power factor phase B | F32 ABCD | R | 03 | p.97 Measurement Data | |
| 10123 | 10122 (0x278A) | HR | Power factor phase C | F32 ABCD | R | 03 | p.97 Measurement Data | |
| 10125 | 10124 (0x278C) | HR | Total power factor | F32 ABCD | R | 03 | p.97 Measurement Data | |
| 10138 | 10137 (0x2799) | HR | Total power factor lead/lag status | U16 | R | 03 | 0 = None · 1 = Lead · 2 = Lag · 3 = No load (apparent power 0) p.98 Measurement Data | |
| 10139 | 10138 (0x279A) | HR | Voltage unbalance | F32 ABCD | % | R | 03 | p.98 Measurement Data |
| 10157 | 10156 (0x27AC) | HR | Current unbalance | F32 ABCD | % | R | 03 | p.98 Measurement Data |
| 10169 | 10168 (0x27B8) | HR | Device temperature | F32 ABCD | ℃ | R | 03 | Reported in ℉ when the Locale temperature unit is Fahrenheit. p.98 Measurement Data |
| 10251 | 10250 (0x280A) | HR | Received active energy | S32 ABCD | kWh | R | 03 | Unit follows the energy-unit setting (default kWh, can be Wh). p.99 Measurement Data |
| 10253 | 10252 (0x280C) | HR | Delivered active energy | S32 ABCD | kWh | R | 03 | Unit follows the energy-unit setting (default kWh, can be Wh). p.99 Measurement Data |
| 10257 | 10256 (0x2810) | HR | Net active energy (received − delivered) | S32 ABCD | kWh | R | 03 | Unit follows the energy-unit setting (default kWh, can be Wh). p.99 Measurement Data |
| 10267 | 10266 (0x281A) | HR | Positive reactive energy | S32 ABCD | kVARh | R | 03 | p.99 Measurement Data |
| 10269 | 10268 (0x281C) | HR | Negative reactive energy | S32 ABCD | kVARh | R | 03 | p.99 Measurement Data |
| 10275 | 10274 (0x2822) | HR | Apparent energy | S32 ABCD | kVAh | R | 03 | p.99 Measurement Data |
| 10497 | 10496 (0x2900) | HR | Average demand current | F32 ABCD | A | R | 03 | p.100 Measurement Data |
| 10505 | 10504 (0x2908) | HR | Total demand active power | F32 ABCD | kW | R | 03 | p.100 Measurement Data |
| 10591 | 10590 (0x295E) | HR | Energy unit | U16 | R | 03 | Follows the Locale energy-unit setting; 1 means active energy is in Wh. 0 = kWh · 1 = Wh p.101 Measurement Data |
Notes
- Measurements live in aggregation buffers: select the interval with 9901 (default 1 s); with 9902 at its default (Newest) read 10001- directly, otherwise read 9911 to fetch first. Selection/index are per connection (p.88-93, p.169, p.184-188).
- Each port can use a different default register map (65534: 0 Accura 3700, 1 Old Accura 3700); this file follows map 0 (p.39).
- Values are Float32 in engineering units; energies in the measurement area are Int32 kWh etc., no PT/CT scaling needed. Active-energy unit can be switched to Wh with 3024 (Locale); check 10591 (p.68, p.99, p.101). The energy preset area (8101-) is Int64 and is left out.
- Demand values appear twice with the same names (10171-10201 and 10491-10521); this file lists the 10491- set (p.98-101).
- Remote setup is locked by default; unlock with 2300→0→700→1 to 2901 (p.21, p.182). Serial settings are fetched/applied via access register 3701 (p.37).
Read it with PortDock
- Install the free PortDock Modbus Master and connect with the device's settings.
- On the table toolbar, «Device profile…» → pick this device → «Load». Polling tables, names, types and the Slave ID are filled in (optionally the serial settings too).
- Names carry the unit and scale (e.g. «×0.01 Hz»). Values on screen are raw — multiply by the scale.
- To test your program without the device, PortDock Modbus Slave's «Emulate device…» serves the same map with example values.
Download JSON
- rootech/accura-3700.json (GitHub raw) · copy on this site · history
- schema.json — format (JSON Schema). table, address (0-based), type and order match the PortDock CSV.
- License: CC BY 4.0 — please cite:
PortDock device register maps, v2026.10 · 09ac1d0b2792, https://portdock.dev/devices/
and this page. LICENSE · data bundle, version and changelog - Found a mistake? Please open a GitHub issue with the manual page.
Sources
- Accura 3700 Communication Guide — Rootech Inc., Revision 2.40, 2026-04-17 (file name Accura_3700_Communication_Guide_Rev2_40_Korean_260417.pdf) · pp.14-17 map summary, formats, system info, p.21, p.37, p.39, pp.88-101 measurements, pp.165-177 protocol and RTU/TCP examples, pp.179-188 addressing, endian, collection · checked 2026-10-23