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 SieSyncoderAsync.Syncverwendet einen gemeinsamen Verbindungsmodus, geeignet wenn mehrere Blöcke dieselben SPS-Bytes verwenden;Asyncgibt dem Block ein eigenständiges Verbindungsverhalten.
⚙️ Wie es funktioniert
Wenn der Block aktiv ist, verwendet er den verbundenen
S7 Client, um Bytes vom angegebenenDB NumberundDB Byte Addresszu lesen.Der Block interpretiert die rohen SPS-Bytes entsprechend dem gewählten
DB Data Typeund gibt einen für Python geeigneten Wert über denData-Ausgang zurück. Beispielsweise kann die AuswahlBooleaneine Liste von Bitzuständen zurückgeben, währendStringden dekodierten Text liefert.Der Eingang
Enableermöglicht es, Lesevorgänge zu stoppen, ohne die Konfiguration zu entfernen.Connection Typebeeinflusst das Sharing-Verhalten: Wählen SieSync, wenn Sie konsistenten, geteilten Zugriff über mehrere Blöcke benötigen; wählen SieAsyncfü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
Stellen Sie eine gültige SPS-Verbindung bereit und verbinden Sie diese mit dem
S7 Client-Eingang (z. B. aus einem PLC connection block).Aktivieren Sie den Block, indem Sie
EnableTRUE geben oder den Block aktiviert lassen.Stellen Sie
DB NumberundDB Byte Addressein.Wählen Sie den passenden
DB Data Typefür den gewünschten Wert.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 Inputoder einem Einmal-Trigger wieRising Edge, um nur bei Bedarf zu lesen (reduziert Buslast).Werte protokollieren und speichern: Senden Sie den
Data-Ausgang anCSV ExportoderSQL-DB Operations, um historische Protokolle aufzubauen.Messwerte veröffentlichen: Verbinden Sie
DatamitMQTT 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 NoneundReplace 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 Typesinnvoll wählen:Syncist praktisch, wenn mehrere Blöcke dieselben Bytes lesen/schreiben müssen; wählen SieAsyncfü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
EnableTRUE ist und ein gültigerS7 Clientverbunden ist.Verbindungsfehler oder Timeouts: Überprüfen Sie die SPS-Netzwerkeinstellungen, kontrollieren Sie den Verbindungsblock, der den
S7 Clientliefert, und versuchen Sie ggf. einen Wechsel desConnection Type.Unerwartetes Datenformat: Stellen Sie sicher, dass
DB Number,DB Byte AddressundDB Data Typedem 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 mitSync-Modus, wo angebracht.
Zuletzt aktualisiert