Schneider Electric CM2000 Modbus register map
Also covers CM2050, CM2150, CM2250, CM2350, CM2450, CM2452
POWERLOGIC Circuit Monitor series 2000 (Square D), CM2050 to CM2452
- Official
- 156 registers
- Modbus RTU
- Revision 3 · 2026-10-24
- Identity: model
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
- 9600 8E1 · 9600 baud, 8 data bits, even parity, 1 stop bit
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 1-based · wire address = address − 1
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 156 holding registers
- Groups
- 13
- Translation tables
- 1
- Revision
- 3 · 2026-10-24
- Added
- ()
- File
- maps/schneider-electric/cm2000.mbmap.json · 28 KB · history
- SHA-256
- 4b61f6849815c85788ec2da36c5a24365700d8e02308c51709173f6eff8cf664
- Manufacturer
- se.com
Device identity
What a tool can read to check that this map fits the connected device (SPEC.md section 4.7). Registers with a role are read like any other register.
| Role | Register | Address | Type | Values |
|---|---|---|---|---|
| Model | Product ID | holding 2085 | uint16 | 460 = CM2050, 461 = CM2150, 462 = CM2250, +3 more |
Sources and notes
- Circuit Monitor Series 2000 Reference Manual · version 3020IM9806, 1999-02 Appendix B, abbreviated register listing; attached to Schneider FAQ FA276335
- Circuit Monitor Series 2000 Installation and Operation · version 3020IM9807 factory communication settings
Source: Circuit Monitor Series 2000 Reference Manual, instruction bulletin 3020IM9806 (February 1999), Appendix B
- Register numbers are those of the reference manual (1-based, as POWERLOGIC devices are read: register 1000 is holding register 41000, sent as 999). The manuals describe the POWERLOGIC (SY/MAX) protocol and do not mention Modbus; the Modbus mapping of the same register numbers is the POWERLOGIC convention and has not been checked on a device.
- Currents, voltages, power and frequency are 16-bit values scaled by the scale group registers 2020-2025 (powers of ten, default 0); this map reads them with scale_factor.
- Power factor is signed magnitude: bits 0-9 hold 0-1000 (thousandths), bit 15 is set for lagging.
- Each energy value takes 4 registers, each holding 4 decimal digits (0-9999). The manual does not say which register holds the lowest digits; they are listed one by one so they can be combined once the order is checked.
- Factory settings: device address 1, 9600 bps, even parity (commands 2325/2326 switch between even and no parity).
- The manual lists many more registers (minimum/maximum values, dates and times, alarms, logs, harmonics); only the main ones are here.
- Written from the manufacturer's manual; not tested on a device.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 1000 | uint16 | R | s | ×0.001 | ||
| HR | 1001 | int16 | R | Hz | ×10^Scale group F (frequency) | 0 when out of range | |
| HR | 1002 | int16 | R | °C | ×0.01 | Inside the circuit monitor | |
| HR | 1003 | int16 | R | A | ×10^Scale group A (phase current) | ||
| HR | 1004 | int16 | R | A | ×10^Scale group A (phase current) | ||
| HR | 1005 | int16 | R | A | ×10^Scale group A (phase current) | ||
| HR | 1006 | int16 | R | A | ×10^Scale group B (neutral current) | ||
| HR | 1007 | int16 | R | A | ×10^Scale group C (ground current) | ||
| HR | 1008 | int16 | R | A | ×10^Scale group A (phase current) | ||
| HR | 1009 | int16 | R | A | ×10^Scale group A (phase current) | ||
| HR | 1010 | int16 | R | % | ×0.1 | ||
| HR | 1011 | int16 | R | % | ×0.1 | ||
| HR | 1012 | int16 | R | % | ×0.1 | ||
| HR | 1013 | int16 | R | % | ×0.1 | ||
| HR | 1014 | int16 | R | V | ×10^Scale group D (voltage) | ||
| HR | 1015 | int16 | R | V | ×10^Scale group D (voltage) | ||
| HR | 1016 | int16 | R | V | ×10^Scale group D (voltage) | ||
| HR | 1017 | int16 | R | V | ×10^Scale group D (voltage) | ||
| HR | 1018 | int16 | R | V | ×10^Scale group D (voltage) | ||
| HR | 1019 | int16 | R | V | ×10^Scale group D (voltage) | ||
| HR | 1020 | int16 | R | V | ×10^Scale group D (voltage) | ||
| HR | 1021 | int16 | R | V | ×10^Scale group D (voltage) | ||
| HR | 1022 | int16 | R | % | ×0.1 | ||
| HR | 1023 | int16 | R | % | ×0.1 | ||
| HR | 1024 | int16 | R | % | ×0.1 | ||
| HR | 1025 | int16 | R | % | ×0.1 | ||
| HR | 1026 | int16 | R | % | ×0.1 | ||
| HR | 1027 | int16 | R | % | ×0.1 | ||
| HR | 1028 | int16 | R | % | ×0.1 | ||
| HR | 1029 | int16 | R | % | ×0.1 | ||
| HR | 1031 | uint16 bits 0–9 | R | ×0.001 | Magnitude; the sign is bit 15 of the same register | ||
| HR | 1031 | bool bit 15 | R | ||||
| HR | 1032 | uint16 bits 0–9 | R | ×0.001 | Magnitude; the sign is bit 15 of the same register | ||
| HR | 1032 | bool bit 15 | R | ||||
| HR | 1033 | uint16 bits 0–9 | R | ×0.001 | Magnitude; the sign is bit 15 of the same register | ||
| HR | 1033 | bool bit 15 | R | ||||
| HR | 1034 | uint16 bits 0–9 | R | ×0.001 | Magnitude; the sign is bit 15 of the same register | ||
| HR | 1034 | bool bit 15 | R | ||||
| HR | 1035 | uint16 bits 0–9 | R | ×0.001 | Magnitude; the sign is bit 15 of the same register | ||
| HR | 1035 | bool bit 15 | R | ||||
| HR | 1036 | uint16 bits 0–9 | R | ×0.001 | Magnitude; the sign is bit 15 of the same register | ||
| HR | 1036 | bool bit 15 | R | ||||
| HR | 1037 | uint16 bits 0–9 | R | ×0.001 | Magnitude; the sign is bit 15 of the same register | ||
| HR | 1037 | bool bit 15 | R | ||||
| HR | 1038 | uint16 bits 0–9 | R | ×0.001 | Magnitude; the sign is bit 15 of the same register | ||
| HR | 1038 | bool bit 15 | R | ||||
| HR | 1039 | int16 | R | kW | ×10^Scale group E (power) | ||
| HR | 1040 | int16 | R | kW | ×10^Scale group E (power) | ||
| HR | 1041 | int16 | R | kW | ×10^Scale group E (power) | ||
| HR | 1042 | int16 | R | kW | ×10^Scale group E (power) | ||
| HR | 1043 | int16 | R | kvar | ×10^Scale group E (power) | ||
| HR | 1044 | int16 | R | kvar | ×10^Scale group E (power) | ||
| HR | 1045 | int16 | R | kvar | ×10^Scale group E (power) | ||
| HR | 1046 | int16 | R | kvar | ×10^Scale group E (power) | ||
| HR | 1047 | int16 | R | kVA | ×10^Scale group E (power) | ||
| HR | 1048 | int16 | R | kVA | ×10^Scale group E (power) | ||
| HR | 1049 | int16 | R | kVA | ×10^Scale group E (power) | ||
| HR | 1050 | int16 | R | kVA | ×10^Scale group E (power) | ||
| HR | 1051 | int16 | R | % | ×0.1 | ||
| HR | 1052 | int16 | R | % | ×0.1 | ||
| HR | 1053 | int16 | R | % | ×0.1 | ||
| HR | 1054 | int16 | R | % | ×0.1 | ||
| HR | 1055 | int16 | R | % | ×0.1 | ||
| HR | 1056 | int16 | R | % | ×0.1 | ||
| HR | 1057 | int16 | R | % | ×0.1 | ||
| HR | 1058 | int16 | R | % | ×0.1 | ||
| HR | 1059 | int16 | R | % | ×0.1 | ||
| HR | 1060 | int16 | R | % | ×0.1 | ||
| HR | 1061 | int16 | R | % | ×0.1 | ||
| HR | 1062 | int16 | R | % | ×0.1 | ||
| HR | 1063 | int16 | R | % | ×0.1 | ||
| HR | 1064 | int16 | R | % | ×0.1 | ||
| HR | 1065 | int16 | R | % | ×0.1 | ||
| HR | 1066 | int16 | R | % | ×0.1 | ||
| HR | 1067 | int16 | R | % | ×0.1 | ||
| HR | 1068 | int16 | R | % | ×0.1 | ||
| HR | 1069 | int16 | R | % | ×0.1 | ||
| HR | 1070 | int16 | R | % | ×0.1 | ||
| HR | 1071 | int16 | R | ×0.1 | |||
| HR | 1072 | int16 | R | ×0.1 | |||
| HR | 1073 | int16 | R | ×0.1 | |||
| HR | 1074 | int16 | R | ×0.01 | |||
| HR | 1075 | int16 | R | ×0.01 | |||
| HR | 1076 | int16 | R | ×0.01 | |||
| HR | 1077 | int16 | R | ×0.01 | |||
| HR | 1108 | int16 | R | % | ×0.1 | ||
| HR | 1109 | int16 | R | % | ×0.1 | ||
| HR | 1110 | int16 | R | % | ×0.1 | ||
| HR | 1111 | int16 | R | % | ×0.1 | ||
| HR | 1115 | int16 | R | kW | ×10^Scale group E (power) | ||
| HR | 1117 | uint16 | R | ||||
| HR | 1191 | int16 | R | Scaled value | |||
| HR | 1192 | int16 | R | ||||
| HR | 1193 | int16 | R | ||||
| HR | 1194 | int16 | R | ||||
| HR | 1601 | uint16 | R | Wh | One 4-digit group (0-9999) of the value; see the notes | ||
| HR | 1602 | uint16 | R | Wh | One 4-digit group (0-9999) of the value; see the notes | ||
| HR | 1603 | uint16 | R | Wh | One 4-digit group (0-9999) of the value; see the notes | ||
| HR | 1604 | uint16 | R | Wh | One 4-digit group (0-9999) of the value; see the notes | ||
| HR | 1605 | uint16 | R | varh | One 4-digit group (0-9999) of the value; see the notes |
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).