Panasonic KW9M Eco-POWER METER Modbus register map
Also covers AKW91110, AKW92112
Multi-circuit power meter with RS-485 Modbus RTU
- Official
- 120 registers
- Modbus RTU
- Revision 1 · 2026-10-18
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
- 19200 8O1 · 19200 baud, 8 data bits, odd parity, 1 stop bit
- Byte / word order
- CDAB · bytes big-endian, words low first (word swap)
- Addresses
- 0-based
- Max read
- 26 registers per request
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 120 holding registers
- Groups
- 9
- Translation tables
- 8
- Revision
- 1 · 2026-10-18
- Added
- ()
- File
- maps/panasonic/kw9m.mbmap.json · 22 KB · history
- SHA-256
- fbcaf83ea48dad730d8ce6c6faa9526f28016222202b4536a0e59101bace5350
- Manufacturer
- industry.panasonic.com
Sources and notes
- KW9M Eco-POWER METER User's Manual Section 7.4.2, Data Register List (MODBUS communication)
Source: Panasonic KW9M Eco-POWER METER User's Manual, section 7.4 MODBUS (RTU) communication
- The meter leaves the factory set to MEWTOCOL: set Protocol (0x62) to MODBUS at the keys or with the Configurator before using this map; changing the protocol resets the serial settings.
- 32-bit values take two registers with the least significant word at the lower address (the manual marks the lower register <LSB>), so the word order is little; the bytes of each register are big-endian.
- The manual lists each measurement twice at different resolutions. This map uses the finer one (0.001 kWh, 0.001 kW, 0.01 V, 0.001 A, 0.01 Hz). The coarser mirrors start at 0x64 (energy, 0.01 kWh), 0x8C (power, 0.01 kW), 0xA4 (voltage, 0.1 V), 0xB4 (current, 0.01 A) and 0xBE (frequency, 0.1 Hz), and 0x145 to 0x158 repeat the total energies.
- The numbers in brackets, (1) to (3), are the measuring circuits or phases of the chosen wiring; with a single-phase two-wire meter only (1) is meaningful.
- Supported functions are 03 (read), 06 (write one register) and 16 (write several); a read is limited to 26 registers (57 bytes) and a write to 23 (55 bytes). Registers that are not listed read as 0 and writes to them are acknowledged but ignored, as are writes outside the setting range.
- Settings written over Modbus go to the internal memory straight away, which limits its life: do not rewrite them in a loop.
- Integral energies can be cleared by writing 0 to them or with the reset registers; the totals are read only. Instantaneous active and reactive powers are signed 32-bit values.
- The factory serial settings are device number 1, 19200 bit/s, 8 data bits, odd parity, 1 stop bit, response time 5 ms.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 50 | uint16 | RW | ||||
| HR | 51 | uint16 | RW | ||||
| HR | 52 | uint16 | RW | ||||
| HR | 53 | uint16 | RW | ||||
| HR | 54 | uint16 | RW | ms | |||
| HR | 55 | uint16 | RW | ||||
| HR | 56 | uint16 | RW | A | 1 A or 5 A | ||
| HR | 57 | uint16 | RW | A | |||
| HR | 58 | uint16 | RW | ×0.01 | |||
| HR | 59 | int16 | RW | °C | ×0.1 | ||
| HR | 65 | uint16 | RW | ms | ×100 | ||
| HR | 70 | uint16 | RW | min | 0 = display always on | ||
| HR | 87 | uint16 | RW | ×0.01 | |||
| HR | 93 | uint16 | RW | ×0.01 | |||
| HR | 94 | uint16 | RW | ||||
| HR | 95 | uint16 | RW | min | 0 = fixed display item | ||
| HR | 96 | uint16 | RW | s | |||
| HR | 97 | uint16 | RW | ||||
| HR | 98 | uint16 | RW | Changing it resets the other serial settings to their defaults | |||
| HR | 30108 | uint16 | RW | ||||
| HR | 30109 | uint16 | RW | min | |||
| HR | 30110 | uint16 | RW | min | |||
| HR | 30111 | uint16 | RW | min | |||
| HR | 30200 | uint16 | RW | ||||
| HR | 30300 | uint16 | RW | ||||
| HR | 30301 | uint16 | RW | ||||
| HR | 30302 | uint16 | RW | ||||
| HR | 30303 | uint16 | RW | ||||
| HR | 30306 | uint16 | RW | ||||
| HR | 30307 | uint16 | RW | % | ×0.1 | ||
| HR | 198 | uint32 CDAB | RW | kWh | ×0.001 | ||
| HR | 200 | uint32 CDAB | RW | kWh | ×0.001 | ||
| HR | 202 | uint32 CDAB | RW | kWh | ×0.001 | ||
| HR | 204 | uint32 CDAB | R | kWh | ×0.001 | ||
| HR | 206 | uint32 CDAB | RW | kvarh | ×0.001 | ||
| HR | 208 | uint32 CDAB | RW | kvarh | ×0.001 | ||
| HR | 210 | uint32 CDAB | RW | kvarh | ×0.001 | ||
| HR | 212 | uint32 CDAB | R | kvarh | ×0.001 | ||
| HR | 214 | uint32 CDAB | RW | kVAh | ×0.001 | ||
| HR | 216 | uint32 CDAB | RW | kVAh | ×0.001 | ||
| HR | 218 | uint32 CDAB | RW | kVAh | ×0.001 | ||
| HR | 220 | uint32 CDAB | R | kVAh | ×0.001 | ||
| HR | 222 | uint32 CDAB | RW | kWh | ×0.001 | ||
| HR | 224 | uint32 CDAB | RW | kWh | ×0.001 | ||
| HR | 226 | uint32 CDAB | RW | kWh | ×0.001 | ||
| HR | 228 | uint32 CDAB | R | kWh | ×0.001 | ||
| HR | 230 | uint32 CDAB | RW | kvarh | ×0.001 | ||
| HR | 232 | uint32 CDAB | RW | kvarh | ×0.001 | ||
| HR | 234 | uint32 CDAB | RW | kvarh | ×0.001 | ||
| HR | 236 | uint32 CDAB | R | kvarh | ×0.001 | ||
| HR | 238 | int32 CDAB | R | kW | ×0.001 | ||
| HR | 240 | int32 CDAB | R | kW | ×0.001 | ||
| HR | 242 | int32 CDAB | R | kW | ×0.001 | ||
| HR | 244 | int32 CDAB | R | kW | ×0.001 | ||
| HR | 246 | int32 CDAB | R | kvar | ×0.001 | ||
| HR | 248 | int32 CDAB | R | kvar | ×0.001 | ||
| HR | 250 | int32 CDAB | R | kvar | ×0.001 | ||
| HR | 252 | int32 CDAB | R | kvar | ×0.001 | ||
| HR | 254 | uint32 CDAB | R | kVA | ×0.001 | ||
| HR | 256 | uint32 CDAB | R | kVA | ×0.001 | ||
| HR | 258 | uint32 CDAB | R | kVA | ×0.001 | ||
| HR | 260 | uint32 CDAB | R | kVA | ×0.001 | ||
| HR | 262 | uint32 CDAB | R | V | ×0.01 | ||
| HR | 264 | uint32 CDAB | R | V | ×0.01 | ||
| HR | 266 | uint32 CDAB | R | V | ×0.01 | ||
| HR | 268 | uint32 CDAB | R | V | ×0.01 | ||
| HR | 270 | uint32 CDAB | R | V | ×0.01 | ||
| HR | 272 | uint32 CDAB | R | V | ×0.01 | ||
| HR | 274 | uint32 CDAB | R | V | ×0.01 | ||
| HR | 276 | uint32 CDAB | R | V | ×0.01 | ||
| HR | 278 | uint32 CDAB | R | A | ×0.001 | ||
| HR | 280 | uint32 CDAB | R | A | ×0.001 | ||
| HR | 282 | uint32 CDAB | R | A | ×0.001 | ||
| HR | 286 | uint32 CDAB | R | A | ×0.001 | ||
| HR | 288 | uint16 | R | Hz | ×0.01 | ||
| HR | 289 | uint16 | R | Hz | ×0.01 | ||
| HR | 290 | uint16 | R | Hz | ×0.01 | ||
| HR | 291 | uint16 | R | Hz | ×0.01 | ||
| HR | 194 | int16 | R | ×0.001 | |||
| HR | 195 | int16 | R | ×0.001 | |||
| HR | 196 | int16 | R | ×0.001 | |||
| HR | 197 | int16 | R | ×0.001 | |||
| HR | 324 | uint16 | R | ||||
| HR | 305 | uint32 CDAB | R | kW | ×0.001 | ||
| HR | 307 | uint32 CDAB | R | kvar | ×0.001 | ||
| HR | 309 | uint32 CDAB | R | kVA | ×0.001 | ||
| HR | 311 | uint32 CDAB | R | kW | ×0.001 | ||
| HR | 313 | uint32 CDAB | R | kvar | ×0.001 | ||
| HR | 315 | uint32 CDAB | R | A | ×0.001 | ||
| HR | 317 | uint32 CDAB | R | A | ×0.001 | ||
| HR | 319 | uint32 CDAB | R | A | ×0.001 | ||
| HR | 31903 | uint32 CDAB | R | kW | ×0.001 | ||
| HR | 31908 | uint32 CDAB | R | kvar | ×0.001 | ||
| HR | 31913 | uint32 CDAB | R | kVA | ×0.001 | ||
| HR | 31918 | uint32 CDAB | R | kW | ×0.001 | ||
| HR | 31923 | uint32 CDAB | R | kvar | ×0.001 | ||
| HR | 31928 | uint32 CDAB | R | A | ×0.001 | ||
| HR | 31933 | uint32 CDAB | R | A | ×0.001 | ||
| HR | 31938 | uint32 CDAB | R | A | ×0.001 | ||
| HR | 418 | int16 | R | °C | ×0.1 |
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).