Siemens

Last updated on 16 October 2025

In modern industrial automation, reliable communication between PLCs and external systems is essential. This article explains in clear terms what the S7 protocol Snap7 means, its characteristics, and how to configure a Siemens PLC for external client connection. You’ll learn what S7 protocol does exactly, how Snap7 works, and which PLC types are supported. For background information and tools, you can also refer to Remote.

What is the S7 Protocol Snap7

The S7 protocol is a communication protocol developed by Siemens for SIMATIC S7 PLCs. It runs on top of TCP/IP and typically uses port 102. Originally designed for engineering tools like STEP 7 or TIA Portal, it’s also widely used by SCADA systems, MES platforms, and other external applications. Snap7 implements this protocol open-source, allowing reading and writing without Siemens software.

What Can You Communicate With

  1. Read and write data from PLC memory (DB, M, I, Q)
  2. Request PLC status information
  3. Download and diagnose programs (Siemens environments)

Key Characteristics

Important technical points to know when integrating with S7 and Snap7:

  1. Communication via TCP/IP (port 102) — standard Ethernet enables access through existing networks.
  2. Support for multiple PLC families — both classic S7 series and modern S7-1200/1500.
  3. Use of rack and slot — rack and slot indicate the CPU position within the PLC cabinet (S7-300/400 typically rack 0 slot 2; S7-1200/1500 typically rack 0 slot 1).
  4. Access to various memory areas such as data blocks (DB), markers (M), inputs (I), and outputs (Q).
  5. No standard encryption within S7comm — security must be managed at network or PLC level.

What is Snap7

Snap7 is an open-source library that implements the S7 protocol. It enables engineers and developers to read and control Siemens PLCs without Siemens licenses. Snap7 works via IP (port 102) and uses the same rack/slot logic as the official tools.

Main features of Snap7:

  1. Works via IP, port 102 and rack/slot settings
  2. Supports multiple memory areas (DB, M, I, Q)
  3. Can both read and write
  4. Suitable for older and modern PLCs
  5. Free to use (no license costs)

Snap7 is widely used for logging and data processing; for data monitoring and further infrastructure management, you can find background information at datamonitoring.

Configuring the PLC for Snap7

For a successful connection, several settings in the PLC and network must be correct. Below are the practical checkpoints.

Network Access

Ensure the PLC is accessible on port 102 and that the client is in the same network or can reach the PLC via routing. For external connections, proper network configuration and firewall control are essential; for integrations with remote systems, it’s common to set up and monitor controlled remote access. For information about secure external solutions, check remote access.

Rack and Slot Settings

Check which values are used in the hardware configuration:

  1. S7-300/400 → typically rack 0, slot 2
  2. S7-1200/1500 → typically rack 0, slot 1

PUT/GET Communication (S7-1200/1500)

For S7-1200 and S7-1500, ‘Allow PUT/GET communication’ must be explicitly enabled in TIA Portal. Without this option, the PLC often refuses external connections via Snap7.

Review Security Settings

Check access rights, firewall rules, and PLC protection. For some S7-1500 systems, protection must be set to “Full access” or equivalent to allow external reading and writing.

Prepare Data Blocks

Define clear data blocks with fixed addresses and data types. Note:

  1. Only global DBs are readable/writable via external clients.
  2. “Optimized block access” must be disabled if you want fixed addressing and simple access.

Supported PLC Types

Snap7 supports almost all PLCs that use the classic S7 protocol (S7comm). Below is an overview with notes.

PLC typeSeriesSnap7 SupportNotes
S7-200LegacyLimited / partialOnly models with Ethernet module; many old S7-200 communicate via PPI/serial.
S7-300ClassicFullWidely used; stable support.
S7-400ClassicFullSupport comparable to S7-300.
S7-1200ModernFullRequires ‘Allow PUT/GET communication’ in PLC settings.
S7-1500ModernFullSame principle as S7-1200; security can be stricter.
LOGO!Small PLCNot supportedLOGO uses a different protocol than S7comm.
ET200 (IM)Decentralized I/O with CPULimited / dependentIf the CPU supports S7comm, Snap7 works here too.

 

Note: S7-200 support is limited because many older models communicate via serial PPI bus and not via standard S7comm. LOGO! PLCs are not compatible with Snap7. S7-1200 and S7-1500 are generally fully usable provided the correct communication options are enabled on the PLC side.

In summary: the S7 protocol and Snap7 together form a practical, open way to retrieve or write data to Siemens PLCs. During implementation, pay particular attention to network access (port 102), rack/slot, PUT/GET settings in TIA Portal, and correct data block configuration. For advanced integrations and further documentation about remote solutions and data logging, you can consult Remote’s resources.