S7-300 MPI Network: Maximum Stations and CPU 312 Connection Limits
Overview
The MPI (Multi-Point Interface) protocol on the S7-300 family imposes two independent constraints that engineers routinely conflate. The first is the physical bus limit: a single MPI segment supports a maximum number of node addresses, and the bus terminates with repeaters or RS-485 terminators. The second is the per-CPU connection resource, which is a finite pool of PG, OP, S7, and S7-standard connections defined by the S7-300 firmware. The CPU 312 is one of the most constrained controllers in the S7-300 line, and any topology that exceeds its connection budget will fail to establish links at runtime even though the bus is wired correctly.
This reference walks through the bus-level limits, the CPU 312 connection breakdown, the configuration steps in HW Config, the highest MPI address parameter, and a worked example of a 13-node network (9 CPUs + 3 OPs + 1 WinCC PC) spread across three independent machines. Every value is keyed back to the CPU 312 manual and the Siemens SIOS FAQ 299124 on maximum OP connections per S7-300 CPU.
MPI Bus-Level Physical Limits
The MPI bus is an RS-485-based, half-duplex, token-passing network that runs at 19.2 kbps, 187.5 kbps, or 1.5 Mbps. Each bus segment has hard electrical and addressing ceilings:
| Parameter | Value | Notes |
|---|---|---|
| Maximum nodes per segment (no repeater) | 32 addresses (0-31) | Address 0 reserved for PG, address 1 typical default; engineers can reassign |
| Address space | 0 to 126 | Network parameter "Highest MPI address" controls token rotation scope |
| Bus length at 187.5 kbps | 50 m (no repeater) | Use repeaters for 1000 m per segment and additional segments |
| Bus length at 19.2 kbps | 1200 m total with repeaters | Standard PROFIBUS copper rules |
| Bus length at 1.5 Mbps | 200 m total | Not all CPs support 1.5 Mbps on MPI |
| Termination | Enabled at both ends only | Terminating resistor on PROFIBUS connector or repeater |
The 32-node cap applies to addresses in a single electrical segment, but the "Highest MPI address" (sometimes called "HSA") network parameter is selectable at 15, 31, 63, or 126. The HSA is not the physical cap; it is the highest address the token will visit and is normally set to the highest configured node so the token rotation stays efficient. For a 13-node network, the HSA should be set to 13 (or 15, the next standard option) so the token does not waste time probing unused addresses up to 31.
CPU 312 Connection Resources
The S7-300 CPU connection budget is split into four configurable connection types in the CPU properties dialog of HW Config (or TIA Portal device configuration). The CPU 312 manual lists the following ceiling:
| Connection Type | CPU 312 Maximum | Notes |
|---|---|---|
| Total configurable connections | 6 | Sum of all four categories below; firmware-controlled |
| Reserved for PG (programming device) | 1 (typically) | Step 7 / TIA Portal programming link |
| Reserved for OP (HMI / WinCC) | 5 (maximum) | Operator panels, TP, MP, WinCC Runtime |
| Reserved for S7 basic communication | 0 by default | GET/PUT to peer S7-300/400 |
| Reserved for S7 standard communication | 0 by default | S7 functions with acknowledge |
The "6 connections" figure on page 308 of the S7-300 CPU 31xC and CPU 31x manual is the total. Page 309 of the same manual breaks these into the four categories. The 5-OP maximum is a hard firmware ceiling on the CPU 312: even if you raise the OP slot in HW Config to a number greater than 5, the firmware will reject the configuration at download. CPU 312C, 312 IFM, and 313 variants have identical or smaller budgets; only the CPU 315 family (and the 317/319 lines) raise the ceiling to 8, 12, or 16 connections respectively.
Connection Cost Per Node Type
Count connection cost from the perspective of the CPU whose budget is being consumed. The table below shows typical costs for a WinCC Runtime + S7-300 HMI architecture:
| Endpoint | Connections per CPU consumed | Comments |
|---|---|---|
| PG (Step 7 or TIA Portal) | 1 | Released automatically when PG goes offline on newer firmwares |
| OP / TP / MP / Comfort Panel | 1 per panel per CPU | One panel to many CPUs is one connection per CPU |
| WinCC Runtime (single driver thread) | 1 per CPU polled | Use one tag group per CPU to keep cost flat |
| WinCC Runtime (redundant driver) | 2 per CPU | Adds a high-availability link |
| S7 basic GET/PUT peer | 1 per partner | Consumes from S7 basic slot |
| S7 standard (with ack) | 1 per partner | Consumes from S7 standard slot |
Worked Example: 9 CPUs + 3 OPs + 1 WinCC PC
The source scenario is three independent machines. Each machine has three S7-300 CPUs (one per subsystem) and one OP for local operation. The three machines are not currently networked to each other; the engineering team wants to add a single WinCC PC that monitors all three machines. The MPI topology is a single segment spanning all three machines.
Step 1: count the nodes on the bus.
- CPUs: 3 machines x 3 CPUs = 9 nodes
- OPs: 3 machines x 1 OP = 3 nodes
- WinCC PC: 1 node
- PG (occasional, docked for service): 1 node
- Total: 14 nodes
Bus-level cap of 31 is satisfied. The HSA should be set to 14 (round up to 15 to keep token rotation on a standard boundary).
Step 2: count the connections consumed on each CPU. The WinCC PC polls all 9 CPUs, and each local OP also polls its three local CPUs.
| CPU | OP connection (local) | WinCC connection | PG (occasional) | Total | Within CPU 312 budget? |
|---|---|---|---|---|---|
| CPU 312 #1 (machine 1) | 1 | 1 | 1 | 3 | Yes (budget 6) |
| CPU 312 #2 (machine 1) | 1 | 1 | 1 | 3 | Yes |
| CPU 312 #3 (machine 1) | 1 | 1 | 1 | 3 | Yes |
| CPU 312 #4 (machine 2) | 1 | 1 | 1 | 3 | Yes |
| CPU 312 #5 (machine 2) | 1 | 1 | 1 | 3 | Yes |
| CPU 312 #6 (machine 2) | 1 | 1 | 1 | 3 | Yes |
| CPU 312 #7 (machine 3) | 1 | 1 | 1 | 3 | Yes |
| CPU 312 #8 (machine 3) | 1 | 1 | 1 | 3 | Yes |
| CPU 312 #9 (machine 3) | 1 | 1 | 1 | 3 | Yes |
Each CPU 312 consumes 3 of its 6 available connections. The 6-connection budget is large enough to support this topology. The OP budget of 5 per CPU is more than sufficient; each CPU only uses 1 OP slot. The original concern that the CPU 312 would not work is unfounded as long as the connection count per CPU remains under 6 total and under 5 OP.
CPU 312 vs Larger S7-300 CPUs
If the connection budget ever becomes a concern, upgrade the CPU rather than try to multiplex OP links. The relevant ceilings from the S7-300 family manual:
| CPU | Order Number (example) | Total connections | Max OP connections |
|---|---|---|---|
| CPU 312 | 6ES7312-1AE14-0AB0 | 6 | 5 |
| CPU 312C | 6ES7312-5BF04-0AB0 | 6 | 5 |
| CPU 313C | 6ES7313-5BG04-0AB0 | 8 | 7 |
| CPU 313C-2 PtP | 6ES7313-6BG04-0AB0 | 8 | 7 |
| CPU 314 | 6ES7314-1AG14-0AB0 | 12 | 11 |
| CPU 315-2 DP | 6ES7315-2AH14-0AB0 | 16 | 15 |
| CPU 317-2 DP | 6ES7317-2AK14-0AB0 | 32 | 31 |
| CPU 319-3 PN/DP | 6ES7318-3EL01-0AB0 | 32 | 31 |
The CPU 315-2 DP at 16 total connections is the typical upgrade target when a project grows beyond the 312 budget. Note that the PG connection is implicit and does not consume a configured slot on most CPU 312/314 firmware versions; verify on your specific firmware with the online diagnostics buffer if you see "No resource available" alarms during online attach.
Configuring Connections in HW Config
Connections are not automatic. They are explicitly enabled in the CPU properties before download. The procedure is the same in Step 7 V5.x and TIA Portal (with cosmetic differences in the dialog labels):
- Open the S7 project in Step 7 Manager (or TIA Portal).
- Open HW Config and select the CPU 312 in the station.
- Right-click the CPU and select Object Properties (Step 7) or Properties > Communication (TIA Portal).
- Open the Communication tab.
- Set the number of reserved connections in each row: PG, OP, S7 basic, S7 standard.
- Confirm that the sum does not exceed the CPU total (6 for CPU 312).
- Compile and download the hardware configuration to the CPU.
MPI Address and Highest Station Address
The "Highest MPI address" parameter is set per CPU and per CP/OP in HW Config. The four selectable values are 15, 31, 63, and 126. According to the PTC Kepware S7 MPI driver reference, the value must be at least as large as the highest configured MPI node on the bus. If the HSA is 15 but a node has address 22, that node will be invisible to the token-passing protocol and the CPU will appear offline.
| Highest MPI Address Setting | Use when |
|---|---|
| 15 | Small networks with fewer than 15 nodes; faster token rotation |
| 31 | Default for most S7-300 MPI networks; covers up to 31 nodes |
| 63 | Mixed PROFIBUS-MPI networks with extended addressing |
| 126 | Full PROFIBUS address space; use only if needed, slows token rotation |
For the 13-node example, set HSA = 15 on every CPU. Do not mix HSA values across nodes on the same bus; mismatched HSA causes intermittent connection drops and token timeouts.
MPI Address Assignment Scheme
Unique MPI addresses are mandatory. If two devices share an address, the bus will lock up with token-passing errors and the SF/BF LEDs on the CPUs will blink. Recommended scheme for the 13-node example:
| Node | MPI Address | Notes |
|---|---|---|
| CPU #1 (machine 1) | 2 | First CPU on bus |
| CPU #2 (machine 1) | 3 | |
| CPU #3 (machine 1) | 4 | |
| OP (machine 1) | 5 | OP/TP/MP default |
| CPU #4 (machine 2) | 6 | |
| CPU #5 (machine 2) | 7 | |
| CPU #6 (machine 2) | 8 | |
| OP (machine 2) | 9 | |
| CPU #7 (machine 3) | 10 | |
| CPU #8 (machine 3) | 11 | |
| CPU #9 (machine 3) | 12 | |
| OP (machine 3) | 13 | |
| WinCC PC | 14 | CP 5611 / CP 5613 / CP 5621 MPI driver |
| PG (service) | 0 | Reserved; never assign to a permanent device |
Step-by-Step: Building a 13-Node MPI Network in Step 7
- Create a new Step 7 project named with the plant identifier.
- Insert three SIMATIC 300 stations, one per machine, using Insert > Station > SIMATIC 300 Station.
- Open each station, insert the rail, power supply, CPU 312 (with order number 6ES7312-1AE14-0AB0 or the project-specific variant), and signal modules.
- Configure the MPI interface on each CPU: open Properties > MPI Interface > Parameters, set the address per the table above, and set the subnet transmission rate to 187.5 kbps.
- Set the Highest MPI Address to 15 on every CPU.
- Open CPU Properties > Communication and raise the OP connection count to 2 (1 for the local OP, 1 for the WinCC PC).
- Insert a fourth PC station. Add a WinCC Application and a CP 5611 / CP 5621 (or 5613 A2) configured for MPI at address 14.
- Open NetPro and assign every CPU and the PC station to the same MPI subnet (typically auto-created on the first CPU).
- Compile and save. Step 7 will warn about MPI address conflicts; resolve any duplicates before download.
- Download the hardware configuration to each CPU. Cycle power if the BF LED remains on after download.
- From the WinCC PC, open the MPI driver configuration and verify that all 9 CPUs respond to a connection test (e.g., by browsing online tags).
Verification
After download, perform these checks in order:
- Bus LED scan: On every CPU, the SF LED must be off and the BF LED must be off. A steady BF LED indicates a bus fault (cable, termination, or address conflict).
- Online reachability: From the PG, select PLC > Display Accessible Nodes. The list must show all 9 CPUs, all 3 OPs, and the WinCC PC with their assigned addresses.
- Connection diagnostics: Open PLC > Diagnostics > Connection Diagnostics on each CPU. The number of active connections must equal the configured count, and the partner endpoint must match the expected HMI/PG.
- WinCC tag test: In WinCC Explorer, run a tag simulation. All 9 CPUs must respond within one polling cycle (typically 1 s for WinCC on MPI).
- OP test: On each local OP, change an operator value and confirm that the corresponding CPU accepts the write and the WinCC PC sees the new state.
Troubleshooting Matrix
| Symptom | Likely Cause | Action |
|---|---|---|
| BF LED steady on one CPU | Cable break, missing termination, or duplicate MPI address | Check PROFIBUS connector; verify HSA and address uniqueness |
| BF LED blinks rhythmically | No partner responding at one or more addresses | List accessible nodes; identify the missing partner |
| WinCC shows "No connection" to one CPU | OP/PG connection pool exhausted on that CPU | Check CPU connection diagnostics; raise OP slot in HW Config |
| SF LED on after download | Connection resource overflow or syntax error | Open the diagnostic buffer; reduce reserved connection count or fix STL error |
| Intermittent timeouts under load | HSA too low, token rotation slow, bus length near limit | Raise HSA to 31; check bus length < 50 m at 187.5 kbps; add repeater |
| PG cannot go online | Address 0 already in use by another PG or wrong cable | Use MPI cable 6ES7901-0BF00-0AA0 or modern USB-MPI adapter; check address 0 is free |
| OP loses connection during PG online | PG connection slot taken from OP pool on older firmware | Set PG slot to 1 explicitly; use online/offline mode toggle |
| WinCC driver error "resource exhausted" | CP 5611/CP 5621 connection limit reached (32 per CP) | Use multiple CPs or migrate to PROFINET |
When to Migrate Off MPI
MPI is acceptable for the 13-node scenario above, but a migration to PROFINET or PROFIBUS-DP is recommended when any of the following become true:
- Number of nodes exceeds 31 (or 14 with a single WinCC PC, depending on CP limits).
- Connection budget on a CPU approaches its ceiling (5 of 5 OP for CPU 312).
- Bus length between machines exceeds 50 m and the cost of repeaters and fiber-optic couplers approaches that of a PROFINET switch.
- Redundant HMI panels are required (the second OP pushes a CPU 312 over its 5-OP limit).
- Cybersecurity or network segmentation is required: MPI is not routable and cannot pass through firewalls.
The CPU 315-2 PN/DP (6ES7315-2EH14-0AB0) and CPU 317-2 PN/DP are the typical S7-300 upgrade targets when PROFINET is required, with 16 and 32 total connections respectively.
FAQ
What is the maximum number of MPI nodes on a single S7-300 bus segment?
A single MPI segment supports up to 32 addresses (0-31). Address 0 is reserved for the programming device, leaving 31 usable nodes. The "Highest MPI address" parameter must be set to at least the highest configured address, with standard values of 15, 31, 63, or 126.
How many OP connections does a CPU 312 support?
The CPU 312 supports a maximum of 5 OP connections out of a total connection budget of 6. This is a firmware ceiling; the OP slot in HW Config cannot exceed 5 even if other slots are reduced to zero.
Can a CPU 312 run 9 CPUs, 3 OPs, and 1 WinCC PC on one MPI bus?
Yes. With 14 total nodes the bus is well under the 31-node limit, and each CPU 312 consumes only 3 of its 6 connections (1 OP, 1 WinCC, 1 PG). The 5-OP ceiling per CPU is also not exceeded.
What MPI address should I assign to the WinCC PC?
Use a free address in the 1-126 range, distinct from every CPU and OP. Address 14 is conventional for a single WinCC station. The CP 5611, CP 5613, or CP 5621 on the PC must be configured to the same address and the same transmission rate (typically 187.5 kbps).
Why does the BF LED blink even though the wiring is correct?
A blinking BF LED on a CPU 312 means at least one configured partner is not responding. Common causes are duplicate MPI addresses, the Highest MPI Address set below the actual highest node, a missing terminator, or a powered-down device on the bus. Run "Display Accessible Nodes" from the PG to localize the missing partner.