Problem Statement: Two PROFINET Masters on the X2 Side of a PN/PN Coupler
A PN/PN Coupler is, by design, two electrically isolated PROFINET networks glued together through a transparent data buffer. The X1 side is one PROFINET segment and the X2 side is a separate, independent PROFINET segment. When a project requires two controllers (for example a DriveComm PLC and a LoadCell PLC) on the X2 side to share their transfer area with an upstream S7-400H system on the X1 side, the coupler must be operated as a Shared Device. The most common symptom in the field is that the PLC Access column in the transfer mapping cannot be changed for the slots belonging to the second controller. Every slot appears locked to the first controller that was assigned, and the second PLC's data area is unreachable from the X1 master.
This article documents the architectural constraint that causes the symptom, the Shared Device mechanism with MSI/MSO that solves it, the exact configuration procedure in TIA Portal, and the alternative CP443-1 topology that some integrators prefer for S7-400H plants.
PN/PN Coupler Architecture and Topology Constraints
The Siemens PN/PN Coupler (order numbers 6ES7158-3AD10-0XA0 for V3.x and 6ES7158-3AD10-0XA1 / 6ES7158-3MU10-0XA0 for V4.x) contains two independent PROFINET IO devices back-to-back. Each port side acts strictly as a PROFINET slave toward its respective network. There is no shared CPU, no shared memory, and no implicit cross-side routing beyond the configured transfer area.
| Side | Logical Role | Visible To | Configuration File |
|---|---|---|---|
| X1 | PROFINET IO Device (slave) | X1-side IO Controller (master) | X1 GSD, imported in X1 project |
| X2 | PROFINET IO Device (slave) | X2-side IO Controller(s) (master) | X2 GSD, imported in X2 project |
| Both sides are independent IO Devices. They cannot be re-tasked as IO Controllers. Any data crossing sides must be modeled as slots inside the transfer area. | |||
Because the two sides belong to two different PROFINET subnetworks, two IO Controllers that share the same physical X2 segment must cooperate with the coupler as a Shared Device. This is a PROFINET-spec feature (PROFIBUS Nutzerorganisation / PI, profile guideline for Shared Device), not a Siemens extension, and it requires that the coupler firmware supports it.
http://<coupler-IP>/index.htm. Couplers at V2.x cannot run Shared Device; either update firmware or use a CP443-1-based alternative described later.Root Cause: Why the PLC Access Column Is Locked
In TIA Portal / STEP 7, when you insert the PN/PN Coupler GSD into a project, the device view shows the slot table of the transfer area. Each input and output byte range corresponds to a sub-module. The PLC Access column (sometimes labeled Assigned to or Owner) controls which IO Controller is allowed to read/write that sub-module.
The PLC Access column is intentionally grayed out and locked when:
- Only one IO Controller is configured in the same TIA project as the coupler. Without a second controller being present in the project tree, TIA cannot offer a second assignment target, so the field is read-only.
- The coupler has not been marked as a Shared Device in the inspector under Properties > Shared Device.
- The slots are configured with default settings instead of being split via MSI/MSO (Multiple Slot Input / Multiple Slot Output).
The remedy is structural, not parameter-based: the two controllers must live in separate TIA Portal projects, and each project must import the same coupler GSD and assign only the slots it owns. This is dictated by the PROFINET Shared Device rule that one IO Controller per project.
Shared Device with MSI/MSO: Conceptual Model
Shared Device divides the sub-modules of the Shared Device among up to two IO Controllers using MSI (input side) and MSO (output side). The rule set is:
| Slot Sub-Module | Owner Project A (e.g., DriveComm PLC) | Owner Project B (e.g., LoadCell PLC) |
|---|---|---|
| Input slot 0..15 (bytes from DriveComm) | Assigned | -- |
| Input slot 16..31 (bytes from LoadCell) | -- |
Assigned |
| Output slot 0..15 (bytes to DriveComm) | Assigned | -- |
| Output slot 16..31 (bytes to LoadCell) | -- |
Assigned |
| Status/Diagnostic slot | Optional: Assign to A | Optional: Assign to B |
Slots marked with -- in a given project are still downloaded to that IO Controller but they appear as not owned, meaning the controller will not process the cyclic IO for those slots. The -- marking is what makes the slot assignment changeable; without the --, the slot is hard-assigned to whichever controller sits in the same project as the GSD.
Prerequisites Before Configuration
- PN/PN Coupler firmware V3.0 or later (verify via the coupler's Web server).
- TIA Portal V15.1 or later (Shared Device UI in the inspector requires V15.1+; earlier versions need STEP 7 V5.5 + HSP).
- Two separate TIA Portal projects (one per IO Controller). Do not combine both controllers and the coupler in one project.
- Static IP addresses assigned to all three devices (coupler X1, coupler X2, DriveComm PLC, LoadCell PLC, S7-400H CP443-1).
- PROFINET device names assigned to every IO Device, including the coupler on both sides (two different names required:
pn-pn-coupler-x1andpn-pn-coupler-x2). - Topology: DriveComm and LoadCell PLCs on a shared X2 subnet; coupler X2, DriveComm, and LoadCell must be in the same Ethernet broadcast domain.
Step-by-Step Configuration in TIA Portal
Step 1 - Create the First Project (DriveComm PLC side)
- Create a new TIA Portal project Project_DriveComm.
- Add the DriveComm PLC (e.g., S7-1500 or S7-300) as the IO Controller.
- Install the PN/PN Coupler GSD via Options > Manage General Station Description (GSD) files. The GSD file ships with TIA Portal from V14 onward; it can also be downloaded from Siemens Support entry 109738536 - PN/PN Coupler manual.
- Drag the PN/PN Coupler from the hardware catalog onto the PROFINET IO of the DriveComm PLC.
- Open the Device View of the coupler. Right-click each input and output slot that belongs to LoadCell's data area and set PLC Access > Project B (or simply
--). - Compile and download only the DriveComm project.
Step 2 - Create the Second Project (LoadCell PLC side)
- Create a separate TIA Portal project Project_LoadCell.
- Add the LoadCell PLC as the IO Controller.
- Install the same PN/PN Coupler GSD.
- Drag the coupler onto the LoadCell PLC's PROFINET IO.
- In the Device View, set PLC Access > Project A (
--) for the slots that already belong to DriveComm, and Project B for the slots owned by LoadCell. - Assign the X2-side PROFINET device name
pn-pn-coupler-x2to the coupler (same physical IP/name as in Project_DriveComm - the tool reuses the same name). - Compile and download the LoadCell project.
Step 3 - S7-400H Project (X1 Side)
- Open the S7-400H project on the X1 side.
- Install the same PN/PN Coupler GSD; insert the coupler as a PROFINET IO Device under the CP443-1 / CP443-1 Advanced.
- Configure the slots that you want to receive on the S7-400H side (both DriveComm and LoadCell data, if desired).
- Assign the X1-side PROFINET device name
pn-pn-coupler-x1. - Download to the H-station.
Transfer Mapping and Slot Programming Reference
The PN/PN Coupler's transfer area is a slot-based map. The default GSDML for V4.x exposes up to 256 input bytes and 256 output bytes per side, subdivided into sub-modules. A typical allocation for the scenario is:
| Sub-Module (TIA Slot) | Length | Direction | X1 (S7-400H) View | X2 (DriveComm) | X2 (LoadCell) |
|---|---|---|---|---|---|
| Slot 1 | 16 bytes | Input (X2 -> X1) | Read-only | Owner (writes) | -- |
| Slot 2 | 16 bytes | Input (X2 -> X1) | Read-only | -- |
Owner (writes) |
| Slot 3 | 16 bytes | Output (X1 -> X2) | Owner (writes) | Read | -- |
| Slot 4 | 16 bytes | Output (X1 -> X2) | Owner (writes) | -- |
Read |
| Slot 0 (Status) | 4 bytes | Input | Owner | -- | -- |
The PLC Access column becomes editable only after the slot row is selected and the Shared Device checkbox is enabled in the inspector under Properties > Shared Device > MSI/MSO assignment. Refer to chapter 6.2.5 of the PN/PN Coupler manual for the MSI/MSO detailed field map.
Communication from Two X2 PLCs to S7-400H
Once Shared Device is operational, data flows as follows:
- DriveComm PLC → S7-400H: DriveComm writes to Slot 1 input sub-module → X2-side coupler copies it into the transfer buffer → X1 side exposes it to the S7-400H CP443-1 cyclic IO.
- LoadCell PLC → S7-400H: Same path through Slot 2.
- S7-400H → DriveComm PLC: S7-400H writes to Slot 3 → X1 coupler maps to X2 → DriveComm reads.
- S7-400H → LoadCell PLC: S7-400H writes to Slot 4 → X1 → X2 → LoadCell reads.
Both PLCs on X2 cannot write into the same input sub-module simultaneously; that is precisely why the slot is split into two physically separate sub-modules (Slot 1 and Slot 2 in the example above). The PROFINET Shared Device specification forbids concurrent ownership of the same sub-module.
Alternative Architecture: CP443-1 PN with Shared Subnet
If Shared Device still fails to commission (older firmware, repeated configuration mismatches, or plant policy against multiple TIA projects), the classic Siemens workaround for S7-400H plants is a CP443-1 Advanced module on the H-station with a common subnet:
- Add a CP443-1 Advanced to each side of the S7-400H pair.
- Place the CP443-1, the PN/PN Coupler X1, and either the DriveComm or the LoadCell PLC on a common PROFINET subnet.
- Use S7 PUT/GET or BSEND/BRCV between the H-CPU and the standalone CPU for data exchange across subnets.
| Approach | Pros | Cons |
|---|---|---|
| Shared Device (MSI/MSO) | Deterministic cyclic IO, one physical cable, real-time | Three separate TIA projects, slot split mandatory, FW gate |
| CP443-1 + common subnet | Single project view, works on older coupler FW | Non-cyclic or slower acyclic traffic, more configuration in NetPro |
| CP443-1 + Industrial Ethernet (ISO-on-TCP) | Simplest, no Shared Device needed | Add'l switches/routing, no PROFINET real-time |
Verification and Diagnostics
- Open the Web server of the PN/PN Coupler and confirm Shared Device mode = active on both X1 and X2 pages.
- In each TIA project, run Online > Online and Diagnostics on the coupler and check that the IO Controller list shows the expected partner controller in the Shared Device Owner column.
- From the S7-400H, force a value in Slot 3 output bytes; observe Slot 3 input bytes (loopback) and verify on the DriveComm PLC that the data arrives within one PROFINET update cycle (typically 1 ms).
- From the LoadCell PLC, write a value into Slot 2 and read it back on the S7-400H.
- Check PROFINET alarms in the S7-400H diagnostic buffer. A healthy Shared Device shows no alarm with error code
0xF1C0("Shared Device slot mismatch") or0xF1C1("Shared Device parameter error").
Troubleshooting Matrix
| Symptom | Probable Cause | Remedy |
|---|---|---|
| PLC Access column grayed out | Coupler not flagged as Shared Device in inspector | Open Device View > Properties > Shared Device > Enable |
| Only DriveComm data visible on X1 | LoadCell project missing or slots not split | Create separate project for LoadCell; mark DriveComm slots as --
|
| Diagnostic 0xF1C0 "Shared Device mismatch" | Slot count/length differs between projects | Reconcile GSDML versions and slot layout |
| Diagnostic 0xF1C1 "parameter error" | Slot ownership collides (two A's or two B's) | Ensure MSI and MSO assignments are complementary |
| Coupler drops on X2 side after download | Same device name assigned to two controllers | Verify PROFINET names: X1 side vs X2 side must differ |
| No data on S7-400H, no error | Slot mapped but not assigned to H-CPU in X1 project | Add the slot to the CP443-1 device configuration on X1 side |
Field-Proven Caveats
- Always keep the same GSDML version in all three projects. Mixed GSD versions frequently cause slot-count mismatches that look like configuration errors but are actually firmware-skew errors.
- PROFINET device name uniqueness is enforced per IO Device. The coupler on X1 and X2 are different IO Devices from the network's perspective - they must each have their own PROFINET name and IP, even though they live in the same physical box.
- Watch out for H-system failover: when the S7-400H standby takes over the CP443-1 role, the Shared Device owner relationship is unchanged, but AR (Application Relationship) is re-established. Allow at least 3 update cycles for re-synchronization.
- If the DriveComm and LoadCell PLCs are required to exchange data with each other, that must happen through the S7-400H (X1) side or through a separate PN Master/Slave connection. The coupler does not provide peer-to-peer X2 communication.
- Shared Device is supported on PROFINET V2.3 and later. PROFINET Conformance Class C is not required for Shared Device, but real-time class 1 (RT) is mandatory.
FAQ
Can two controllers live in the same TIA project and still use Shared Device on a PN/PN Coupler?
No. PROFINET Shared Device mandates one IO Controller per project. You must create separate TIA Portal projects for the DriveComm PLC and the LoadCell PLC, each importing the same coupler GSDML and assigning only its own slots via MSI/MSO.
Which PN/PN Coupler firmware versions support Shared Device?
Shared Device is supported from firmware V3.0 onward. Verify on the coupler's Web diagnostics page or on the module label. Couplers at V2.x must be firmware-updated or replaced.
Why is the PLC Access column grayed out in my project?
The Shared Device checkbox is not yet enabled in the inspector, or you only have one IO Controller in the project. Enable Properties > Shared Device in the device view of the coupler to unlock the assignment columns.
How many input/output bytes can the PN/PN Coupler transfer under Shared Device?
The default GSDML for V4.x exposes up to 256 input and 256 output bytes per side. Practical limits depend on the IO Controller's process image size and the configured update time (typically 1 ms at RT class 1).
Is CP443-1 Advanced a viable alternative if Shared Device fails?
Yes. Place the CP443-1 Advanced on a common PROFINET subnet with one of the X2 controllers and use S7 PUT/GET or BSEND/BRCV between the H-CPU and the standalone CPU. The trade-off is loss of deterministic cyclic IO across the coupler and additional configuration in NetPro.