Siemens SINAMICS G120 Modbus register map
Modular low-voltage AC converter family from Siemens. Control units with an RS485 port (such as the CU240B-2 and CU240E-2) can act as a Modbus RTU slave and expose process data, converter data, diagnostics and the technology controller through fixed holding registers.
- Protocol
- Modbus RTU (RS485)
- Defaults
- Modbus RTU is selected with p2030 = 2. The manual's Modbus settings list baud rate 19200 bit/s (p2020 = 7, range 4800 to 187500 bit/s) and states the converter is set at the factory for even parity (p2031 = 2). The address comes from the Control Unit address switch (1 to 127), or from p2021 (1 to 247, default 1) only when the switch is 0. An address change takes effect after a power cycle (p. 135-136).
- Addresses in the manual
- Modicon style numbers (for example 40001 is holding register 0)
- 32 and 64-bit values
- Not stated in the manual
- Registers listed
- 63
- Checked against
- A5E34229197B AG, Edition 11/2020, FW V4.7 SP13
Address base. Registers are printed in the 4xxxx style. The manual's request example for register 40110 puts 0x006D (109) in the start-address field and for register 40100 it uses 0x0063 (99), so the wire address is the printed number minus 40001 (p. 145, p. 147). For example 40100 in the manual (Control word (process data 1)) is address 99 on the wire.
Word order. Every register listed here is a single 16-bit register, so no multi-register word order applies to these rows.
Modbus Poll and the Modbus protocol itself count from 0. The "Wire address" column is the number to type into Modbus Poll.
Downloads
The register table has every column on this page. The blocks file imports into Modbus Poll. The template JSON holds the same blocks plus unit, scale and access for scripts.
Registers
| Manual | Wire | Register | Type | Regs | Unit | Scale | Access | Area |
|---|---|---|---|---|---|---|---|---|
| 40100 | 99 | Control word (process data 1)ControlWord · Bit layout is given in the CU240B-2/CU240E-2 operating instructions, p. 212-213 (OFF1, OFF2, OFF3, enable operation, ramp controls, fault acknowledge, control from PLC, reversal, MOP up and down). |
bitfield16 | 1 | 1 | RW | Holding (FC03) | |
| 40101 | 100 | Main setpoint (process data 2)MainSetpoint · Scaling is 1 as printed; the value is normalized to the reference speed (see register 40324). |
int16 | 1 | 1 | RW | Holding (FC03) | |
| 40110 | 109 | Status word (process data 1)StatusWord · Bit layout is given in the operating instructions, p. 213-214 (ready, running, fault, OFF2 and OFF3 state, switch-on inhibit, alarm, speed in tolerance, direction). |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 40111 | 110 | Main actual value (process data 2)MainActualValue · Scaling is 1 as printed; the value is normalized to the reference speed. |
int16 | 1 | 1 | R | Holding (FC03) | |
| 40200 | 199 | Digital output 0DigitalOutput0 · Maps to p0730, r0747.0 and p0748.0. |
bool | 1 | 1 | RW | Holding (FC03) | |
| 40201 | 200 | Digital output 1DigitalOutput1 · Maps to p0731, r0747.1 and p0748.1. |
bool | 1 | 1 | RW | Holding (FC03) | |
| 40202 | 201 | Digital output 2DigitalOutput2 · Maps to p0732, r0747.2 and p0748.2. |
bool | 1 | 1 | RW | Holding (FC03) | |
| 40220 | 219 | Analog output 0 actual valueAnalogOutputActual0 · Maps to r0774.0. Printed range -100.0 to 100.0 percent. |
int16 | 1 | % | 0.01 | R | Holding (FC03) |
| 40221 | 220 | Analog output 1 actual valueAnalogOutputActual1 · Maps to r0774.1. Printed range -100.0 to 100.0 percent. |
int16 | 1 | % | 0.01 | R | Holding (FC03) |
| 40222 | 221 | Analog output 2 actual valueAnalogOutputActual2 · Maps to r0774.2. Printed range -100.0 to 100.0 percent. |
int16 | 1 | % | 0.01 | R | Holding (FC03) |
| 40523 | 522 | Analog output 0 setpoint from fieldbusAnalogOutputWrite0 · Maps to p0791.0. Printed range -199.99 to 199.99 percent. With Modbus selected, registers 40523 and 40524 drive the analog outputs directly (p. 137). |
int16 | 1 | % | 0.01 | RW | Holding (FC03) |
| 40524 | 523 | Analog output 1 setpoint from fieldbusAnalogOutputWrite1 · Maps to p0791.1. Printed range -199.99 to 199.99 percent. With Modbus selected, registers 40523 and 40524 drive the analog outputs directly (p. 137). |
int16 | 1 | % | 0.01 | RW | Holding (FC03) |
| 40525 | 524 | Analog output 2 setpoint from fieldbusAnalogOutputWrite2 · Maps to p0791.2. Printed range -199.99 to 199.99 percent. With Modbus selected, registers 40523 and 40524 drive the analog outputs directly (p. 137). |
int16 | 1 | % | 0.01 | RW | Holding (FC03) |
| 40240 | 239 | Digital input 0DigitalInput0 · Maps to r0722.0. |
bool | 1 | 1 | R | Holding (FC03) | |
| 40241 | 240 | Digital input 1DigitalInput1 · Maps to r0722.1. |
bool | 1 | 1 | R | Holding (FC03) | |
| 40242 | 241 | Digital input 2DigitalInput2 · Maps to r0722.2. |
bool | 1 | 1 | R | Holding (FC03) | |
| 40243 | 242 | Digital input 3DigitalInput3 · Maps to r0722.3. |
bool | 1 | 1 | R | Holding (FC03) | |
| 40244 | 243 | Digital input 4DigitalInput4 · Maps to r0722.4. |
bool | 1 | 1 | R | Holding (FC03) | |
| 40245 | 244 | Digital input 5DigitalInput5 · Maps to r0722.5. |
bool | 1 | 1 | R | Holding (FC03) | |
| 40260 | 259 | Analog input 0AnalogInput0 · Maps to r0755[0]. Printed range -300.0 to 300.0 percent. |
int16 | 1 | % | 0.01 | R | Holding (FC03) |
| 40261 | 260 | Analog input 1AnalogInput1 · Maps to r0755[1]. Printed range -300.0 to 300.0 percent. |
int16 | 1 | % | 0.01 | R | Holding (FC03) |
| 40262 | 261 | Analog input 2AnalogInput2 · Maps to r0755[2]. Printed range -300.0 to 300.0 percent. |
int16 | 1 | % | 0.01 | R | Holding (FC03) |
| 40263 | 262 | Analog input 3AnalogInput3 · Maps to r0755[3]. Printed range -300.0 to 300.0 percent. |
int16 | 1 | % | 0.01 | R | Holding (FC03) |
| 40300 | 299 | Power stack numberPowerStackNumber · Maps to r0200. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 40301 | 300 | Converter firmware versionFirmwareVersion · Maps to r0018 divided by 10000, for example 470. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 40320 | 319 | Rated powerRatedPower · Maps to r0206. |
uint16 | 1 | kW | 0.01 | R | Holding (FC03) |
| 40321 | 320 | Current limitCurrentLimit · Maps to p0640. Printed range 10.0 to 400.0. |
uint16 | 1 | A | 0.1 | RW | Holding (FC03) |
| 40322 | 321 | Ramp-up timeRampUpTime · Maps to p1120. Printed range 0.00 to 650.0. |
uint16 | 1 | s | 0.01 | RW | Holding (FC03) |
| 40323 | 322 | Ramp-down timeRampDownTime · Maps to p1121. Printed range 0.00 to 650.0. |
uint16 | 1 | s | 0.01 | RW | Holding (FC03) |
| 40324 | 323 | Reference speedReferenceSpeed · Maps to p2000. Printed range 6 to 32767. |
uint16 | 1 | rpm | 1 | RW | Holding (FC03) |
| 40340 | 339 | Speed setpointSpeedSetpoint · Maps to r0020. |
int16 | 1 | rpm | 1 | R | Holding (FC03) |
| 40341 | 340 | Actual speedActualSpeed · Maps to r0022. |
int16 | 1 | rpm | 1 | R | Holding (FC03) |
| 40342 | 341 | Output frequencyOutputFrequency · Maps to r0024. |
int16 | 1 | Hz | 0.01 | R | Holding (FC03) |
| 40343 | 342 | Output voltageOutputVoltage · Maps to r0025. |
uint16 | 1 | V | 1 | R | Holding (FC03) |
| 40344 | 343 | DC link voltageDCLinkVoltage · Maps to r0026. |
uint16 | 1 | V | 1 | R | Holding (FC03) |
| 40345 | 344 | Current actual valueCurrentActual · Maps to r0027. |
uint16 | 1 | A | 0.01 | R | Holding (FC03) |
| 40346 | 345 | Actual torqueTorqueActual · Maps to r0031. |
int16 | 1 | N·m | 0.01 | R | Holding (FC03) |
| 40347 | 346 | Actual active powerActivePower · Maps to r0032. |
uint16 | 1 | kW | 0.01 | R | Holding (FC03) |
| 40348 | 347 | Energy consumptionEnergyConsumption · Maps to r0039. |
uint16 | 1 | kWh | 1 | R | Holding (FC03) |
| 40349 | 348 | Control priority (hand or auto)ControlPriority · Maps to r0807. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 40400 | 399 | Fault number, index 0FaultNumber0 · Maps to r0947[0]. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 40401 | 400 | Fault number, index 1FaultNumber1 · Maps to r0947[1]. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 40402 | 401 | Fault number, index 2FaultNumber2 · Maps to r0947[2]. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 40403 | 402 | Fault number, index 3FaultNumber3 · Maps to r0947[3]. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 40404 | 403 | Fault number, index 4FaultNumber4 · Maps to r0947[4]. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 40405 | 404 | Fault number, index 5FaultNumber5 · Maps to r0947[5]. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 40406 | 405 | Fault number, index 6FaultNumber6 · Maps to r0947[6]. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 40407 | 406 | Fault number, index 7FaultNumber7 · Maps to r0947[7]. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 40408 | 407 | Alarm numberAlarmNumber · Maps to r2110[0]. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 40409 | 408 | Actual alarm codeActualAlarmCode · Maps to r2132. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 40499 | 498 | Parameter access error codePrmErrorCode · Internal error code for the last failed register write (p. 147). Printed range 0 to 255. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 40500 | 499 | Technology controller enableTechCtrlEnable · Maps to p2200 and r2349.0. Values 0 or 1. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 40501 | 500 | Technology controller motorized potentiometer setpointTechCtrlMOP · Maps to p2240. Printed range -200.0 to 200.0 percent. |
int16 | 1 | % | 0.01 | RW | Holding (FC03) |
| 40510 | 509 | Actual value filter time constantTechCtrlActualFilterTime · Maps to p2265. Printed range 0.00 to 60.0. |
uint16 | 1 | 0.01 | RW | Holding (FC03) | |
| 40511 | 510 | Actual value scaling factorTechCtrlActualScale · Maps to p2269. Printed range 0.00 to 500.00. |
uint16 | 1 | % | 0.01 | RW | Holding (FC03) |
| 40512 | 511 | Proportional gainTechCtrlProportionalGain · Maps to p2280. Printed range 0.000 to 65.000. |
uint16 | 1 | 0.001 | RW | Holding (FC03) | |
| 40513 | 512 | Integral timeTechCtrlIntegralTime · Maps to p2285. Printed range 0 to 60. |
uint16 | 1 | s | 1 | RW | Holding (FC03) |
| 40514 | 513 | Derivative time constantTechCtrlDerivativeTime · Maps to p2274. Printed range 0 to 60. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 40515 | 514 | Output upper limitTechCtrlMaxLimit · Maps to p2291. Printed range -200.0 to 200.0 percent. |
int16 | 1 | % | 0.01 | RW | Holding (FC03) |
| 40516 | 515 | Output lower limitTechCtrlMinLimit · Maps to p2292. Printed range -200.0 to 200.0 percent. |
int16 | 1 | % | 0.01 | RW | Holding (FC03) |
| 40520 | 519 | Effective setpoint after rampTechCtrlEffectiveSetpoint · Maps to r2250. |
int16 | 1 | % | 0.01 | R | Holding (FC03) |
| 40521 | 520 | Actual value after filterTechCtrlActualFiltered · Maps to r2266. |
int16 | 1 | % | 0.01 | R | Holding (FC03) |
| 40522 | 521 | Technology controller outputTechCtrlOutput · Maps to r2294. |
int16 | 1 | % | 0.01 | R | Holding (FC03) |
Scale is the number to multiply the raw value by to get the unit.
Open in Modbus Poll
- Download the Modbus Poll blocks file.
- Open Modbus Poll, connect to the device and set its unit ID. The manual does not state the word order for 32-bit values. Check one known value (a voltage or a counter) and switch the setting if it reads wrong.
- In the blocks panel on the right, click Import CSV and pick the file. CSV import is a Pro feature. Without Pro, Modbus Poll polls the first 20 values of your blocks.
- The wire addresses are already in the file, so there is no 0-based or 1-based conversion to do.
Once the values look right, export the tag list to Ignition, Kepware, Node-RED, Home Assistant or Voltrus SCADA.
Source and accuracy
Manufacturer document: SINAMICS G120, G120P, G120C, G120D, G110M, G115D Fieldbuses Function Manual (cache.industry.siemens.com)
A5E34229197B AG, Edition 11/2020, FW V4.7 SP13, p. 133-147. Read on 2026-10-24.
Also used: Converter with the CU240B-2 and CU240E-2 Control Units, Operating Instructions 01/2017, FW V4.7 SP6 (control and status word bit tables, Modbus RTU settings) (cache.industry.siemens.com)
Addresses, types, units and scale are taken from the document above. Names and descriptions are written by Voltrus. Firmware versions can differ, so confirm a value on your own device before you rely on it.
Found a mistake? Report it by email with the register address and the manual page.