WEG CFW700 Modbus register map
Frequency inverter with Modbus RTU: monitoring, status and control words, speed and ramp settings, motor data and serial settings
- Official
- 67 registers
- Modbus RTU
- Revision 1 · 2026-11-10
- 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 8N1 · 19200 baud, 8 data bits, none 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
- 67 holding registers
- Groups
- 10
- Translation tables
- 5
- Revision
- 1 · 2026-11-10
- Added
- ()
- File
- maps/weg/cfw700.mbmap.json · 15 KB · history
- SHA-256
- e28d6cc1e87a0f15bfe0f73ddd11feee9246f9cd8cc85852383b5fca0b3b8dac
- 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 | Software version | holding 23 | uint16 |
Sources and notes
- WEG CFW700 Modbus RTU User's Manual · version 10001123706 / 01, 2011-05 linked in issue #193; memory map, status and control words, serial parameters
- WEG CFW700 manual de programación (V2.3X) · version 10001006640 / 05 linked in issue #193; ranges and units of the monitoring and setting parameters
Source: WEG CFW700 Modbus RTU User's Manual 10001123706/01 and CFW700 programming manual V2.3X 10001006640/05
- Every parameter Pxxxx is the holding register of the same number (P0003 is register 3, address offset zero); the Modicon address is 40001 + the number.
- Values travel as integers: a parameter shown as 1.5 A is sent as 15. The scales follow the decimal places of the programming manual.
- Only the parameters used most in monitoring and control are listed, not the full parameter list of the programming manual. Other parameters can be added in the same way (register = parameter number).
- P0001 and P0002 are shown in rpm with the factory units; they follow the scale and unit chosen in the display parameters.
- P0682 and P0683 can be written only through the serial interface, and the drive must use serial as command and reference source (P0105, P0220 to P0228).
- Baud rate, parity and address defaults follow the factory values in the Modbus manual (P0308 = 1, P0310 = 1, P0311 = 0); the drive can be set to 57600 bit/s.
- Written from the manufacturer's documents; not tested on a device. The Modbus manual is dated 2011 and the programming manual is V2.3X: newer firmware may add parameters.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 1 | uint16 | R | rpm | P0001 | ||
| HR | 2 | uint16 | R | rpm | P0002 | ||
| 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 | uint16 | R | ×0.01 | P0011; cos phi of the output | ||
| HR | 12 | uint16 | R | P0012; bit field DI1 to DI8, see the programming manual | |||
| HR | 13 | uint16 | R | P0013; bit field DO1 to DO5, see the programming manual | |||
| HR | 14 | uint16 | R | % | ×0.01 | P0014 | |
| HR | 15 | uint16 | R | % | ×0.01 | P0015 | |
| HR | 18 | int16 | R | % | ×0.01 | P0018 | |
| HR | 19 | int16 | R | % | ×0.01 | P0019 | |
| HR | 23 | uint16 | R | ×0.01 | P0023 | ||
| HR | 30 | int16 | R | °C | ×0.1 | P0030 | |
| HR | 34 | int16 | R | °C | ×0.1 | P0034 | |
| HR | 36 | uint16 | R | rpm | P0036 | ||
| HR | 37 | uint16 | R | % | P0037; a fault occurs at 100 % | ||
| HR | 42 | uint16 | R | h | P0042 | ||
| HR | 43 | uint16 | R | h | ×0.1 | P0043 | |
| HR | 44 | uint16 | R | kWh | P0044; calculated indirectly, not for billing | ||
| HR | 45 | uint16 | R | h | P0045 | ||
| HR | 48 | uint16 | R | P0048; alarm number | |||
| HR | 49 | uint16 | R | P0049; fault number | |||
| HR | 100 | uint16 | RW | s | ×0.1 | P0100 | |
| HR | 101 | uint16 | RW | s | ×0.1 | P0101 | |
| HR | 121 | uint16 | RW | rpm | P0121 | ||
| HR | 133 | uint16 | RW | rpm | P0133 | ||
| HR | 134 | uint16 | RW | rpm | P0134 | ||
| HR | 308 | uint16 | RW | P0308; changed only with the motor stopped | |||
| HR | 310 | uint16 | RW | P0310; changed only with the motor stopped | |||
| HR | 311 | uint16 | RW | P0311; changed only with the motor stopped | |||
| HR | 313 | uint16 | RW | P0313; changed only with the motor stopped | |||
| HR | 314 | uint16 | RW | s | ×0.1 | P0314; 0 disables; changed only with the motor stopped | |
| HR | 316 | uint16 | R | P0316 | |||
| HR | 400 | uint16 | RW | V | P0400 | ||
| HR | 402 | uint16 | RW | rpm | P0402 | ||
| HR | 403 | uint16 | RW | Hz | P0403 | ||
| HR | 680 | bool bit 4 | R | 1 = fast stop command being executed | |||
| HR | 680 | bool bit 5 | R | 1 = second ramp (P0102/P0103) in use | |||
| HR | 680 | bool bit 6 | R | 1 = drive cannot be enabled (self-tuning, start-up routine, incompatible setting, etc.) | |||
| HR | 680 | bool bit 7 | R | 1 = alarm condition | |||
| HR | 680 | bool bit 8 | R | 1 = running or ramping | |||
| HR | 680 | bool bit 9 | R | 1 = general enable on | |||
| HR | 680 | bool bit 10 | R | 1 = forward, 0 = reverse | |||
| HR | 680 | bool bit 11 | R | ||||
| HR | 680 | bool bit 12 | R | 1 = remote, 0 = local | |||
| HR | 680 | bool bit 13 | R | ||||
| HR | 680 | bool bit 15 | R | 1 = fault condition | |||
| HR | 680 | uint16 | R | P0680; full 16-bit word | |||
| HR | 681 | int16 | R | P0681; 8192 = synchronous speed, negative = reverse | |||
| HR | 682 | uint16 | RW | P0682; full 16-bit word; writable only via serial, which must be the command source (P0105, P0220 to P0228) | |||
| HR | 682 | bool bit 0 | RW | 1 = run, 0 = stop by ramp | |||
| HR | 682 | bool bit 1 | RW | 1 = enable, 0 = disable | |||
| HR | 682 | bool bit 2 | RW | 1 = follow the reference sign, 0 = opposite | |||
| HR | 682 | bool bit 3 | RW | ||||
| HR | 682 | bool bit 4 | RW | 1 = remote, 0 = local | |||
| HR | 682 | bool bit 5 | RW | 1 = use the second ramp | |||
| HR | 682 | bool bit 6 | RW | not allowed in V/f or VVW control | |||
| HR | 682 | bool bit 7 | RW | 1 = reset a fault | |||
| HR | 683 | int16 | RW | P0683; 8192 = synchronous speed, negative = reverse; serial must be the reference source (P0221, P0222) | |||
| HR | 695 | uint16 | RW | P0695; bit 0 to 4 set DO1 to DO5 when their function is P0695 content | |||
| HR | 696 | int16 | RW | P0696; 32767 = 100 % of the output | |||
| HR | 697 | int16 | RW | P0697; 32767 = 100 % of the output |
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).