Problem: SINAMICS S120 Isochronous Mode Compile Error in TIA Portal
During hardware compilation of a TIA Portal project that contains a SINAMICS S120 drive on PROFINET IRT, the build aborts with the following error from the device configuration compiler:
Isochronous mode must be enabled on submodule, because the submodule is operating in isochronous mode
When the engineer opens the S120 in the device view, navigates to Properties → Advanced options → Detail overview, the Iso mode checkbox is grayed out. Toggling it is impossible because the dependency on the parent IRT configuration has not been satisfied. The build will not produce a downloadable configuration until the isochronous enable propagates to every required subslot.
Root Cause Analysis
The error is generated when the PROFINET controller (S7-1500, S7-1200 G2, or ET 200 CPU) is configured as an IRT sync master and has placed a SINAMICS S120 in a synchronized IRT domain, but the isochronous enable flag is missing on at least one of the drive's submodules. The TIA Portal compiler reconciles the isochronous state from the top down: first the sync domain, then the IO device, then each submodule. If any subslot is not individually marked isochronous, the device-level flag is locked and the build rejects the configuration with diagnostic Parameter error at startup.
Two conditions commonly trigger the lockout:
- Missing IRT-class assignment on the S120 IO device. The drive must be set to IRT (synchronization) rather than RT. The S7 CPU defaults to RT Class RT for non-CPU devices unless explicitly overridden.
- Zusatztelegramm 701 (PZD-2/5) is configured as RT only. Telegram 105 is often auto-set to IRT by the catalog, but the supplementary telegram 701 frequently remains in RT class, which breaks the isochronous chain. TIA Portal therefore refuses to enable isochronous mode on the parent subslot.
Architecture and Topology Requirements
Isochronous PROFINET requires three architectural conditions to be in place before the S120 submodules will accept the enable:
| Layer | Required Setting | Location in TIA Portal |
|---|---|---|
| Sync domain | At least one device designated as Sync Master, all drives as Sync Slave | Topology view → Sync domains |
| Controller port | IRT class, fixed ports assigned, no auto-negotiation on sync ports | Device view → PROFINET interface → Ports |
| IO device (S120) | RT class = IRT, isochronous application cycle = bus cycle (or divisor) | Properties → PROFINET interface → Real time settings |
| Drive submodules | Every used telegram marked isochronous, including the supplementary 701 | Device view → Subslot → Properties → Addresses |
The isochronous application cycle in the S7-1500 is tied to OB61 (or OB6x for the servo/IPO task). Per the official TIA Portal functional description, you cannot add an F-OB with event class Synchronous Cycle directly during the configuration of isochronous mode. Add the standard OB first, validate the build, and only then insert any F-OB referencing the isochronous event class (see Siemens Support ID 54110126).
Prerequisites
- TIA Portal V16 or later (V18/V19/V20 recommended for current SINAMICS S120 GSDML/GSD variants).
- Installed HSP (Hardware Support Package) for the SINAMICS S120 CU320-2 PN or CU310-2 PN firmware version present in the cabinet.
- CPU firmware that supports IRT class 2: S7-1500 (FW ≥ 1.8 minimum for full IRT), S7-1200 G2 (FW ≥ 4.4 with IRT support), or ET 200SP CPU.
- Drive firmware with PROFINET IRT isochronous support: SINAMICS S120 with SW ≥ 4.7 on CU320-2 PN (check p978 on the drive Control Unit for the active version).
- Project must contain the S120 in the device tree with telegrams 105 and 701 inserted in the device view.
Step-by-Step Configuration
Follow this sequence exactly. Order matters: changing the sync domain after configuring subslots can revert the isochronous enable and require re-entry.
Step 1 - Assign the Sync Domain
- Open the Topology view in the project.
- Right-click the S7 CPU and select PROFINET interface → Sync domain.
- Create a new sync domain if none exists, or join the existing one.
- Mark the CPU as Sync Master.
- Select the SINAMICS S120 IO device and set its role to Sync Slave (IRT). This is the setting that drives the rest of the configuration; without it, the device view will continue to show RT and the Iso mode checkbox will remain grayed out.
Step 2 - Set the S120 IO Device to IRT
- Open the Device view for the SINAMICS S120.
- Select the PROFINET interface of the drive.
- Go to Properties → PROFINET interface → Real time settings.
- Set RT class = IRT.
- Set the Synchronization role to Sync Slave.
- Confirm the Send clock matches the controller (typical values: 250 µs, 500 µs, 1 ms, 2 ms). The isochronous application cycle must be a multiple of the send clock.
Step 3 - Enable Isochronous Mode on Telegram 105 Subslot
- In the device view of the S120, locate the Subslot table on the right pane.
- Select the subslot that contains Standard telegram 105 (PZD-10/15).
- Open Properties → Addresses for that subslot.
- Under the IO addresses section, locate the Isochronous mode option and tick it.
- Assign the inputs and outputs to a process image partition (PIP). The PIP is consumed by the isochronous OB. If you skip this step, the isochronous enable is rejected even if the checkbox is set.
Step 4 - Configure Zusatztelegramm 701 (PZD-2/5) as IRT
This is the most frequently missed step and the direct cause of the reported failure.
- In the same S120 device view, select the subslot containing Zusatztelegramm 701 (PZD-2/5) - this is the supplementary telegram used for Siemens-specific status words beyond what 105 carries.
- Open Properties → Addresses.
- Set the RT class to IRT (this is independent of the parent device's RT class setting and must be applied per subslot).
- Tick Isochronous mode.
- Assign its I/O addresses to the same process image partition used in Step 3.
Step 5 - Assign the Process Image Partition to the Isochronous OB
- In the project tree, open Program blocks.
- Add a new OB of type Synchronous Cycle (OB61 in S7-1500, or the equivalent on S7-1200 G2).
- Open the OB properties and assign the PIP created in Steps 3 and 4.
- Inside the OB, access the drive process data via direct PIP I/O access (e.g.
%IWsymbolic names from the subslot addresses).
Per the TIA Portal functional description for S7-1500 central I/O isochronous mode, three things must be in place: isochronous enable on the module, address assignment to a PIP, and the OB referencing that PIP. Missing any one of the three yields the same compile error pattern (S7-1500 Isochronous Mode Configuration).
Verification
After completing the configuration, perform these checks in order:
- Hardware compile. Right-click the device → Compile → Hardware (rebuild all). The error must clear. If it persists, repeat Step 4 - the most common cause of a second failure is an additional subslot (often telegram 750 for the DO telemetry channel) that has not been promoted to IRT.
- Topology compile. Right-click the PROFINET subnet → Compile. The topology editor must show no port-interconnection warnings between the CPU and the S120.
- Download to the CPU. Connect online and download the hardware configuration.
-
Online diagnostics. Open Online & diagnostics → PROFINET diagnostics on the S120. Confirm:
- RT class = IRT
- Sync role = Slave, synchronized
- No Parameter error alarm on any subslot
- Data status of telegram 105 and telegram 701 = Valid (0x00 qualifier)
- OB61 execution. In online view, confirm OB61 is being called at the configured isochronous application cycle and that the PIP addresses contain fresh process data each cycle. A static value indicates the PIP is bound to the wrong OB or to no OB at all.
Diagnostic Alarms and Error Codes
When the S120 rejects a configuration because of inconsistent isochronous settings, the drive raises a PROFINET channel diagnostics alarm. The most common channel error codes seen at commissioning:
| Channel Error Code (hex) | Meaning | Likely Cause |
|---|---|---|
| 0x0000 | No error | Configuration accepted |
| 0x0010 | Parameter error - submodule | Telegram 105 or 701 not flagged isochronous |
| 0x0011 | Parameter error - IO device | RT class of device does not match submodule expectation |
| 0x0015 | Configuration error - slot | Slot number does not match GSDML definition |
| 0x0018 | Isochronous mode mismatch | Subslot cycle time does not match the sync master |
| 0x001A | Sync domain inconsistency | Sync slave has no reachable sync master |
These codes appear in the S120 diagnostics buffer as PROFINET alarms and are mirrored in TIA Portal under Online & diagnostics → Diagnostics buffer. For GSDML-based configurations, an inconsistent submodule choice will cause the controller to reject the device entirely with a Parameter error alarm (TIA Portal Isochronous Mode documentation).
Common Pitfalls
- Mixing RT and IRT subslots on the same drive. If any subslot remains in RT class, the device-level isochronous enable is blocked. Promote every subslot that carries process data.
- Send clock mismatch. Setting the CPU send clock to 1 ms and the S120 to 250 µs is a common mistake; the slave must be a divisor of the master, not a multiple.
- PIP assigned but no synchronous OB. The PIP is consumed only by the OB61. Without the OB, the compile may succeed but no data flows at runtime.
- Inserting F-OB before standard OB. The F-OB with event class Synchronous Cycle must be added after the standard OB; adding it first produces its own error in TIA Portal (see Siemens Support ID 54110126).
- GSDML vs. HSP configuration. A drive imported via GSDML requires manual selection of the isochronous configuration; an HSP-imported drive may default to IRT but still needs the subslot-level enable.
- Topology port assignment. Sync domains require explicit port interconnection in the topology view. Leaving ports in Auto mode defeats the sync chain.
Telegram and Subslot Reference
The S120 PROFINET interface uses a fixed slot/subslot map that TIA Portal populates from the GSDML. The most commonly used telegrams in an isochronous application:
| Telegram | Type | PZD Width (PZD-IN/PZD-OUT) | Typical Use | Iso Mode Required? |
|---|---|---|---|---|
| 105 | Standard | 10 / 15 | Positioning, setpoints, status words, encoder values | Yes for IRT |
| 701 | Supplementary | 2 / 5 | Siemens-specific extension (e.g. safety telegram integration) | Yes when chained with 105 |
| 750 | Supplementary | variable | DO Telemetry, free mapping | Only if used in the isochronous OB |
| 1 to 6 | Standard | 2 to 14 | Speed control, basic positioning | Yes for IRT |
Application Cycle and Timing
Choose the isochronous application cycle based on the mechanical dynamics:
| Application | Typical Cycle | Send Clock | OB |
|---|---|---|---|
| Positioning, camming | 1 ms | 250 µs | OB61 |
| High-speed printing, packaging | 500 µs | 250 µs | OB61 with IPO fast |
| General motion | 2 ms | 500 µs | OB61 or OB62 |
| Low-dynamics pumping, fans | 4 ms | 1 ms | OB61 |
Jitter tolerance for SINAMICS S120 is documented in the SINAMICS S120 Function Manual. Exceeding it causes the drive to drop out of synchronization and raise F08501 (life sign monitoring). The S7-1500 jitter on PROFINET IRT is typically below 1 µs, well within drive tolerance.
FAQ
Why is the Iso mode checkbox grayed out in the SINAMICS S120 device view?
The S120 has not been placed in an IRT sync domain as a Sync Slave. Open Topology view, create or join a sync domain, mark the CPU as Sync Master, and set the S120 to Sync Slave (IRT). The Iso mode checkbox becomes editable once the device-level RT class is IRT.
Do I have to set IRT on every subslot, or only on telegram 105?
You must set IRT and isochronous mode on every subslot that carries process data used by the isochronous OB. In the typical SINAMICS S120 configuration this means telegram 105 and Zusatztelegramm 701 (PZD-2/5). Missing 701 is the most common cause of the reported compile error.
Can I add an F-OB with event class Synchronous Cycle during isochronous configuration?
No. Per Siemens Support article 54110126, the F-OB must be added after the standard synchronous OB is configured and validated. Adding it first triggers a separate compile error and is not supported.
What send clock and isochronous cycle should I use for a 1 ms motion application?
Use a 250 µs send clock on the PROFINET sync domain and set the isochronous application cycle to 1 ms. The cycle must be an integer multiple of the send clock; 500 µs and 2 ms are also valid choices depending on jitter budget and CPU load.
The hardware compiles now but OB61 sees no fresh data. What is wrong?
The process image partition (PIP) on the subslot addresses is not bound to the synchronous OB. Open the OB properties and assign the same PIP that was configured on the subslots in Steps 3 and 4. Without that binding, the compiler does not link the PIP to the OB and the data is never refreshed inside the synchronous cycle.