Danfoss VLT Micro Drive FC 51 Modbus register map
Compact AC drive with a built-in RS-485 port that can run Modbus RTU. Drive parameters are mapped to holding registers at ten times the parameter number, and the control and status words are available both as holding registers and as coils.
- Protocol
- Modbus RTU
- Defaults
- Modbus RTU must be selected with 8-30 Protocol = [2] (default is FC protocol) and takes effect after a power cycle. Defaults per the guides: address 1 (8-31), 19200 baud when Modbus is selected (8-32), even parity with 1 stop bit (8-33).
- Addresses in the manual
- 1-based register numbers (wire address is the number minus 1)
- 32 and 64-bit values
- High word first (AB CD)
- Registers listed
- 91
- Checked against
- Design Guide MG02K402, Danfoss A/S 01/2016. Parameter scales and data types from VLT Micro Drive FC 51 Programming Guide MG02C702, 12/2014
Address base. The guide numbers registers and coils from 1 and says every data address in a telegram is the printed number minus 1, for example holding register 40001 is sent as address 0000 and coil 33 as coil 32 (pp. 74, 77, 78). Parameter registers are 10 times the parameter number, for example 3-12 is register 3120 (p. 76). For example 1 in the manual (Control word coil: Preset reference select, low bit) is address 0 on the wire.
Word order. 32-bit parameters use two consecutive registers. The read example for 3-03 in the Design Guide shows the high word in the lower register number (register 3030 = 0016h, register 3031 = E360h, p. 79). Values are integers, apply the scale from the conversion index (for example -3 means 0.001).
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 | 0 | Control word coil: Preset reference select, low bitCoil01_CTW_PresetRefLsb · 0 and 1 together choose one of the four preset references. |
bool | 1 | 1 | RW | Coil (FC01) | |
| 2 | 1 | Control word coil: Preset reference select, high bitCoil02_CTW_PresetRefMsb · 0 and 1 together choose one of the four preset references (with coil 1). |
bool | 1 | 1 | RW | Coil (FC01) | |
| 3 | 2 | Control word coil: DC brakeCoil03_CTW_DCBrake · 0 = DC brake, 1 = no DC brake. |
bool | 1 | 1 | RW | Coil (FC01) | |
| 4 | 3 | Control word coil: Coast stopCoil04_CTW_CoastStop · 0 = coast stop, 1 = no coast stop. |
bool | 1 | 1 | RW | Coil (FC01) | |
| 5 | 4 | Control word coil: Quick stopCoil05_CTW_QuickStop · 0 = quick stop, 1 = no quick stop. |
bool | 1 | 1 | RW | Coil (FC01) | |
| 6 | 5 | Control word coil: Freeze output frequencyCoil06_CTW_FreezeFrequency · 0 = freeze, 1 = no freeze. |
bool | 1 | 1 | RW | Coil (FC01) | |
| 7 | 6 | Last fault codeLastFaultCode · Fault code received from the parameter database. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 7 | 6 | Control word coil: Ramp stop or startCoil07_CTW_RampStopStart · 0 = ramp stop, 1 = start. |
bool | 1 | 1 | RW | Coil (FC01) | |
| 8 | 7 | Register address of the last access errorLastErrorRegister |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 8 | 7 | Control word coil: Reset tripCoil08_CTW_Reset · 0 = no reset, 1 = reset. |
bool | 1 | 1 | RW | Coil (FC01) | |
| 9 | 8 | Sub-index pointer for array parametersIndexPointer · Sets the sub-index used when reading or writing array parameters. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 9 | 8 | Control word coil: JogCoil09_CTW_Jog · 0 = no jog, 1 = jog. |
bool | 1 | 1 | RW | Coil (FC01) | |
| 10 | 9 | Control word coil: Select ramp 2Coil10_CTW_Ramp2 · 0 = ramp 1, 1 = ramp 2. |
bool | 1 | 1 | RW | Coil (FC01) | |
| 11 | 10 | Control word coil: Control word data validCoil11_CTW_DataValid · 0 = data not valid, 1 = data valid. |
bool | 1 | 1 | RW | Coil (FC01) | |
| 12 | 11 | Control word coil: Relay 1Coil12_CTW_Relay1 · 0 = off, 1 = on. |
bool | 1 | 1 | RW | Coil (FC01) | |
| 13 | 12 | Control word coil: Relay 2Coil13_CTW_Relay2 · 0 = off, 1 = on. |
bool | 1 | 1 | RW | Coil (FC01) | |
| 14 | 13 | Control word coil: Set-up select, low bitCoil14_CTW_SetupLsb · Set-up selection bit. |
bool | 1 | 1 | RW | Coil (FC01) | |
| 16 | 15 | Control word coil: ReversingCoil16_CTW_Reversing · 0 = no reversing, 1 = reversing. |
bool | 1 | 1 | RW | Coil (FC01) | |
| 33 | 32 | Status word coil: Control readyCoil33_STW_ControlReady · 0 = control not ready, 1 = control ready. |
bool | 1 | 1 | R | Coil (FC01) | |
| 34 | 33 | Status word coil: Drive readyCoil34_STW_DriveReady · 0 = not ready, 1 = ready. |
bool | 1 | 1 | R | Coil (FC01) | |
| 35 | 34 | Status word coil: Coast stop or safetyCoil35_STW_CoastStop · 0 = coast stop, 1 = safety closed. |
bool | 1 | 1 | R | Coil (FC01) | |
| 36 | 35 | Status word coil: AlarmCoil36_STW_Alarm · 0 = no alarm, 1 = alarm. |
bool | 1 | 1 | R | Coil (FC01) | |
| 40 | 39 | Status word coil: WarningCoil40_STW_Warning · 0 = no warning, 1 = warning. |
bool | 1 | 1 | R | Coil (FC01) | |
| 41 | 40 | Status word coil: At referenceCoil41_STW_AtReference · 0 = not at reference, 1 = at reference. |
bool | 1 | 1 | R | Coil (FC01) | |
| 42 | 41 | Status word coil: Hand or auto modeCoil42_STW_AutoMode · 0 = hand mode, 1 = auto mode. |
bool | 1 | 1 | R | Coil (FC01) | |
| 43 | 42 | Status word coil: Within frequency rangeCoil43_STW_InFrequencyRange · 0 = out of frequency range, 1 = in range. |
bool | 1 | 1 | R | Coil (FC01) | |
| 44 | 43 | Status word coil: RunningCoil44_STW_Running · 0 = stopped, 1 = running. |
bool | 1 | 1 | R | Coil (FC01) | |
| 46 | 45 | Status word coil: Voltage warningCoil46_STW_VoltageWarning · 0 = no voltage warning, 1 = voltage warning. |
bool | 1 | 1 | R | Coil (FC01) | |
| 47 | 46 | Status word coil: Current limitCoil47_STW_CurrentLimit · 0 = not in current limit, 1 = in current limit. |
bool | 1 | 1 | R | Coil (FC01) | |
| 48 | 47 | Status word coil: Thermal warningCoil48_STW_ThermalWarning · 0 = no thermal warning, 1 = thermal warning. |
bool | 1 | 1 | R | Coil (FC01) | |
| 65 | 64 | Parameter write controlCoil65_ParameterWriteControl · 0 = parameter changes go to RAM only, 1 = changes go to RAM and EEPROM. |
bool | 1 | 1 | RW | Coil (FC01) | |
| 1220 | 1219 | Motor nameplate voltage (1-22)P1_22_MotorVoltage |
uint16 | 1 | V | 1 | RW | Holding (FC03) |
| 1230 | 1229 | Motor nameplate frequency (1-23)P1_23_MotorFrequency |
uint16 | 1 | Hz | 1 | RW | Holding (FC03) |
| 1240 | 1239 | Motor nameplate current (1-24)P1_24_MotorCurrent · The manual example sets 7.38 A by writing 738. |
uint16 | 1 | A | 0.01 | RW | Holding (FC03) |
| 1250 | 1249 | Motor nameplate speed (1-25)P1_25_MotorNominalSpeed |
uint16 | 1 | rpm | 1 | RW | Holding (FC03) |
| 2810 | 2809 | FC profile control word (lower register area)ControlWordLow · Available on software version 2.32 and later. Bits as in the FC profile control word table: bit 0/1 preset reference select, 2 DC brake, 3 coast, 4 quick stop, 5 hold output frequency, 6 ramp stop or start, 7 reset, 8 jog, 9 ramp 1 or 2, 10 data valid, 11 relay 1, 12 relay 2, 13 set-up select, 15 reverse. The manual places this table under the setting 8-30 Protocol = [0] FC. |
bitfield16 | 1 | 1 | RW | Holding (FC03) | |
| 2811 | 2810 | Bus speed reference (lower register area)BusReferenceLow · Relative value: 16384 (4000h) is 100 percent of the reference range, negative values use two's complement. Available on software version 2.32 and later. |
int16 | 1 | 1 | RW | Holding (FC03) | |
| 2910 | 2909 | FC profile status word (lower register area)StatusWordLow · Bit 0 control ready, 1 drive ready, 2 enabled (not coasting), 3 trip, 4 error without trip, 6 trip lock, 7 warning, 8 speed equals reference, 9 bus control active, 10 frequency within limits, 11 running, 12 stopped by over-temperature with auto start, 13 voltage limit exceeded, 14 current limit exceeded, 15 timer limit exceeded. Software 2.32 and later. |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 2911 | 2910 | Main actual value, output frequency (lower register area)MainActualValueLow · Scaled like the bus reference: 16384 (4000h) is 100 percent. Software 2.32 and later. |
int16 | 1 | 1 | R | Holding (FC03) | |
| 3020 | 3019 | Minimum reference (3-02)P3_02_MinimumReference |
int32 | 2 | 0.001 | RW | Holding (FC03) | |
| 3030 | 3029 | Maximum reference (3-03)P3_03_MaximumReference · The manual read example fetches this parameter from registers 3030 and 3031. |
int32 | 2 | 0.001 | RW | Holding (FC03) | |
| 3110 | 3109 | Jog speed (3-11)P3_11_JogSpeed |
uint16 | 1 | Hz | 0.1 | RW | Holding (FC03) |
| 3410 | 3409 | Ramp 1 ramp-up time (3-41)P3_41_Ramp1UpTime |
uint32 | 2 | s | 0.01 | RW | Holding (FC03) |
| 3420 | 3419 | Ramp 1 ramp-down time (3-42)P3_42_Ramp1DownTime |
uint32 | 2 | s | 0.01 | RW | Holding (FC03) |
| 4120 | 4119 | Motor speed low limit (4-12)P4_12_MotorSpeedLowLimit |
uint16 | 1 | Hz | 0.1 | RW | Holding (FC03) |
| 4140 | 4139 | Motor speed high limit (4-14)P4_14_MotorSpeedHighLimit |
uint16 | 1 | Hz | 0.1 | RW | Holding (FC03) |
| 4160 | 4159 | Torque limit, motor mode (4-16)P4_16_TorqueLimitMotor |
uint16 | 1 | % | 1 | RW | Holding (FC03) |
| 8010 | 8009 | Control site (8-01)P8_01_ControlSite · 0 digital and control word (default), 1 digital only, 2 control word only. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 8020 | 8019 | Control word source (8-02)P8_02_ControlWordSource · 0 none, 1 FC RS-485 (default). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 8030 | 8029 | Control word timeout time (8-03)P8_03_ControlWordTimeout · Range 0.1 to 6500 s. |
uint16 | 1 | s | 0.1 | RW | Holding (FC03) |
| 8040 | 8039 | Control word timeout function (8-04)P8_04_ControlWordTimeoutFunction · 0 off, 1 freeze output, 2 stop, 3 jogging, 4 max speed, 5 stop and trip. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 8300 | 8299 | Serial protocol (8-30)P8_30_Protocol · 0 = FC (default), 2 = Modbus RTU. Takes effect after a power cycle. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 8310 | 8309 | Bus address (8-31)P8_31_Address · Default 1. Modbus range is 1 to 247. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 8320 | 8319 | Baud rate (8-32)P8_32_BaudRate · 0 2400, 1 4800, 2 9600, 3 19200, 4 38400 baud. Default is 19200 when Modbus is selected. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 8330 | 8329 | Parity and stop bits (8-33)P8_33_Parity · 0 even with 1 stop bit (default), 1 odd, 2 no parity with 1 stop bit, 3 no parity with 2 stop bits. Affects Modbus only. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 15000 | 14999 | Time the drive has been powered (15-00)P15_00_OperatingTime |
uint32 | 2 | days | 1 | R | Holding (FC03) |
| 15010 | 15009 | Motor running hours (15-01)P15_01_RunningHours |
uint32 | 2 | h | 1 | R | Holding (FC03) |
| 15020 | 15019 | Energy counter (15-02)P15_02_kWhCounter · Range 0 to 65535 kWh. |
uint32 | 2 | kWh | 1 | R | Holding (FC03) |
| 15030 | 15029 | Number of power-ups (15-03)P15_03_PowerUps |
uint32 | 2 | 1 | R | Holding (FC03) | |
| 15300 | 15299 | Fault log error code (15-30)P15_30_FaultLogErrorCode · Array parameter, pick the entry with the index pointer register 9. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 16000 | 15999 | Control word as received (16-00)P16_00_ControlWord |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 16010 | 16009 | Reference in the reference unit (16-01)P16_01_Reference · Unit depends on the speed unit selection. |
int32 | 2 | 0.001 | R | Holding (FC03) | |
| 16020 | 16019 | Reference in percent (16-02)P16_02_ReferencePct |
int16 | 1 | % | 0.1 | R | Holding (FC03) |
| 16030 | 16029 | Status word (16-03)P16_03_StatusWord |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 16050 | 16049 | Main actual value in percent (16-05)P16_05_MainActualValuePct |
int16 | 1 | % | 0.01 | R | Holding (FC03) |
| 16100 | 16099 | Output power (16-10)P16_10_PowerKW |
uint16 | 1 | kW | 0.001 | R | Holding (FC03) |
| 16110 | 16109 | Output power in horsepower (16-11)P16_11_PowerHP |
uint16 | 1 | hp | 0.001 | R | Holding (FC03) |
| 16120 | 16119 | Motor voltage (16-12)P16_12_MotorVoltage |
uint16 | 1 | V | 1 | R | Holding (FC03) |
| 16130 | 16129 | Output frequency (16-13)P16_13_Frequency |
uint16 | 1 | Hz | 0.1 | R | Holding (FC03) |
| 16140 | 16139 | Motor current (16-14)P16_14_MotorCurrent |
uint16 | 1 | A | 0.01 | R | Holding (FC03) |
| 16150 | 16149 | Output frequency in percent (16-15)P16_15_FrequencyPct |
uint16 | 1 | % | 0.1 | R | Holding (FC03) |
| 16180 | 16179 | Motor thermal load (16-18)P16_18_MotorThermal · Parameter data type is an 8-bit unsigned value. |
uint16 | 1 | % | 1 | R | Holding (FC03) |
| 16300 | 16299 | DC link voltage (16-30)P16_30_DCLinkVoltage |
uint16 | 1 | V | 1 | R | Holding (FC03) |
| 16340 | 16339 | Heatsink temperature (16-34)P16_34_HeatsinkTemp · Parameter data type is an 8-bit unsigned value. |
uint16 | 1 | °C | 1 | R | Holding (FC03) |
| 16350 | 16349 | Inverter thermal load (16-35)P16_35_InverterThermal · Parameter data type is an 8-bit unsigned value. |
uint16 | 1 | % | 1 | R | Holding (FC03) |
| 16360 | 16359 | Inverter nominal current (16-36)P16_36_InverterNominalCurrent |
uint16 | 1 | A | 0.01 | R | Holding (FC03) |
| 16370 | 16369 | Inverter maximum current (16-37)P16_37_InverterMaxCurrent |
uint16 | 1 | A | 0.01 | R | Holding (FC03) |
| 16500 | 16499 | External reference (16-50)P16_50_ExternalReference |
int16 | 1 | % | 0.1 | R | Holding (FC03) |
| 16600 | 16599 | Digital input states, terminals 18, 19, 27, 33 (16-60)P16_60_DigitalInputs |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 16620 | 16619 | Analog input 53 voltage (16-62)P16_62_AnalogInput53Volt |
uint16 | 1 | V | 0.01 | R | Holding (FC03) |
| 16630 | 16629 | Analog input 53 current (16-63)P16_63_AnalogInput53mA |
uint16 | 1 | mA | 0.01 | R | Holding (FC03) |
| 16640 | 16639 | Analog input 60 current (16-64)P16_64_AnalogInput60 |
uint16 | 1 | mA | 0.01 | R | Holding (FC03) |
| 16650 | 16649 | Analog output 42 value (16-65)P16_65_AnalogOutput42 |
uint16 | 1 | mA | 0.01 | R | Holding (FC03) |
| 16710 | 16709 | Relay output states (16-71)P16_71_RelayOutput · Parameter data type is an 8-bit unsigned value. |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 16900 | 16899 | Alarm word (16-90)P16_90_AlarmWord |
uint32 | 2 | 1 | R | Holding (FC03) | |
| 16920 | 16919 | Warning word (16-92)P16_92_WarningWord |
uint32 | 2 | 1 | R | Holding (FC03) | |
| 16940 | 16939 | Extended status word (16-94)P16_94_ExtendedStatusWord |
uint32 | 2 | 1 | R | Holding (FC03) | |
| 50000 | 49999 | FC profile control wordControlWord · Same bit layout as register 2810. |
bitfield16 | 1 | 1 | RW | Holding (FC03) | |
| 50010 | 50009 | Bus speed referenceBusReference · 16384 (4000h) is 100 percent of the reference range. |
int16 | 1 | 1 | RW | Holding (FC03) | |
| 50200 | 50199 | FC profile status wordStatusWord · Same bit layout as register 2910. |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 50210 | 50209 | Main actual value, output frequencyMainActualValue · 16384 (4000h) is 100 percent. |
int16 | 1 | 1 | R | Holding (FC03) |
Scale is the number to multiply the raw value by to get the unit. Types with more than one register (32 and 64-bit) follow the word order above.
Open in Modbus Poll
- Download the Modbus Poll blocks file.
- Open Modbus Poll, connect to the device and set its unit ID. In Modbus Poll set Word order to AB CD.
- 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: VLT Micro Drive FC 51 Design Guide (assets.danfoss.com)
Design Guide MG02K402, Danfoss A/S 01/2016. Parameter scales and data types from VLT Micro Drive FC 51 Programming Guide MG02C702, 12/2014, Design Guide p. 72-83; Programming Guide p. 57-63. Read on 2026-10-24.
Also used: VLT Micro Drive FC 51 Programming Guide (SW 3.1X) (assets.danfoss.com)
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.