{
  "spec_version": 1,
  "slug": "weg-cfw500",
  "manufacturer": "WEG",
  "model": "CFW500 (V2.2X)",
  "category": "VFD",
  "supplier_url": "https://www.weg.net/catalog/weg/US/en/Drives/Variable-Speed-Drives/OEM-and-General-Purpose-Drives/Variable-Speed-Drive-CFW500/c/GLOBAL_WDC_INVERTER_CFW500",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 1,
    "addressing": "zero_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst",
    "native_interface": "rs485",
    "serial": {
      "parity": "Even",
      "baud_rate": 19200,
      "data_bits": 8,
      "stop_bits": 1
    }
  },
  "coils": [],
  "discrete_inputs": [],
  "input_registers": [],
  "holding_registers": [
    {
      "address": 1,
      "count": 1,
      "name": "Speed reference",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Speed reference in the scale defined by P0208 (scale), P0209 (engineering unit) and P0210 (decimal places). No fixed factor can be applied because the unit is a setting."
    },
    {
      "address": 2,
      "count": 1,
      "name": "Output speed (motor)",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Speed applied to the inverter output, at the same scale as P0001 (set by P0208/P0209/P0210)."
    },
    {
      "address": 3,
      "count": 1,
      "name": "Motor current",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Inverter output current in A rms; the parameter range is 0.0 to 200.0 A, i.e. one decimal place."
    },
    {
      "address": 4,
      "count": 1,
      "name": "DC link voltage",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "DC link voltage in volts; parameter range 0 to 2000 V."
    },
    {
      "address": 5,
      "count": 1,
      "name": "Output frequency (motor)",
      "data_type": "UInt16",
      "units": "Hz",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Frequency applied to the motor; parameter range 0.0 to 500.0 Hz, i.e. one decimal place."
    },
    {
      "address": 6,
      "count": 1,
      "name": "Inverter status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Inverter status code 0-8, see Table 18.1 of the programming manual (0 = ready, 1 = run, 2 = general enable, 3 = no power, ...)."
    },
    {
      "address": 7,
      "count": 1,
      "name": "Output voltage",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Line voltage at the inverter output; parameter range 0 to 2000 V."
    },
    {
      "address": 9,
      "count": 1,
      "name": "Motor torque",
      "data_type": "Int16",
      "units": "%",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Torque in percent of rated torque; parameter range -1000.0 to 1000.0 %."
    },
    {
      "address": 10,
      "count": 1,
      "name": "Output power",
      "data_type": "UInt16",
      "units": "kW",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Electric power at the inverter output; parameter range 0.0 to 6553.5 kW, i.e. one decimal place."
    },
    {
      "address": 11,
      "count": 1,
      "name": "Power factor",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Power factor as the relation between real and total power; parameter range -1.00 to 1.00, i.e. two decimals."
    },
    {
      "address": 12,
      "count": 1,
      "name": "Digital input status DI8 to DI1",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit field of the digital inputs, DI1 in bit 0 through DI8 in bit 7."
    },
    {
      "address": 13,
      "count": 1,
      "name": "Digital output status DO5 to DO1",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit field of the digital outputs, DO1 in bit 0 through DO5 in bit 4."
    },
    {
      "address": 18,
      "count": 1,
      "name": "Analog input value AI1",
      "data_type": "Int16",
      "units": "%",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Analog input AI1 in percent; parameter range -100.0 to 100.0 %."
    },
    {
      "address": 19,
      "count": 1,
      "name": "Analog input value AI2",
      "data_type": "Int16",
      "units": "%",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Analog input AI2 in percent; parameter range -100.0 to 100.0 %."
    },
    {
      "address": 20,
      "count": 1,
      "name": "Analog input value AI3",
      "data_type": "Int16",
      "units": "%",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Analog input AI3 in percent; parameter range -100.0 to 100.0 %."
    },
    {
      "address": 100,
      "count": 1,
      "name": "Acceleration time",
      "data_type": "UInt16",
      "units": "s",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "RW",
      "description": "Acceleration ramp time; parameter range 0.1 to 999.0 s, factory 10.0 s."
    },
    {
      "address": 101,
      "count": 1,
      "name": "Deceleration time",
      "data_type": "UInt16",
      "units": "s",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "RW",
      "description": "Deceleration ramp time; parameter range 0.1 to 999.0 s, factory 10.0 s."
    },
    {
      "address": 133,
      "count": 1,
      "name": "Minimum speed reference",
      "data_type": "UInt16",
      "units": "Hz",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "RW",
      "description": "Minimum speed reference; parameter range 0.0 to 500.0 Hz."
    },
    {
      "address": 134,
      "count": 1,
      "name": "Maximum speed reference",
      "data_type": "UInt16",
      "units": "Hz",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "RW",
      "description": "Maximum speed reference; parameter range 0.0 to 500.0 Hz."
    },
    {
      "address": 209,
      "count": 1,
      "name": "Reference engineering unit",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Engineering unit shown for P0001/P0002: 0 = without unit, 1 = V, 2 = A, 3 = rpm, 4 = s, 5 = ms, 6 = N, 7 = m, 8 = Nm, ... (full list in the programming manual)."
    },
    {
      "address": 210,
      "count": 1,
      "name": "Reference indication form",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Decimal places for P0001/P0002: 0 = wxyz, 1 = wxy.z (factory), 2 = wx.yz, 3 = w.xyz, see the programming manual's table."
    },
    {
      "address": 308,
      "count": 1,
      "name": "Serial address",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Address used for serial communication, 0-255. Factory default 1, which is the unit ID this seed uses."
    },
    {
      "address": 310,
      "count": 1,
      "name": "Serial baud rate",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = 9600, 1 = 19200 (factory), 2 = 38400 bit/s."
    },
    {
      "address": 311,
      "count": 1,
      "name": "Serial bytes configuration",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = 8 bits no parity 1 stop, 1 = 8 bits even parity 1 stop (factory), 2 = 8 bits odd parity 1 stop, 3 = 8 bits no parity 2 stop, 4 = 8 bits even parity 2 stop, 5 = 8 bits odd parity 2 stop."
    },
    {
      "address": 312,
      "count": 1,
      "name": "Serial protocol",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = HMI-1, 1 = SymbiNet-1, 2 = Modbus RTU-1 (factory), 3 = BACnet-1, ... 7 = Modbus RTU-2. Modbus RTU is the factory selection."
    },
    {
      "address": 680,
      "count": 1,
      "name": "Logical status (status word)",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Inverter status word; bit meanings in Table 7.4 of the programming manual (bit 1 = run command, bit 6 = configuration status, bit 7 = alarm, bit 8 = running, bit 9 = enabled, bit 10 = clockwise, bit 15 = fault)."
    },
    {
      "address": 682,
      "count": 1,
      "name": "Serial/USB control word",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Control word for the serial interface, read/write. Bit 0 = ramp enable, bit 1 = general enable, bit 2 = run clockwise, bit 3 = jog enable, bit 4 = remote, bit 5 = second ramp, bit 6 = quick stop, bit 7 = fault reset."
    },
    {
      "address": 683,
      "count": 1,
      "name": "Serial/USB speed reference",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Speed reference written over the serial interface; the scale is set by P0208/P0209/P0210."
    },
    {
      "address": 690,
      "count": 1,
      "name": "Logical status 2",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Second status word; bit meanings in Table 7.5 of the programming manual."
    },
    {
      "address": 695,
      "count": 1,
      "name": "Value for digital outputs",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Value written to the digital outputs when the output function is set to the \"P0695 value\" option."
    },
    {
      "address": 696,
      "count": 1,
      "name": "Value 1 for analog outputs",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Value written to analog output 1 when its function is the P0696 value option; the scale follows the analog output configuration."
    },
    {
      "address": 697,
      "count": 1,
      "name": "Value 2 for analog outputs",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Value written to analog output 2 when its function is the P0697 value option."
    },
    {
      "address": 698,
      "count": 1,
      "name": "Value 3 for analog outputs",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Value written to analog output 3 when its function is the P0698 value option."
    }
  ],
  "combined_registers": [],
  "notes": "RS-485 device: reach it through a Modbus RTU-to-TCP gateway. Factory settings are P0308 = 1 (serial address, also the unit ID used here), P0310 = 1 (19200 bit/s), P0311 = 1 (8 data bits, even parity, 1 stop bit) and P0312 = 2 (Modbus RTU-1), i.e. the 19200 8E1 block above. Sources: WEG \"CFW500 Modbus RTU User's Guide\", document 10002253377, revision 04, 06/2025 (https://static.weg.net/medias/downloadcenter/h73/ha4/WEG-CFW500-modbus-rtu-manual-10002253377-en.pdf), section 5.2.1: \"all parameters of the equipment are available as 16-bit holding registers. The data addressing is done with the offset equal to zero, which means that the parameter's network address (Net Id) corresponds to the register address\" (P0680 = 680, P0683 = 683); and WEG \"CFW500 V2.2X Programming Manual\" 10002296099 (https://static.weg.net/medias/downloadcenter/h69/h0f/WEG-CFW500-programming-manual-10002296099-en.pdf) chapter 18 for the readout ranges and chapter 4 for the serial parameters P0308-P0312. Scaling: the programming manual publishes each readout's full-scale range with its decimals (0.0 to 200.0 A, 0.0 to 500.0 Hz, 0.0 to 6553.5 kW, -1000.0 to 1000.0 %, -1.00 to 1.00), which is the factor stored per row. P0001/P0002 and P0683 depend on P0208/P0209/P0210 (scale, unit and decimal places) and therefore carry no fixed factor. Deliberate omissions: the SoftPLC marker map and the parameter groups beyond the readouts, ramp times, speed limits and serial settings are not transcribed. P0012/P0013 are bit fields over the digital I/O; the individual bits are named in the programming manual but not listed here as separate rows."
}
