Carlo Gavazzi EM21 Modbus register map
3-phase 4-wire DIN-rail energy meter — per-phase V/I/P/S/Q, PF, Hz, system totals, import energy (INT32 LSW-first, INT16 for PF/Hz, holding registers).
- Unofficial
- 30 registers
- Revision 2
Unofficial: Copied from an unofficial source and not tested. Read it as a draft and check a value on the real device before you rely on the rest. Check the map against the manufacturer's documentation before you write to a live device. Tested it? Report a test.
Communication
- Protocol
- Modbus TCP and RTUdefault
- Unit ID
- 1default
- TCP port
- 502default
- Serial
- 9600 8E1 · 9600 baud, 8 data bits, even parity, 1 stop bit defaults
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 0-based
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 30 holding registers
- Revision
- 2
- Added
- ()
- File
- maps/carlo-gavazzi/em21.mbmap.json · 6 KB · history
- SHA-256
- ae448d352cedc2a08523eb8c16f1fd83e5f10fc9de2378f6eedd286cad8804ec
- Manufacturer
- gavazziautomation.com
Sources and notes
Source: Omni Console device library (OmniCoreST), modbus-library/carlo-gavazzi-em21.toml; Source: carlo-gavazzi-em21-modbus.pdf. Not verified against the manufacturer's documentation
- Carlo Gavazzi EM21.
- Converted automatically from the Omni Console device library (OmniCoreST).
- Not verified against the manufacturer's documentation.
- Corrections are welcome (CONTRIBUTING.md). Change x_status once this table has been checked against the manual.
- | Carlo Gavazzi EM21 — Modbus register map for Omni Console
- |
- | Source: carlo-gavazzi-em21-modbus.pdf
- | - 3-phase 4-wire DIN-rail energy meter, RS485.
- | - Holding registers (FC03), INT32 little-endian (LSW first), INT16 for PF/Hz.
- | - All addresses are 0-based protocol addresses.
- | - Scales: V×0.1, A×0.01, W/VA/VAr×0.1, PF×0.001, Hz×0.1, kWh/kVArh×0.1.
- | - Factory defaults: slave=1, baud=9600, 8N2.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 0 | int32 CDAB | R | V | ×0.1 | ||
| HR | 2 | int32 CDAB | R | V | ×0.1 | ||
| HR | 4 | int32 CDAB | R | V | ×0.1 | ||
| HR | 6 | int32 CDAB | R | V | ×0.1 | ||
| HR | 8 | int32 CDAB | R | V | ×0.1 | ||
| HR | 10 | int32 CDAB | R | V | ×0.1 | ||
| HR | 12 | int32 CDAB | R | A | ×0.01 | ||
| HR | 14 | int32 CDAB | R | A | ×0.01 | ||
| HR | 16 | int32 CDAB | R | A | ×0.01 | ||
| HR | 18 | int32 CDAB | R | W | ×0.1 | ||
| HR | 20 | int32 CDAB | R | W | ×0.1 | ||
| HR | 22 | int32 CDAB | R | W | ×0.1 | ||
| HR | 24 | int32 CDAB | R | VA | ×0.1 | ||
| HR | 26 | int32 CDAB | R | VA | ×0.1 | ||
| HR | 28 | int32 CDAB | R | VA | ×0.1 | ||
| HR | 30 | int32 CDAB | R | var | ×0.1 | ||
| HR | 32 | int32 CDAB | R | var | ×0.1 | ||
| HR | 34 | int32 CDAB | R | var | ×0.1 | ||
| HR | 36 | int32 CDAB | R | V | ×0.1 | ||
| HR | 38 | int32 CDAB | R | V | ×0.1 | ||
| HR | 40 | int32 CDAB | R | W | ×0.1 | ||
| HR | 42 | int32 CDAB | R | VA | ×0.1 | ||
| HR | 44 | int32 CDAB | R | var | ×0.1 | ||
| HR | 46 | int16 | R | ×0.001 | |||
| HR | 47 | int16 | R | ×0.001 | |||
| HR | 48 | int16 | R | ×0.001 | |||
| HR | 49 | int16 | R | ×0.001 | |||
| HR | 52 | int16 | R | Hz | ×0.1 | ||
| HR | 53 | int32 CDAB | R | kWh | ×0.1 | ||
| HR | 55 | int32 CDAB | R | kvarh | ×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).