> For the complete documentation index, see [llms.txt](https://docs.enlyze.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.enlyze.com/connect/ot-connectivity/protokolle/s7-classic.md).

# S7 Classic

Konfiguration des S7-Classic-Protokolls für ENLYZE.

Die folgende Anleitung führt dich durch die Anbindung von Datenquellen, die über das S7-Classic-Protokoll kommunizieren. S7 Classic (S7comm) ist das klassische [Siemens](/connect/ot-connectivity/steuerungshersteller/siemens.md)-Protokoll der Generationen S7-300 und S7-400. ENLYZE bindet diese Steuerungen per Ethernet über RFC1006 (ISO-on-TCP, Standard-Port `102`) an. In der ENLYZE Plattform heißt der Konnektor **S7**.

{% hint style="info" %}
**Variablen per Import statt Variable Discovery**

S7 Classic adressiert Daten über absolute Speicheradressen (z. B. Datenbausteine, Merker, Ein- und Ausgänge) und nicht über symbolische Tags. Eine [Variable Discovery](/connect/ot-connectivity.md#variable-discovery) ist deshalb nicht möglich. Stattdessen importierst du die Variablen direkt in der ENLYZE Plattform aus einer der folgenden Quellen:

* dem **STEP 7-Projektordner** der Steuerung (SIMATIC Manager)
* der **HMI-Projektierung** eines Siemens-Panels (`.fwx` / `.fwc`)

Die Dateien werden dabei ausschließlich in deinem Browser ausgelesen. Es werden keine Projektdateien an ENLYZE übertragen oder auf unseren Servern gespeichert, nur die ausgewählten Variablen werden in der Plattform registriert. Welcher Weg für dich passt, erfährst du unter [Variablen importieren](#variablen-importieren).
{% endhint %}

## Unterstützte Geräte

Eine vollständige Übersicht der Siemens-Familien und den jeweils empfohlenen Konnektor findest du auf der [Siemens-Seite](/connect/ot-connectivity/steuerungshersteller/siemens.md). Über S7 Classic bindest du unter anderem an:

* Siemens S7-300 (z. B. CPU 315-2 PN/DP, 317-2 PN/DP)
* Siemens S7-400 (z. B. CPU 414, 416)
* [Yaskawa (VIPA)](/connect/ot-connectivity/steuerungshersteller/yaskawa.md) SPEED7-Steuerungen, die kompatibel zur S7-300 sind

Steuerungen ohne integrierte Ethernet-Schnittstelle (reine PROFIBUS- oder MPI-CPUs) bindest du über einen PROFIBUS/MPI-Adapter an. Der Adapter stellt die Verbindung zwischen der Steuerung und dem Edge Device her, die Konfiguration in der ENLYZE Plattform bleibt dieselbe.

Der Adapter kann direkt bei ENLYZE erworben werden. Wir haben früher Adapter der Firma IBH Softec verwendet. Hierbei kam es allerdings immer wieder zu Ausfällen und Problemen. Wir empfehlen daher den Adapter [ACCON-NetLink-PRO compact](https://industrial.softing.com/products/gateways/gateways-for-access-of-controller-data/accon-netlink-pro-compact.html) von Softing (ehemals DELTALOGIC).

{% hint style="info" %}
Für Steuerungen der TIA-Portal-Generation (S7-1200, S7-1500) empfehlen wir den [S7+](/connect/ot-connectivity/protokolle/s7+.md)-Konnektor. Er unterstützt Variable Discovery und optimierte Datenbausteine.
{% endhint %}

## Bevor du startest

Halte Folgendes bereit:

* die IP-Adresse der Steuerung bzw. des PROFIBUS/MPI-Adapters
* eine Quelle für die Variablen: den STEP 7-Projektordner, die WinCC-Runtime-Datei (`.fwx`, `.fwc`) des Bediengeräts oder eine Adressliste (siehe [Variablen importieren](#variablen-importieren))

{% stepper %}
{% step %}

#### Datenquelle vernetzen

Falls noch nicht erfolgt, muss zunächst eine Netzwerkverbindung zwischen der Datenquelle und dem jeweiligen Edge Device hergestellt werden. Die möglichen Vernetzungsszenarien findest du [hier](/connect/integrationsszenarios.md). Der Konnektor baut eine TCP-Verbindung auf Port `102` zur Steuerung auf.

Mit den [Netzwerk-Tools](/connect/edge-device/enlyze-edge/netzwerk-tools.md) prüfst du, ob die Steuerung vom Edge Device aus erreichbar ist.
{% endstep %}

{% step %}

#### Datenquelle anlegen

Rufe die [ENLYZE Manufacturing Data Platform](https://app.enlyze.com/platform) auf, wähle die Maschine aus, für welche diese Datenquelle hinzugefügt werden soll, und klicke auf die Schaltfläche **+ Datenquelle**.

Vergib einen aussagekräftigen Namen und hinterlege unter **Geräteinformationen** den Hersteller (**Siemens**, bei VIPA-Steuerungen **Yaskawa**) und das CPU-Modell, z. B. `CPU 315-2 PN/DP`.

<figure><img src="https://3556205377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fn6Jn6Re8NNPSKD1jGZyL%2Fuploads%2Fgit-blob-f75210ae7033e98609d255da58ff78e0830823fa%2Fconnect-s7-classic-create-datasource-01.png?alt=media" alt="Formular der Datenquelle mit Name, Maschine und den Geräteinformationen Hersteller Siemens und Geräteinformation S7-300 CPU315-2 PN/DP"><figcaption><p>Name und Geräteinformationen einer S7-Classic-Datenquelle</p></figcaption></figure>
{% endstep %}

{% step %}

#### Verbindungsdetails hinterlegen

Wähle unter **Verbindungsdetails** das **Edge Device** aus. Seinen Namen findest du auf dem Aufkleber am Gerät (Schema `adjektiv-wissenschaftler`). Wähle als **Konnektor** den Eintrag **S7** und trage die Konnektordetails ein:

* **IP-Adresse**: die IPv4-Adresse der Steuerung bzw. des PROFIBUS/MPI-Adapters
* **Port**: `102`
* **Rack** und **Slot**: die Position der CPU in der Steuerung. Bei der S7-300 steckt die CPU fast immer in Rack `0`, Slot `2`, den Standardwerten. Bei der S7-400 hängt der Slot davon ab, wie viele Steckplätze die Stromversorgung links neben der CPU belegt, häufig ist es Slot `2` oder `3`. Die Werte findest du in der Hardware-Konfiguration des STEP 7-Projekts (HW Konfig) an der Position der CPU.

Ein Passwort benötigt S7 Classic nicht.

{% hint style="success" %}
**Rack und Slot mit ENLYZE EDGE prüfen**

Bist du dir bei den Werten unsicher, teste sie vorab direkt vom Edge Device aus:

1. Rufe die [ENLYZE EDGE Oberfläche](/connect/edge-device/enlyze-edge/oberflache-aufrufen.md) des Edge Devices auf.
2. Öffne **Data Source-Werkzeuge** und wähle den Tab **S7-Tools**.
3. Gib IP-Adresse, Port, Rack und Slot ein und klicke auf **SPS-Info abfragen**.

Werden Bestellnummer, CPU-Name und Betriebszustand angezeigt, sind IP-Adresse, Rack und Slot korrekt. Schlägt die Abfrage fehl, ist die Steuerung nicht erreichbar oder spricht kein S7 Classic, etwa eine S7-1200/1500 mit optimiertem Zugriff.
{% endhint %}

<figure><img src="https://3556205377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fn6Jn6Re8NNPSKD1jGZyL%2Fuploads%2Fgit-blob-9fe90eef1a2e1ac96a92c773ef905b5c4d86178c%2Fconnect-s7-classic-connection-details-01.png?alt=media" alt="Verbindungsdetails mit dem Konnektor S7 und den Feldern IP-Adresse, Port, Rack und Slot"><figcaption><p>Verbindungsdetails einer S7-Classic-Datenquelle</p></figcaption></figure>

Klicke auf **Speichern** und bestätige mit **Speichern und verbinden**. Das Edge Device baut die Verbindung zur Steuerung auf.

{% hint style="info" %}
Fehlen dir noch Angaben, kannst du die Datenquelle zunächst **als Entwurf speichern**. Die Verbindungsdetails ergänzt du später über **Verbindungsdetails hinzufügen** auf der Seite der Datenquelle.
{% endhint %}
{% endstep %}

{% step %}

#### Variablen importieren

S7 Classic adressiert Daten über absolute Speicheradressen statt über symbolische Tags. Eine [Variable Discovery](/connect/ot-connectivity.md#variable-discovery) wie bei S7+ oder OPC UA ist deshalb nicht möglich. Stattdessen importierst du die Variablen.

Öffne auf der Seite der Datenquelle den Tab **Variablen** und klicke auf **Variablen importieren**.

<figure><img src="https://3556205377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fn6Jn6Re8NNPSKD1jGZyL%2Fuploads%2Fgit-blob-94020f88bdab976feb6b7ea7232cf298de02807f%2Fconnect-s7-classic-variables-empty-01.png?alt=media" alt="Tab Variablen einer Datenquelle ohne Variablen mit der Schaltfläche Variablen importieren"><figcaption><p>Tab Variablen einer neuen S7-Classic-Datenquelle</p></figcaption></figure>

Wähle anschließend, woher die Variablen kommen. Der STEP 7-Projektordner liefert alle Variablen der Steuerung. Die WinCC-Runtime-Datei liefert nur die Werte, die auch die Bedienenden an der HMI sehen, direkt mit Anzeigename und Einheit. Beide Wege lassen sich kombinieren und beliebig oft wiederholen, zum Beispiel nach einer Änderung am SPS-Programm.

<figure><img src="https://3556205377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fn6Jn6Re8NNPSKD1jGZyL%2Fuploads%2Fgit-blob-3556b4a03bcffae51969d25d5d34053c2738da4f%2Fconnect-s7-classic-import-variables-01.png?alt=media" alt="Dialog Variablen importieren mit den Optionen STEP 7-Projektordner und WinCC-Runtime-Datei (.fwx, .fwc)"><figcaption><p>Auswahl der Variablenquelle für eine S7-Classic-Datenquelle</p></figcaption></figure>

{% tabs %}
{% tab title="A: STEP 7-Projektordner" %}
**Du benötigst** den vollständigen Projektordner aus dem SIMATIC Manager, also die `.s7p`-Datei mit allen Unterordnern. Ist das Projekt als Archiv (`.zip`) gespeichert, entpacke es vorher.

1. Wähle **STEP 7-Projektordner**.
2. Klicke auf **Dateien durchsuchen** und wähle den **gesamten Projektordner** aus, nicht nur die `.s7p`-Datei. Der Ordner muss genau eine `.s7p`-Datei enthalten.

   <figure><img src="https://3556205377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fn6Jn6Re8NNPSKD1jGZyL%2Fuploads%2Fgit-blob-cfc82b28b24fcca22147d56258e94fc90e6e4dee%2Fconnect-s7-classic-step7-upload-01.png?alt=media" alt="Schritt Hochladen des STEP 7-Imports mit der Schaltfläche Dateien durchsuchen"><figcaption><p>Hochladen des STEP 7-Projektordners</p></figcaption></figure>
3. Das Projekt wird in deinem Browser eingelesen. Enthält es mehrere Steuerungen, wähle unter **Gerät** die CPU aus, die zu dieser Datenquelle gehört.
4. Prüfe die Vorschau der Variablen. Variablen mit nicht unterstützten Datentypen werden aufgelistet und nicht importiert (siehe [Unterstützte Datentypen](#unterstutzte-datentypen)).

   <figure><img src="https://3556205377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fn6Jn6Re8NNPSKD1jGZyL%2Fuploads%2Fgit-blob-27a8075cf091de0d423d53cd659793c2551375be%2Fconnect-s7-classic-step7-configuration-01.png?alt=media" alt="Schritt Konfiguration mit ausgewähltem Gerät, nicht unterstützten Datentypen und Vorschau der Variablen"><figcaption><p>Auswahl der CPU und Prüfen der Variablenvorschau</p></figcaption></figure>
5. Klicke auf **Import starten** und schließe den Dialog nach Abschluss mit **Fertig**.

   <figure><img src="https://3556205377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fn6Jn6Re8NNPSKD1jGZyL%2Fuploads%2Fgit-blob-79696a5d488e91a4fb0a10e055fcb8f880d721e6%2Fconnect-s7-classic-step7-import-01.png?alt=media" alt="Schritt Import mit der Anzahl der zu importierenden Variablen und der Schaltfläche Import starten"><figcaption><p>Starten des Imports</p></figcaption></figure>

Die Zusammenfassung zeigt, wie viele Variablen neu importiert, aktualisiert, unverändert übernommen oder nicht verarbeitet wurden.

{% hint style="info" %}
Bei sehr großen Projekten kann der Import einige Minuten dauern. Lass das Browserfenster in dieser Zeit geöffnet.
{% endhint %}
{% endtab %}

{% tab title="B: WinCC-Runtime-Datei" %}
**Du benötigst** die Runtime-Datei des Bediengeräts: `.fwx` (WinCC flexible 2005/2008) oder `.fwc` (WinCC Runtime im TIA Portal). Wo du sie findest, beschreibt [Projektierungsdatei beschaffen](/variable-mapping/hmi-projektierung.md#projektierungsdatei-beschaffen).

Wie die Auswahl im Detail funktioniert, beschreibt [Variablen-Mapping über HMI-Projektierung](/variable-mapping/hmi-projektierung.md#variablen-ubernehmen).

1. Wähle **WinCC-Runtime-Datei (.fwx, .fwc)**. Der Flex Configuration Extractor öffnet sich in einem neuen Tab. Standort, Maschine und Datenquelle sind bereits vorausgewählt.
2. Lade die `.fwx`- oder `.fwc`-Datei des Bediengeräts hoch, wähle die Anzeigeelemente aus und vergib Anzeigename und Einheit.
3. Sende die Variablen mit **Send variables to ENLYZE platform** an die Plattform.
   {% endtab %}

{% tab title="C: Adressliste" %}
**Du benötigst** eine Liste mit Adressen und Datentypen, z. B. vom Maschinenhersteller.

Schicke die Liste an <support@enlyze.com>. ENLYZE registriert die Variablen für dich. Wie Adressen und Datentypen angegeben werden, zeigt [Adressen und Datentypen](#adressen-und-datentypen).
{% endtab %}
{% endtabs %}
{% endstep %}

{% step %}

#### Variablen zur Aufzeichnung auswählen

Der Import registriert die Variablen in der ENLYZE Plattform. Aus dem STEP 7-Projekt importierte Variablen werden jedoch noch nicht aufgezeichnet. Wähle die gewünschten Variablen in der [Variablenauswahl](/variable-mapping/exploration-discovery.md) aus und [kontextualisiere](/variable-mapping/kontextualisierung.md) sie. Über **Zu allen verfügbaren Variablen** im Tab **Variablen** gelangst du direkt dorthin.

{% hint style="warning" %}
Es werden erst Daten aufgezeichnet, nachdem Variablen zur Aufzeichnung ausgewählt wurden. Die Anzahl der Variablen, die pro Datenquelle aufgezeichnet werden können, ist begrenzt. Erscheint der Hinweis **Variablenlimit erreicht**, melde dich unter <support@enlyze.com>.
{% endhint %}
{% endstep %}
{% endstepper %}

## Adressen und Datentypen

Beim Import werden Adresse und Datentyp jeder Variable automatisch übernommen. Die folgenden Angaben benötigst du nur, wenn Variablen über eine Adressliste (Weg C) oder die [ENLYZE API](/enlyze-api/schnellstart.md) registriert werden.

### Adressschema

Der Konnektor verwendet die englischen Operandenkennzeichen (`I` / `Q` statt `E` / `A`) und trennt Datenbaustein und Byte-Adresse mit einem Doppelpunkt:

| Speicherbereich | Schema                      | Beispiele               |
| --------------- | --------------------------- | ----------------------- |
| Datenbaustein   | `DB<Nummer>:<Byte>[.<Bit>]` | `DB400:12`, `DB327:6.1` |
| Merker          | `M<Byte>[.<Bit>]`           | `M6.1`, `MW2`           |
| Eingänge        | `I<Byte>[.<Bit>]`           | `I0.5`, `IW4`           |
| Ausgänge        | `Q<Byte>[.<Bit>]`           | `Q8.0`                  |

Die Größenkennung (`B`, `W`, `D`) ist optional, da der Datentyp separat angegeben wird. Die Siemens-Schreibweise `DB1.DBW0` entspricht also `DB1:0` mit dem Datentyp `WORD`. Peripherie (PE/PA), Zeiten und Zähler werden nicht unterstützt.

### Unterstützte Datentypen

| S7-Datentyp                                    | Datentyp in der ENLYZE Plattform |
| ---------------------------------------------- | -------------------------------- |
| `BOOL`                                         | Boolean                          |
| `BYTE`, `CHAR`, `INT`, `WORD`, `DINT`, `DWORD` | Integer                          |
| `REAL`                                         | Float                            |
| `STRING`, `STRING[n]`                          | String                           |

Nicht unterstützt werden unter anderem `LREAL`, `TIME`, `DATE`, `S5TIME` sowie Arrays. Strukturen (STRUCT) werden beim Import aus dem STEP 7-Projekt in ihre einzelnen Elemente aufgelöst.

## Weiterführend

* [Praxistipps & Hinweise](/connect/ot-connectivity/protokolle/s7-classic/known-issues.md): Hinweise zum Betrieb des S7-Classic-Konnektors und das jeweils empfohlene Vorgehen.
* [Siemens](/connect/ot-connectivity/steuerungshersteller/siemens.md): Übersicht aller Siemens-Familien und der empfohlenen Konnektoren.

Bei Fragen melde dich jederzeit gerne unter <support@enlyze.com>.
