Overview
The SINAMICS S120 drive family exposes its process data (control words, setpoints, status words, actual values) through a deterministic telegram interface. To make this data available to HMI, SCADA, or higher-level MES applications, the most common integration path is a SIMATIC NET PC station acting as an OPC DA / OPC UA server on a standard industrial Ethernet (PROFINET) network. The PC station reads the cyclic process image from the SINAMICS Control Unit (CU310PN, CU310-2 PN, or CU320-2 PN) and re-publishes the values as OPC tags that any OPC client can subscribe to.
Engineers new to this architecture often ask three concrete questions:
- Can a regular on-board PC Ethernet port be used, or is a Siemens CP1616 / CP1623 required?
- What SINAMICS Control Unit (CU) is mandatory for PROFINET-based OPC access?
- Why are the data-block addresses
DBW2048andDBW3072offset by exactly 1024 bytes, and how do I extend the pattern to 1, 3, 4, or more axes?
This reference answers those questions with the parameter-level detail required for commissioning, including the exact telegram types, slot layout, and OPC tag mapping recommended in the Siemens documentation Accessing SINAMICS parameters via OPC server (SIMATIC NET, V8.x, PDF).
System Architecture
The architecture has three logical tiers: the SINAMICS drive line, the PROFINET/Ethernet transport, and the OPC client tier. The SIMATIC NET PC software sits on the transport tier as both an OPC server and an IE/PROFINET node.
Prerequisites
| Item | Requirement | Notes |
|---|---|---|
| SINAMICS S120 firmware | V4.x / V5.x (CU310PN, CU310-2 PN, CU320-2 PN) | PROFINET interface required for Ethernet OPC access; CU310DP / CU320 with PROFIBUS need CP5611/CP5621 in the PC instead |
| SIMATIC NET PC software | V8.x or later (V8.2 / 16 / 17 for current Windows) | Contains the Station Configuration Editor, OPC server OPC.SimaticNET, and the IE/PROFINET driver |
| STEP 7 / TIA Portal | For PC station hardware configuration | HW catalog path: SIMATIC PC station > User application > OPC server
|
| PC Ethernet interface | Standard on-board 100/1000 Mbit or Siemens CP1616 / CP1623 | For PROFINET RT, a standard on-board NIC is acceptable; IRT or hard-realtime applications should use CP1616/CP1623 |
| Drive telegram | Standard telegram 1, 2, 3, 4, 5, 6, 102, 103, 105, 106, 110, 111, 220, 221 | Configured in SINAMICS via p0922 (DO1) and p2079 (additional DOs) |
| PROFINET topology | SCALANCE switch (or compatible), PROFINET device name assigned | Use SINAMICS STARTER or Startdrive for IP / device-name assignment |
Control Unit Selection for OPC Communication
OPC over Ethernet is only possible if the SINAMICS Control Unit has an Ethernet / PROFINET interface that the SIMATIC NET PC can reach on IP. The available CUs and their OPC compatibility are summarized below.
| Control Unit | PROFINET port | PROFIBUS | Ethernet OPC via SIMATIC NET | Multi-axis capable |
|---|---|---|---|---|
| CU310PN | 2 x RJ45, integrated switch | No | Yes (on-board NIC or CP1616) | 1 axis per CU |
| CU310-2 PN | 2 x RJ45 | No | Yes | 1 axis per CU |
| CU320-2 PN | 2 x RJ45 (built-in) + optional CBE20 | No | Yes | Up to 6 axes (CBE20) / 12 axes (CU320-2 DP with CBE20) |
| CU320-2 DP | No | Yes | Requires CP5621 / CP5623 + PROFIBUS | Up to 12 axes |
| CU310DP | No | Yes | Requires CP5621 in the PC | 1 axis |
For the configuration shown in the source material (one PC station talking to two Servo drive objects), the most common hardware choices are:
- CU310PN × 2, each on its own PROFINET device name (one axis per CU), or
- CU320-2 PN with two Motor Modules, exposing Servo_02 and Servo_03 as Drive Objects (DO2 and DO3) on a single PROFINET node.
PC Station Configuration in SIMATIC NET
Use the Station Configuration Editor that ships with SIMATIC NET to assemble the PC station before any OPC tags are created. The configuration is stored in the PC station's XML, not the project, and it is consumed by the runtime service SIMATIC NET Configuration Service.
- Open Station Configuration Editor (Start » Siemens Automation » SIMATIC » SIMATIC NET » Configuration Console).
- Add an OPC server slot: select OPC Server from the catalog and drag it into slot 1.
- Add an IE / PROFINET interface: select IE from the catalog and assign it to the physical NIC (on-board or CP1616). The slot number is typically 0 for the IE module.
- Assign the PC station an IP address that is reachable from the SINAMICS CUs (subnet must match
PN-IO subnet). - Save, then click Station » Load so the runtime loads the configuration. The OPC DA server
OPC.SimaticNETstarts once the configuration loads. - Verify the OPC server is registered. From an elevated command prompt:
The list must containopcenum -listOPC.SimaticNET. If it does not, restart the service:net stop "SIMATIC NET Configuration Service" net start "SIMATIC NET Configuration Service"
SINAMICS S120 Telegram Configuration
The cyclic process image is defined by the telegram type. Each drive object uses one telegram. The default telegram and the data word length (PZD) are configured by parameters on the drive object.
| Telegram (p0922) | Length PZD setpoint | Length PZD actual | Typical use |
|---|---|---|---|
| 1 | 2 words | 2 words | Speed setpoint, 16-bit |
| 2 | 4 words | 4 words | Speed setpoint + actual, 16-bit |
| 3 | 2 words (32-bit NSOLL) | 2 words (32-bit NIST) | Speed, 32-bit |
| 4 | 4 words (32-bit NSOLL + signals) | 4 words | Speed 32-bit + I/O |
| 5 | 4 words (DSC) | 4 words | Dynamic Servo Control |
| 6 | 4 words (DSC + torque) | 4 words | DSC with torque feedforward |
| 102 | 6 words | 6 words | Positioning, 32-bit |
| 103 | 10 words | 10 words | Positioning with DSC |
| 105 | 10 words | 10 words | Positioning with DSC and torque |
| 106 | 12 words | 12 words | Positioning with DSC, torque, and additional signals |
| 110 | 4 words | 4 words | Free BICO, 16-bit |
| 111 | 6 words | 6 words | Free BICO, 32-bit |
| 220 | 10 words | 10 words | Free BICO 32-bit, full |
| 221 | 12 words | 12 words | Free BICO 32-bit, extended |
For each additional Drive Object, the telegram is selected via p0922 on that DO, and a list of telegrams is set globally with p2079. The DO mapping in the PROFINET telegram is defined by p0978 (subslot 0 for the CU, subslots 1..n for DOs).
Data Block Mapping and Offset Explanation
The source material references two data blocks with addresses that look unfamiliar at first:
-
DB2098.DBW2048— Control word 1 (ON/OFF1), Servo_02 -
DB1001.DBD2048— Setpoint (REAL, NSOLL), Servo_02 -
DB898.DBW2048— Status word (WORD), Servo_02 -
DB63.DBD2048— Actual speed (REAL, NIST_A), Servo_02
And for Servo_03, the addresses are uniformly offset by 1024 bytes (0x400):
-
DB2098.DBW3072(= 2048 + 1024) DB1001.DBD3072DB898.DBW3072DB63.DBD3072
Three things are happening at once and they all need to be understood separately.
Why the same address for different data types
The same numeric address appears four times because each DB holds a different word of the process image for the same axis slot. They are not the same memory location. The DB number identifies which field of the telegram is being read:
| DB number | Holds | Bit / word offset within slot | Source SINAMICS signal |
|---|---|---|---|
| DB 2098 | Control word 1 (STW1), integer | Word 0 of the slot | |
| DB 1001 | Speed setpoint, REAL (NSOLL_A) | Word 2..3 of the slot | CU NSOLL_A (r2060[1]) |
| DB 898 | Status word (ZSW1), WORD | Word 0 of the slot (return path) | CU ZSW1 (r2089[0] feedback) |
| DB 63 | Speed actual value, REAL (NIST_A) | Word 2..3 of the slot (return path) | CU NIST_A (r2060[1] feedback) |
The exact DB numbers (DB 2098, DB 1001, DB 898, DB 63) are project-specific. They are assigned when the OPC server wizard maps the PROFINET slots to S7-compatible data blocks. As long as the wizard has access to the same drive configuration, the DB numbers are deterministic for a given project.
Why byte offset 2048 and 3072
The SINAMICS S120 reserves a 1024-byte (0x400) slot per Drive Object in the PROFINET process image. The base offset of 2048 (0x800) is the configured I/O base address of the SINAMICS station as entered in STEP 7 / TIA on the PC station, or the start of the S7 input/output area assigned to the IE module. Drive Object 2 (Servo_02) starts at byte 2048, and Drive Object 3 (Servo_03) starts at 2048 + 1024 = 3072.
| Drive Object | Slot index | Byte offset (decimal) | Byte offset (hex) |
|---|---|---|---|
| Reserved / system | 0 | 0 – 2047 | 0x000 – 0x7FF |
| Servo_02 (DO2) | 1 | 2048 – 3071 | 0x800 – 0xBFF |
| Servo_03 (DO3) | 2 | 3072 – 4095 | 0xC00 – 0xFFF |
| Servo_n (DOn) | n - 1 | 2048 + (n - 2) * 1024 … | 0x800 + (n - 2) * 0x400 … |
Extending the pattern to 1, 3, 4 axes
For an arbitrary number of axes, the rule is simple:
offset(DO_n) = base_offset + (n - 2) * 1024 [bytes, decimal]
offset_hex(DO_n) = base_offset_hex + (n - 2) * 0x400
Applied to the project:
| Number of axes | Servo_02 offset | Servo_03 offset | Servo_04 offset | Servo_05 offset |
|---|---|---|---|---|
| 1 axis | 2048 | — | — | — |
| 2 axes | 2048 | 3072 | — | — |
| 3 axes | 2048 | 3072 | 4096 | — |
| 4 axes | 2048 | 3072 | 4096 | 5120 |
| 6 axes (CU320-2 + CBE20 max) | 2048 | 3072 | 4096 | 5120 |
For six axes on a CU320-2 PN with CBE20, the highest slot is at 2048 + 5 * 1024 = 7168 (0x1C00). The reserved base area of 2048 bytes (slots 0) is always present, and on a CU320-2 with CBE20 the limit is six Drive Objects per PROFINET interface.
Step-by-Step Commissioning
- Assign the PROFINET device name to the CU310PN / CU320-2 PN from STARTER / Startdrive using Topology Editor or PRONETA. Without a unique PROFINET name, the SIMATIC NET PC station will not establish AR (Application Relationship).
-
Configure the telegram in STARTER: in the drive's Communication node, select telegram (e.g., 3 for 32-bit speed). For CU320-2 PN, also configure
p0978with the list of DOs to be mapped cyclically. - Build the PC station in STEP 7 / TIA Portal: drag a PC station into the project, add an OPC server and an IE module, and assign the IE module to the same PROFINET subnet as the SINAMICS station.
- Download the PC station configuration via the Station Configuration Editor (live) or via the project download (offline). Confirm the IE module shows running in the Configuration Console.
-
Establish cyclic communication: from the OPC Scout V10 (bundled with SIMATIC NET), browse the OPC DA namespace
OPC.SimaticNET→ the S7 connection. The four DBs (control, setpoint, status, actual) must be visible. -
Write a test value to verify write access. From OPC Scout, write to
DB2098.DBW2048a value of0x047E(control word: ON + OFF1 + OFF2 cleared + enable). The drive should accept the command and the status wordDB898.DBW2048should transition to0x0531or similar. - Subscribe the OPC client (WinCC, TIA HMI, or third-party) to the same tags at a 100 ms update rate. Cyclic PROFINET updates at 1 ms (or the configured send clock) feed the OPC cache.
Verification and Diagnostics
Once the OPC server is running, verify each layer independently.
- PROFINET link: the IE module in the Configuration Console must show operate and no errors. The SINAMICS station's PROFINET LEDs (PN 1 / PN 2) must be solid green on the port connected to the switch.
- Cyclic I/O: in STARTER online mode, open Control » Commissioning » Telegram diagnostics and confirm the receive / send PZD counters increment. A non-incrementing counter indicates configuration mismatch (e.g., telegram type wrong on one side).
-
OPC DA browsing: in OPC Scout, browse
OPC.SimaticNET. The tags must appear with current quality Good (0xC0). If the quality is Bad (0x00) or Uncertain (0x40), check the S7 connection in NetPro / TIA. -
OPC UA (if used): if you switched to OPC UA, the endpoint is
opc.tcp://<PC>:48010and the security policies are None, Basic128Rsa15, or Basic256Sha256. The certificate must be trusted in the client's certificate store. -
Status word walk: write control word
0x047E, then0x047F. Status word must transition0x0531→0x0537→0x053Fwithin one PROFINET update cycle.
Troubleshooting Matrix
| Symptom | Likely root cause | Verification | Remediation |
|---|---|---|---|
| OPC tag quality = Bad | S7 connection not established, or PC station configuration not loaded | Configuration Console → IE → operate? OPC Scout browse | Re-load Station Configuration Editor; restart SIMATIC NET service |
| Tag visible but does not update | Telegram length mismatch between PC station and SINAMICS | STARTER online → telegram diagnostics counter | Match p0922 on DO with the slot length in PC station hardware config |
| Drive does not react to control word | STW1 source / sink wrong; BICO routing incomplete | Check r2089[0] in expert list of STARTER |
Ensure p2051[0] = STW1; ensure CU p0850 / p0840 are wired to STW1 bits |
| Setpoint sent but motor does not turn | Enable signals missing (OFF1, OFF2, OFF3, enable) | Bit 0..3 of DB898.DBW2048 (ZSW1) status |
Set STW1 = 0x047F (ON + OFF1 + OFF2 + OFF3 + enable operation) |
| On-board NIC works, CP1616 does not | Driver installation order / firmware | Device Manager → Siemens Industrial Ethernet | Reinstall SIMATIC NET; assign PROFINET IRT only to CP1616, not on-board NIC |
| On-board NIC works, but PROFINET IRT classes fail | On-board NIC is not suitable for IRT | STARTER topology → sync domain check | Use CP1616 / CP1623 for IRT, or drop IRT and use PROFINET RT |
| Address offset appears to be 0 in OPC tag | DB wizard generated the wrong base address | Inspect DB at offset 0; it should map to a system slot, not a drive | Re-run the OPC mapping wizard with the correct base address 2048 (0x800) |
| Adding a 3rd axis breaks the 2-axis configuration | Slot in PC station HW config was not extended | STEP 7 / TIA » device view » slot list | Insert an additional DO slot in the SINAMICS subslot list, recompile, and download the PC station |
| OPC UA client cannot connect | Firewall on the PC blocks TCP 48010 |
Test-NetConnection -Port 48010 from a second PC |
Open inbound 48010 (and 4840 for discovery) on the Windows firewall |
| Read works, write returns Access Denied | OPC client connected with read-only credentials | OPC Scout » group » properties | Re-add the group with read/write; or check the S7 connection's PUT/GET permission on the SINAMICS |
Frequently Asked Questions
Do I need a Siemens CP1616 / CP1623, or can I use the on-board Ethernet port of the PC?
For PROFINET RT, the on-board Ethernet port of any modern PC is fully supported by SIMATIC NET. For PROFINET IRT, isochronous drive synchronization, or applications that require hard realtime, use the Siemens CP1616 (PCI) or CP1623 (PCIe). The configuration and OPC tag structure is identical in both cases.
Why is Servo_02 at byte 2048 and Servo_03 at byte 3072?
Each SINAMICS Drive Object occupies a 1024-byte slot in the PROFINET process image. The base address 2048 (0x800) is the configured I/O start of the SINAMICS station; Drive Object 3 starts at 2048 + 1024 = 3072. To add a fourth axis, use 2048 + 2 * 1024 = 4096, and so on. This 1024-byte slot size is reserved regardless of the telegram length, so even a 2-word telegram uses the full 1024 bytes.
Can I run the same OPC configuration with PROFIBUS instead of PROFINET?
Yes, but the PC must be equipped with a Siemens PROFIBUS CP (CP5611, CP5621, CP5613, or CP5623). SIMATIC NET supports the OPC server over PROFIBUS in the same way as PROFINET. The DB / address layout is identical, but the cyclic update cycle is typically slower on PROFIBUS (1 ms on PROFINET RT vs 1–4 ms on PROFIBUS DP).
Which SINAMICS firmware versions are supported by SIMATIC NET OPC V8.x?
SIMATIC NET V8.x supports SINAMICS S120 firmware V4.4 and later through V5.x, including the STARTER/Startdrive commissioning tools. For legacy V4.x firmware, an older SIMATIC NET version may be required. Always check the SIMATIC NET release notes for the specific firmware compatibility list.
How do I extend the project to 3 or 4 axes?
Insert the additional Motor Modules in STARTER and assign them to a free DO slot (DO4, DO5, …). In the PC station hardware configuration, extend the SINAMICS subslot list to include the new DO with the same 1024-byte slot size. After downloading the new PC station configuration, the new axis appears at offset 2048 + (n - 2) * 1024, e.g., 4096 for DO4. The same DBs (control, setpoint, status, actual) are generated for the new axis automatically.