WEG CFW500 Modbus register map
Compact frequency inverter with Modbus RTU: monitoring, ramps and references, regulation, configuration, I/O, protections, motor, PID, SoftPLC and network control parameters
- Official
- 367 registers
- Modbus RTU
- Revision 3 · 2026-10-20
- Identity: firmware
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 8E1 · 19200 baud, 8 data bits, even parity, 1 stop bit
- 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
- 367 holding registers
- Groups
- 17
- Translation tables
- 34
- Revision
- 3 · 2026-10-20
- Added
- ()
- File
- maps/weg/cfw500.mbmap.json · 81 KB · history
- SHA-256
- 8f31ce9f3a5884ad1b20aaabebe401db91f657a8245485070b0224ea8f3d6e34
- Manufacturer
- weg.net
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 |
|---|---|---|---|---|
| Firmware | Main software version | holding 23 | uint16 |
Sources and notes
- WEG CFW500 Modbus RTU communication manual
- WEG CFW500 programming manual (V2.2X), parameter descriptions · version V2.2X ranges, scales, units and read-only marks of the parameters added in revision 3
- WEG CFW500 programming manual (V2.0X), quick reference of parameters
Source: WEG CFW500 programming manual V2.2X and Modbus RTU manual
- Every parameter Pxxxx is the holding register of the same number (P0003 is register 3); the Modicon address is 40001 + the number.
- Values travel as integers: a parameter shown as 1.5 A is sent as 15. Scales in this map follow the decimal places of the programming manual.
- Read from the programming manual V2.2X: 327 parameters with documented ranges. Parameters of the CAN, Ethernet and other network modules (P0700 and up, except P0680 to P0698) are not included; they are described in the module manuals.
- P0001 and P0002 use the scale and unit chosen in P0208 to P0210, so they are shown raw.
- P0682 and P0683 are written only through the serial interface, and the drive must be set to use serial as command and reference source (P0105 and P0220 to P0228).
- P0312 = 2 selects Modbus RTU on the standard RS485 interface (default); a remote HMI uses the same port with P0312 = 0.
- Parity and stop bits: P0311, default 1 = 8 data bits, even parity, 1 stop bit.
- Parameters marked 'can be changed only with the motor stopped' are the manual's cfg parameters; the drive refuses a write while the motor runs.
- A drive answers with an exception when a block of registers contains a parameter its firmware does not have, and the whole block fails. Parameters differ between firmware versions (V2.2X here); if a block fails, switch off the registers that the drive does not have (in Modbench: right-click, stop reading it).
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 0 | uint16 | RW | P0000 | |||
| HR | 1 | uint16 | R | P0001; scale set by P0208 to P0210 | |||
| HR | 2 | uint16 | R | P0002; scale set by P0208 to P0210 | |||
| HR | 3 | uint16 | R | A | ×0.1 | P0003 | |
| HR | 4 | uint16 | R | V | P0004 | ||
| HR | 5 | uint16 | R | Hz | ×0.1 | P0005 | |
| HR | 6 | uint16 | R | P0006 | |||
| HR | 7 | uint16 | R | V | P0007 | ||
| HR | 9 | int16 | R | % | ×0.1 | P0009 | |
| HR | 10 | uint16 | R | kW | ×0.1 | P0010 | |
| HR | 11 | int16 | R | ×0.01 | P0011 | ||
| HR | 12 | bool bit 0 | R | P0012 | |||
| HR | 12 | bool bit 1 | R | P0012 | |||
| HR | 12 | bool bit 2 | R | P0012 | |||
| HR | 12 | bool bit 3 | R | P0012 | |||
| HR | 12 | bool bit 4 | R | P0012 | |||
| HR | 12 | bool bit 5 | R | P0012 | |||
| HR | 12 | bool bit 6 | R | P0012 | |||
| HR | 12 | bool bit 7 | R | P0012 | |||
| HR | 13 | bool bit 0 | R | P0013 | |||
| HR | 13 | bool bit 1 | R | P0013 | |||
| HR | 13 | bool bit 2 | R | P0013 | |||
| HR | 13 | bool bit 3 | R | P0013 | |||
| HR | 13 | bool bit 4 | R | P0013 | |||
| HR | 14 | uint16 | R | % | ×0.1 | P0014 | |
| HR | 15 | uint16 | R | % | ×0.1 | P0015 | |
| HR | 16 | uint16 | R | % | ×0.1 | P0016 | |
| HR | 17 | uint16 | R | Hz | P0017 | ||
| HR | 18 | int16 | R | % | ×0.1 | P0018 | |
| HR | 19 | int16 | R | % | ×0.1 | P0019 | |
| HR | 20 | int16 | R | % | ×0.1 | P0020 | |
| HR | 21 | int16 | R | % | ×0.1 | P0021 | |
| HR | 22 | uint16 | R | Hz | P0022 | ||
| HR | 23 | uint16 | R | ×0.01 | P0023 | ||
| HR | 24 | uint16 | R | ×0.01 | P0024 | ||
| HR | 27 | uint16 | R | P0027 | |||
| HR | 30 | int16 | R | °C | P0030 | ||
| HR | 37 | uint16 | R | % | P0037 | ||
| HR | 38 | uint16 | R | rpm | P0038 | ||
| HR | 39 | uint16 | R | P0039 | |||
| HR | 40 | uint16 | R | ×0.1 | P0040 | ||
| HR | 41 | uint16 | R | ×0.1 | P0041 | ||
| HR | 47 | uint16 | R | P0047 | |||
| HR | 48 | uint16 | R | P0048; alarm number | |||
| HR | 49 | uint16 | R | P0049; fault number | |||
| HR | 50 | uint16 | R | P0050 | |||
| HR | 51 | uint16 | R | A | ×0.1 | P0051 | |
| HR | 52 | uint16 | R | V | P0052 | ||
| HR | 53 | uint16 | R | Hz | ×0.1 | P0053 | |
| HR | 54 | int16 | R | °C | P0054 | ||
| HR | 55 | uint16 | R | P0055; bit field, see the manual | |||
| HR | 60 | uint16 | R | P0060 | |||
| HR | 61 | uint16 | R | A | ×0.1 | P0061 | |
| HR | 62 | uint16 | R | V | P0062 | ||
| HR | 63 | uint16 | R | Hz | ×0.1 | P0063 | |
| HR | 64 | int16 | R | °C | P0064 | ||
| HR | 65 | uint16 | R | P0065; bit field, see the manual | |||
| HR | 70 | uint16 | R | P0070 | |||
| HR | 71 | uint16 | R | A | ×0.1 | P0071 | |
| HR | 72 | uint16 | R | V | P0072 | ||
| HR | 73 | uint16 | R | Hz | ×0.1 | P0073 | |
| HR | 74 | int16 | R | °C | P0074 | ||
| HR | 75 | uint16 | R | P0075; bit field, see the manual | |||
| HR | 100 | uint16 | RW | s | ×0.1 | P0100 | |
| HR | 101 | uint16 | RW | s | ×0.1 | P0101 | |
| HR | 102 | uint16 | RW | s | ×0.1 | P0102 | |
| HR | 103 | uint16 | RW | s | ×0.1 | P0103 | |
| HR | 104 | uint16 | RW | P0104; can be changed only with the motor stopped | |||
| HR | 105 | uint16 | RW | P0105 | |||
| HR | 106 | uint16 | RW | s | ×0.1 | P0106 | |
| HR | 120 | uint16 | RW | P0120 | |||
| HR | 121 | uint16 | RW | Hz | ×0.1 | P0121 | |
| HR | 124 | int16 | RW | Hz | ×0.1 | P0124 | |
| HR | 125 | int16 | RW | Hz | ×0.1 | P0125 | |
| HR | 126 | int16 | RW | Hz | ×0.1 | P0126 | |
| HR | 127 | int16 | RW | Hz | ×0.1 | P0127 | |
| HR | 128 | int16 | RW | Hz | ×0.1 | P0128 | |
| HR | 129 | int16 | RW | Hz | ×0.1 | P0129 | |
| HR | 130 | int16 | RW | Hz | ×0.1 | P0130 | |
| HR | 131 | int16 | RW | Hz | ×0.1 | P0131 | |
| HR | 132 | uint16 | RW | % | P0132; can be changed only with the motor stopped | ||
| HR | 133 | uint16 | RW | Hz | ×0.1 | P0133 | |
| HR | 134 | uint16 | RW | Hz | ×0.1 | P0134 | |
| HR | 135 | uint16 | RW | A | ×0.1 | P0135 | |
| HR | 136 | uint16 | RW | % | ×0.1 | P0136 | |
| HR | 137 | uint16 | RW | % | ×0.1 | P0137 | |
| HR | 138 | int16 | RW | % | ×0.1 | P0138 | |
| HR | 139 | uint16 | RW | ms | P0139 | ||
| HR | 140 | uint16 | RW | ms | P0140 | ||
| HR | 142 | uint16 | RW | % | ×0.1 | P0142; can be changed only with the motor stopped | |
| HR | 143 | uint16 | RW | % | ×0.1 | P0143; can be changed only with the motor stopped | |
| HR | 144 | uint16 | RW | % | ×0.1 | P0144; can be changed only with the motor stopped | |
| HR | 145 | uint16 | RW | Hz | ×0.1 | P0145; can be changed only with the motor stopped | |
| HR | 146 | uint16 | RW | Hz | ×0.1 | P0146; can be changed only with the motor stopped | |
| HR | 147 | uint16 | RW | Hz | ×0.1 | P0147; can be changed only with the motor stopped | |
| HR | 150 | uint16 | RW | P0150; can be changed only with the motor stopped; see the manual for the values | |||
| HR | 151 | uint16 | RW | V | P0151 | ||
| HR | 152 | uint16 | RW | ×0.01 | P0152 | ||
| HR | 153 | uint16 | RW | V | P0153 | ||
| HR | 156 | uint16 | RW | A | ×0.1 | P0156 |
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).