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
EnableTRUE ist und ein gültigerS7 Clientvorhanden ist, versucht der Block,Datain den gewählten DB und die Byte-Adresse mit dem ausgewähltenDB Data Typezu schreiben.Bei
Connection Type = Asyncwird das Schreiben in einem Hintergrund-Worker geplant, sodass das Hauptszenario ohne Verzögerung weiterläuft.Bei
Connection Type = Syncwird das Schreiben im aktuellen Ausführungsschritt durchgeführt.Wenn in
[Optional] Data on Stopein 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
Fügen Sie einen Verbindungsblock wie
Siemens S7 Connecthinzu und konfigurieren Sie die SPS-Adresse.Verbinden Sie diese Verbindung mit dem Eingangsport
S7 Clientdieses Blocks.Setzen Sie
DB Number,DB Byte Addressund, falls Sie ein Boolean schreiben,Bit Position.Wählen Sie den passenden
DB Data Typefür den zu schreibenden Wert.Wählen Sie
Connection Type:Syncfür sofortige Schreibvorgänge oder wenn nur wenige Schreibvorgänge stattfinden.Async, um häufige oder langsame Schreibvorgänge in den Hintergrund auszulagern.
Geben Sie einen Wert in den Eingangsport
Data(für manuelle Eingabe können Sie Blöcke wieNumber InputoderString Inputverwenden).Aktivieren Sie den Block, indem Sie TRUE an
Enableübergeben, um das Schreiben auszulösen.Optional: Geben Sie einen Wert für
[Optional] Data on Stopan, der beim Stoppen geschrieben werden soll.
💡 Tipps und Tricks
Verwenden Sie
Siemens S7 Connectzusammen mit diesem Block, um die SPS-Verbindung zu verwalten und den EingangS7 Clientzu 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 InputoderNumber 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 LocaloderData 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 SieAsyncfür höhere Durchsatzraten, wenn die Schreibvorgänge unabhängig sind.
🛠️ Fehlersuche
Verbindungsfehler oder Meldungen "cannot write":
Stellen Sie sicher, dass der Eingang
S7 Clientverbunden 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 AddressundBit Positionfür die Zielvariable.Stellen Sie sicher, dass der gewählte
DB Data Typedem 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
Syncfü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