Siemens SENTRON PAC2200 Modbus register map
Compact three-phase power monitoring device for low-voltage networks. It reports voltages, currents, power, power factor, frequency, two-tariff energy counters per phase and in total, and has diagnostics, settings and I&M identification data. Depending on the version it has an Ethernet port (Modbus TCP), an RS485 port (Modbus RTU) or M-BUS.
- Protocol
- Modbus TCP (Ethernet versions) or Modbus RTU (RS485 versions)
- Defaults
- Modbus TCP port 502 (setting range 0 to 65534). Modbus RTU (RS485 versions only): address 126 (range 1 to 247), 19200 baud (4800, 9600, 19200, 38400, 57600, 115200), format 8N2 (8N1, 8N2, 8E1, 8O1), response time 0 ms (all p. 81 to 82). DHCP is on at the factory. Function codes supported: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x0F, 0x10, 0x14, 0x2B (p. 103).
- Addresses in the manual
- 0-based protocol addresses, as sent on the wire
- 32 and 64-bit values
- Not stated in the manual
- Registers listed
- 185
- Checked against
- L1V30415167B-06, edition 12/2022 (Siemens-hosted copy, Entry ID 109746835)
Address base. NOT proven by the manual. The manual lists an Offset for each value (the first voltage is offset 1, a two-register value starts at each odd offset), does not state how the offset maps to the Modbus start address, and prints no example frame. Zero-based (wire address = printed offset) is an assumption, supported only indirectly: the offsets match those of the SENTRON PAC3200 (for example voltages at 1, 3, 5 and total active power at 65), and Siemens' S7-1200 application example for the PAC3200 (Entry ID 40614428) reads total active power at 40001 + 65, which is holding register 65 in zero-based terms. That example is for the PAC3200, not this device. Counter-evidence: in the file-record tables (function code 0x14, p. 110 onward) the manual prints offset 1 next to the address 30001 and offset 257 next to 30257, which read as one-based Modicon numbers, but those tables are a separate record layout and do not prove how Table A-3 offsets map. If values look shifted by one register on the PAC2200, read 2 registers from offset 1 and compare with the display. A read that starts in the middle of a multi-register value returns an exception, as the manual states. Registers marked area coil are the bit parameters of Table A-6 (function codes 0x01, 0x02, 0x05, 0x0F); the manual prints them with 0 registers and does not say whether their offsets are coil addresses counted from 0 or 1, so the same offset assumption applies. Address 1 in the manual is address 1 on the wire.
Word order. The manual does not state the word or byte order of the 32-bit unsigned long, 32-bit float and 64-bit double values (it states big endian only for the object ID used with function code 0x14). Read each value from its own start offset with the full number of registers. The manual lists the same energies a second time as 32-bit floats at offsets 2801 to 2883, but prints inconsistent units for that block, so only the 64-bit double block at 801 to 965 is listed here. The current period values at 545 to 597, the file-record data (function code 0x14, A.1.4 to A.1.6) and the user-defined function 0x64 are not listed.
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
| Manual | Wire | Register | Type | Regs | Unit | Scale | Access | Area |
|---|---|---|---|---|---|---|---|---|
| 1 | 1 | Voltage L1 to neutralVoltage_L1N |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 3 | 3 | Voltage L2 to neutralVoltage_L2N |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 5 | 5 | Voltage L3 to neutralVoltage_L3N |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 7 | 7 | Voltage L1 to L2Voltage_L1L2 |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 9 | 9 | Voltage L2 to L3Voltage_L2L3 |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 11 | 11 | Voltage L3 to L1Voltage_L3L1 |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 13 | 13 | Current L1Current_L1 |
float32 | 2 | A | 1 | R | Holding (FC03) |
| 15 | 15 | Current L2Current_L2 |
float32 | 2 | A | 1 | R | Holding (FC03) |
| 17 | 17 | Current L3Current_L3 |
float32 | 2 | A | 1 | R | Holding (FC03) |
| 19 | 19 | Apparent power L1Apparent_Power_L1 |
float32 | 2 | VA | 1 | R | Holding (FC03) |
| 21 | 21 | Apparent power L2Apparent_Power_L2 |
float32 | 2 | VA | 1 | R | Holding (FC03) |
| 23 | 23 | Apparent power L3Apparent_Power_L3 |
float32 | 2 | VA | 1 | R | Holding (FC03) |
| 25 | 25 | Active power L1Active_Power_L1 |
float32 | 2 | W | 1 | R | Holding (FC03) |
| 27 | 27 | Active power L2Active_Power_L2 |
float32 | 2 | W | 1 | R | Holding (FC03) |
| 29 | 29 | Active power L3Active_Power_L3 |
float32 | 2 | W | 1 | R | Holding (FC03) |
| 31 | 31 | Reactive power L1Reactive_Power_L1 |
float32 | 2 | var | 1 | R | Holding (FC03) |
| 33 | 33 | Reactive power L2Reactive_Power_L2 |
float32 | 2 | var | 1 | R | Holding (FC03) |
| 35 | 35 | Reactive power L3Reactive_Power_L3 |
float32 | 2 | var | 1 | R | Holding (FC03) |
| 37 | 37 | Power factor L1Power_Factor_L1 · Value range 0 to 1 as printed. |
float32 | 2 | 1 | R | Holding (FC03) | |
| 39 | 39 | Power factor L2Power_Factor_L2 · Value range 0 to 1 as printed. |
float32 | 2 | 1 | R | Holding (FC03) | |
| 41 | 41 | Power factor L3Power_Factor_L3 · Value range 0 to 1 as printed. |
float32 | 2 | 1 | R | Holding (FC03) | |
| 55 | 55 | FrequencyFrequency · Value range 45 to 65 as printed. |
float32 | 2 | Hz | 1 | R | Holding (FC03) |
| 57 | 57 | Average voltage line to neutralAverage_Voltage_LN |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 59 | 59 | Average voltage line to lineAverage_Voltage_LL |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 61 | 61 | Average currentAverage_Current |
float32 | 2 | A | 1 | R | Holding (FC03) |
| 63 | 63 | Total apparent powerTotal_Apparent_Power |
float32 | 2 | VA | 1 | R | Holding (FC03) |
| 65 | 65 | Total active powerTotal_Active_Power |
float32 | 2 | W | 1 | R | Holding (FC03) |
| 67 | 67 | Total reactive powerTotal_Reactive_Power |
float32 | 2 | var | 1 | R | Holding (FC03) |
| 69 | 69 | Total power factorTotal_Power_Factor |
float32 | 2 | 1 | R | Holding (FC03) | |
| 71 | 71 | Neutral currentNeutral_Current |
float32 | 2 | A | 1 | R | Holding (FC03) |
| 205 | 205 | Device diagnostics and device statusDevice_Diagnostics_Status · Byte 0 = global state, byte 1 = local state, byte 2 = global diagnostics, as printed. Bit masks in the 32-bit value are listed in Table A-5 (p. 128), for example 0x01000000 no synchronization pulse, 0x04000000 voltage overload, 0x08000000 current overload, 0x40000000 hardware write protection active, 0x80000000 Modbus communication write-protected. Bits are acknowledged with command register 60007. |
uint32 | 2 | 1 | R | Holding (FC03) | |
| 207 | 207 | Status of the digital outputsDigital_Output_Status · Byte 3, bit 0 (mask 0x00000001) = digital output 0. |
uint32 | 2 | 1 | R | Holding (FC03) | |
| 209 | 209 | Status of the digital inputsDigital_Input_Status · Byte 3, bit 0 (mask 0x00000001) = digital input 0. |
uint32 | 2 | 1 | R | Holding (FC03) | |
| 211 | 211 | Active tariffActive_Tariff · 0 = tariff 1, 1 = tariff 2. |
uint32 | 2 | 1 | R | Holding (FC03) | |
| 215 | 215 | Universal counterUniversal_Counter · Value range 0 to 999999999 as printed. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 217 | 217 | Relevant parameter changes counterRelevant_Parameter_Changes_Counter |
uint32 | 2 | 1 | R | Holding (FC03) | |
| 219 | 219 | Counter of all parameter changesAll_Parameter_Changes_Counter |
uint32 | 2 | 1 | R | Holding (FC03) | |
| 231 | 231 | Configurable energy counterConfigurable_Energy_Counter · The table prints the unit as kWh, kvarh. Setting 50051 (configurable counter source) is printed with the value 0 = digital input. |
float32 | 2 | kWh or kvarh | 1 | R | Holding (FC03) |
| 265 | 265 | Daily profile counterDaily_Profile_Counter |
uint32 | 2 | 1 | R | Holding (FC03) | |
| 267 | 267 | Monthly profile counterMonthly_Profile_Counter |
uint32 | 2 | 1 | R | Holding (FC03) | |
| 269 | 269 | Annual profile counterAnnual_Profile_Counter |
uint32 | 2 | 1 | R | Holding (FC03) | |
| 501 | 501 | Cumulated average active power importCumulated_Avg_Active_Power_Import |
float32 | 2 | W | 1 | R | Holding (FC03) |
| 503 | 503 | Cumulated average reactive power importCumulated_Avg_Reactive_Power_Import |
float32 | 2 | var | 1 | R | Holding (FC03) |
| 505 | 505 | Cumulated average active power exportCumulated_Avg_Active_Power_Export |
float32 | 2 | W | 1 | R | Holding (FC03) |
| 507 | 507 | Cumulated average reactive power exportCumulated_Avg_Reactive_Power_Export |
float32 | 2 | var | 1 | R | Holding (FC03) |
| 509 | 509 | Maximum active power reading during the periodMax_Active_Power_In_Period |
float32 | 2 | W | 1 | R | Holding (FC03) |
| 511 | 511 | Minimum active power reading during the periodMin_Active_Power_In_Period |
float32 | 2 | W | 1 | R | Holding (FC03) |
| 513 | 513 | Maximum reactive power reading during the periodMax_Reactive_Power_In_Period |
float32 | 2 | var | 1 | R | Holding (FC03) |
| 515 | 515 | Minimum reactive power reading during the periodMin_Reactive_Power_In_Period |
float32 | 2 | var | 1 | R | Holding (FC03) |
| 517 | 517 | Length of the current measuring periodCurrent_Period_Length |
uint32 | 2 | s | 1 | R | Holding (FC03) |
| 519 | 519 | Time since start of the active demand periodTime_Since_Demand_Period_Start |
uint32 | 2 | s | 1 | R | Holding (FC03) |
| 799 | 799 | Date and time (UTC)Date_Time_UTC · Printed format Unix_ts (Unix time stamp). The manual does not state the epoch unit. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 801 | 801 | Active energy import tariff 1Active_Energy_Import_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | Wh | 1 | R | Holding (FC03) |
| 805 | 805 | Active energy import tariff 2Active_Energy_Import_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | Wh | 1 | R | Holding (FC03) |
| 809 | 809 | Active energy export tariff 1Active_Energy_Export_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | Wh | 1 | R | Holding (FC03) |
| 813 | 813 | Active energy export tariff 2Active_Energy_Export_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | Wh | 1 | R | Holding (FC03) |
| 817 | 817 | Reactive energy import tariff 1Reactive_Energy_Import_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | varh | 1 | R | Holding (FC03) |
| 821 | 821 | Reactive energy import tariff 2Reactive_Energy_Import_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | varh | 1 | R | Holding (FC03) |
| 825 | 825 | Reactive energy export tariff 1Reactive_Energy_Export_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | varh | 1 | R | Holding (FC03) |
| 829 | 829 | Reactive energy export tariff 2Reactive_Energy_Export_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | varh | 1 | R | Holding (FC03) |
| 833 | 833 | Apparent energy tariff 1Apparent_Energy_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | VAh | 1 | R | Holding (FC03) |
| 837 | 837 | Apparent energy tariff 2Apparent_Energy_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | VAh | 1 | R | Holding (FC03) |
| 841 | 841 | L1 active energy import tariff 1L1_Active_Energy_Import_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | Wh | 1 | R | Holding (FC03) |
| 845 | 845 | L1 active energy import tariff 2L1_Active_Energy_Import_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | Wh | 1 | R | Holding (FC03) |
| 849 | 849 | L1 active energy export tariff 1L1_Active_Energy_Export_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | Wh | 1 | R | Holding (FC03) |
| 853 | 853 | L1 active energy export tariff 2L1_Active_Energy_Export_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | Wh | 1 | R | Holding (FC03) |
| 857 | 857 | L1 reactive energy import tariff 1L1_Reactive_Energy_Import_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | varh | 1 | R | Holding (FC03) |
| 861 | 861 | L1 reactive energy import tariff 2L1_Reactive_Energy_Import_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | varh | 1 | R | Holding (FC03) |
| 865 | 865 | L1 reactive energy export tariff 1L1_Reactive_Energy_Export_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | varh | 1 | R | Holding (FC03) |
| 869 | 869 | L1 reactive energy export tariff 2L1_Reactive_Energy_Export_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | varh | 1 | R | Holding (FC03) |
| 873 | 873 | L1 apparent energy tariff 1L1_Apparent_Energy_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | VAh | 1 | R | Holding (FC03) |
| 877 | 877 | L1 apparent energy tariff 2L1_Apparent_Energy_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | VAh | 1 | R | Holding (FC03) |
| 881 | 881 | L2 active energy import tariff 1L2_Active_Energy_Import_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | Wh | 1 | R | Holding (FC03) |
| 885 | 885 | L2 active energy import tariff 2L2_Active_Energy_Import_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | Wh | 1 | R | Holding (FC03) |
| 889 | 889 | L2 active energy export tariff 1L2_Active_Energy_Export_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | Wh | 1 | R | Holding (FC03) |
| 893 | 893 | L2 active energy export tariff 2L2_Active_Energy_Export_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | Wh | 1 | R | Holding (FC03) |
| 897 | 897 | L2 reactive energy import tariff 1L2_Reactive_Energy_Import_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | varh | 1 | R | Holding (FC03) |
| 901 | 901 | L2 reactive energy import tariff 2L2_Reactive_Energy_Import_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | varh | 1 | R | Holding (FC03) |
| 905 | 905 | L2 reactive energy export tariff 1L2_Reactive_Energy_Export_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | varh | 1 | R | Holding (FC03) |
| 909 | 909 | L2 reactive energy export tariff 2L2_Reactive_Energy_Export_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | varh | 1 | R | Holding (FC03) |
| 913 | 913 | L2 apparent energy tariff 1L2_Apparent_Energy_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | VAh | 1 | R | Holding (FC03) |
| 917 | 917 | L2 apparent energy tariff 2L2_Apparent_Energy_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | VAh | 1 | R | Holding (FC03) |
| 921 | 921 | L3 active energy import tariff 1L3_Active_Energy_Import_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | Wh | 1 | R | Holding (FC03) |
| 925 | 925 | L3 active energy import tariff 2L3_Active_Energy_Import_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | Wh | 1 | R | Holding (FC03) |
| 929 | 929 | L3 active energy export tariff 1L3_Active_Energy_Export_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | Wh | 1 | R | Holding (FC03) |
| 933 | 933 | L3 active energy export tariff 2L3_Active_Energy_Export_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | Wh | 1 | R | Holding (FC03) |
| 937 | 937 | L3 reactive energy import tariff 1L3_Reactive_Energy_Import_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | varh | 1 | R | Holding (FC03) |
| 941 | 941 | L3 reactive energy import tariff 2L3_Reactive_Energy_Import_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | varh | 1 | R | Holding (FC03) |
| 945 | 945 | L3 reactive energy export tariff 1L3_Reactive_Energy_Export_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | varh | 1 | R | Holding (FC03) |
| 949 | 949 | L3 reactive energy export tariff 2L3_Reactive_Energy_Export_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | varh | 1 | R | Holding (FC03) |
| 953 | 953 | L3 apparent energy tariff 1L3_Apparent_Energy_T1 · Overflow at 1.0e+12 as printed. |
float64 | 4 | VAh | 1 | R | Holding (FC03) |
| 957 | 957 | L3 apparent energy tariff 2L3_Apparent_Energy_T2 · Overflow at 1.0e+12 as printed. |
float64 | 4 | VAh | 1 | R | Holding (FC03) |
| 961 | 961 | Secondary total of active energy import (MID register)Secondary_Total_Active_Energy_Import_MID |
float64 | 4 | Wh | 1 | R | Holding (FC03) |
| 965 | 965 | Secondary total of active energy export (MID register)Secondary_Total_Active_Energy_Export_MID |
float64 | 4 | Wh | 1 | R | Holding (FC03) |
| 108 | 108 | Relevant parameter changesRelevant_Parameter_Changes_Flag · Bit status, read with function code 0x01 or 0x02; 0 = not active, 1 = active. Writable bits (RW) are changed with function codes 0x05 and 0x0F. |
bool | 1 | 1 | RW | Coil (FC01) | |
| 110 | 110 | Maximum pulse rate exceeded (acknowledgeable flag)Max_Pulse_Rate_Exceeded_Saving_Flag · Bit status, read with function code 0x01 or 0x02; 0 = not active, 1 = active. Writable bits (RW) are changed with function codes 0x05 and 0x0F. |
bool | 1 | 1 | RW | Coil (FC01) | |
| 111 | 111 | Restart of the deviceDevice_Restart_Flag · Bit status, read with function code 0x01 or 0x02; 0 = not active, 1 = active. Writable bits (RW) are changed with function codes 0x05 and 0x0F. |
bool | 1 | 1 | RW | Coil (FC01) | |
| 112 | 112 | Resetting of energy counter by userEnergy_Counter_Reset_Flag · Bit status, read with function code 0x01 or 0x02; 0 = not active, 1 = active. Writable bits (RW) are changed with function codes 0x05 and 0x0F. |
bool | 1 | 1 | RW | Coil (FC01) | |
| 117 | 117 | Maximum pulse rate exceeded (status)Max_Pulse_Rate_Exceeded_Status · Bit status, read with function code 0x01 or 0x02; 0 = not active, 1 = active. |
bool | 1 | 1 | R | Coil (FC01) | |
| 122 | 122 | SNTP not synchronizedSNTP_Not_Synchronized · Bit status, read with function code 0x01 or 0x02; 0 = not active, 1 = active. |
bool | 1 | 1 | R | Coil (FC01) | |
| 123 | 123 | Wait for user actionWait_For_User_Action · Bit status, read with function code 0x01 or 0x02; 0 = not active, 1 = active. |
bool | 1 | 1 | R | Coil (FC01) | |
| 124 | 124 | No synchronization pulseNo_Synchronization_Pulse · Bit status, read with function code 0x01 or 0x02; 0 = not active, 1 = active. |
bool | 1 | 1 | R | Coil (FC01) | |
| 125 | 125 | Device configuration menu is activeConfig_Menu_Active · Bit status, read with function code 0x01 or 0x02; 0 = not active, 1 = active. |
bool | 1 | 1 | R | Coil (FC01) | |
| 126 | 126 | Voltage overloadVoltage_Overload · Bit status, read with function code 0x01 or 0x02; 0 = not active, 1 = active. |
bool | 1 | 1 | R | Coil (FC01) | |
| 127 | 127 | Current overloadCurrent_Overload · Bit status, read with function code 0x01 or 0x02; 0 = not active, 1 = active. |
bool | 1 | 1 | R | Coil (FC01) | |
| 128 | 128 | Date/time inaccurateDate_Time_Inaccurate · Bit status, read with function code 0x01 or 0x02; 0 = not active, 1 = active. |
bool | 1 | 1 | R | Coil (FC01) | |
| 130 | 130 | The device is hardware write-protectedHardware_Write_Protected · Bit status, read with function code 0x01 or 0x02; 0 = not active, 1 = active. |
bool | 1 | 1 | R | Coil (FC01) | |
| 131 | 131 | Modbus communication is write-protectedModbus_Write_Protected · Bit status, read with function code 0x01 or 0x02; 0 = not active, 1 = active. |
bool | 1 | 1 | R | Coil (FC01) | |
| 200 | 200 | Digital input 0Digital_Input_0 · Bit status, read with function code 0x01 or 0x02; 0 = not active, 1 = active. |
bool | 1 | 1 | R | Coil (FC01) | |
| 300 | 300 | Digital output 0Digital_Output_0 · Bit status, read with function code 0x01 or 0x02; 0 = not active, 1 = active. |
bool | 1 | 1 | R | Coil (FC01) | |
| 49999 | 49999 | Rated current display rangeRated_Current_Display_Range · Value range 1 to 10000 as printed. |
uint32 | 2 | A | 1 | RW | Holding (FC03) |
| 50001 | 50001 | Connection typeConnection_Type · 0 = 3P4W, 4 = 1P2W. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50011 | 50011 | Primary currentPrimary_Current · Printed range 1 to 99999 A for the 5 A device, 65 A for the 65 A device. Read/write on the 5 A device, read only on the 65 A device. |
uint32 | 2 | A | 1 | RW | Holding (FC03) |
| 50013 | 50013 | Secondary currentSecondary_Current · Printed values 1 A or 5 A for the 5 A device, 65 A for the 65 A device. Read/write on the 5 A device, read only on the 65 A device. |
uint32 | 2 | A | 1 | RW | Holding (FC03) |
| 50021 | 50021 | Load profile demand periodLoad_Profile_Demand_Period · Printed values 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60. |
uint32 | 2 | min | 1 | R | Holding (FC03) |
| 50023 | 50023 | SynchronizationSynchronization · 0 = no synchronization, 1 = via bus, 2 = via digital input, 3 = via internal clock. |
uint32 | 2 | 1 | R | Holding (FC03) | |
| 50025 | 50025 | Digital input usage typeDI_Usage_Type · 0 = no action, 1 = pulse interface, 2 = switching on/off peak, 3 = synchronization, 4 = display backlight. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50029 | 50029 | Digital input indexDI_Index · 0 = kWh, 1 = kvarh. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50031 | 50031 | Digital input pulses per kWh or kvarhDI_Pulses_Per_kWh_kvarh · Value range 1 to 4000 as printed. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50033 | 50033 | Digital output group assignmentDO_Group_Assignment · Value range 0 to 99. The table prints the name as DI group assignment in the digital output table. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50035 | 50035 | Digital output usage typeDO_Usage_Type · 0 = no action, 1 = device active, 2 = switching output, 3 = direction of rotation, 5 = pulse output. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50041 | 50041 | Digital output indexDO_Index · 0 = import kWh, 1 = export kWh, 2 = import kvarh, 3 = export kvarh. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50043 | 50043 | Digital output pulses per kWh or kvarhDO_Pulses_Per_kWh_kvarh · Value range 1 to 4000 as printed. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50045 | 50045 | Digital output pulse lengthDO_Pulse_Length · Value range 30 to 500 as printed. The table prints no unit. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50047 | 50047 | Dialog languageDialog_Language · 0 = German, 1 = English. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50049 | 50049 | Phase labels EU/USPhase_Labels · 0 = IEC, 1 = US. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50051 | 50051 | Configurable counter sourceConfigurable_Counter_Source · 0 = digital input. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50055 | 50055 | Display contrastDisplay_Contrast · Value range 1 to 10. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50057 | 50057 | Display backlight level (normal mode)Display_Backlight_Normal · Value range 0 to 3 as printed. The table prints the unit % but the range is 0 to 3, so it is a level setting, not a percentage. |
uint32 | 2 | % | 1 | RW | Holding (FC03) |
| 50059 | 50059 | Display backlight level (dimmed mode)Display_Backlight_Dimmed · Value range 0 to 3 as printed. The table prints the unit % but the range is 0 to 3, so it is a level setting, not a percentage. |
uint32 | 2 | % | 1 | RW | Holding (FC03) |
| 50061 | 50061 | Time until dimmedTime_Until_Dimmed · Value range 0 to 99. |
uint32 | 2 | min | 1 | RW | Holding (FC03) |
| 50147 | 50147 | Digital output remote timeoutDO_Timeout · Table A-7 prints 1 to 18000 seconds with 0 disabling the timeout (default) and no unit; Table A-9 prints unit s with 0 = off and 0.1 to 18000 (output reset after the time expires with no operator input). The two tables differ on the lower bound. |
uint32 | 2 | s | 1 | RW | Holding (FC03) |
| 50149 | 50149 | Default menu numberDefault_Menu_Number · 1 = MEAS_VLN, 2 = MEAS_VLL, 3 = MEAS_I, 4 = MEAS_S, 5 = MEAS_P, 6 = MEAS_Q, 7 = MEAS_SPQ, 8 = MEAS_PF, 9 = MEAS_F, 10 = MEAS_WORK_P, 11 = MEAS_WORK_Q, 12 = MEAS_WORK_S. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50151 | 50151 | Timeout for return to default menuTimeout_Return_To_Default_Menu · 0 = no timeout; 10 s to 3600 s. A value from 1 s up to below 10 s is set to 10 s. |
uint32 | 2 | s | 1 | RW | Holding (FC03) |
| 50231 | 50231 | Date formatDate_Format · 0 = dd.mm.yyyy, 1 = mm/dd/yy, 2 = yyyy-mm-dd. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50233 | 50233 | Daylight savingDaylight_Saving · 0 = no, 1 = auto EU, 2 = auto US, 3 = daylight saving table. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50235 | 50235 | Time zoneTime_Zone · Printed format long (signed); value must be a multiple of 30. |
int32 | 2 | min | 1 | RW | Holding (FC03) |
| 50237 | 50237 | Output pulse dividerOutput_Pulse_Divider · 0 = 1 kWh, 1 = 10 kWh, 2 = 100 kWh, 3 = 1000 kWh. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50239 | 50239 | Input pulse dividerInput_Pulse_Divider · 0 = 1 kWh, 1 = 10 kWh, 2 = 100 kWh, 3 = 1000 kWh. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50241 | 50241 | Invert displayInvert_Display · 0 = no, 1 = yes. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50243 | 50243 | Change current L1 directionChange_Current_L1_Direction · 0 = no, 1 = yes. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50245 | 50245 | Change current L2 directionChange_Current_L2_Direction · 0 = no, 1 = yes. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50247 | 50247 | Change current L3 directionChange_Current_L3_Direction · 0 = no, 1 = yes. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 50249 | 50249 | I(N) on displayIN_On_Display · 0 = no, 1 = yes. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 62983 | 62983 | Aggregation file 1 period lengthAggregation_File_1_Period_Length · Printed range: greater than 3 s, an integer divider of a minute, an hour or a day. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 62985 | 62985 | Aggregation file 1 methodAggregation_File_1_Method · 0 = AUTO, 1 = RMS, 2 = ARITHMETIC. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 62987 | 62987 | Aggregation file 2 period lengthAggregation_File_2_Period_Length · Printed range: preferred integer multiplier of the stage (-1) period length, and an integer divider of a minute, an hour or a day. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 62989 | 62989 | Aggregation file 2 methodAggregation_File_2_Method · 0 = AUTO, 1 = RMS, 2 = ARITHMETIC. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 62991 | 62991 | DHCP on/offDHCP_Enable · Value range 0 to 1 as printed; the manual does not state which value is on. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 62993 | 62993 | SNTP server IP addressSNTP_Server_IP · Value range 0 to FFFFFFFFh. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 62995 | 62995 | SNTP client modeSNTP_Client_Mode · 0 = SNTP client off, 1 = SNTP active client, 2 = SNTP broadcast client. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 62997 | 62997 | Subnet firewall on/offSubnet_Firewall · No value range is printed. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 63001 | 63001 | IP addressIP_Address · Value range 0 to FFFFFFFFh. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 63003 | 63003 | Subnet maskSubnet_Mask · Value range 0 to FFFFFFFFh. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 63005 | 63005 | GatewayGateway · Value range 0 to FFFFFFFFh. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 63007 | 63007 | Bootloader versionBootloader_Version · Printed value range: char, uchar, uchar, uchar (one byte each). |
uint32 | 2 | 1 | R | Holding (FC03) | |
| 63009 | 63009 | Password protection on/offPassword_Protection · 0 or 1 as printed. |
uint32 | 2 | 1 | R | Holding (FC03) | |
| 63135 | 63135 | Modbus RTU addressModbus_RTU_Address · Range 1 to 247. Only on devices with an RS485 port. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 63137 | 63137 | Modbus RTU baud rateModbus_RTU_Baud_Rate · 0 = 4800, 1 = 9600, 2 = 19200, 3 = 38400, 4 = 57600, 5 = 115200 baud. Only on devices with an RS485 port. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 63139 | 63139 | Modbus RTU data bits, parity and stop bitsModbus_RTU_Format · 0 = 8N2, 1 = 8E1, 2 = 8O1, 3 = 8N1. Only on devices with an RS485 port. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 63141 | 63141 | Modbus RTU response timeModbus_RTU_Response_Time · Range 0 to 255. Only on devices with an RS485 port. |
uint32 | 2 | ms | 1 | RW | Holding (FC03) |
| 63143 | 63143 | HTTP server port numberHTTP_Server_Port · 0 = off. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 65290 | 65290 | Hardware write protection on/offHardware_Write_Protection · 0 = on, 1 = off, as printed. Written with function code 0x10; requires pressing the SW key on the device. |
uint32 | 2 | 1 | RW | Holding (FC03) | |
| 64001 | 64001 | I&M0 manufacturer IDIM0_Manufacturer_ID · Printed value 42, which stands for Siemens AG. I&M0 is read as a whole block of 27 registers starting at 64001. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 64002 | 64002 | I&M0 order numberIM0_Order_Number · ASCII, 20 characters. |
string | 10 | 1 | R | Holding (FC03) | |
| 64012 | 64012 | I&M0 serial numberIM0_Serial_Number · ASCII, 16 characters. |
string | 8 | 1 | R | Holding (FC03) | |
| 64020 | 64020 | I&M0 hardware versionIM0_Hardware_Version · Value range 0 to 65535. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 64021 | 64021 | I&M0 firmware versionIM0_Firmware_Version · Printed format: 1 char followed by 3 unsigned char, value range V 0.0.0 to V 255.255.255. Four bytes in 2 registers; the manual does not give the byte layout. |
string | 2 | 1 | R | Holding (FC03) | |
| 64023 | 64023 | I&M0 counter for changesIM0_Change_Counter · Value range 1 to 65535. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 64024 | 64024 | I&M0 profile IDIM0_Profile_ID · Printed value range 3A00 to F6FF. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 64025 | 64025 | I&M0 specific profile IDIM0_Specific_Profile_ID |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 64026 | 64026 | I&M0 version of the I&M dataIM0_Version · Two unsigned chars, value range 0.0 to 255.255. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 64027 | 64027 | I&M0 supported I&M dataIM0_Supported_IM_Data · Printed value range 00 to FF. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 64028 | 64028 | I&M1 plant identifierIM1_Plant_Identifier · ASCII, 32 characters. I&M1 to I&M4 are read or written as a whole block of 89 registers starting at 64028. |
string | 16 | 1 | RW | Holding (FC03) | |
| 64044 | 64044 | I&M1 location identifierIM1_Location_Identifier · ASCII, 22 characters. |
string | 11 | 1 | RW | Holding (FC03) | |
| 64055 | 64055 | I&M2 installation dateIM2_Installation_Date · ASCII, 16 characters. |
string | 8 | 1 | RW | Holding (FC03) | |
| 64063 | 64063 | I&M3 commentIM3_Comment · ASCII, 54 characters. |
string | 27 | 1 | RW | Holding (FC03) | |
| 64090 | 64090 | I&M4 signatureIM4_Signature · 54 characters; the manual prints no value range. |
string | 27 | 1 | RW | Holding (FC03) | |
| 60000 | 60000 | Reset the device to factory settingsCmd_Factory_Reset · Single register command, written with function code 0x06. |
uint16 | 1 | 1 | W | Holding (FC03) | |
| 60001 | 60001 | Device reset (without changing the Modbus address)Cmd_Device_Reset · Single register command, written with function code 0x06. |
uint16 | 1 | 1 | W | Holding (FC03) | |
| 60005 | 60005 | Load profile synchronizationCmd_Load_Profile_Sync · Single register command, written with function code 0x06. Minutes. Printed values 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60. |
uint16 | 1 | 1 | W | Holding (FC03) | |
| 60006 | 60006 | Switching tariffCmd_Switch_Tariff · Single register command, written with function code 0x06. 0 = main tariff, 1 = secondary tariff. |
uint16 | 1 | 1 | W | Holding (FC03) | |
| 60007 | 60007 | Acknowledge the diagnostics bitsCmd_Acknowledge_Diagnostics · Single register command, written with function code 0x06. Value range 0 to FFFFh. The Modbus master must acknowledge the diagnostics bits stored in the register at offset 205. |
uint16 | 1 | 1 | W | Holding (FC03) | |
| 60008 | 60008 | Switching outputs (if parameterized)Cmd_Switch_Outputs · Single register command, written with function code 0x06. Printed value range 0FFh to 1FFh: byte 0 selects the digital output (printed as 0.0), byte 1 = 0 switches OFF and 1 switches ON. |
uint16 | 1 | 1 | W | Holding (FC03) | |
| 60009 | 60009 | Switching command for vector groupCmd_Switch_Vector_Group · Single register command, written with function code 0x06. High byte = group assignment 0 to 99, low byte = 1 for ON or 0 for OFF. |
uint16 | 1 | 1 | W | 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
- Download the Modbus Poll blocks file.
- Open Modbus Poll, connect to the device and set its unit ID. The manual does not state the word order for 32-bit values. Check one known value (a voltage or a counter) and switch the setting if it reads wrong.
- 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.
- 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: SENTRON 7KM Power Monitoring Device PAC2200 Equipment Manual (cache.industry.siemens.com)
L1V30415167B-06, edition 12/2022 (Siemens-hosted copy, Entry ID 109746835), p. 81-82 (communication defaults), p. 103-137 (Appendix A.1 Modbus). Read on 2026-10-24.
Also used: PAC2200 measuring device manual, Entry ID 109746835 (support.industry.siemens.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.