Chint DTSU666 Modbus register map

DIN rail three phase smart meter with an RS485 Modbus RTU port, described in the manual for internal energy monitoring in industrial sites, hotels, schools and large public buildings. It reports line and phase voltage, current, active and reactive power, power factor, frequency and forward and reverse active energy. The user manual covers the DTSU666.001 three phase four wire meter and the DSSU666.001 three phase three wire meter. The map lists the regular address table only; Note 2 of the manual says the primary data address and other addresses are in a detailed communication protocol that the manual does not include.

Protocol
Modbus RTU
Defaults
Per the manual: ModBus-RTU, 9600 bps, no parity and one stop bit (n.1), instrument address 1 (range 1 to 247). Read command is 03H and write command is 10H.
Addresses in the manual
0-based protocol addresses, as sent on the wire
32 and 64-bit values
High word first (AB CD)
Registers listed
43
Checked against
Zhejiang Chint IoT Technology Co., Ltd. User Manual ZTW0.464.0104, version V1, dated Oct. 2023. Vendor-hosted on chintglobal.com.

Address base. The manual prints hex 'parameter address' values (0000H, 2000H, 101EH) and does not state whether they are 0-based or 1-based, and gives no worked request example. They are converted here to decimal and treated as the wire address. Check on the device by reading Ua at 0x2006 (decimal 8198), which should return the phase voltage. All registers are read with command 03H, so they are placed in the holding area. Address 0 in the manual is address 0 on the wire.

Word order. Note 1 of the manual says the single precision IEEE 754 float is assumed to be ABCD (high byte first, then the low byte). Each float uses two registers. The Endian parameter at 000CH is listed as Reserve.

Modbus Poll and the Modbus protocol itself count from 0. The "Wire address" column is the number to type into Modbus Poll.

Downloads

The register table has every column on this page. The blocks file imports into Modbus Poll. The template JSON holds the same blocks plus unit, scale and access for scripts.

Registers

43 registers
Manual Wire Register Type Regs Unit Scale Access Area
0 0 Software versionSoftware_Version · Wire address 0x0000. Listed as a signed one word value, no scaling stated. int16 1 1 R Holding (FC03)
1 1 Programming codeProgramming_Code · Wire address 0x0001, range 1 to 9999. The manual gives the default input code as 701 (section 5.2.2). int16 1 1 RW Holding (FC03)
2 2 Energy resetEnergy_Clear · Wire address 0x0002. Write 1 to clear energy. int16 1 1 RW Holding (FC03)
3 3 Network selectionNetwork_Selection · Wire address 0x0003. 0 = three phase four wire, 1 = three phase three wire. int16 1 1 RW Holding (FC03)
6 6 Current transformer ratio (IrAt)Current_Ratio · Wire address 0x0006, range 1 to 9999. int16 1 1 RW Holding (FC03)
7 7 Voltage transformer ratio (UrAt)Voltage_Ratio · Wire address 0x0007. The table marks this parameter with (*): the communication value times 0.1 is the actual value, so 1 to 9999 represents a voltage ratio of 0.1 to 999.9. int16 1 0.1 RW Holding (FC03)
10 10 Rotating display timeRotating_Display_Time · Wire address 0x000A. Table 10 gives range 0 to 30 and describes 0 as 'Timely display'. int16 1 s 1 RW Holding (FC03)
11 11 Backlight time controlBacklight_Time · Wire address 0x000B. Table 10 gives range 0 to 30, where 0 means normally lit. int16 1 min 1 RW Holding (FC03)
44 44 Communication protocol and parity settingProtocol_Setting · Wire address 0x002C. Table 11 lists 1 = DL/T645, 2 = n.2, 3 = n.1, 4 = E.1, 5 = o.1. Table 10 describes 2 as no parity with 2 stop bits, 3 as no parity with 1 stop bit, 4 as even parity with 1 stop bit and 5 as odd parity with 1 stop bit. int16 1 1 RW Holding (FC03)
45 45 Communication baud rateBaud_Rate · Wire address 0x002D. Table 11 lists 0 = 1200, 1 = 2400, 2 = 4800, 3 = 9600. Table 10 also lists 4 = 19200 bps as a customization option. int16 1 1 RW Holding (FC03)
46 46 Communication addressModbus_Address · Wire address 0x002E, range 1 to 247. Factory default is 1. int16 1 1 RW Holding (FC03)
8192 8192 Line voltage UabVoltage_Uab · Wire address 0x2000. Table 11 prints the unit as V(x0.1V); read here as multiply the raw float by 0.1 to get V. The manual gives no worked Modbus value, so this rests on the unit wording. float32 2 V 0.1 R Holding (FC03)
8194 8194 Line voltage UbcVoltage_Ubc · Wire address 0x2002. Table 11 prints the unit as V(x0.1V); read here as multiply the raw float by 0.1 to get V. The manual gives no worked Modbus value, so this rests on the unit wording. float32 2 V 0.1 R Holding (FC03)
8196 8196 Line voltage UcaVoltage_Uca · Wire address 0x2004. Table 11 prints the unit as V(x0.1V); read here as multiply the raw float by 0.1 to get V. The manual gives no worked Modbus value, so this rests on the unit wording. float32 2 V 0.1 R Holding (FC03)
8198 8198 Phase voltage UaVoltage_Ua · Wire address 0x2006. Table 11 prints the unit as V(x0.1V); read here as multiply the raw float by 0.1 to get V. The manual gives no worked Modbus value, so this rests on the unit wording. The manual marks the phase voltage group as invalid for three phase three wire. float32 2 V 0.1 R Holding (FC03)
8200 8200 Phase voltage UbVoltage_Ub · Wire address 0x2008. Table 11 prints the unit as V(x0.1V); read here as multiply the raw float by 0.1 to get V. The manual gives no worked Modbus value, so this rests on the unit wording. The manual marks the phase voltage group as invalid for three phase three wire. float32 2 V 0.1 R Holding (FC03)
8202 8202 Phase voltage UcVoltage_Uc · Wire address 0x200A. Table 11 prints the unit as V(x0.1V); read here as multiply the raw float by 0.1 to get V. The manual gives no worked Modbus value, so this rests on the unit wording. The manual marks the phase voltage group as invalid for three phase three wire. float32 2 V 0.1 R Holding (FC03)
8204 8204 Phase A currentCurrent_Ia · Wire address 0x200C. Table 11 prints the unit as A(x0.001A); read here as multiply the raw float by 0.001 to get A. The manual gives no worked Modbus value, so this rests on the unit wording. float32 2 A 0.001 R Holding (FC03)
8206 8206 Phase B currentCurrent_Ib · Wire address 0x200E. Table 11 prints the unit as A(x0.001A); read here as multiply the raw float by 0.001 to get A. The manual gives no worked Modbus value, so this rests on the unit wording. float32 2 A 0.001 R Holding (FC03)
8208 8208 Phase C currentCurrent_Ic · Wire address 0x2010. Table 11 prints the unit as A(x0.001A); read here as multiply the raw float by 0.001 to get A. The manual gives no worked Modbus value, so this rests on the unit wording. float32 2 A 0.001 R Holding (FC03)
8210 8210 Combined active powerActivePower_Total · Wire address 0x2012. Table 11 prints the unit as W(x0.1W); read here as multiply the raw float by 0.1 to get W. The manual gives no worked Modbus value, so this rests on the unit wording. float32 2 W 0.1 R Holding (FC03)
8212 8212 Phase A active powerActivePower_A · Wire address 0x2014. Table 11 prints the unit as W(x0.1W); read here as multiply the raw float by 0.1 to get W. The manual gives no worked Modbus value, so this rests on the unit wording. float32 2 W 0.1 R Holding (FC03)
8214 8214 Phase B active powerActivePower_B · Wire address 0x2016. Table 11 prints the unit as W(x0.1W); read here as multiply the raw float by 0.1 to get W. The manual gives no worked Modbus value, so this rests on the unit wording. Listed as invalid for three phase three wire. float32 2 W 0.1 R Holding (FC03)
8216 8216 Phase C active powerActivePower_C · Wire address 0x2018. Table 11 prints the unit as W(x0.1W); read here as multiply the raw float by 0.1 to get W. The manual gives no worked Modbus value, so this rests on the unit wording. float32 2 W 0.1 R Holding (FC03)
8218 8218 Combined reactive powerReactivePower_Total · Wire address 0x201A. Table 11 prints the unit as var(x0.1var); read here as multiply the raw float by 0.1 to get var. The manual gives no worked Modbus value, so this rests on the unit wording. float32 2 var 0.1 R Holding (FC03)
8220 8220 Phase A reactive powerReactivePower_A · Wire address 0x201C. Table 11 prints the unit as var(x0.1var); read here as multiply the raw float by 0.1 to get var. The manual gives no worked Modbus value, so this rests on the unit wording. float32 2 var 0.1 R Holding (FC03)
8222 8222 Phase B reactive powerReactivePower_B · Wire address 0x201E. Table 11 prints the unit as var(x0.1var); read here as multiply the raw float by 0.1 to get var. The manual gives no worked Modbus value, so this rests on the unit wording. Listed as invalid for three phase three wire. float32 2 var 0.1 R Holding (FC03)
8224 8224 Phase C reactive powerReactivePower_C · Wire address 0x2020. Table 11 prints the unit as var(x0.1var); read here as multiply the raw float by 0.1 to get var. The manual gives no worked Modbus value, so this rests on the unit wording. float32 2 var 0.1 R Holding (FC03)
8234 8234 Combined power factorPowerFactor_Total · Wire address 0x202A. Table 11 prints (x0.001); read here as multiply the raw float by 0.001. The manual gives no worked Modbus value, so this rests on the wording. Positive means inductive and negative means capacitive. float32 2 0.001 R Holding (FC03)
8236 8236 Phase A power factorPowerFactor_A · Wire address 0x202C. Table 11 prints (x0.001); read here as multiply the raw float by 0.001. The manual gives no worked Modbus value, so this rests on the wording. Positive means inductive and negative means capacitive. Listed as invalid for three phase three wire. float32 2 0.001 R Holding (FC03)
8238 8238 Phase B power factorPowerFactor_B · Wire address 0x202E. Table 11 prints (x0.001); read here as multiply the raw float by 0.001. The manual gives no worked Modbus value, so this rests on the wording. Positive means inductive and negative means capacitive. Listed as invalid for three phase three wire. float32 2 0.001 R Holding (FC03)
8240 8240 Phase C power factorPowerFactor_C · Wire address 0x2030. Table 11 prints (x0.001); read here as multiply the raw float by 0.001. The manual gives no worked Modbus value, so this rests on the wording. Positive means inductive and negative means capacitive. Listed as invalid for three phase three wire. float32 2 0.001 R Holding (FC03)
8260 8260 FrequencyFrequency · Wire address 0x2044. Table 11 prints the unit as Hz(x0.01Hz); read here as multiply the raw float by 0.01 to get Hz. The manual gives no worked Modbus value, so this rests on the unit wording. float32 2 Hz 0.01 R Holding (FC03)
4126 4126 Total forward active energyEnergy_Import_Total · Wire address 0x101E. Listed as (current) energy in kWh, no multiplier stated. float32 2 kWh 1 R Holding (FC03)
4128 4128 Phase A forward active energyEnergy_Import_A · Wire address 0x1020. Listed as (current) energy in kWh, no multiplier stated. float32 2 kWh 1 R Holding (FC03)
4130 4130 Phase B forward active energyEnergy_Import_B · Wire address 0x1022. Listed as (current) energy in kWh, no multiplier stated. float32 2 kWh 1 R Holding (FC03)
4132 4132 Phase C forward active energyEnergy_Import_C · Wire address 0x1024. Listed as (current) energy in kWh, no multiplier stated. float32 2 kWh 1 R Holding (FC03)
4134 4134 Net forward active energyEnergy_Import_Net · Wire address 0x1026. Listed as (current) energy in kWh, no multiplier stated. float32 2 kWh 1 R Holding (FC03)
4136 4136 Total reverse active energyEnergy_Export_Total · Wire address 0x1028. Listed as (current) energy in kWh, no multiplier stated. float32 2 kWh 1 R Holding (FC03)
4138 4138 Phase A reverse active energyEnergy_Export_A · Wire address 0x102A. Listed as (current) energy in kWh, no multiplier stated. float32 2 kWh 1 R Holding (FC03)
4140 4140 Phase B reverse active energyEnergy_Export_B · Wire address 0x102C. Listed as (current) energy in kWh, no multiplier stated. float32 2 kWh 1 R Holding (FC03)
4142 4142 Phase C reverse active energyEnergy_Export_C · Wire address 0x102E. Listed as (current) energy in kWh, no multiplier stated. float32 2 kWh 1 R Holding (FC03)
4144 4144 Net reverse active energyEnergy_Export_Net · Wire address 0x1030. Listed as (current) energy in kWh, no multiplier stated. float32 2 kWh 1 R Holding (FC03)

Scale is the number to multiply the raw value by to get the unit. Types with more than one register (32 and 64-bit) follow the word order above.

Open in Modbus Poll

  1. Download the Modbus Poll blocks file.
  2. Open Modbus Poll, connect to the device and set its unit ID. In Modbus Poll set Word order to AB CD.
  3. In the blocks panel on the right, click Import CSV and pick the file. CSV import is a Pro feature. Without Pro, Modbus Poll polls the first 20 values of your blocks.
  4. The wire addresses are already in the file, so there is no 0-based or 1-based conversion to do.

Once the values look right, export the tag list to Ignition, Kepware, Node-RED, Home Assistant or Voltrus SCADA.

Source and accuracy

Manufacturer document: DTSU666.001 series three phase four wire electronic energy meter, DSSU666.001 series three phase three wire electronic energy meter, User Manual (www.chintglobal.com)

Zhejiang Chint IoT Technology Co., Ltd. User Manual ZTW0.464.0104, version V1, dated Oct. 2023. Vendor-hosted on chintglobal.com., PDF p. 10 (Table 10 programming parameters), PDF pp. 12 to 14 (Table 11 ModBus protocol address table and Notes 1 and 2). Read on 2026-10-24.

Also used: Chint DTSU666 product page (www.chintglobal.com)

Also used: Chint DTSU666-100A product page (its separate Modbus protocol V1.1 uses a different address layout, for example voltages from 0200H, so it is not covered by this map) (www.chintglobal.com)

Addresses, types, units and scale are taken from the document above. Names and descriptions are written by Voltrus. Firmware versions can differ, so confirm a value on your own device before you rely on it.

Found a mistake? Report it by email with the register address and the manual page.

Other energy meters

All register maps · Modbus addressing explained