Schneider Electric Altivar 212 (ATV212) Modbus register map
HVAC variable speed drive with Modbus RTU on its RJ45 and open style ports
- Official
- 65 registers
- Modbus RTU
- Revision 1 · 2026-11-11
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
- 1
- Serial
- 9600 8E1 · 9600 baud, 8 data bits, even parity, 1 stop bit
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 0-based
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 65 holding registers
- Groups
- 4
- Translation tables
- 3
- Revision
- 1 · 2026-11-11
- Added
- ()
- File
- maps/schneider-electric/atv212.mbmap.json · 19 KB · history
- SHA-256
- bd1a7d05d039eeddb40178421b145a17e7ad23dedf98a5c296cff244e4b044ce
- Manufacturer
- se.com
Sources and notes
- Altivar 212 Modbus communication manual · version S1A53844 09/2012 Chapters 3 and 5: communication parameters, control, setpoint, monitoring, trip codes and I/O
Source: Schneider Electric, Altivar 212 Modbus communication manual S1A53844, 09/2012
- Partial map: it holds the registers of the Modbus manual (communication parameters, command and setpoint words, monitoring values and trip codes). The other drive parameters are in the Altivar 212 programming manual (S1A53838), which gives their Modbus addresses, and are not mapped.
- Addresses are the decimal numbers of the manual (16#FA00 = 64000), sent as they are: address_base is 0. Functions: 0x03 read, 0x06 write one, 0x10 write several, 0x2B/0x0E device identification, plus indirect block read and write.
- Control: set CMOd (3) to 2 and FMOd (4) to 4, or set bits 14 and 15 of the command word to use Modbus whatever the settings. The command word and the setpoints are kept in RAM only and are lost at power-off. Examples from the manual: FA00 = 16#0400 run forward, 16#0600 reverse; frequency 80 Hz is FA01 = 8000.
- Serial settings: 9600 or 19200 baud (factory 19200), no, even or odd parity (factory even), address 1 to 247 (factory 1), time-out factory 3 s. The stop bit is not configurable: the drive sends 2 stop bits and accepts 1 or 2. Baud rate and parity changes apply after a power cycle.
- The manual lists the digital outputs status at the last trip (FE07) at 65030, the same as FE06; 16#FE07 is 65031 and is used here.
- Output current, torque, voltages and exciting current are in 0.01 % of the rated values.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 3 | uint16 | RW | 2 = communication | |||
| HR | 4 | uint16 | RW | 4 = serial communication reference | |||
| HR | 64000 | uint16 | RW | Bit 10 run, bit 9 reverse, bit 11 coast stop, bit 12 emergency stop, bit 13 reset, bit 14 setpoint priority, bit 15 command priority; 16#C400 run forward from Modbus, 16#C600 run reverse | |||
| HR | 64032 | uint16 | RW | Bit 1 energy reset, bit 12 over-current stall level change | |||
| HR | 64001 | uint16 | RW | Hz | ×0.01 | 0 to the maximum frequency (FH) | |
| HR | 64019 | uint16 | RW | rpm | 0 to 24000; converted with the number of motor poles (F856) | ||
| HR | 64080 | uint16 | RW | Bit 0 relay FL, bit 1 relay RY; needs the relay function set to communication data | |||
| HR | 64081 | uint16 | RW | 0 to 1023 (10 bits); needs AO function set to 18 (communication data) | |||
| HR | 2048 | uint16 | RW | 0 = 9600, 1 = 19200 | |||
| HR | 2049 | uint16 | RW | 0 = none, 1 = even, 2 = odd | |||
| HR | 2050 | uint16 | RW | 0 to 247; used on both ports | |||
| HR | 2051 | uint16 | RW | 0 = off, 1 to 100 s | |||
| HR | 2055 | uint16 | RW | 0 = RJ45, 1 = open style | |||
| HR | 2080 | uint16 | RW | Open style port; 0 = 9600, 1 = 19200 | |||
| HR | 2081 | uint16 | RW | Open style port; 0 = none, 1 = even, 2 = odd | |||
| HR | 2089 | uint16 | RW | 1 = Modbus RTU | |||
| HR | 2160 | uint16 | RW | Indirect block selection | |||
| HR | 2161 | uint16 | RW | Indirect block selection | |||
| HR | 2165 | uint16 | RW | Indirect block selection | |||
| HR | 2166 | uint16 | RW | Indirect block selection | |||
| HR | 2167 | uint16 | RW | Indirect block selection | |||
| HR | 2168 | uint16 | RW | Indirect block selection | |||
| HR | 2169 | uint16 | RW | Indirect block selection | |||
| HR | 64768 | uint16 | R | Hz | ×0.01 | ||
| HR | 64769 | uint16 | R | Drive state bits: bit 1 tripped, bit 2 alarm, bit 3 MOFF, bit 9 reverse, bit 10 run, bit 12 emergency stop, bit 15 local | |||
| HR | 64774 | uint16 | R | Bit 0 F, bit 1 R, bit 2 RES, bit 7 VIA | |||
| HR | 64775 | uint16 | R | Bit 0 RY, bit 2 FL | |||
| HR | 64834 | uint16 | R | ||||
| HR | 64841 | uint16 | R | ||||
| HR | 64656 | uint16 | R | ||||
| HR | 64657 | uint16 | R | Bits: 0 overcurrent, 1 drive overload, 2 motor overload, 3 overheat, 4 overvoltage, 5 undervoltage, 7 undercurrent, 8 over-torque, 10 operation hours | |||
| HR | 65024 | uint16 | R | Hz | ×0.01 | ||
| HR | 65025 | uint16 | R | ||||
| HR | 65026 | uint16 | R | Hz | ×0.01 | ||
| HR | 65027 | uint16 | R | % | ×0.01 | Percent of the drive's rated current | |
| HR | 65028 | uint16 | R | % | ×0.01 | ||
| HR | 65029 | uint16 | R | % | ×0.01 | ||
| HR | 65030 | uint16 | R | ||||
| HR | 65031 | uint16 | R | The manual lists 65030 for this register; 16#FE07 is 65031 | |||
| HR | 65040 | uint16 | R | ||||
| HR | 65041 | uint16 | R | ||||
| HR | 65042 | uint16 | R | ||||
| HR | 65043 | uint16 | R | ||||
| HR | 65044 | uint16 | R | h | ×0.01 | ||
| HR | 65045 | uint16 | R | Hz | ×0.01 | ||
| HR | 65046 | uint16 | R | Hz | ×0.01 | ||
| HR | 65048 | int16 | R | % | ×0.01 | ||
| HR | 65056 | uint16 | R | % | ×0.01 | ||
| HR | 65057 | uint16 | R | % | ×0.01 | ||
| HR | 65058 | uint16 | R | Hz | ×0.01 | ||
| HR | 65062 | uint16 | R | % | |||
| HR | 65063 | uint16 | R | % | |||
| HR | 65065 | uint16 | R | kW | ×0.01 | ||
| HR | 65072 | uint16 | R | kW | ×0.01 | ||
| HR | 65077 | uint16 | R | 0 to 1023 | |||
| HR | 65078 | uint16 | R | 0 to 1023 | |||
| HR | 65090 | uint16 | R | ||||
| HR | 65093 | uint16 | R | ||||
| HR | 65094 | uint16 | R | ||||
| HR | 65097 | uint16 | R | ||||
| HR | 65152 | uint16 | R | h | ×0.01 | ||
| HR | 65145 | uint16 | R | Bit 0 fan life, bit 1 circuit board life, bit 2 main-circuit capacitor life, bit 3 user set | |||
| HR | 65168 | uint16 | R | rpm | |||
| HR | 65142 | uint16 | R | Wh | |||
| HR | 65143 | uint16 | R | Wh |
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).