Schneider Electric Altivar 12 (ATV12) Modbus register map
Compact variable speed drive with Modbus RTU on its RJ45 port
- Official
- 43 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
- 43 holding registers
- Groups
- 4
- Revision
- 1 · 2026-11-11
- Added
- ()
- File
- maps/schneider-electric/atv12.mbmap.json · 12 KB · history
- SHA-256
- 2bd80adb9763cf13271c930e249224c359be88bec1b48217e33e88ee2c5d0879
- Manufacturer
- se.com
Sources and notes
- Altivar 12 Modbus Communication Manual · version BBV28590 06/2012 Communication parameters, drive state machine, command and status words and the I/O scanner
Source: Schneider Electric, ATV12 Modbus Communication Manual BBV28590, 06/2012
- Partial map: the manual gives the communication settings, the control and status words, the communication scanner and a few examples. The full list of drive parameters is in a separate Excel file that came with the manual and is not mapped here.
- Registers are addressed as the W numbers of the manual (W3201 is address 3201; the examples send 16#0C81 for 3201 and 16#2329 for 9001), so address_base is 0. Functions: 0x03 read, 0x06 write one, 0x10 write several, 0x17 read/write (four words each way), 0x2B/0x0E device identification.
- Control: write the command word (CMD, 8501) with 6, 7 and then 15 to run and read the status word (ETA, 3201); the state machine follows IEC 61800-7. A masked ETA (ETA and 16#006F) gives the state: 16#0050 switch on disabled, 16#0031 ready, 16#0033 switched on, 16#0037 operation enabled, 16#0017 quick stop active.
- Units are given only by the manual's examples (HSP 50 Hz = 500, tFr 60 Hz = 600, SFr 4 kHz = 40, so 0.1 Hz and 0.1 kHz); no scale is set because the manual does not state it in a table.
- Serial settings: 4.8, 9.6, 19.2 or 38.4 kbps (default 19.2 kbps on the ATV12), 8E1 by default, address 1 to 247. The factory address is off until set. Address 0 is broadcast and is not answered.
- This map covers the ATV12 only; the ATV212 uses a different manual.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 3201 | uint16 | R | Drive state word; 16#0637 stopped or forward at speed, 16#0237 forward accelerating or decelerating, 16#8237 reverse accelerating or decelerating | |||
| HR | 3201 | bool bit 0 | R | ||||
| HR | 3201 | bool bit 1 | R | ||||
| HR | 3201 | bool bit 2 | R | ||||
| HR | 3201 | bool bit 3 | R | ||||
| HR | 3201 | bool bit 4 | R | ||||
| HR | 3201 | bool bit 5 | R | ||||
| HR | 3201 | bool bit 6 | R | ||||
| HR | 3201 | bool bit 9 | R | ||||
| HR | 3201 | bool bit 10 | R | ||||
| HR | 3201 | bool bit 11 | R | ||||
| HR | 3201 | bool bit 14 | R | ||||
| HR | 3201 | bool bit 15 | R | ||||
| HR | 3206 | uint16 | R | ||||
| HR | 8501 | uint16 | RW | Drive state commands: 6 shutdown, 7 switch on, 15 enable operation, 0 disable voltage, 2 quick stop, 128 fault reset (rising edge). Bit 11 reverse direction, bit 8 stop | |||
| HR | 8504 | uint16 | RW | ||||
| HR | 8602 | uint16 | RW | Speed reference written over Modbus | |||
| HR | 8604 | uint16 | R | ||||
| HR | 3102 | uint16 | RW | Example value 40 for 4 kHz | |||
| HR | 3103 | uint16 | RW | Example value 600 for 60 Hz (0.1 Hz) | |||
| HR | 3104 | uint16 | RW | Example value 500 for 50 Hz (0.1 Hz) | |||
| HR | 3105 | uint16 | RW | 0.1 Hz | |||
| HR | 9001 | uint16 | RW | The manual's example writes 13 for 13 s | |||
| HR | 6001 | uint16 | RW | 0 = off (broadcast only), 1 to 247 | |||
| HR | 6003 | uint16 | RW | 4.8, 9.6, 19.2 or 38.4 kbps | |||
| HR | 6004 | uint16 | RW | 8O1, 8E1, 8N1 or 8N2 | |||
| HR | 6005 | uint16 | RW | 0.1 to 30 s, default 10 s | |||
| HR | 12701 | uint16 | RW | Address of the parameter read as input word 1 | |||
| HR | 12702 | uint16 | RW | Address of the parameter read as input word 2 | |||
| HR | 12703 | uint16 | RW | Address of the parameter read as input word 3 | |||
| HR | 12704 | uint16 | RW | Address of the parameter read as input word 4 | |||
| HR | 12721 | uint16 | RW | Address of the parameter written as output word 1 | |||
| HR | 12722 | uint16 | RW | Address of the parameter written as output word 2 | |||
| HR | 12723 | uint16 | RW | Address of the parameter written as output word 3 | |||
| HR | 12724 | uint16 | RW | Address of the parameter written as output word 4 | |||
| HR | 12741 | uint16 | R | ||||
| HR | 12742 | uint16 | R | ||||
| HR | 12743 | uint16 | R | ||||
| HR | 12744 | uint16 | R | ||||
| HR | 12761 | uint16 | RW | ||||
| HR | 12762 | uint16 | RW | ||||
| HR | 12763 | uint16 | RW | ||||
| HR | 12764 | uint16 | RW |
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).