Siemens SINAMICS V20 Modbus register map
SINAMICS V20 compact drive (built-in RS485, Modbus RTU): control and status words, setpoints, diagnostics, faults and PID registers
- Official
- 127 registers
- Modbus RTU
- Revision 1 · 2026-11-10
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
- 127 holding registers
- Groups
- 11
- Revision
- 1 · 2026-11-10
- Added
- ()
- File
- maps/siemens/sinamics-v20.mbmap.json · 32 KB · history
- SHA-256
- 502f3f17e516a0717cdf240a305ddf300f5994832e89dbbddace41519c22affa
- Manufacturer
- siemens.com
Sources and notes
- SINAMICS V20 Inverter Operating Instructions · version A5E34559884-009, 2018-01 section 7.2 MODBUS communication, Mapping table
Source: Siemens, "SINAMICS V20 Inverter Operating Instructions", 01/2018, A5E34559884-009, section 7.2 MODBUS communication, Mapping table; https://cache.industry.siemens.com/dl/files/193/109756193/att_942991/v1/V20_op_instr_0118_en-US.pdf
- Set P0700 = 5 (USS/MODBUS on RS485), P2023 = 2 (Modbus) and power-cycle the inverter; P2021 sets the station address (1 to 247), P2010 the baud rate, P2034 the parity (default even) and P2035 the stop bits (default 1).
- Addresses are the manual's register numbers: register 0 is 40001, so the map uses holding addresses 0-based. Only function codes 3, 6 and 16 are supported.
- Two register blocks overlap in function. 40001-40062 is the older compatible block; 40100-40111 is the process-data block (control word, setpoint, status word, actual value) and 40200 onward is the parameter-data block.
- Values with a scale factor in the manual are already multiplied by it on the wire (frequency 50.00 Hz reads 5000). Setpoint and actual-value percentages (40003, 40044) and the process-data words 40101 and 40111 are relative to the reference frequency P2000; for the process words 0x4000 = 100 %.
- Registers 40014/40015 and 40200-40203 write BICO inputs: only 0 or 1 is accepted and it replaces the previous connection. Digital outputs 3-4 and digital inputs 5-6 exist only with the optional I/O Extension Module.
- The manual lists no register with a fixed value, so the map has no reference values.
- Written from the manufacturer's manual; not tested on a device.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 0 | uint16 | RW | ms | |||
| HR | 1 | uint16 | RW | ||||
| HR | 2 | uint16 | RW | % | ×0.01 | Speed setpoint HSW as a percentage of the reference frequency (P2000); 0.00 to 100.00. | |
| HR | 3 | uint16 | RW | Control word bit 3 (STW:3). | |||
| HR | 4 | uint16 | RW | Control word bit 11 (STW:11): 0 = forward, 1 = reverse. | |||
| HR | 5 | uint16 | RW | Control word bit 0 (STW:0): 1 = start. | |||
| HR | 6 | uint16 | RW | Control word bit 7 (STW:7). | |||
| HR | 7 | int16 | RW | % | ×0.01 | ||
| HR | 8 | uint16 | RW | Reads r0055.8; writing sets P2200 statically to 0 or 1 (BICO). | |||
| HR | 9 | uint16 | RW | % | ×0.1 | ||
| HR | 10 | uint16 | RW | s | ×0.01 | ||
| HR | 11 | uint16 | RW | s | ×0.01 | ||
| HR | 13 | uint16 | RW | Reads r0747.0; writing sets P0731 statically to 0 or 1 (BICO). HIGH = 1, LOW = 0. | |||
| HR | 14 | uint16 | RW | Reads r0747.1; writing sets P0732 statically to 0 or 1 (BICO). HIGH = 1, LOW = 0. | |||
| HR | 15 | uint16 | RW | Hz | ×0.01 | ||
| HR | 16 | int16 | RW | % | ×0.01 | ||
| HR | 17 | int16 | RW | % | ×0.01 | ||
| HR | 18 | uint16 | RW | ×0.001 | |||
| HR | 19 | uint16 | RW | s | |||
| HR | 20 | uint16 | RW | ||||
| HR | 21 | uint16 | RW | % | ×0.01 | ||
| HR | 22 | uint16 | RW | ×0.01 | |||
| HR | 23 | int16 | R | Hz | ×0.01 | r0024. | |
| HR | 24 | int16 | R | RPM | r0022. | ||
| HR | 25 | uint16 | R | A | ×0.01 | r0027. | |
| HR | 26 | int16 | R | Nm | ×0.01 | r0031. | |
| HR | 27 | uint16 | R | kW | ×0.01 | r0032. | |
| HR | 28 | uint16 | R | kWh | r0039. | ||
| HR | 29 | uint16 | R | V | r0026. | ||
| HR | 30 | int16 | R | Hz | ×0.01 | r0020. | |
| HR | 31 | uint16 | R | kW | ×0.01 | r0206. | |
| HR | 32 | uint16 | R | V | r0025. | ||
| HR | 33 | uint16 | R | Status word bit 14 (ZSW:14): FWD / REV. | |||
| HR | 34 | uint16 | R | Status word bit 2 (ZSW:2): STOP / RUN. | |||
| HR | 35 | uint16 | R | Status word bit 10 (ZSW:10): MAX / NO. | |||
| HR | 36 | uint16 | R | Status word bit 9 (ZSW:9): SERIAL / LOCAL. | |||
| HR | 37 | uint16 | R | Status word bit 0 (ZSW:0): ON / OFF. | |||
| HR | 38 | uint16 | R | Status word bit 1 (ZSW:1): READY / OFF. | |||
| HR | 39 | int16 | R | % | ×0.01 | r0754[0]. | |
| HR | 40 | int16 | R | % | ×0.01 | r0754[1]. | |
| HR | 41 | int16 | R | % | ×0.01 | r0774[0]. | |
| HR | 43 | int16 | R | % | ×0.01 | Actual speed HIW as a percentage of the reference frequency. | |
| HR | 44 | int16 | R | % | ×0.01 | r2250. | |
| HR | 45 | int16 | R | % | ×0.01 | r2294. | |
| HR | 46 | int16 | R | % | ×0.01 | r2266. | |
| HR | 47 | uint16 | R | r0722.0. HIGH = 1, LOW = 0. | |||
| HR | 48 | uint16 | R | r0722.1. HIGH = 1, LOW = 0. | |||
| HR | 49 | uint16 | R | r0722.2. HIGH = 1, LOW = 0. | |||
| HR | 50 | uint16 | R | r0722.3. HIGH = 1, LOW = 0. | |||
| HR | 53 | uint16 | R | Status word bit 3 (ZSW:3): FAULT / OFF. | |||
| HR | 54 | uint16 | R | r0947[0]. | |||
| HR | 55 | uint16 | R | r0947[1]. | |||
| HR | 56 | uint16 | R | r0947[2]. | |||
| HR | 57 | uint16 | R | r0947[3]. | |||
| HR | 58 | uint16 | R | Status word bit 7 (ZSW:7): WARN / OK. | |||
| HR | 59 | uint16 | R | r2110. | |||
| HR | 60 | uint16 | R | ×0.01 | r0018 (firmware version). | ||
| HR | 61 | uint16 | R | r0201 (power unit code number). | |||
| HR | 99 | uint16 | RW | Process data 1 (PZD 1), written to the control word STW. Start = 0x047F, stop (OFF1) = 0x047E, fault acknowledge = 0x04FE then 0x047E, reverse start = 0x0C7F. | |||
| HR | 100 | uint16 | RW | Process data 2 (PZD 2): main setpoint HSW, 0x4000 (16384) = 100 % of the reference frequency (P2000). | |||
| HR | 109 | uint16 | R | Process data 1 (PZD 1): status word ZSW. | |||
| HR | 110 | uint16 | R | Process data 2 (PZD 2): main actual value HIW, 0x4000 (16384) = 100 % of the reference frequency (P2000). | |||
| HR | 199 | uint16 | RW | Reads r0747.0; writing sets P0731 statically to 0 or 1 (BICO). HIGH = 1, LOW = 0. | |||
| HR | 200 | uint16 | RW | Reads r0747.1; writing sets P0732 statically to 0 or 1 (BICO). HIGH = 1, LOW = 0. | |||
| HR | 201 | uint16 | RW | Only with the optional I/O Extension Module. Reads r0747.2; writing sets P0733 (BICO). HIGH = 1, LOW = 0. | |||
| HR | 202 | uint16 | RW | Only with the optional I/O Extension Module. Reads r0747.3; writing sets P0734 (BICO). HIGH = 1, LOW = 0. | |||
| HR | 219 | int16 | R | % | ×0.01 | r0774[0]. | |
| HR | 239 | uint16 | R | r0722.0. HIGH = 1, LOW = 0. | |||
| HR | 240 | uint16 | R | r0722.1. HIGH = 1, LOW = 0. | |||
| HR | 241 | uint16 | R | r0722.2. HIGH = 1, LOW = 0. | |||
| HR | 242 | uint16 | R | r0722.3. HIGH = 1, LOW = 0. | |||
| HR | 243 | uint16 | R | Only with the optional I/O Extension Module. r0722.4. HIGH = 1, LOW = 0. | |||
| HR | 244 | uint16 | R | Only with the optional I/O Extension Module. r0722.5. HIGH = 1, LOW = 0. | |||
| HR | 259 | int16 | R | % | ×0.01 | r0754[0]. | |
| HR | 260 | int16 | R | % | ×0.01 | r0754[1]. | |
| HR | 299 | uint16 | R | r0201 (power unit code number). | |||
| HR | 300 | uint16 | R | ×0.01 | r0018 (firmware version). | ||
| HR | 319 | uint16 | R | kW | ×0.01 | r0206. | |
| HR | 320 | uint16 | RW | % | ×0.1 | ||
| HR | 321 | uint16 | RW | s | ×0.01 | ||
| HR | 322 | uint16 | RW | s | ×0.01 | ||
| HR | 323 | uint16 | RW | Hz | ×0.01 | ||
| HR | 324 | int16 | RW | Hz | ×0.01 | P1001. | |
| HR | 325 | int16 | RW | Hz | ×0.01 | P1002. | |
| HR | 326 | int16 | RW | Hz | ×0.01 | P1003. | |
| HR | 327 | int16 | RW | Hz | ×0.01 | P1004. | |
| HR | 329 | int16 | RW | % | ×0.01 | P2889. | |
| HR | 330 | int16 | RW | % | ×0.01 | P2890. | |
| HR | 339 | int16 | R | Hz | ×0.01 | r0020. | |
| HR | 340 | int16 | R | RPM | r0022. | ||
| HR | 341 | int16 | R | Hz | ×0.01 | r0024. | |
| HR | 342 | uint16 | R | V | r0025. | ||
| HR | 343 | uint16 | R | V | r0026. | ||
| HR | 344 | uint16 | R | A | ×0.01 | r0027. | |
| HR | 345 | int16 | R | Nm | ×0.01 | r0031. | |
| HR | 346 | uint16 | R | kW | ×0.01 | r0032. | |
| HR | 347 | uint16 | R | kWh | r0039. | ||
| HR | 348 | uint16 | R | r0807: HAND / AUTO. | |||
| HR | 349 | uint16 | R | A | ×0.01 | r0068. | |
| HR | 399 | uint16 | R | r0947[0]. |
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).