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

Siemens S7 Write

This function block writes data to a Siemens S7 PLC (Data Block). Use it to send numbers, booleans, strings and other supported types into a PLC address directly from your scenario.

📥 Eingänge

Enable Geben Sie TRUE an, um das Schreiben zu erlauben. Wenn FALSE oder leer, wird kein Schreibvorgang ausgeführt.

Data Der Wert, der in die SPS geschrieben werden soll. Akzeptiert numerische Werte, Booleans, Text oder komplexe Daten abhängig vom gewählten DB Data Type.

[Optional] Data on Stop Falls angegeben, wird dieser Wert einmalig geschrieben, wenn das Szenario oder der Block gestoppt bzw. entfernt wird.

S7 Client Geben Sie eine Verbindungsreferenz von einem Verbindungsblock (z. B. Siemens S7 Connect) an, damit der Block die SPS erreichen kann.

📤 Ausgänge

Dieser Funktionsblock erzeugt keine Ausgänge.

🕹️ Controls

DB Number Nummer des Data Blocks, in den auf der SPS geschrieben werden soll.

DB Byte Address Start-Byte-Adresse innerhalb des gewählten DB, an der der Wert geschrieben wird.

Bit Position Nur für Boolean-Schreibvorgänge verwenden — wählt aus, welches Bit innerhalb des Zielbytes gesetzt werden soll.

DB Data Type Wählen Sie den zu schreibenden Datentyp (z. B. Boolean, Int, Real, String, Time, etc.). Die Wahl bestimmt, wie der Eingabewert auf SPS-Seite kodiert wird.

Connection Type Wählen Sie Async oder Sync. Async plant das Schreiben in einem Hintergrund-Worker; Sync führt das Schreiben sofort aus.

🎯 Features

  • Unterstützung zahlreicher SPS-Datentypen (numerisch, Boolean, Strings usw.).

  • Optionaler "write on stop"-Wert, der beim Stoppen des Blocks/Szenarios in die SPS geschrieben wird.

  • Zwei Verbindungsmodi: synchrones (sofortiges) Schreiben und asynchrones Schreiben im Hintergrund, um den Hauptablauf nicht zu blockieren.

  • Automatische Wiederverbindung, wenn sich die Client-Adresse ändert (nützlich beim Umstrukturieren von Verbindungen).

  • Einfache UI-Steuerung für DB-, Byte- und Bit-Adressen — kein Code erforderlich.

⚙️ Funktionsweise

  • Wenn Enable TRUE ist und ein gültiger S7 Client vorhanden ist, versucht der Block, Data in den gewählten DB und die Byte-Adresse mit dem ausgewählten DB Data Type zu schreiben.

  • Bei Connection Type = Async wird das Schreiben in einem Hintergrund-Worker geplant, sodass das Hauptszenario ohne Verzögerung weiterläuft.

  • Bei Connection Type = Sync wird das Schreiben im aktuellen Ausführungsschritt durchgeführt.

  • Wenn in [Optional] Data on Stop ein Wert angegeben wurde, wird dieser automatisch geschrieben, wenn der Block gestoppt oder entfernt wird.

  • Der Block protokolliert informative Meldungen bei Erfolg, Warnungen, wenn PLC/Client beschäftigt sind, und Fehler, wenn Schreibvorgänge fehlschlagen oder Parameter ungültig sind.

📝 Nutzungshinweise

  1. Fügen Sie einen Verbindungsblock wie Siemens S7 Connect hinzu und konfigurieren Sie die SPS-Adresse.

  2. Verbinden Sie diese Verbindung mit dem Eingangsport S7 Client dieses Blocks.

  3. Setzen Sie DB Number, DB Byte Address und, falls Sie ein Boolean schreiben, Bit Position.

  4. Wählen Sie den passenden DB Data Type für den zu schreibenden Wert.

  5. Wählen Sie Connection Type:

    • Sync für sofortige Schreibvorgänge oder wenn nur wenige Schreibvorgänge stattfinden.

    • Async, um häufige oder langsame Schreibvorgänge in den Hintergrund auszulagern.

  6. Geben Sie einen Wert in den Eingangsport Data (für manuelle Eingabe können Sie Blöcke wie Number Input oder String Input verwenden).

  7. Aktivieren Sie den Block, indem Sie TRUE an Enable übergeben, um das Schreiben auszulösen.

  8. Optional: Geben Sie einen Wert für [Optional] Data on Stop an, der beim Stoppen geschrieben werden soll.

💡 Tipps und Tricks

  • Verwenden Sie Siemens S7 Connect zusammen mit diesem Block, um die SPS-Verbindung zu verwalten und den Eingang S7 Client zu versorgen.

  • Prüfen Sie nach dem Schreiben die Werte mit Siemens S7 Read, um den erwarteten DB-Inhalt zu bestätigen.

  • Für manuelle Auslöser kombinieren Sie mit Logic Input oder Number Input, um Schreibvorgänge zu steuern.

  • Beim Schreiben von Texten nutzen Sie String Input, damit die Kodierung erwartungsgemäß übereinstimmt.

  • Zum Speichern von Werten für spätere Nutzung oder zur Koordination mehrerer Blöcke kombinieren Sie mit Data Write Local / Data Read Local oder Data Write Global / Data Read Global.

  • Verwenden Sie Debug Input, um Werte vor dem Senden zu protokollieren oder zu inspizieren.

  • Bevorzugen Sie Sync, wenn mehrere Blöcke dieselben Bytes beschreiben müssen — das reduziert Race-Conditions. Verwenden Sie Async für höhere Durchsatzraten, wenn die Schreibvorgänge unabhängig sind.

🛠️ Fehlersuche

  • Verbindungsfehler oder Meldungen "cannot write":

    • Stellen Sie sicher, dass der Eingang S7 Client verbunden ist und der Verbindungsblock mit der korrekten SPS-Adresse konfiguriert und aktiv ist.

    • Versuchen Sie, die Verbindung im Verbindungsblock neu herzustellen.

  • Falsche Werte in der SPS:

    • Überprüfen Sie DB Number, DB Byte Address und Bit Position für die Zielvariable.

    • Stellen Sie sicher, dass der gewählte DB Data Type dem SPS-Variablentyp entspricht (z. B. führt das Schreiben eines Float mit einem Integer-Typ zu falschen Werten).

  • Zeichenketten werden abgeschnitten oder sind korrupt:

    • Prüfen Sie, ob die SPS-Seite ein Längenbyte oder einen festen Puffer erwartet. Begrenzen Sie ggf. die String-Länge.

  • Schreibvorgänge sind zu langsam oder blockieren das Szenario:

    • Wechseln Sie zu Connection Type = Async, damit die Schreibvorgänge im Hintergrund stattfinden.

  • Mehrere Schreiber auf dieselbe Adresse verursachen Konflikte:

    • Verwenden Sie Sync für Blöcke, die in dieselben DB/Bytes schreiben, oder zentralisieren Sie Schreibvorgänge über einen einzigen dedizierten Writer-Block.

Wenn Probleme weiterhin bestehen, überprüfen Sie die Adresszuordnung auf der SPS erneut und validieren Sie mit einem Lesevorgang (z. B. Siemens S7 Read) bevor Sie sich auf nachfolgende Schreibvorgänge verlassen.

Zuletzt aktualisiert