Store and Forward
Store and Forward speichert Daten zwischen, wenn sie aufgrund eines Fehlers nicht übertragen werden können – etwa weil ein Zielsystem vorübergehend nicht erreichbar ist. Sobald die Übertragung wieder möglich ist, werden die zwischengespeicherten Daten nachgereicht. So gehen bei kurzzeitigen Störungen keine Daten verloren.
Store and Forward wird an zwei Stellen aktiviert: einmal global für den OPC Router und zusätzlich in jeder Verbindung, die die Funktion nutzen soll.
Globale Aktivierung
Über den Menüpunkt Extras - Einstellungen finden Sie die Schaltfläche Store and Forward. Schalten Sie den Schieberegler oben auf ON, um Store and Forward global zu aktivieren.

Store and Forward muss zusätzlich in jeder Verbindung aktiviert werden, die die Funktion nutzen soll. Die globale Einstellung schaltet Store and Forward nur grundsätzlich frei; erst pro Verbindung entscheiden Sie, für welche Verbindungen tatsächlich zwischengespeichert wird – denn nicht für jede Verbindung ist eine Zwischenspeicherung sinnvoll. Für neue Verbindungen lässt sich das mit der Option Store and Forward bei neu erstellten Verbindungen automatisch aktivieren voreinstellen.
Einstellungen
| Eigenschaft | Beschreibung |
|---|---|
| Vorhaltezeit aktivieren | Angabe in Stunden, wie lange der Router die aufgezeichneten Werte maximal vorhält. Nach Ablauf dieser Zeit werden Werte, die zu alt sind, verworfen, wenn das Plug-in bis dahin nicht aus dem Fehlerzustand zurückkehrt. |
| Speicherkapazität | Maximale Speicherkapazität, die der OPC Router den zwischengespeicherten Werten zur Verfügung stellt. Die Angabe erfolgt in Gigabyte. |
| Verhalten bei erreichter Speicherkapazität |
|
| Store and Forward bei neu erstellten Verbindungen automatisch aktivieren | Aktivieren Sie diese Option, wenn bei neu angelegten Verbindungen die Store-and-Forward-Option automatisch aktiviert werden soll. |
Aktivierung in Verbindungen und Vorlagen
Ob eine Verbindung Store and Forward nutzt, legen Sie über die Eigenschaft Store and Forward in den Einstellungen der jeweiligen Verbindung oder Vorlage fest – siehe Einstellungen für Verbindungen und Vorlagen. Alternativ lässt sich Store and Forward direkt über das Kontextmenü (Rechtsklick) an der Verbindung im Verbindungsbaum aktivieren bzw. deaktivieren. Wird die Funktion in einer Vorlage aktiviert, gilt sie für alle daraus erstellten Verbindungen.

Ist der Schalter Store and Forward (1) aktiviert, erscheint an den unterstützten Transferobjekten der Verbindung das Store-and-Forward-Symbol (2).
Funktionsweise
Store and Forward speichert Daten in der Datenbank des OPC Routers zwischen, wenn sie aufgrund eines Fehlers nicht übertragen werden konnten.
Wichtig ist, dass Store and Forward Daten nur dann zwischenspeichert, wenn der Fehler in einem Transferobjekt auftritt, für das Store and Forward verfügbar ist, zum Beispiel im Transferobjekt DB Insert. Die Verfügbarkeit von Store and Forward für ein Transferobjekt lässt sich an dem Store-and-Forward-Symbol erkennen, das nach dem Aktivieren von Store and Forward im Transferobjekt angezeigt wird.
Store and Forward ist hauptsächlich dazu gedacht, als Puffer für Daten zu dienen, die aufgrund eines Plug-in-Fehlers nicht übertragen werden können. Solche Fehler werden zum Beispiel durch Verbindungsverluste ausgelöst, die durch einen Absturz oder eine planmäßige Wartung von Systemen entstehen können.
Wenn das Plug-in nicht mehr im Fehlerzustand ist, wird versucht, die zwischengespeicherten Daten zu übertragen. Diese Nachübertragung läuft parallel zu den weiterhin anfallenden Live-Übertragungen; die nachgereichten und die aktuellen Werte werden daher nicht zwingend in ihrer ursprünglichen Reihenfolge (FIFO) übertragen. Die einzelnen Datensätze kommen dabei vollständig und korrekt an. Damit sie sich trotz der Übertragungsreihenfolge eindeutig zuordnen lassen, sollte jeder Datensatz einen Wert- bzw. Aufzeichnungszeitstempel mitführen.
Schlägt die Übertragung fehl, wird sie nach einigen Versuchen nicht weiter ausgeführt. Dass zwischengespeicherte Daten nicht übertragen werden können, tritt in der Regel dann auf, wenn es sich um ungültige Daten handelt, zum Beispiel um einen ungültigen Datensatz.
Wann Store and Forward nicht verwendet werden sollte
Store and Forward ist sinnvoll, wenn jeder einzelne Wert vollständig ankommen muss – auch mit Verzögerung. Zählt dagegen nur der jeweils aktuelle Wert, sollte die Funktion nicht verwendet werden:
- Nur der aktuelle Wert zählt: Nach dem Wiederaufbau der Verbindung reicht Store and Forward die zwischengespeicherten Werte nach. Sollen Daten stets den aktuellen Zustand abbilden – etwa ein Messwert auf einer Visualisierung oder ein OPC-Tag –, würden dadurch veraltete Werte verspätet geschrieben. Store and Forward sollte hier nicht aktiviert werden.
- Echtzeitanforderung: Store and Forward puffert Daten und liefert sie erst nach der Störung nach. Muss ein Wert garantiert sofort ankommen, ist die Funktion nicht geeignet.
- Nicht unterstützte Transferobjekte: Store and Forward lässt sich nur für Transferobjekte aktivieren, die die Funktion unterstützen (erkennbar am Store-and-Forward-Symbol). Für alle übrigen Transferobjekte steht es nicht zur Verfügung.
Status der zwischengespeicherten Daten
Der Status der zwischengespeicherten Daten kann in der Statusansicht eingesehen werden. Dort gibt es neben Plug-ins und Verbindungen auch den Punkt Store and Forward. In diesem Baum können Sie durch einen Klick auf ein Plug-in einsehen, ob für dieses Plug-in aktuell Daten zwischengespeichert sind. Auch bereits übertragene Daten werden in der Übersicht angezeigt. Jeder Datensatz erhält dabei einen Status: Weitergeleitet für bereits erfolgreich nachübertragene Datensätze (im Beispiel mit 1 markiert) und Pending für noch ausstehende, zwischengespeicherte Datensätze (2).

Auch im Verbindungsstatus ist Store and Forward nachvollziehbar: Transfers, die über Store and Forward laufen, werden als lila Transferpunkte dargestellt und heben sich so von den übrigen Transferpunkten ab. Ein lila Punkt erscheint bereits, sobald der Transfer abgeschlossen ist und die Daten zwischengespeichert werden – unabhängig davon, ob sie zu diesem Zeitpunkt schon nachübertragen wurden. Ob ein zwischengespeicherter Datensatz bereits weitergeleitet oder noch ausstehend ist, zeigt die oben beschriebene Store-and-Forward-Statusansicht.

Typisches Beispiel
Der OPC Router liest Produktionswerte aus einer Steuerung und schreibt sie über das Transferobjekt DB Insert in eine zentrale SQL-Datenbank. Wird der Datenbankserver kurzzeitig neu gestartet oder gewartet, ist er für den OPC Router nicht erreichbar und das Datenbank-Plug-in geht in den Fehlerzustand.
Bei aktiviertem Store and Forward werden die DB Insert-Vorgänge in dieser Zeit lokal zwischengespeichert. Sobald der Datenbankserver wieder erreichbar ist, überträgt der OPC Router die gepufferten Datensätze nach – die während der Störung angefallenen Werte gehen nicht verloren.
Beispielprojekt zum Import
Das vollständige Beispielprojekt steht als store_and_forward_example.rpe zum Download bereit.
Die globale Store-and-Forward-Einstellung ist nicht Teil des Projektexports. Aktivieren Sie Store and Forward daher vor dem Test zunächst global über Extras - Einstellungen (siehe Globale Aktivierung).
Das Projekt ist als eigenständiger Test aufgebaut und enthält zwei Anbindungen sowie zwei Verbindungen:
Anbindungen
- OPC UA Server
SNF_Example_inrayOPCUAServer– direkt eingebundener Quell- und Ziel-Server. - OPC UA Client
SNF_Example_uaclientconn_TargetConn– Ziel-Anbindung der Testverbindung (Endpointopc.tcp://DEMOOPCROUTER:49423).
Verbindung „SnF Example" (Beispielverbindung)
Data Change-Trigger auf das ItemWS_Tot_Packages(über den OPC UA Server).- Transferobjekt
OPC Data Access(Schreiben) schreibt Wert und Zeitstempel über den OPC UA Client zurück aufWS_Tot_Packages. - Store and Forward ist für diese Verbindung aktiviert.
Verbindung „Helper" (Datengenerator)
Cron-Trigger, der alle zwei Sekunden auslöst.- Transferobjekt
OPC Data Access(Lesen) liestWS_Tot_Packagesvom OPC UA Server. - Funktionsbaustein
Formula & Calculatormit der FormelIF(Counter < 10000, Counter+1, 0). - Transferobjekt
OPC Data Access(Schreiben) schreibt den erhöhten Wert zurück aufWS_Tot_Packages.
Die Helper-Verbindung zählt WS_Tot_Packages fortlaufend hoch und erzeugt so die Wertänderungen, die die Testverbindung überträgt. Um Store and Forward auszulösen, ändern Sie im OPC UA Client SNF_Example_uaclientconn_TargetConn (Reiter Quickstart, Feld Endpoint) den Port auf einen nicht erreichbaren Wert und schalten die Änderung produktiv. Nach dem Zurücksetzen des Ports und erneutem Produktivschalten werden die zwischengespeicherten Werte nachübertragen.