Cummins PowerCommand 2.2 / 2.3 Modbus register map
Also covers PowerCommand 2.3, PCC2300
Generator set control, Modbus RTU on RS485, with fault status bitmaps
- Official
- 754 registers
- Modbus RTU
- Revision 1 · 2026-10-15
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
- 1default
- 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
- 1-based · wire address = address − 1
- Max read
- 40 registers per request
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 754 holding registers
- Groups
- 8
- Revision
- 1 · 2026-10-15
- Added
- ()
- File
- maps/cummins/powercommand-2x.mbmap.json · 133 KB · history
- SHA-256
- b1ae3365528c4512d33f19bc551972cb26fe1e3239a9aafea163b195e00dcca4
- Manufacturer
- cummins.com
Sources and notes
- Modbus Register Mapping, Control · version A029X159 (Issue 26), 2020-06 sections 13 (parametrics) and 14 (fault status bitmaps), registers marked PC 2.x
Source: Cummins, Modbus Register Mapping (Control), A029X159 Issue 26 (6-2020): sections 13 and 14
- Addresses are the manual's 4xxxx numbers less 40000, 1-based (40011 is holding register 11).
- 32-bit values have the high register first. Write both registers, high then low.
- Text values the manual lists as one character per register (serial numbers, time stamps) are left out.
- The manual does not give the factory serial settings: check baud rate, parity, stop bits and node address on the control.
- Save Trims writes the settings to flash memory, which wears out: use it only after a change, never on a schedule.
- Registers missing from older control software answer with an exception.
- Not available, out of range, network failure and hardware failure readings are the highest values of each type (section 13.2), declared as sentinels.
- 733 one-character text registers left out.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 10 | uint16 | R | ||||
| HR | 11 | uint16 | R | ||||
| HR | 12 | uint16 | R | ||||
| HR | 13 | uint16 | R | ||||
| HR | 14 | int16 | R | % | ×0.01 | ||
| HR | 16 | uint16 | R | ||||
| HR | 17 | uint16 | R | ||||
| HR | 18 | uint16 | R | V | |||
| HR | 19 | uint16 | R | V | |||
| HR | 20 | uint16 | R | V | |||
| HR | 21 | uint16 | R | V | |||
| HR | 22 | uint16 | R | V | |||
| HR | 23 | uint16 | R | V | |||
| HR | 24 | uint16 | R | V | |||
| HR | 25 | uint16 | R | V | |||
| HR | 26 | uint16 | R | A | |||
| HR | 27 | uint16 | R | A | |||
| HR | 28 | uint16 | R | A | |||
| HR | 29 | uint16 | R | A | |||
| HR | 31 | int16 | R | kW | |||
| HR | 32 | int16 | R | kW | |||
| HR | 33 | int16 | R | kW | |||
| HR | 34 | int16 | R | kW | |||
| HR | 35 | int16 | R | kVAR | |||
| HR | 36 | int16 | R | kVAR | |||
| HR | 37 | int16 | R | kVAR | |||
| HR | 38 | int16 | R | kVAR | |||
| HR | 39 | int16 | R | ×0.01 | |||
| HR | 40 | uint16 | R | kVA | |||
| HR | 41 | uint16 | R | kVA | |||
| HR | 42 | uint16 | R | kVA | |||
| HR | 43 | uint16 | R | kVA | |||
| HR | 44 | uint16 | R | Hz | ×0.01 | ||
| HR | 46 | uint32 ABCD | R | kWh | |||
| HR | 48 | uint32 ABCD | R | kWh | |||
| HR | 50 | int32 ABCD | R | kWh | |||
| HR | 52 | uint32 ABCD | R | kVARh | |||
| HR | 54 | uint32 ABCD | R | kVARh | |||
| HR | 56 | int32 ABCD | R | kVARh | |||
| HR | 58 | uint16 | R | % | ×0.1 | ||
| HR | 59 | uint16 | R | % | ×0.1 | ||
| HR | 60 | uint16 | R | % | ×0.1 | ||
| HR | 61 | uint16 | R | V | ×0.1 | ||
| HR | 62 | uint16 | R | kPa | |||
| HR | 63 | int16 | R | °F | ×0.1 | ||
| HR | 64 | int16 | R | °C | ×0.1 | ||
| HR | 65 | int16 | R | °F | ×0.1 | ||
| HR | 66 | int16 | R | °F | ×0.1 | ||
| HR | 67 | int16 | R | gal/h | ×0.05 | ||
| HR | 68 | uint16 | R | rpm | |||
| HR | 69 | uint16 | R | ||||
| HR | 70 | uint32 ABCD | R | s | ×0.1 | ||
| HR | 72 | uint32 ABCD | R | gal | ×0.1 | ||
| HR | 74 | uint32 ABCD | R | ||||
| HR | 201 | uint16 | R | ||||
| HR | 207 | uint16 | R | V | ×0.001 | ||
| HR | 210 | int16 | R | % | ×0.01 | ||
| HR | 211 | int16 | R | % | ×0.01 | ||
| HR | 228 | uint16 | R | ||||
| HR | 229 | uint16 | R | psi | ×0.1 | ||
| HR | 230 | uint16 | R | psi | ×0.1 | ||
| HR | 231 | uint16 | R | ||||
| HR | 232 | int16 | R | psi | ×0.1 | ||
| HR | 235 | uint16 | R | ||||
| HR | 236 | uint16 | R | ||||
| HR | 237 | uint16 | R | ||||
| HR | 242 | int16 | R | °F | ×0.1 | ||
| HR | 254 | uint16 | R | psi | ×0.1 | ||
| HR | 257 | int16 | R | °F | ×0.1 | ||
| HR | 258 | uint32 ABCD | R | psi | ×0.1 | ||
| HR | 260 | int16 | R | °F | ×0.1 | ||
| HR | 261 | int16 | R | °F | ×0.1 | ||
| HR | 264 | int16 | R | % | |||
| HR | 276 | uint16 | R | psi | ×0.1 | ||
| HR | 277 | uint16 | R | psi | ×0.1 | ||
| HR | 278 | uint16 | R | ||||
| HR | 279 | uint32 ABCD | R | rpm | |||
| HR | 281 | uint32 ABCD | R | psi | ×0.1 | ||
| HR | 283 | uint16 | R | ||||
| HR | 285 | uint16 | R | s | |||
| HR | 286 | uint16 | R | s | |||
| HR | 287 | uint16 | R | ||||
| HR | 289 | uint16 | R | ||||
| HR | 290 | uint32 ABCD | R | s | |||
| HR | 298 | uint32 ABCD | R | ||||
| HR | 300 | uint16 | RW | ||||
| HR | 301 | uint16 | RW | ||||
| HR | 400 | bool bit 0 | R | Fault code 115, shutdown; bit 0 of Fault Status Bitmap 1 | |||
| HR | 400 | bool bit 1 | R | Fault code 122, warning; bit 1 of Fault Status Bitmap 1 | |||
| HR | 400 | bool bit 2 | R | Fault code 123, warning; bit 2 of Fault Status Bitmap 1 | |||
| HR | 400 | bool bit 3 | R | Fault code 124, warning; bit 3 of Fault Status Bitmap 1 | |||
| HR | 400 | bool bit 4 | R | Fault code 135, warning; bit 4 of Fault Status Bitmap 1 | |||
| HR | 400 | bool bit 5 | R | Fault code 141, warning; bit 5 of Fault Status Bitmap 1 | |||
| HR | 400 | bool bit 6 | R | Fault code 143, warning; bit 6 of Fault Status Bitmap 1 | |||
| HR | 400 | bool bit 7 | R | Fault code 144, warning; bit 7 of Fault Status Bitmap 1 | |||
| HR | 400 | bool bit 8 | R | Fault code 145, warning; bit 8 of Fault Status Bitmap 1 | |||
| HR | 400 | bool bit 9 | R | Fault code 146, derate; bit 9 of Fault Status Bitmap 1 | |||
| HR | 400 | bool bit 10 | R | Fault code 151, shutdown; bit 10 of Fault Status Bitmap 1 | |||
| HR | 400 | bool bit 11 | R | Fault code 153, warning; bit 11 of Fault Status Bitmap 1 | |||
| HR | 400 | bool bit 12 | R | Fault code 154, warning; bit 12 of Fault Status Bitmap 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).