MPI Bus Architecture and Operating Principle
MPI (Multi-Point Interface) is a Siemens-proprietary, RS-485-based token-bus protocol used to interconnect SIMATIC S7-300 and S7-400 CPUs, programming devices (PGs), operator panels (OPs/TPs/TP177/TP227), and SCADA masters. The MPI port on a Siemens CPU uses the same physical layer as PROFIBUS-DP: a single shielded twisted pair, terminated at both physical ends with 220 Ω between cores A and B, plus 390 Ω pull-up to +5 V and pull-down to ground inside the PROFIBUS connector. Because of this shared physical layer, PROFIBUS cable, PROFIBUS connectors, and the PROFIBUS RS-485 repeater are reused on MPI segments. The 9-pin Sub-D pinout follows the PROFIBUS standard (pin 3 = data line B, pin 8 = data line A, pin 6 = +5 V isolated, pin 5 = GND isolated, pin 4 = RTS, pin 1 = shield).
Logically, MPI is a token-passing ring: a single circulating token grants the holding station the right to initiate a request. When the station's work is complete, it passes the token to the next higher MPI address. This makes multi-master operation possible without a central arbiter, but it also means that bus rotation time grows with the number of active nodes and with the per-station request load.
Bus Parameters: Addresses, Baud Rate, and Node Count
| Parameter | Default | Range / Practical Limit | Notes |
|---|---|---|---|
| Transmission rate | 187.5 kbps | 19.2 kbps, 187.5 kbps, 1.5 Mbps (CPU-dependent) | 187.5 kbps is the universal MPI default. Older CPUs may default to 19.2 kbps and must be aligned across the segment. |
| Maximum nodes per MPI segment | 32 | 0–31 (MPI practical), 0–126 (DP theoretical) | Address 0 reserved for PG; 1 default for OP; 2 reserved on some CPUs |
| Address uniqueness | Required | Each station unique on the bus | Duplicate address causes intermittent bus retries and CPU SF/BF faults |
| Token rotation | n/a | Token rotation time grows with N and per-node load | Target < 100 ms for SCADA responsiveness |
Every MPI station (CPU, OP/TP, SCADA, PG) must be assigned a unique address in STEP 7 (CPU) and in the device's configuration tool (WinCC flexible, TIA Portal, ProTool, Set PG/PC interface). Address 0 is reserved for the programming device and is not assigned to a permanent master. Address 1 is the operator panel default. Address 2 is the default on most S7-300 CPUs; this collides with the OP default if a TP is wired to the same segment, so the TP must be moved off address 1 whenever a CPU is using it.
Multi-Master Operation on MPI
MPI supports multiple active masters. The protocol does not elect one; instead, every master participates in token rotation. The SCADA station (WinCC with CP 5611 / CP 5611 A2 / CP 5621 / CP 5711) is a fully qualified master and can poll any slave. The TPs (TP177, TP227) are typically configured as active masters when they need to write setpoints; otherwise they are passive slaves that respond only to the CPU's acyclic requests. CPUs themselves are masters in the sense that they participate in the token ring and initiate GD broadcasts.
Consequences for a topology of 3 S7-300 + 3 TP227 + 1 SCADA + 1 (occasional) PG:
- Up to 8 active token-holders rotate the bus; the SCADA poll cycle and the GD scan time share the same bus time.
- If the SCADA polls at 200 ms and each CPU runs a GD circle at 100 ms, the bus is loaded but well within MPI capability.
- If the number of nodes or polling frequency grows, evaluate migration to Industrial Ethernet (TCP/IP or PROFINET).
Cable, Connectors, and Termination
| Component | Order Number | Specification |
|---|---|---|
| PROFIBUS cable (violet, standard) | 6XV1830-0EH10 | Characteristic impedance ~135 Ω, 24 AWG, 2 cores + shield; max attenuation 5 dB/km at 187.5 kHz |
| PROFIBUS connector 90° outlet | 6ES7972-0BA12-0XA0 | With terminating resistor switch and PG port |
| PROFIBUS connector 35° outlet | 6ES7972-0BB12-0XA0 | For space-constrained cabinets |
| PROFIBUS connector without PG port | 6ES7972-0BA50-0XA0 | Last-node terminator variant |
| PROFIBUS FastConnect connector | 6ES7972-0BA70-0XA0 | Insulation-displacement, no soldering |
Termination rules:
- Switch ON the integrated terminating resistor only on the two physical ends of the segment.
- All intermediate nodes must switch OFF their resistors; otherwise reflections will corrupt the signal.
- Verify termination with a DC voltmeter between pin 3 (B) and pin 8 (A): ~1.0 Vdc with terminator ON, ~0.6 Vdc with terminator OFF, ~0 Vdc with no power on any node.
Segment Distance Limits: Non-Isolated vs Isolated Ports
The MPI port on standard S7-300 CPUs is not galvanically isolated. This is the root cause of the strict 50 m rule. The S7-400 CPU MPI port and the PROFIBUS RS-485 repeater are isolated, which permits 1000 m segments. The rule applies to the segment between two isolated ports, not to the segment between the device and the terminator. This is fully documented in the Siemens support article 12907719 "Maximum cable length of MPI subnetworks" which should be treated as the authoritative reference.
| Segment Boundary | Max Length at 187.5 kbps | Max Length at 19.2 kbps | Notes |
|---|---|---|---|
| CPU MPI ↔ CPU MPI (non-isolated) | 50 m | 50 m | Common-mode voltage tolerance, not attenuation, sets the limit |
| CPU MPI ↔ repeater port A (non-isolated) | 50 m | 50 m | Repeater port "upstream" of a non-isolated CPU |
| Repeater ↔ repeater (isolated) | 1000 m | 1000 m | At 187.5 kbps; check cable spec for 1.5 Mbps runs |
| Repeater ↔ isolated master/CPU | 1000 m | 1000 m | Requires isolated interface at the far end |
| Repeater ↔ TP227 OP | 50 m (TP has no isolated MPI) | 50 m | TP177/TP227 are not isolated |
RS-485 Repeater: 6ES7972-0AA01-0XA0 Usage Rules
The Siemens RS-485 repeater, order number 6ES7972-0AA01-0XA0 (current equivalent: 6ES7972-0AA02-0XA0), is the standard field device for extending MPI/PROFIBUS segments. It is essentially a PROFIBUS-DP repeater: electrically isolated on both ports, regenerative RS-485, with 24 Vdc supply.
Wiring and addressing rules:
- Each repeater itself does not consume an MPI address; it is a transparent physical-layer device.
- Maximum of 9 repeaters in series between any two stations (degrades the maximum total bus length per PROFIBUS DP guidelines).
- Each repeater segment regenerates the signal, so the 1000 m limit applies to each isolated segment independently.
- Power the repeater from a clean 24 Vdc source; poor supply causes intermittent bus retries and is one of the most common field failures.
- The repeater has no diagnostic LEDs on the front beyond power; a faulty repeater looks like a cable break to the rest of the bus.
Global Data Communication (GDC) and Bucket Sizing
Global Data Communication is the native, broadcast-style mechanism for cyclic data exchange between CPUs on the same MPI/PROFIBUS subnet. No send/receive block (PUT/GET, BSEND/USEND) is required; the data is configured in STEP 7 and the CPU publishes it at the configured scan rate. The unit of exchange is a "GD packet" or "GD bucket".
| CPU Family | Max Bytes per GD Packet | Max GD Packets per CPU | Receivers per Packet |
|---|---|---|---|
| S7-300 | 22 bytes (input + output combined) | 4 (typical) | 1 sender + up to 4 receivers per packet |
| S7-400 | 54 bytes | 16 | 1 sender + up to 15 receivers per packet |
Key constraints the source data highlights explicitly:
- 22-byte cap on S7-300 — confirmed in the CPU technical specifications under "Global data communication". A larger DB mapping will be rejected at compile time with "Packet size exceeded".
- 54-byte cap on S7-400 — applies to all S7-400 CPUs but each model lists its own exact number in the datasheet.
- GD configuration must match exactly on every CPU (sender and receiver side); mismatched packet definitions cause an SF (system fault) on the affected CPU.
- GD is broadcast at the configured scan rate (factor × update time). A scan time of 100 ms is typical; faster times increase bus load.
Configuring GD Circles in STEP 7 V5.x
- Open the S7 project in SIMATIC Manager and launch NetPro (Configure Network).
- For each CPU, double-click the MPI port, set a unique MPI address (for example 2, 3, 4), and connect every CPU's MPI port to the same MPI subnet object.
- Right-click the MPI subnet and select Properties > General > Transmission Rate. Confirm 187.5 kbps across the subnet.
- Select the first CPU and open CPU Properties > Global Data. Mark this CPU as sender (or receiver) for the chosen packet.
- Pick a data area (DB, MB, inputs IW, outputs QW) and mark the byte/bit ranges to publish. Sum of all ranges in one packet must not exceed 22 bytes on an S7-300.
- Add receiver CPUs and assign the matching receive area on each.
- Set the scan time:
factor × update time. Acceptable factor values depend on the CPU; 1×CPU cycle is the minimum. - Save, compile, and download the GD configuration to every participating CPU. A partial download leaves the GD circle inconsistent.
- Verify no SF LED. Use PLC > Diagnostic > Module Information on any CPU to confirm GD status = "Running".
Integrating HMI (TP227) and SCADA Masters
For the canonical configuration of three S7-300 CPUs, three TP227 panels, one remote SCADA station, and a maintenance PG, a workable addressing plan is:
| Station | MPI Address | Role |
|---|---|---|
| PG (laptop, on demand) | 0 | Default PG; never assigned permanently |
| CPU_1 (S7-300) | 2 | GD sender/receiver, TP owner |
| CPU_2 (S7-300) | 3 | GD sender/receiver, TP owner |
| CPU_3 (S7-300) | 4 | GD sender/receiver, TP owner |
| TP227 #1 | 5 | Operator panel, paired with CPU_1 |
| TP227 #2 | 6 | Operator panel, paired with CPU_2 |
| TP227 #3 | 7 | Operator panel, paired with CPU_3 |
| SCADA (WinCC + CP 5611 A2) | 8 | Master, cyclic poll of all 3 CPUs |
Two physical layouts are practical:
- Single isolated segment — all eight stations on one continuous bus, ≤ 1000 m. Realised by feeding each CPU's MPI port through a 6ES7972-0AA01-0XA0 repeater so the segment becomes "isolated at both ends". Each CPU-to-repeater drop is still ≤ 50 m.
- Repeatered star — three independent short segments, each with one CPU + one TP ≤ 50 m, joined through repeaters to the SCADA segment. This scales better and isolates faults to one CPU/TP pair.
Commissioning Checklist
- Document the addressing plan and have it approved before powering the bus.
- Set the transmission rate to 187.5 kbps on every CPU, OP, and SCADA. A 19.2 kbps OP mixed with 187.5 kbps CPUs will not communicate.
- Switch ON termination only on the two physical ends. Measure ~1.0 Vdc across pin 3 to pin 8 at each end.
- Power repeaters from a clean 24 Vdc; verify input voltage ≥ 21 V at the device terminals.
- From the PG, run Accessible Nodes (STEP 7 > PLC > Display Accessible Nodes). All 7 permanent nodes must appear.
- Download the STEP 7 project to every CPU. Verify no SF and no BF on each CPU.
- Configure GD in NetPro and download the GD configuration to every CPU. Confirm GD status = "Running" in Module Information.
- Configure the SCADA station in WinCC with the CP 5611 A2 driver and run a connection test on each CPU's MPI address.
- From the SCADA, force a known tag in CPU_1 and verify it is read by the SCADA within one poll cycle.
- From each TP, toggle a motor and verify the SCADA HMI tag updates in real time.
- Save the topology, addressing table, and GD configuration as part of the plant documentation.
Troubleshooting Matrix
| Symptom | Likely Cause | Diagnostic Step | Remediation |
|---|---|---|---|
| SF on CPU after GD download | GD packet > 22 bytes on S7-300, or sender/receiver mismatch | Open Module Information > Diagnostic Buffer | Shrink packet to ≤ 22 bytes; align all CPU packet definitions exactly |
| Intermittent BF on CPU | Address duplicate on the bus | Run Accessible Nodes and list MPI addresses | Reassign conflicting station to a free address |
| No communication beyond ~50 m | Missing repeater; non-isolated segment only | Walk the cable, count isolated vs non-isolated nodes | Insert 6ES7972-0AA01-0XA0 repeater at the segment boundary |
| CP 5611 cannot see CPUs | Wrong PC-side transmission rate; wrong COM port | Check Set PG/PC Interface and PC station config in STEP 7 | Match 187.5 kbps; verify the CP 5611 index matches the slot |
| TP227 shows "Connection interrupted" | Terminating resistor missing at end; or TP at address 1 conflicting with OP default | Measure pin 3 ↔ pin 8; check TP address | Switch ON last-node terminator; move TP off address 1 |
| SCADA polling very slow | Token rotation > 100 ms due to many nodes and aggressive GD scan time | Use NCM S7 Diagnostics > Bus statistics | Increase GD scan time factor; reduce SCADA poll count; or migrate to PROFINET |
| SCADA reads one CPU, others fail | Cable break between CPU_2 and CPU_3 | Disconnect each segment and run Accessible Nodes | Repair cable; check connector pin crimps |
| GD status = "Stopped" on one CPU | CPU in STOP, or GD configuration not downloaded | Check CPU mode and project consistency | Re-download GD configuration; run CPU |
| Repeater appears dead, bus is one-sided | 24 Vdc missing, or repeater fault | Measure supply at repeater terminals | Restore 24 Vdc; if still dead, replace repeater |
| High bus error count in CP 5611 diagnostics | Bad cable, missing shield bond, EMI | Inspect shield grounding at every connector | Re-bond shield to cabinet ground at both ends of every segment; replace damaged cable |
Frequently Asked Questions
How many masters can share one MPI network?
MPI is a token-passing bus, so an unlimited number of token-holding masters can coexist on one segment, subject to the 32-node address limit. In a 3-CPU + 3-TP + SCADA topology you have 7 permanent token-holders plus the occasional PG, all rotating the bus without arbitration collisions.
What is the maximum length of an MPI segment without a repeater?
50 m between two S7-300 CPU MPI ports (non-isolated) at any supported baud rate. 1000 m applies only between isolated ports such as repeater-to-repeater, or repeater-to-isolated master, at 187.5 kbps. See the Siemens support article 12907719 for the official segment rules.
What is the difference between an S7-300 MPI port and a repeater port electrically?
The S7-300 CPU MPI port is not galvanically isolated; the 6ES7972-0AA01-0XA0 RS-485 repeater has isolated ports on both sides. The 1000 m segment length is only available on the isolated side. This is why a repeater must sit at the cabinet boundary — anything beyond the repeater is on an isolated segment.
What is the GD packet size limit on an S7-300?
22 bytes total per GD packet (input plus output bytes combined). S7-400 extends this to 54 bytes per packet. Larger mappings are rejected by the STEP 7 GD compiler. Use multiple GD packets if more than 22 bytes of cyclic data are required.
Which Siemens part number is the RS-485 repeater for MPI and PROFIBUS?
6ES7972-0AA01-0XA0 (legacy) or the current equivalent 6ES7972-0AA02-0XA0. It is powered from 24 Vdc, has no MPI address of its own, and is a transparent physical-layer device. It is functionally identical to a PROFIBUS-DP repeater because MPI and PROFIBUS share the same RS-485 physical layer.
Can the TP177/TP227 and the SCADA share the same bus segment?
Yes, provided each one has a unique MPI address and the bus rotation time stays below the SCADA poll cycle. For 3 CPUs + 3 TPs + 1 SCADA, target a scan time factor that keeps token rotation < 100 ms; otherwise migrate SCADA to Industrial Ethernet (PROFINET or TCP/IP) over the CP 343-1 Lean / CP 343-1 on each S7-300.