S7-300 MPI Network: Maximum Stations and CPU 312 Limits

David Krause14 min read
S7-300SiemensTechnical Reference
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

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.

Important: The 31-node cap cited in the Siemens FAQ is the addressable space from 1 to 31 inclusive, not 32. Address 0 is reserved. Always leave at least one address gap for a programming device (PG) so commissioning is possible without re-engineering the network.

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.

Field note: A single WinCC Runtime PC may open more than one connection to a single CPU (one per HMI tag driver thread, for example), or one connection to many CPUs. The connection cost is per link endpoint, not per tag. Always count the connection from each HMI panel back to the target CPU.

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.

Caution: If a future change adds a second WinCC PC, a second OP, or peer-to-peer S7 basic communication (GET/PUT) on the same CPU, the budget will be exceeded. Re-validate the connection count before adding any new HMI or PC node.

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):

  1. Open the S7 project in Step 7 Manager (or TIA Portal).
  2. Open HW Config and select the CPU 312 in the station.
  3. Right-click the CPU and select Object Properties (Step 7) or Properties > Communication (TIA Portal).
  4. Open the Communication tab.
  5. Set the number of reserved connections in each row: PG, OP, S7 basic, S7 standard.
  6. Confirm that the sum does not exceed the CPU total (6 for CPU 312).
  7. Compile and download the hardware configuration to the CPU.
Warning: If the OP slot is left at the default of 1, the second WinCC PC will not be able to establish a connection even though the CPU still has 5 free OP slots, because the runtime blocks the connection request against the configured pool. Always raise the OP count to the actual number of HMI endpoints in use.

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

  1. Create a new Step 7 project named with the plant identifier.
  2. Insert three SIMATIC 300 stations, one per machine, using Insert > Station > SIMATIC 300 Station.
  3. Open each station, insert the rail, power supply, CPU 312 (with order number 6ES7312-1AE14-0AB0 or the project-specific variant), and signal modules.
  4. 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.
  5. Set the Highest MPI Address to 15 on every CPU.
  6. Open CPU Properties > Communication and raise the OP connection count to 2 (1 for the local OP, 1 for the WinCC PC).
  7. Insert a fourth PC station. Add a WinCC Application and a CP 5611 / CP 5621 (or 5613 A2) configured for MPI at address 14.
  8. Open NetPro and assign every CPU and the PC station to the same MPI subnet (typically auto-created on the first CPU).
  9. Compile and save. Step 7 will warn about MPI address conflicts; resolve any duplicates before download.
  10. Download the hardware configuration to each CPU. Cycle power if the BF LED remains on after download.
  11. 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:

  1. 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).
  2. 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.
  3. 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.
  4. 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).
  5. 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.

Back to blog