← All Posts

Siemens S7 vs Modbus TCP: Native PLC Access vs Universal Register

Two ways to get data out of a Siemens PLC: S7, the native protocol that reads data blocks and memory areas directly; and Modbus TCP, the universal register protocol that the PLC can expose through a server function block. They are not competing standards so much as two doors into the same controller, opened for different visitors. Picking the right one is about who the consumer is and how much PLC-side mapping you want to do.

This guide compares them on the dimensions that decide an integration. For S7 internals, the protocol guide; for Modbus, what is Modbus.

The Core Difference

S7 is native to Siemens. You address typed data — a REAL in DB10.DBD4, a BOOL at DB10.DBX0.0 — at its real offset, and the protocol returns typed bytes. No mapping on the PLC; the integrator's tool just needs to know the DB layout.

Modbus TCP is vendor-neutral. The PLC runs a Modbus TCP server function block that exposes selected data as holding registers; external clients read numbered registers (40001, 40002...). The mapping from DB data to register numbers is PLC-side work the integrator does in the program.

One-line summary: S7 reads what is already there, typed, by offset. Modbus TCP reads flat registers the PLC has been programmed to publish.

Feature Comparison

Factor
S7
Modbus TCP
Native to Siemens
Yes
Via FB on PLC
Cross-vendor
Siemens only
Universal
Data model
Typed DBs / memory areas
Flat 16-bit registers
PLC-side mapping
None
Map DBs to registers
External map doc
DB layout
Register map
Setup
Enable PUT/GET
Add Modbus server FB
Bulk read
Whole DB in one read
Up to 125 registers
Security
Protection levels
None

When to Use S7

When to Use Modbus TCP

They Coexist on the Same PLC

A Siemens S7-1200/1500 can speak S7 and Modbus TCP at the same time. The native S7 interface is always there (gated by PUT/GET); a Modbus TCP server function block runs in the program to publish selected DB data as holding registers. Many integrations use both: S7 for the Siemens-native SCADA, Modbus TCP for the building-management or IoT layer that cannot speak anything else. For a third option, OPC UA covers the cross-vendor-but-secure case (see S7 vs OPC UA).

Reading Either From macOS

MacTools S7 Explorer takes the native S7 path on macOS — direct DB reads, typed decoding. MacTools Modbus Poll covers the Modbus TCP side. If the PLC publishes a Modbus server, point Modbus Poll at it; if you want the richer native access, use the S7 Explorer.

Read Siemens S7 on macOS

MacTools S7 Explorer — native S7 client for S7-1200/1500. Read data blocks directly, decode types, monitor live. No TIA Portal, no Windows.

Get MacTools S7 Explorer

Frequently Asked Questions

Is Siemens S7 the same as Modbus TCP?

No. S7 is Siemens' native protocol for accessing PLC memory areas and data blocks; Modbus TCP is a universal register-based protocol that every vendor can implement. S7 gives you typed, structured access to Siemens DBs at their real offsets. Modbus TCP gives you flat 16-bit registers that require an external mapping document. A Siemens PLC can speak both, often through a Modbus TCP server function block it exposes alongside its native S7 interface.

Can a Siemens S7 PLC speak Modbus TCP?

Yes. S7-1200 and S7-1500 can run Modbus TCP as a client or server using standard Siemens library function blocks (Modbus_TCP and Modbus_TCP_Server). The integrator maps DB data to Modbus holding registers, and external Modbus clients read those registers. It is one of the two common ways to get non-Siemens equipment to pull data from a Siemens PLC — the other being OPC UA.

Should I read a Siemens PLC with S7 or Modbus TCP?

Use S7 if your client is Siemens-aware and you want direct, typed access to data blocks without extra mapping on the PLC. Use Modbus TCP when the consumer only speaks Modbus (many SCADA and IoT gateways), and you are willing to map the relevant DBs to holding registers inside the PLC program. S7 is richer and less PLC-side work; Modbus TCP is more universally reachable.

Which is faster, S7 or Modbus TCP?

For the same payload, both are fast enough for typical monitoring, and differences are dominated by network and scan time, not protocol. S7 can read a large contiguous DB in one request, which is efficient for bulk reads. Modbus TCP reads up to 125 registers per request. For multi-register or structured data, S7's typed bulk read is often fewer round-trips than equivalent Modbus reads, but for a handful of values the difference is negligible.

Related: Continuous Monitoring

Voltrus SCADA reads both S7 and Modbus TCP (plus OPC-UA, EtherNet/IP, DNP3) — dashboards, alarms, historian. From $249 lifetime.

Further Reading