For the complete documentation index, see llms.txt. This page is also available as Markdown.

Siemens S7 Read

Dieser Funktionsblock liest Werte aus einem Siemens S7 PLC-Datenbaustein (DB). Verwenden Sie ihn, um numerische Werte, Booleans, Strings oder andere SPS-Datentypen abzurufen und in Ihr Szenario zur Überwachung, Protokollierung oder Entscheidungslogik zu bringen.

📥 Eingänge

  • Enable (Boolean) — Wenn FALSE überspringt der Block das Lesen und erzeugt keine Ausgabe. Verwenden Sie dies, um zu steuern, wann Lesevorgänge stattfinden.

  • S7 Client (Generic) — SPS-Verbindungsobjekt, das von einem Verbindungsblock bereitgestellt wird. Verbinden Sie hier den Client, der von einem PLC connection block erstellt wurde.

📤 Ausgänge

  • Data (Generic) — Der aus der SPS gelesene Wert. Der Datentyp hängt von der Auswahl in den Steuerungen ab (z. B. Zahl, Liste von Booleans, Text usw.).

🕹️ Steuerungen

  • DB Number — Datenbaustein-(DB-)Nummer, aus dem auf der SPS gelesen werden soll.

  • DB Byte Address — Start-Byte-Offset innerhalb des ausgewählten DB.

  • DB Data Type — Dropdown zur Auswahl des erwarteten SPS-Datentyps (Beispiele: Boolean, Int, Real, String).

  • Connection Type — Wählen Sie Sync oder Async. Sync verwendet einen gemeinsamen Verbindungsmodus, geeignet wenn mehrere Blöcke dieselben SPS-Bytes verwenden; Async gibt dem Block ein eigenständiges Verbindungsverhalten.

⚙️ Wie es funktioniert

  • Wenn der Block aktiv ist, verwendet er den verbundenen S7 Client, um Bytes vom angegebenen DB Number und DB Byte Address zu lesen.

  • Der Block interpretiert die rohen SPS-Bytes entsprechend dem gewählten DB Data Type und gibt einen für Python geeigneten Wert über den Data-Ausgang zurück. Beispielsweise kann die Auswahl Boolean eine Liste von Bitzuständen zurückgeben, während String den dekodierten Text liefert.

  • Der Eingang Enable ermöglicht es, Lesevorgänge zu stoppen, ohne die Konfiguration zu entfernen.

  • Connection Type beeinflusst das Sharing-Verhalten: Wählen Sie Sync, wenn Sie konsistenten, geteilten Zugriff über mehrere Blöcke benötigen; wählen Sie Async für isolierten oder unabhängigen Zugriff.

✨ Funktionen

  • Einfache UI zur Angabe von DB-Nummer, Byte-Address und erwartetem SPS-Datentyp.

  • Unterstützt viele SPS-Datentypen (Booleans, vorzeichenbehaftete/vorzeichenlose Integer, Real, Strings, Zeittypen, Word/DWord usw.).

  • Konfigurierbarer Verbindungsmodus zur Anpassung an Ihre Umgebung (geteilt vs. unabhängig).

  • Fehleranzeige in der UI, wenn Lesevorgänge fehlschlagen oder die angegebenen Parameter außerhalb des gültigen Bereichs liegen.

📝 Verwendung

  1. Stellen Sie eine gültige SPS-Verbindung bereit und verbinden Sie diese mit dem S7 Client-Eingang (z. B. aus einem PLC connection block).

  2. Aktivieren Sie den Block, indem Sie Enable TRUE geben oder den Block aktiviert lassen.

  3. Stellen Sie DB Number und DB Byte Address ein.

  4. Wählen Sie den passenden DB Data Type für den gewünschten Wert.

  5. Die gelesenen Werte erscheinen auf dem Ausgang Data; verbinden Sie nachfolgende Blöcke, um sie weiterzuverarbeiten oder zu protokollieren.

💡 Tipps und Tricks

  • Lesen bedarfsgesteuert auslösen: Kombinieren Sie mit Logic Input oder einem Einmal-Trigger wie Rising Edge, um nur bei Bedarf zu lesen (reduziert Buslast).

  • Werte protokollieren und speichern: Senden Sie den Data-Ausgang an CSV Export oder SQL-DB Operations, um historische Protokolle aufzubauen.

  • Messwerte veröffentlichen: Verbinden Sie Data mit MQTT Publish, um SPS-Werte an Cloud/ Broker zu streamen.

  • Trends visualisieren: Geben Sie numerische Ausgänge an Scope, um Live-Werte über die Zeit zu überwachen.

  • Kürzlich gelesene Werte verfügbar halten: Verwenden Sie Data Memory, um den zuletzt gelesenen Wert zu speichern und Aktualisierungen nur bei Bedarf freizugeben.

  • Fehlende Werte behandeln: Nutzen Sie Is None und Replace None, um sichere Fallback-Verhalten zu erstellen, falls ein Lesevorgang fehlschlägt.

  • JSON-Payloads erstellen: Speisen Sie Werte in Data to JSON, bevor Sie sie veröffentlichen oder speichern, um die nachgelagerte Verarbeitung zu vereinfachen.

  • Connection Type sinnvoll wählen: Sync ist praktisch, wenn mehrere Blöcke dieselben Bytes lesen/schreiben müssen; wählen Sie Async für isolierten Zugriff oder unabhängige Wiederholversuche.

(Hinweis) Wenn Sie eine UI benötigen, die aktuelle Werte für Bediener anzeigt, kombinieren Sie mit Anzeige-/Output-Blöcken wie Show Image (für bildartige Daten) oder Led Output und einfachen Text-Widgets für numerische Anzeigen.

🛠️ Fehlersuche

  • Keine Ausgabe sichtbar: Prüfen Sie, ob Enable TRUE ist und ein gültiger S7 Client verbunden ist.

  • Verbindungsfehler oder Timeouts: Überprüfen Sie die SPS-Netzwerkeinstellungen, kontrollieren Sie den Verbindungsblock, der den S7 Client liefert, und versuchen Sie ggf. einen Wechsel des Connection Type.

  • Unerwartetes Datenformat: Stellen Sie sicher, dass DB Number, DB Byte Address und DB Data Type dem SPS-Programm-Layout entsprechen. Bei Strings prüfen Sie Länge und Kodierung im DB-Layout.

  • Hohe Buslast: Reduzieren Sie die Lesehäufigkeit, verwenden Sie getriggerte Lesevorgänge (Rising Edge) oder teilen Sie die Verbindung mit Sync-Modus, wo angebracht.

Zuletzt aktualisiert