- Home
- Modbus register maps
- Danfoss
- VLT HVAC Drive FC 102 (Modbus RTU)
Variable frequency drive · Modbus register map
Danfoss VLT HVAC Drive FC 102 (Modbus RTU) Modbus register map
Updated 16 October 2026
Danfoss's HVAC variable frequency drive with a built-in RS-485 port that can run Modbus RTU. Control word, bus reference, status word and main actual value sit at fixed holding registers 50000-50210, and every drive parameter is a holding register at ten times its parameter number. This map covers the control block, the communication and comm-loss parameters, and the main 15-xx/16-xx readouts whose conversion index is published.
This page lists 51 Modbus registers for the Danfoss VLT HVAC Drive FC 102 (Modbus RTU) — 18 writable — with the table, 0-based wire address, data type, word order, scale, units and access of each, re-typed from Danfoss’s own free documentation (linked below) and checked against it.
- Manufacturer
- Danfoss
- Model
- VLT HVAC Drive FC 102 (Modbus RTU)
- Equipment type
- Variable frequency drive
- Registers
- 51 (18 writable)
- Transport
- Modbus RTU
- Default unit ID
- Not stated
- Default serial
- 8E1
- Documented addressing
- derived from parameter numbers
- 32-bit word order
- ABCD high word first (big-endian)
- Firmware
- Programming data per software 7.61 guide; Modbus mapping per Design Guide MG11BC02 (software 3.9x)
- Also known as
- VLT HVAC Drive, FC102, FC-102
Integration notes: Danfoss VLT HVAC Drive FC 102 (Modbus RTU)
Set 8-30 to Modbus RTU and power-cycle, make sure 8-02 points at the FC port and the drive is not in local/Hand control, then write the control word to 50000 and the reference to 50010 and poll 50200/50210. Read readouts from the 16-xx registers at parameter number x 10 (minus 1 on the wire).
Minimum registers to map
Addresses are 0-based wire addresses. Enough to monitor and run the unit; map more as the job needs.
| Register | Name | Type | Why | Access |
|---|---|---|---|---|
| HR 49999 | Control word (CTW) | BITMAP16 | CTW: start/stop/reset | Read/write |
| HR 50009 | Bus reference (REF) | INT16 | REF: speed reference, 4000h = 100% | Read/write |
| HR 50199 | Status word (STW) | BITMAP16 | STW: ready/running/trip/warning | Read |
| HR 16129 | 16-13 Frequency | UINT16 | 16-13 Frequency, 0.1 Hz | Read |
| HR 16139 | 16-14 Motor current | INT32 ABCD | 16-14 Motor current, 0.01 A | Read |
| HR 16099 | 16-10 Power [kW] | INT32 ABCD | 16-10 Power, 10 W steps (0.01 kW) | Read |
| HR 16899 | 16-90 Alarm Word | UINT32 ABCD | 16-90 Alarm word | Read |
| HR 15019 | 15-02 kWh Counter | UINT32 ABCD | 15-02 kWh counter | Read |
Enable Modbus control & writes
Set 8-30 Protocol = [2] Modbus RTU (effective only after powering the drive off and on), 8-31 Address, 8-32 FC Port Baud Rate and 8-33 Parity/Stop Bits. Control word source 8-02 must be [1] FC port; 8-01 Control Site chooses digital and/or control word; 8-50..8-56 decide how bus bits combine with digital inputs (8-50, 8-55 and 8-56 default to Logic OR). STW bit 9 must read 1 (not in local operation) for bus control, and CTW bit 10 (data valid) must be 1.
Communication loss & watchdog
8-03 Control Word Timeout Time (0.5-18000 s, 0.1 s units) and 8-04 Control Word Timeout Function (default Off; options include Freeze output, Stop, Jogging, Max. speed, Stop and trip, set-up switching, Warning only). A valid control word restarts the timer. 8-05 decides what happens after communication returns from a set-up-switching timeout, and 8-06 resets that timeout when 8-05 = Hold set-up.
Byte order & addressing
- Parameter register = parameter number x 10, request address = that minus 1 (16-13 -> 16130 -> address 16129).
- 32-bit values are high word first (ABCD).
- REF/MAV use 4000h = 100% of the 3-02..3-03 reference range, negative values in two's complement.
- CTW bit 10 must be 1 or the whole control word is ignored. Derived from the bit table (these words are not printed in the manual): bits 2, 3, 4, 5, 6 and 10 set = 047Ch runs on the ramp; clearing bit 6 (043Ch) ramps to stop; bit 7 resets on its rising edge.
- Uint8 parameters still occupy a full 16-bit register.
Network setup
- RS-485 on the control terminals of the built-in FC port; set address 1-247 for Modbus RTU in 8-31.
- Parity default is even with 1 stop bit (8-33); baud is chosen in 8-32 (2400-115200).
- 8-35 Minimum Response Delay can be raised for slow masters or converters.
- Array parameters need the index written to holding register 9 before the read or write.
Watch out for
- Parameter writes go to RAM only unless coil 65 is set to 1; RAM changes are lost at power-down.
- If 8-02 was changed to an option slot (e.g. after a fieldbus option was fitted), Modbus control words on the FC port are ignored.
- Pressing [Stop/Reset] on the keypad or selecting local in 3-13 Reference Site blocks bus control (STW bit 9 = 0).
Danfoss VLT HVAC Drive FC 102 (Modbus RTU) Modbus registers
Address = 0-based wire address (the documented number is shown under it when it differs) · Order: ABCD = high word first, CDAB = low word first · Scale: engineering value = raw × scale.
| Table | Address | Name | Description | Type | Order | Scale | Units | Access | Values / bits |
|---|---|---|---|---|---|---|---|---|---|
| CO | 64doc 65 | Parameter write control | 0 = parameter writes go to RAM only, 1 = RAM and EEPROM. | BIT | Read/write | 0 = RAM only; 1 = RAM and EEPROM | |||
| HR | 6doc 00007 | Last error code | Last error from the FC data object interface. | UINT16 | Read | ||||
| HR | 8doc 00009 | Parameter index (IND) | Array index used for subsequent array-parameter reads/writes. | UINT16 | Read/write | ||||
| HR | 3019doc 3020 (par. 3-02) | 3-02 Minimum Reference | Lower reference limit in the reference unit. | INT32 | ABCD | × 0.001 | Read/write | ||
| HR | 3029doc 3030 (par. 3-03) | 3-03 Maximum Reference | Reference value that REF 4000h (100%) corresponds to. | INT32 | ABCD | × 0.001 | Read/write | ||
| HR | 3409doc 3410 (par. 3-41) | 3-41 Ramp 1 Ramp Up Time | UINT32 | ABCD | × 0.01 | s | Read/write | ||
| HR | 3419doc 3420 (par. 3-42) | 3-42 Ramp 1 Ramp Down Time | UINT32 | ABCD | × 0.01 | s | Read/write | ||
| HR | 8009doc 8010 (par. 8-01) | 8-01 Control Site | Which inputs the drive obeys. | UINT16 | Read/write | 0 = Digital and ctrl.word; 1 = Digital only; 2 = Controlword only | |||
| HR | 8019doc 8020 (par. 8-02) | 8-02 Control Word Source | Port the control word is taken from. | UINT16 | Read/write | 0 = None; 1 = FC port; 2 = USB port; 3 = Option A; 4 = Option B; 5 = Option C0; 6 = Option C1; 30 = External can | |||
| HR | 8029doc 8030 (par. 8-03) | 8-03 Control Word Timeout Time | Comm-loss timeout (0.5-18000 s). | UINT32 | ABCD | × 0.1 | s | Read/write | |
| HR | 8039doc 8040 (par. 8-04) | 8-04 Control Word Timeout Function | Action when the timeout expires. | UINT16 | Read/write | 0 = Off; 1 = Freeze output; 2 = Stop; 3 = Jogging; 4 = Max. speed; 5 = Stop and trip; 7 = Select setup 1; 8 = Select setup 2; 9 = Select setup 3; 10 = Select setup 4; 20 = N2 Override release; 27 = Forced stop and trip; 30 = Warning only | |||
| HR | 8099doc 8100 (par. 8-10) | 8-10 Control Word Profile | UINT16 | Read/write | 0 = FC profile; 1 = PROFIdrive profile; 5 = ODVA; 7 = CANopen DSP 402; 22 = PROFIdrive v4_2 profile | ||||
| HR | 8299doc 8300 (par. 8-30) | 8-30 Protocol | Takes effect after a power cycle. | UINT16 | Read/write | 0 = FC; 1 = FC MC; 2 = Modbus RTU; 3 = Metasys N2; 4 = FLN; 5 = BACnet; 9 = FC option; 20 = LEN | |||
| HR | 8309doc 8310 (par. 8-31) | 8-31 Address | Drive address on the FC (RS-485) port. | UINT16 | Read/write | ||||
| HR | 8319doc 8320 (par. 8-32) | 8-32 FC Port Baud Rate | UINT16 | Read/write | 0 = 2400; 1 = 4800; 2 = 9600; 3 = 19200; 4 = 38400; 5 = 57600; 6 = 76800; 7 = 115200 | ||||
| HR | 8329doc 8330 (par. 8-33) | 8-33 Parity/Stop Bits | UINT16 | Read/write | 0 = Even parity, 1 stop bit; 1 = Odd parity, 1 stop bit; 2 = No parity, 1 stop bit; 3 = No parity, 2 stop bits | ||||
| HR | 8349doc 8350 (par. 8-35) | 8-35 Minimum Response Delay | Delay before the drive answers (5-10000 ms). | UINT16 | × 0.001 | s | Read/write | ||
| HR | 14999doc 15000 (par. 15-00) | 15-00 Operating hours | Hours the drive has been powered. | UINT32 | ABCD | h | Read | ||
| HR | 15009doc 15010 (par. 15-01) | 15-01 Running Hours | Hours the motor has run. | UINT32 | ABCD | h | Read | ||
| HR | 15019doc 15020 (par. 15-02) | 15-02 kWh Counter | Energy consumed by the drive. | UINT32 | ABCD | kWh | Read | ||
| HR | 15029doc 15030 (par. 15-03) | 15-03 Power Up's | Number of power-ups. | UINT32 | ABCD | Read | |||
| HR | 15039doc 15040 (par. 15-04) | 15-04 Over Temp's | Number of temperature faults. | UINT16 | Read | ||||
| HR | 15999doc 16000 (par. 16-00) | 16-00 Control Word | Control word the drive received (same bits as CTW). | BITMAP16 | Read | bit 0 = Preset reference select LSB; bit 1 = Preset reference select MSB; bit 2 = 0 = DC brake, 1 = ramp; bit 3 = 0 = coast stop, 1 = no coasting; bit 4 = 0 = quick stop, 1 = ramp; bit 5 = 0 = hold (freeze) output frequency, 1 = use ramp; bit 6 = 0 = ramp stop, 1 = start; bit 7 = Reset (on 0->1 edge); bit 8 = 1 = jog; bit 9 = 0 = ramp 1, 1 = ramp 2; bit 10 = 1 = data valid (0 = control word ignored); bit 11 = 1 = relay 01 active (if 5-40 set to CTW bit 11); bit 12 = 1 = relay active if 5-40 is set to CTW bit 12 (table says relay 02, text says relay 04); bit 13 = Set-up select LSB; bit 14 = Set-up select MSB; bit 15 = 1 = reverse | |||
| HR | 16009doc 16010 (par. 16-01) | 16-01 Reference [Unit] | Active reference in the configured reference unit. | INT32 | ABCD | × 0.001 | Read | ||
| HR | 16019doc 16020 (par. 16-02) | 16-02 Reference % | Total reference in percent. | INT16 | × 0.1 | % | Read | ||
| HR | 16029doc 16030 (par. 16-03) | 16-03 Status Word | Drive status word (same bits as STW). | BITMAP16 | Read | bit 0 = Control ready; bit 1 = Drive ready; bit 2 = 1 = enable (0 = coasting); bit 3 = Trip; bit 4 = Error (no trip); bit 5 = Reserved; bit 6 = Triplock; bit 7 = Warning; bit 8 = Speed = reference; bit 9 = 1 = bus control possible (0 = local operation); bit 10 = Frequency within limits; bit 11 = In operation (running); bit 12 = Stopped, auto start (inverter overtemperature); bit 13 = Voltage limit exceeded; bit 14 = Torque/current limit exceeded; bit 15 = Thermal timer exceeded | |||
| HR | 16099doc 16100 (par. 16-10) | 16-10 Power [kW] | Motor power; fieldbus value is in 10 W steps. | INT32 | ABCD | × 0.01 | kW | Read | |
| HR | 16109doc 16110 (par. 16-11) | 16-11 Power [hp] | Motor power in hp. | INT32 | ABCD | × 0.01 | hp | Read | |
| HR | 16119doc 16120 (par. 16-12) | 16-12 Motor Voltage | UINT16 | × 0.1 | V | Read | |||
| HR | 16129doc 16130 (par. 16-13) | 16-13 Frequency | Output frequency. | UINT16 | × 0.1 | Hz | Read | ||
| HR | 16139doc 16140 (par. 16-14) | 16-14 Motor current | INT32 | ABCD | × 0.01 | A | Read | ||
| HR | 16159doc 16160 (par. 16-16) | 16-16 Torque [Nm] | INT32 | ABCD | × 0.1 | Nm | Read | ||
| HR | 16169doc 16170 (par. 16-17) | 16-17 Speed [RPM] | INT32 | ABCD | RPM | Read | |||
| HR | 16179doc 16180 (par. 16-18) | 16-18 Motor Thermal | Calculated motor thermal load. | UINT16 | % | Read | |||
| HR | 16219doc 16220 (par. 16-22) | 16-22 Torque [%] | INT16 | % | Read | ||||
| HR | 16299doc 16300 (par. 16-30) | 16-30 DC Link Voltage | UINT16 | V | Read | ||||
| HR | 16339doc 16340 (par. 16-34) | 16-34 Heatsink Temp. | UINT16 | °C | Read | ||||
| HR | 16349doc 16350 (par. 16-35) | 16-35 Inverter Thermal | Inverter thermal load. | UINT16 | % | Read | |||
| HR | 16389doc 16390 (par. 16-39) | 16-39 Control Card Temp. | UINT16 | °C | Read | ||||
| HR | 16519doc 16520 (par. 16-52) | 16-52 Feedback [Unit] | Process feedback in the process-control unit. | INT32 | ABCD | × 0.001 | Read | ||
| HR | 16599doc 16600 (par. 16-60) | 16-60 Digital Input | Digital input states as a binary value. | UINT16 | Read | ||||
| HR | 16899doc 16900 (par. 16-90) | 16-90 Alarm Word | Active alarms as bit flags (see programming guide). | UINT32 | ABCD | Read | |||
| HR | 16909doc 16910 (par. 16-91) | 16-91 Alarm Word 2 | UINT32 | ABCD | Read | ||||
| HR | 16919doc 16920 (par. 16-92) | 16-92 Warning Word | Active warnings as bit flags. | UINT32 | ABCD | Read | |||
| HR | 16929doc 16930 (par. 16-93) | 16-93 Warning Word 2 | UINT32 | ABCD | Read | ||||
| HR | 16939doc 16940 (par. 16-94) | 16-94 Ext. Status Word | Extended status bit flags. | UINT32 | ABCD | Read | |||
| HR | 16949doc 16950 (par. 16-95) | 16-95 Ext. Status Word 2 | UINT32 | ABCD | Read | ||||
| HR | 49999doc 50000 | Control word (CTW) | FC profile control word (8-10 = FC profile). | BITMAP16 | Read/write | bit 0 = Preset reference select LSB; bit 1 = Preset reference select MSB; bit 2 = 0 = DC brake, 1 = ramp; bit 3 = 0 = coast stop, 1 = no coasting; bit 4 = 0 = quick stop, 1 = ramp; bit 5 = 0 = hold (freeze) output frequency, 1 = use ramp; bit 6 = 0 = ramp stop, 1 = start; bit 7 = Reset (on 0->1 edge); bit 8 = 1 = jog; bit 9 = 0 = ramp 1, 1 = ramp 2; bit 10 = 1 = data valid (0 = control word ignored); bit 11 = 1 = relay 01 active (if 5-40 set to CTW bit 11); bit 12 = 1 = relay active if 5-40 is set to CTW bit 12 (table says relay 02, text says relay 04); bit 13 = Set-up select LSB; bit 14 = Set-up select MSB; bit 15 = 1 = reverse | |||
| HR | 50009doc 50010 | Bus reference (REF) | Signed; 16384 (4000h) = 100% of 3-03 Maximum Reference. | INT16 | Read/write | ||||
| HR | 50199doc 50200 | Status word (STW) | FC profile status word. | BITMAP16 | Read | bit 0 = Control ready; bit 1 = Drive ready; bit 2 = 1 = enable (0 = coasting); bit 3 = Trip; bit 4 = Error (no trip); bit 5 = Reserved; bit 6 = Triplock; bit 7 = Warning; bit 8 = Speed = reference; bit 9 = 1 = bus control possible (0 = local operation); bit 10 = Frequency within limits; bit 11 = In operation (running); bit 12 = Stopped, auto start (inverter overtemperature); bit 13 = Voltage limit exceeded; bit 14 = Torque/current limit exceeded; bit 15 = Thermal timer exceeded | |||
| HR | 50209doc 50210 | Main actual value (MAV) | Actual output; scaled like REF (4000h = 100%). | INT16 | Read |
Notes on this map
- Scaling comes from each parameter's conversion index in the programming guide: -1 = x0.1, -2 = x0.01, -3 = x0.001, 0 = x1, 1 = x10. The 4.x guide's conversion table gives indices 67, 74, 75 and 100 the factors 1/60, 3600, 3600000 and 1 relative to SI units, so the transferred integer is already in RPM, hours, kWh and degC respectively (scale 1).
- 3-02/3-03 conversion index -3 is printed in the 7.61 guide and agrees with the design guide example (0016E360h = 1500000 = 1500.000 RPM). Programming data source: VLT HVAC Drive FC 102 Programming Guide, software 7.61, AU430028034214en-001901 (2024.10), https://assets.danfoss.com/documents/435027/AU430028034214en-001901.pdf.
- 32-bit parameters occupy two registers, high word first: the manual's example reads 3-03 at registers 3030/3031 and returns 0016E360h = 1500000 = 1500.000 RPM.
- 8-bit parameters (Uint8) are read and written as one 16-bit register.
- REF and MAV are signed 16-bit values where 16384 (4000h) = 100%; with 3-00 = min-max the range runs from 3-02 (0%) to 3-03 (100%), with -max..+max it runs from -3-03 to +3-03.
- Left out: 16-26 Power Filtered [kW] (conversion index 0 on a kW parameter; the 7.61 guide gives W as the base unit for 16-10, so 16-26's raw unit could be W or kW and is not stated), 16-23 Motor Shaft Power (index 1 with no stated base unit); 16-05 Main Actual Value [%] and 16-15 Frequency [%] (normalised N2 type); 15-30..15-33 alarm log arrays (need the IND pointer in register 9); text parameters. 16-10 Power [kW] is included because the 7.61 guide states its fieldbus value is in 10 W steps (index 1, base unit W).
- Alarm/warning/extended status words (16-90..16-95) are listed as raw UINT32; their bit meanings are in the programming guide's troubleshooting tables.
- Coils 1-16 / 17-32 / 33-48 / 49-64 mirror CTW, REF, STW and MAV bit by bit; only coil 65 (parameter write control) is listed separately.
- The design guide's 3-14 example prints registers 3410/3411; by the x10 rule 3-14 is 3140/3141, so treat that example as a typo.
- FC 202 / FC 302 use the same scheme but have their own programming guides; this file only claims FC 102.
Check it against the live device. A register map tells you what the controller can expose; the unit in front of you may differ by firmware or options. Read a few registers and compare them with the unit’s own display; for a 32-bit value the float and byte-order decoder shows all four word orders at once, so a wrong word order or scale is obvious. New to this? Read what a register map is and why addresses are off by one.
Questions about the Danfoss VLT HVAC Drive FC 102 (Modbus RTU)
What Modbus registers does the Danfoss VLT HVAC Drive FC 102 (Modbus RTU) have?
This map lists 51 registers: 1 coil, 50 holding registers. 18 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.
Are the Danfoss VLT HVAC Drive FC 102 (Modbus RTU) Modbus addresses 0-based or 1-based?
The manufacturer's document numbers registers derived from parameter numbers. Every address on this page is the 0-based wire address you put in the request; the documented number is shown under it where it differs. Registers are printed 1-based. A parameter's register number is 10 x its parameter number (3-03 -> 3030, 16-13 -> 16130) and the request carries that number minus 1 (3-03 is read at address 3029 = 0x0BD5, per the manual's own example). The fixed process registers CTW 50000, REF 50010, STW 50200 and MAV 50210 follow the same minus-1 rule (CTW = address 49999). Coils are also numbered from 1 (coil 65 = address 64).
What byte order does the Danfoss VLT HVAC Drive FC 102 (Modbus RTU) use for 32-bit values?
Multi-register values in this map use ABCD (high word first (big-endian)). Set your client to this order for every 32/64-bit value in the table.
What are the minimum Modbus registers to integrate the Danfoss VLT HVAC Drive FC 102 (Modbus RTU)?
Start with HR 49999 Control word (CTW) (CTW: start/stop/reset); HR 50009 Bus reference (REF) (REF: speed reference, 4000h = 100%); HR 50199 Status word (STW) (STW: ready/running/trip/warning); HR 16129 16-13 Frequency (16-13 Frequency, 0.1 Hz); HR 16139 16-14 Motor current (16-14 Motor current, 0.01 A); HR 16099 16-10 Power [kW] (16-10 Power, 10 W steps (0.01 kW)); HR 16899 16-90 Alarm Word (16-90 Alarm word); HR 15019 15-02 kWh Counter (15-02 kWh counter).
How do I enable Modbus control of the Danfoss VLT HVAC Drive FC 102 (Modbus RTU)?
Set 8-30 Protocol = [2] Modbus RTU (effective only after powering the drive off and on), 8-31 Address, 8-32 FC Port Baud Rate and 8-33 Parity/Stop Bits. Control word source 8-02 must be [1] FC port; 8-01 Control Site chooses digital and/or control word; 8-50..8-56 decide how bus bits combine with digital inputs (8-50, 8-55 and 8-56 default to Logic OR). STW bit 9 must read 1 (not in local operation) for bus control, and CTW bit 10 (data valid) must be 1.
What happens when the Danfoss VLT HVAC Drive FC 102 (Modbus RTU) loses Modbus communication?
8-03 Control Word Timeout Time (0.5-18000 s, 0.1 s units) and 8-04 Control Word Timeout Function (default Off; options include Freeze output, Stop, Jogging, Max. speed, Stop and trip, set-up switching, Warning only). A valid control word restarts the timer. 8-05 decides what happens after communication returns from a set-up-switching timeout, and 8-06 resets that timeout when 8-05 = Hold set-up.
Where is the official Danfoss VLT HVAC Drive FC 102 (Modbus RTU) Modbus documentation?
The source is VLT HVAC Drive FC 102 Design Guide 1.1-90 kW (chapter 8 RS485 Installation and Set-up, Modbus RTU) (MG11BC02), revision 2014-06, published free by Danfoss at https://assets.danfoss.com/documents/272734/AJ299549559248en-001801.pdf.
More Danfoss Modbus register maps
- Variable frequency drive
Danfoss VLT AQUA Drive FC 202 (Modbus RTU)
VLT AQUA Drive FC 202 using the built-in RS-485 (FC) port with 8-30 Protocol = Modbus RTU and the FC control profile; parameter data checked against the software 5.4X programming guide.
Also known as: VLT AQUA Drive, FC202, FC-202, AQUA Drive FC 202 - Variable frequency drive
Danfoss VLT AutomationDrive FC 301/302 (Modbus RTU)
VLT AutomationDrive FC 301 and FC 302 (0.25-75 kW design guide; same scheme across sizes) using the built-in RS-485 (FC) port with 8-30 Protocol = Modbus RTU and the FC control profile; parameter data checked against the software 9.5x / 48.96 programming guide.
Also known as: VLT AutomationDrive, FC 301, FC301, FC302, FC-302, FC-301, FC 300
Source: VLT HVAC Drive FC 102 Design Guide 1.1-90 kW (chapter 8 RS485 Installation and Set-up, Modbus RTU) · MG11BC02 · rev. 2014-06. Register numbers, types, scaling and units are reproduced as published; descriptions are our own.