WEG CFW500 Modbus register map
Compact AC drive with a built-in RS-485 Modbus RTU slave port. Every drive parameter is exposed as a 16-bit holding register, so monitoring values, setpoints, the control word and the speed reference are all read and written the same way.
- Protocol
- Modbus RTU
- Defaults
- Factory values per the Modbus manual: address 1 (P0308), 19200 bit/s (P0310 = 1), 8 data bits with even parity and 1 stop bit (P0311 = 1), Modbus RTU on the standard serial port (P0312 = 2).
- Addresses in the manual
- 0-based protocol addresses, as sent on the wire
- 32 and 64-bit values
- Not stated in the manual
- Registers listed
- 42
- Checked against
- Document 10002253377, revision 04, publication date 06/2025. Scales and ranges for monitoring and setpoint parameters from the CFW500 Programming Manual V2.2X, document 10002296099 / 07, 09/2024
Address base. The Modbus manual says the parameter number is used directly as the holding register address with zero offset (P0680 is register 680, P0682 is 682). Masters that count from 40001 need that base added (p. 5-1). Address 1 in the manual is address 1 on the wire.
Word order. All rows are single 16-bit registers, so word order does not apply.
Modbus Poll and the Modbus protocol itself count from 0. The "Wire address" column is the number to type into Modbus Poll.
Downloads
The register table has every column on this page. The blocks file imports into Modbus Poll. The template JSON holds the same blocks plus unit, scale and access for scripts.
Registers
| Manual | Wire | Register | Type | Regs | Unit | Scale | Access | Area |
|---|---|---|---|---|---|---|---|---|
| 1 | 1 | Speed reference in use (any source)P0001_SpeedReference · Shown in the unit and scale chosen by the reference scaling parameters, so convert in the master. Full scale is 66.0 Hz (55.0 Hz if P0204 = 6) at factory settings. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 2 | 2 | Output speed (motor), same scale as P0001P0002_OutputSpeed · Compensations on the output frequency are not included, use P0005 for the real frequency. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 3 | 3 | Motor current (RMS)P0003_MotorCurrent |
uint16 | 1 | A | 0.1 | R | Holding (FC03) |
| 4 | 4 | DC link voltageP0004_DCLinkVoltage |
uint16 | 1 | V | 1 | R | Holding (FC03) |
| 5 | 5 | Output frequency applied to the motorP0005_OutputFrequency |
uint16 | 1 | Hz | 0.1 | R | Holding (FC03) |
| 6 | 6 | Inverter status codeP0006_InverterStatus · 0 ready, 1 run, 2 undervoltage, 3 fault, 4 self-tuning, 5 configuration, 6 DC braking, 7 sleep mode. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 7 | 7 | Output line voltageP0007_OutputVoltage |
uint16 | 1 | V | 1 | R | Holding (FC03) |
| 9 | 9 | Motor torque relative to rated torqueP0009_MotorTorque |
int16 | 1 | % | 0.1 | R | Holding (FC03) |
| 10 | 10 | Output powerP0010_OutputPower |
uint16 | 1 | kW | 0.1 | R | Holding (FC03) |
| 11 | 11 | Motor power factorP0011_PowerFactor |
int16 | 1 | 0.01 | R | Holding (FC03) | |
| 12 | 12 | Digital input states DI1 to DI8 (bit 0 is DI1)P0012_DigitalInputStatus |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 13 | 13 | Digital output states DO1 to DO5 (bit 0 is DO1)P0013_DigitalOutputStatus |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 14 | 14 | Analog output 1 valueP0014_AO1Value |
uint16 | 1 | % | 0.1 | R | Holding (FC03) |
| 18 | 18 | Analog input 1 valueP0018_AI1Value |
int16 | 1 | % | 0.1 | R | Holding (FC03) |
| 19 | 19 | Analog input 2 valueP0019_AI2Value |
int16 | 1 | % | 0.1 | R | Holding (FC03) |
| 23 | 23 | Main software versionP0023_MainSoftwareVersion |
uint16 | 1 | 0.01 | R | Holding (FC03) | |
| 30 | 30 | Power module temperature (internal NTC)P0030_PowerModuleTemperature |
int16 | 1 | °C | 1 | R | Holding (FC03) |
| 37 | 37 | Motor overload (Ixt) accumulatorP0037_MotorOverloadIxt |
uint16 | 1 | % | 1 | R | Holding (FC03) |
| 48 | 48 | Alarm number currently activeP0048_PresentAlarm |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 49 | 49 | Fault number currently activeP0049_PresentFault |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 50 | 50 | Most recent fault numberP0050_LastFault |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 100 | 100 | Acceleration time (ramp 1)P0100_AccelerationTime |
uint16 | 1 | s | 0.1 | RW | Holding (FC03) |
| 101 | 101 | Deceleration time (ramp 1)P0101_DecelerationTime |
uint16 | 1 | s | 0.1 | RW | Holding (FC03) |
| 133 | 133 | Minimum speed referenceP0133_MinimumSpeed |
uint16 | 1 | Hz | 0.1 | RW | Holding (FC03) |
| 134 | 134 | Maximum speed referenceP0134_MaximumSpeed |
uint16 | 1 | Hz | 0.1 | RW | Holding (FC03) |
| 308 | 308 | Modbus slave addressP0308_SerialAddress · Range 1 to 247 per the programming manual (the Modbus manual lists 0 to 255), factory value 1. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 310 | 310 | Serial baud rate selectorP0310_SerialBaudRate · 0 = 9600, 1 = 19200 (factory), 2 = 38400 bit/s. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 311 | 311 | Serial data bits, parity and stop bits selectorP0311_SerialBytesConfig · 0 = 8N1, 1 = 8E1 (factory), 2 = 8O1, 3 = 8N2, 4 = 8E2, 5 = 8O2. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 313 | 313 | Action taken on a communication errorP0313_CommErrorAction · 0 inactive, 1 ramp stop, 2 general disable, 3 go to local, 4 local keeping enable, 5 cause fault. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 314 | 314 | Serial watchdog timeout (0 disables)P0314_SerialWatchdog · The Modbus manual lists the range as 0 to 999 and the programming manual as 0.0 to 999.0 s, so one decimal place is assumed from the programming manual. |
uint16 | 1 | s | 0.1 | RW | Holding (FC03) |
| 316 | 316 | Serial interface statusP0316_SerialInterfaceStatus · 0 inactive, 1 active, 2 watchdog error. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 401 | 401 | Motor rated currentP0401_MotorRatedCurrent |
uint16 | 1 | A | 0.1 | RW | Holding (FC03) |
| 402 | 402 | Motor rated speedP0402_MotorRatedSpeed |
uint16 | 1 | rpm | 1 | RW | Holding (FC03) |
| 403 | 403 | Motor rated frequencyP0403_MotorRatedFrequency · Also the base of the 13-bit speed scale used by P0681 and P0683. |
uint16 | 1 | Hz | 1 | RW | Holding (FC03) |
| 680 | 680 | Logical status wordP0680_LogicalStatus · Bit 0 STO, 1 run command, 2 fire mode, 4 quick stop, 5 second ramp, 6 config mode, 7 alarm, 8 running, 9 enabled, 10 forward, 11 jog, 12 remote, 13 undervoltage, 14 automatic PID, 15 fault. |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 681 | 681 | Actual speed on the 13-bit scaleP0681_SpeedAt13Bits · 8192 equals the motor rated frequency P0403, negative means reverse, saturates at 32767. |
int16 | 1 | 1 | R | Holding (FC03) | |
| 682 | 682 | Serial control wordP0682_SerialControlWord · Bit 0 run/stop, 1 general enable, 2 run forward, 3 jog, 4 remote, 5 second ramp, 6 quick stop, 7 fault reset, 13 internal PID manual, 14 external PID manual. The drive must be configured to take commands from serial (P0220 to P0228). The manual labels this parameter read-only for local sources and writable via the network. |
bitfield16 | 1 | 1 | RW | Holding (FC03) | |
| 683 | 683 | Serial speed reference on the 13-bit scaleP0683_SerialSpeedReference · 8192 equals the motor rated frequency P0403, so 30 Hz on a 60 Hz motor is 4096. Direction also depends on P0682 bit 2. |
int16 | 1 | 1 | RW | Holding (FC03) | |
| 695 | 695 | Digital output values driven by the network (bit 0 is DO1)P0695_DOxValue · Only applies to outputs whose function is set to P0695 value. |
bitfield16 | 1 | 1 | RW | Holding (FC03) | |
| 696 | 696 | Analog output value 1 from the networkP0696_AOxValue1 · 15-bit scale: 32767 equals 100 percent of the output. |
int16 | 1 | 1 | RW | Holding (FC03) | |
| 697 | 697 | Analog output value 2 from the networkP0697_AOxValue2 · 15-bit scale: 32767 equals 100 percent of the output. |
int16 | 1 | 1 | RW | Holding (FC03) | |
| 698 | 698 | Analog output value 3 from the networkP0698_AOxValue3 · 15-bit scale: 32767 equals 100 percent. On the CFW500 analog output 3 is the frequency output. |
int16 | 1 | 1 | RW | Holding (FC03) |
Scale is the number to multiply the raw value by to get the unit.
Open in Modbus Poll
- Download the Modbus Poll blocks file.
- Open Modbus Poll, connect to the device and set its unit ID. The manual does not state the word order for 32-bit values. Check one known value (a voltage or a counter) and switch the setting if it reads wrong.
- In the blocks panel on the right, click Import CSV and pick the file. CSV import is a Pro feature. Without Pro, Modbus Poll polls the first 20 values of your blocks.
- The wire addresses are already in the file, so there is no 0-based or 1-based conversion to do.
Once the values look right, export the tag list to Ignition, Kepware, Node-RED, Home Assistant or Voltrus SCADA.
Source and accuracy
Manufacturer document: CFW500 Modbus RTU User's Manual (static.weg.net)
Document 10002253377, revision 04, publication date 06/2025. Scales and ranges for monitoring and setpoint parameters from the CFW500 Programming Manual V2.2X, document 10002296099 / 07, 09/2024, Modbus manual p. 4-4 to 4-13, 5-1; programming manual p. 0-1 to 0-11, 18-1 to 18-6. Read on 2026-10-24.
Also used: CFW500 Programming Manual V2.2X (static.weg.net)
Addresses, types, units and scale are taken from the document above. Names and descriptions are written by Voltrus. Firmware versions can differ, so confirm a value on your own device before you rely on it.
Found a mistake? Report it by email with the register address and the manual page.