{
  "spec_version": 1,
  "slug": "danfoss-vlt-fc102-fc302",
  "manufacturer": "Danfoss",
  "model": "VLT AutomationDrive FC 102 / FC 302",
  "category": "VFD",
  "supplier_url": "https://www.danfoss.com/en/products/dds/drives/vlt-automationdrive/",
  "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": 9600,
      "data_bits": 8,
      "stop_bits": 1
    }
  },
  "coils": [],
  "discrete_inputs": [],
  "input_registers": [],
  "holding_registers": [
    {
      "address": 100,
      "count": 1,
      "name": "Active set-up",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 1000,
      "count": 1,
      "name": "Configuration mode",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 1100,
      "count": 1,
      "name": "Motor construction",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 1200,
      "count": 2,
      "name": "Motor power",
      "data_type": "UInt32",
      "units": "kW",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 1220,
      "count": 1,
      "name": "Motor voltage",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 1230,
      "count": 1,
      "name": "Motor frequency",
      "data_type": "UInt16",
      "units": "Hz",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 1240,
      "count": 2,
      "name": "Motor current",
      "data_type": "UInt32",
      "units": "A",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 1250,
      "count": 1,
      "name": "Motor nominal speed",
      "data_type": "UInt16",
      "units": "rpm",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 1900,
      "count": 1,
      "name": "Motor thermal protection",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 3020,
      "count": 2,
      "name": "Minimum reference",
      "data_type": "Int32",
      "units": "",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 3030,
      "count": 2,
      "name": "Maximum reference",
      "data_type": "Int32",
      "units": "",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 3410,
      "count": 2,
      "name": "Ramp 1 up time",
      "data_type": "UInt32",
      "units": "s",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 3420,
      "count": 2,
      "name": "Ramp 1 down time",
      "data_type": "UInt32",
      "units": "s",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 4100,
      "count": 1,
      "name": "Motor speed direction",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = clockwise, 1 = counterclockwise, 2 = both."
    },
    {
      "address": 4120,
      "count": 1,
      "name": "Motor speed low limit",
      "data_type": "UInt16",
      "units": "Hz",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 4140,
      "count": 1,
      "name": "Motor speed high limit",
      "data_type": "UInt16",
      "units": "Hz",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 4160,
      "count": 1,
      "name": "Torque limit, motor mode",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 4170,
      "count": 1,
      "name": "Torque limit, generator mode",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 5100,
      "count": 1,
      "name": "Terminal 18 digital input",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 5120,
      "count": 1,
      "name": "Terminal 27 digital input",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 5400,
      "count": 1,
      "name": "Function relay",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 6100,
      "count": 1,
      "name": "Terminal 53 low voltage",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 6110,
      "count": 1,
      "name": "Terminal 53 high voltage",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 6120,
      "count": 1,
      "name": "Terminal 53 low current",
      "data_type": "UInt16",
      "units": "mA",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 6130,
      "count": 1,
      "name": "Terminal 53 high current",
      "data_type": "UInt16",
      "units": "mA",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 6140,
      "count": 2,
      "name": "Terminal 53 low reference",
      "data_type": "Int32",
      "units": "",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 6150,
      "count": 2,
      "name": "Terminal 53 high reference",
      "data_type": "Int32",
      "units": "",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 8100,
      "count": 1,
      "name": "Control word profile",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 8300,
      "count": 1,
      "name": "Protocol",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "2 = Modbus RTU."
    },
    {
      "address": 8310,
      "count": 1,
      "name": "Address",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "1 to 126."
    },
    {
      "address": 8320,
      "count": 1,
      "name": "FC port baud rate",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = 2400, 1 = 4800, 2 = 9600, 3 = 19200, 4 = 38400, 5 = 57600, 6 = 76800, 7 = 115200."
    },
    {
      "address": 8330,
      "count": 1,
      "name": "Parity / stop bits",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = even 1 stop, 1 = odd 1 stop, 2 = none 1 stop, 3 = none 2 stop."
    },
    {
      "address": 8340,
      "count": 2,
      "name": "Estimated cycle time",
      "data_type": "UInt32",
      "units": "ms",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 8350,
      "count": 1,
      "name": "Minimum response delay",
      "data_type": "UInt16",
      "units": "ms",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 8360,
      "count": 1,
      "name": "Maximum response delay",
      "data_type": "UInt16",
      "units": "ms",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 8370,
      "count": 1,
      "name": "Maximum inter-character delay",
      "data_type": "UInt16",
      "units": "ms",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 16030,
      "count": 1,
      "name": "Status word",
      "data_type": "Hex",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16050,
      "count": 1,
      "name": "Main actual value",
      "data_type": "Int16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16100,
      "count": 2,
      "name": "Power",
      "data_type": "Int32",
      "units": "kW",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16120,
      "count": 1,
      "name": "Motor voltage",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16130,
      "count": 1,
      "name": "Frequency",
      "data_type": "Int16",
      "units": "Hz",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16140,
      "count": 2,
      "name": "Motor current",
      "data_type": "Int32",
      "units": "A",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16160,
      "count": 2,
      "name": "Torque",
      "data_type": "Int32",
      "units": "Nm",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16170,
      "count": 2,
      "name": "Speed",
      "data_type": "Int32",
      "units": "rpm",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16180,
      "count": 1,
      "name": "Motor thermal load",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16190,
      "count": 1,
      "name": "KTY sensor temperature",
      "data_type": "Int16",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16200,
      "count": 1,
      "name": "Motor angle",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16210,
      "count": 1,
      "name": "Torque, high resolution",
      "data_type": "Int16",
      "units": "%",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16220,
      "count": 1,
      "name": "Torque",
      "data_type": "Int16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16250,
      "count": 2,
      "name": "Torque, high range",
      "data_type": "Int32",
      "units": "Nm",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16300,
      "count": 2,
      "name": "DC link voltage",
      "data_type": "UInt32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16320,
      "count": 2,
      "name": "Brake energy per second",
      "data_type": "UInt32",
      "units": "kW",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16330,
      "count": 2,
      "name": "Brake energy per 2 minutes",
      "data_type": "UInt32",
      "units": "kW",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16340,
      "count": 1,
      "name": "Heatsink temperature",
      "data_type": "Int16",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16350,
      "count": 1,
      "name": "Inverter thermal load",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16360,
      "count": 2,
      "name": "Inverter nominal current",
      "data_type": "UInt32",
      "units": "A",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16370,
      "count": 2,
      "name": "Inverter maximum current",
      "data_type": "UInt32",
      "units": "A",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16380,
      "count": 1,
      "name": "SL controller state",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16390,
      "count": 1,
      "name": "Control card temperature",
      "data_type": "Int16",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16400,
      "count": 1,
      "name": "Logging buffer full",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = no, 1 = yes."
    },
    {
      "address": 16480,
      "count": 2,
      "name": "Speed reference after ramp",
      "data_type": "Int32",
      "units": "rpm",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16490,
      "count": 1,
      "name": "Current fault source",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16500,
      "count": 2,
      "name": "External reference",
      "data_type": "Int32",
      "units": "",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16520,
      "count": 2,
      "name": "Feedback",
      "data_type": "Int32",
      "units": "",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16530,
      "count": 2,
      "name": "Digital potentiometer reference",
      "data_type": "Int32",
      "units": "",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16600,
      "count": 2,
      "name": "Digital inputs",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16610,
      "count": 1,
      "name": "Terminal 53 switch setting",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16620,
      "count": 2,
      "name": "Analog input 53",
      "data_type": "Int32",
      "units": "",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16630,
      "count": 1,
      "name": "Terminal 54 switch setting",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16640,
      "count": 2,
      "name": "Analog input 54",
      "data_type": "Int32",
      "units": "",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16850,
      "count": 1,
      "name": "FC control word",
      "data_type": "Hex",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 16860,
      "count": 1,
      "name": "FC reference",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    }
  ],
  "combined_registers": [],
  "notes": "RS-485 device: reach it through a Modbus RTU-to-TCP gateway using the factory serial settings above (address 1, 9600 bps, 8E1). A VLT parameter is addressed at parameter number x 10 decimal: parameter 16-10 is holding register 16100. The readouts and settings below use holding registers (function code 03/06/16) and are 32-bit big-endian values where the parameter is a 32-bit type. Control word 50000, reference 50010, status word 50200 and main actual value 50210 from the FC profile are not duplicated here; the equivalent parameters 16-85/16-86 and 16-03/16-05 are mapped instead."
}
