Danfoss VLT HVAC Drive FC 102 Modbus register map
VLT HVAC Drive FC 102 (1.1-90 kW) over the built-in RS485 port, Modbus RTU with the FC control profile
- Official
- 42 registers
- Modbus RTU
- Revision 1 · 2026-10-18
Official: Written from the manufacturer's documentation, but not tested on a device yet. Check the map against the manufacturer's documentation before you write to a live device. Tested it? Report a test.
Communication
- Protocol
- Modbus RTU
- Unit ID
- 1default
- Serial
- 9600 8E1 · 9600 baud, 8 data bits, even parity, 1 stop bit
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 1-based · wire address = address − 1
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 41 holding registers, 1 coil
- Groups
- 5
- Revision
- 1 · 2026-10-18
- Added
- ()
- File
- maps/danfoss/fc-102.mbmap.json · 13 KB · history
- SHA-256
- 4afc99895950eeca45c790d28502f073520f978b949ab744cd15c0c24611c036
- Manufacturer
- danfoss.com
Sources and notes
- VLT HVAC Drive FC 102 1.1-90 kW Design Guide · version MG11BC22, 2014-06 chapter 8.6 to 8.11 (Modbus RTU, register map, FC profile)
Source: Danfoss, "VLT HVAC Drive FC 102 1.1-90 kW Design Guide", MG11BC22 (06/2014); https://assets.danfoss.com/documents/272740/AJ299549559248en-US1801.pdf
- Holding register of parameter x-yy is 10 times its number: 3-12 is register 3120, 8-30 is register 8300. Array parameters need the index in register 9 first.
- Registers and coils are numbered from 1 in the guide, and the bus address is one less (register 50000 is sent as 49999), so this map uses address_base 1.
- Control word, bus reference, status word and main actual value sit at registers 50000, 50010, 50200 and 50210.
- This map lists the registers the design guide describes and a few parameters it uses as examples. The other parameters, their sizes and conversion indexes are in the FC 102 programming guide; a 32-bit parameter takes two registers.
- The guide also describes the control word and status word as coils (1 to 16 and 33 to 48); they are not in this map, use the registers instead.
- To enable Modbus: 8-30 Protocol = Modbus RTU, 8-31 Address 1 to 247, 8-32 Baud rate 2400 to 115200, 8-33 even parity with 1 stop bit by default.
- Function codes: 1, 3, 5, 6, 15 and 16, plus 11, 17 and the diagnostics function 8.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 7 | uint16 | R | Last error code from an FC data object interface | |||
| HR | 9 | uint16 | RW | Index used for the next access to an array parameter; set it before reading or writing one | |||
| HR | 50000 | uint16 | RW | FC profile control word (8-10 Control Profile = FC profile) | |||
| HR | 50000 | uint16 bits 0–1 | RW | Chooses one of the four values of 3-10 Preset Reference (bits 0 and 1) | |||
| HR | 50000 | bool bit 2 | RW | 0 = DC brake and stop, 1 = ramp | |||
| HR | 50000 | bool bit 3 | RW | 0 = coast to a stop, 1 = no coasting | |||
| HR | 50000 | bool bit 4 | RW | 0 = quick stop, 1 = ramp | |||
| HR | 50000 | bool bit 5 | RW | 0 = hold the present output frequency, 1 = use the ramp | |||
| HR | 50000 | bool bit 6 | RW | 0 = ramp stop, 1 = start | |||
| HR | 50000 | bool bit 7 | RW | Reset a trip on the rising edge | |||
| HR | 50000 | bool bit 8 | RW | 1 = run at the jog speed (3-19) | |||
| HR | 50000 | bool bit 9 | RW | 0 = ramp 1, 1 = ramp 2 | |||
| HR | 50000 | bool bit 10 | RW | 1 = the drive uses the control word, 0 = it ignores it | |||
| HR | 50000 | bool bit 11 | RW | 1 = relay 01 on, if 5-40 Function Relay selects control word bit 11 | |||
| HR | 50000 | bool bit 12 | RW | 1 = relay on, if 5-40 Function Relay selects control word bit 12. The text calls it relay 04 and the table relay 02 | |||
| HR | 50000 | uint16 bits 13–14 | RW | Needs Multi Set-ups (bits 13 and 14) | |||
| HR | 50000 | bool bit 15 | RW | 1 = reverse | |||
| HR | 50010 | int16 | RW | % | ×0.006103515625 | Speed reference as a share of the maximum reference: 16384 (4000 hex) is 100 %, negative is reverse (two's complement) | |
| HR | 50200 | uint16 | R | FC profile status word | |||
| HR | 50200 | bool bit 0 | R | ||||
| HR | 50200 | bool bit 1 | R | ||||
| HR | 50200 | bool bit 2 | R | 0 = coasting, 1 = enabled | |||
| HR | 50200 | bool bit 3 | R | 1 = tripped; reset to resume | |||
| HR | 50200 | bool bit 4 | R | ||||
| HR | 50200 | bool bit 6 | R | ||||
| HR | 50200 | bool bit 7 | R | ||||
| HR | 50200 | bool bit 8 | R | 1 = motor speed matches the reference | |||
| HR | 50200 | bool bit 9 | R | 1 = the drive can be controlled over the serial line, 0 = local operation | |||
| HR | 50200 | bool bit 10 | R | 0 = output frequency at the low or high speed limit | |||
| HR | 50200 | bool bit 11 | R | ||||
| HR | 50200 | bool bit 12 | R | 1 = stopped for inverter over-temperature and resumes by itself | |||
| HR | 50200 | bool bit 13 | R | ||||
| HR | 50200 | bool bit 14 | R | ||||
| HR | 50200 | bool bit 15 | R | ||||
| HR | 50210 | int16 | R | % | ×0.006103515625 | Actual output frequency in the same scale as the bus reference: 16384 (4000 hex) is 100 % | |
| HR | 3120 | uint16 | RW | % | ×0.01 | Parameter 3-12; the manual's example: 1352 is 12.52 % | |
| HR | 4140 | uint16 | RW | Hz | ×0.1 | Parameter 4-14; the manual's write example sends 1000 for 100 Hz | |
| HR | 8300 | uint16 | RW | Set to Modbus RTU to use this map | |||
| HR | 8310 | uint16 | RW | ||||
| HR | 8320 | uint16 | RW | 2400 to 115200 baud, coded as in the programming guide | |||
| HR | 8330 | uint16 | RW | Default: even parity, 1 stop bit; coded as in the programming guide | |||
| CO | 65 | bool | RW | 0 = parameter changes go to RAM only, 1 = to RAM and EEPROM |
No registers match
Try part of the name, an address (decimal or 0x hex) or clear the filters.
Help improve this map
- I tested it on a deviceReport whether it worked, even if you did not write the map.
- Suggest a correctionEdit the file on GitHub; it opens a pull request.
- Report a problemA wrong address, type, scale or byte order.
- Read the formatWhat each key of the file means (SPEC.md).